Skip to main content
Version: Target · roadmap

Station

The station block​

station:
id: ticket-refund
kind: process # product | process
name: "Ticket → refund"
guidance: {enforce: 0.85, suggest: 0.5, margin: 0.05, max_mode: enforce}
delegation: # product: what a customer can grant to their agents
restrictions: [max_amount, hours, addresses, deny_skills, confirm_above]

global:
language: fr
currency: EUR # the currency of ALL fields of type `price`
locale: fr-FR # 1 234,50 €
timezone: Europe/Paris # a sub-identity's hours, the inboxes' deadlines
  • kind changes what the console shows (customers or employees, order or case), not the primitives.
  • guidance sets how playbooks are activated by intent: see Activation.
  • global carries the language and the currency of the whole station. No other key carries a currency: a price field does not have its own.
  • delegation.restrictions lists the limits a customer can set on the sub-identities of their agents ("Cabinet Diallo · ChatGPT Enterprise"): a maximum amount, hours, addresses, forbidden skills. A sub-identity can only restrict. It is granted on the tenant's page, never in the conversation.
Provisional name

The name of the block and of the station identifier is still an open question (ADR-029). Rooms will belong to the station; the directory and the keys, to the organisation.

The station's sentences​

When Core refuses a choice or holds a submit, it says so in a sentence: a step not open yet, a method ruled out, a quantity below the minimum. These sentences come from Convoy's catalogue, in the station's language. The texts block rewrites them, key by key and language by language:

texts:
fr:
step.waits: "{task} vient après {before} : choisissons d'abord {before}."
step.method_taken: "{other} est déjà choisi pour {task}. Retirez-le pour prendre {method}."
en:
step.waits: "{task} comes after {before}: let's choose {before} first."
  • Convoy's sentence stays the default. A key that texts does not write keeps its own.
  • The keys are those of Convoy's catalogue (step.waits, step.method_taken, submit.needs_task…). An unknown key is refused at load.
  • A sentence keeps every placeholder of the one it replaces ({task}, {before}…). A sentence that drops one is refused at load: the person would no longer know which step to wait for.
  • A sentence holds on every door. The person reads it in the widget and in the frames; the model reads it in the tool result. That is why texts sits at the station level, not under agent.portals.web.widget.