@opencxh/domain 1.101.0 → 1.113.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -278,6 +278,26 @@ export declare const InteractionParticipantRole: {
278
278
  readonly PARTICIPANT: "participant";
279
279
  };
280
280
  export type InteractionParticipantRoleValue = typeof InteractionParticipantRole[keyof typeof InteractionParticipantRole];
281
+ /**
282
+ * Which surface the call dock shows in place of the provider's canvas.
283
+ *
284
+ * The canvas and the action tray are separate federated resources, so they
285
+ * cannot hold state between them. The host owns this instead: it renders the
286
+ * keypad and the transfer form itself — both are platform operations
287
+ * (`session.dtmf`, `session.transfer`), not provider UI — and hands the tray
288
+ * the current value plus a setter through `CallActionTrayProps`. A tray that
289
+ * ignores them simply never offers the panels, which is the right answer for a
290
+ * provider that cannot do tones or transfers.
291
+ */
292
+ export type CallPanel = "main" | "keypad" | "transfer";
293
+ /** Props the host passes to a provider's `ui.actionTray` resource. */
294
+ export interface CallActionTrayProps {
295
+ session: Session;
296
+ account?: CommsAccount;
297
+ /** Absent when the host does not offer swappable panels. */
298
+ panel?: CallPanel;
299
+ onPanelChange?: (panel: CallPanel) => void;
300
+ }
281
301
  export interface SessionAction {
282
302
  id: string;
283
303
  label: string;
@@ -124,6 +124,13 @@ export interface ExtensionConfig {
124
124
  icon?: string | IconDefinition;
125
125
  priority?: number;
126
126
  contexts?: ExtensionContext[];
127
+ /**
128
+ * Sit apart from the rest of the slot, ahead of them and separated by a
129
+ * rule. For a tool that is always there and always first — the assistant —
130
+ * rather than one more entry in the list. Declared by the app so the host
131
+ * does not have to know which extension is special.
132
+ */
133
+ pinned?: boolean;
127
134
  conditions?: {
128
135
  [key: string]: any;
129
136
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencxh/domain",
3
- "version": "1.101.0",
3
+ "version": "1.113.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",