@xema/omni-protocol 0.1.120 → 0.1.121
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.
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1 -1
- package/dist/validation.js +1 -1
- package/guide/agent.md +2 -1
- package/guide.md +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1022,12 +1022,13 @@ export interface Locked {
|
|
|
1022
1022
|
*/
|
|
1023
1023
|
export type Lockable<T> = T | Locked;
|
|
1024
1024
|
/**
|
|
1025
|
-
* Who chose a task's capabilities
|
|
1026
|
-
*
|
|
1027
|
-
*
|
|
1025
|
+
* Who chose a task's capabilities: the queue that handed the work over, the dialer that declared
|
|
1026
|
+
* outbound work, or nobody for an agent's own outbound. `not-yet-read` is a fault the provider
|
|
1027
|
+
* states on the task rather than hides: the platform's terms could not be read, and the set
|
|
1028
|
+
* published is what the provider will honour, not what the platform permits.
|
|
1028
1029
|
*/
|
|
1029
|
-
export type CapabilitySource = "queue" | "nobody" | "not-yet-read";
|
|
1030
|
-
export declare const CAPABILITY_SOURCES: readonly ["queue", "nobody", "not-yet-read"];
|
|
1030
|
+
export type CapabilitySource = "queue" | "dialer" | "nobody" | "not-yet-read";
|
|
1031
|
+
export declare const CAPABILITY_SOURCES: readonly ["queue", "dialer", "nobody", "not-yet-read"];
|
|
1031
1032
|
export type Task<C extends Channel = Channel> = {
|
|
1032
1033
|
/** The assignment this task is the record of, and its one identity. See `AssignmentId`. */
|
|
1033
1034
|
assignmentId: AssignmentId;
|
package/dist/index.js
CHANGED
|
@@ -77,7 +77,7 @@ export const DEFAULT_LEVELS = [
|
|
|
77
77
|
export function effectiveLevels(declared) {
|
|
78
78
|
return [...(declared ?? DEFAULT_LEVELS)];
|
|
79
79
|
}
|
|
80
|
-
export const CAPABILITY_SOURCES = ["queue", "nobody", "not-yet-read"];
|
|
80
|
+
export const CAPABILITY_SOURCES = ["queue", "dialer", "nobody", "not-yet-read"];
|
|
81
81
|
// ---------------------------------------------------------------------------
|
|
82
82
|
// Task commands.
|
|
83
83
|
// ---------------------------------------------------------------------------
|
package/dist/validation.js
CHANGED
|
@@ -41,7 +41,7 @@ const TASK_PHASES = membersOf({
|
|
|
41
41
|
pending: true, confirmed: true, preview: true, "in-progress": true, paused: true, completing: true,
|
|
42
42
|
});
|
|
43
43
|
const COMPLETION_MODES = membersOf({ "agent-command": true, "provider-automatic": true });
|
|
44
|
-
const CAPABILITY_SOURCES = membersOf({ queue: true, nobody: true, "not-yet-read": true });
|
|
44
|
+
const CAPABILITY_SOURCES = membersOf({ queue: true, dialer: true, nobody: true, "not-yet-read": true });
|
|
45
45
|
const ACCEPTANCE_MODES = membersOf({
|
|
46
46
|
"no-preference": true, "consent": true, "automatic": true,
|
|
47
47
|
});
|
package/guide/agent.md
CHANGED
|
@@ -154,7 +154,7 @@ time. Runtime conformance checks also require the task channel to match its prov
|
|
|
154
154
|
| `channel` | Channel used for this task. It must equal the source provider's manifest channel. |
|
|
155
155
|
| `taskType` | Required provider-defined source or category of work, such as a voice `Queue Name`, `Mailbox Folder`, `Chat Source`, `Support`, `Billing`, or `Returns`. |
|
|
156
156
|
| `capabilities` | Controls and workspace features available for this specific task. |
|
|
157
|
-
| `capabilitySource` | Required. Who chose the capabilities: `queue` when
|
|
157
|
+
| `capabilitySource` | Required. Who chose the capabilities: `queue` when the queue that handed the work over carries these terms, `dialer` when the dialer that declared outbound work does -- a manual dialer may permit everything, another state narrower terms -- `nobody` when nothing handed the work over -- an agent's own outbound -- and `not-yet-read` when a queue was named and its terms could not be read, in which case `capabilities` is what the provider will honour, not what the platform permits. An agent application shows `not-yet-read` where the agent works. See **Task capabilities**. |
|
|
158
158
|
| `browsers` | Named browser definitions for the task workspace: at least one when the task declares the `browsers` capability, empty when it does not. |
|
|
159
159
|
| `party` | The person or entity on the other end of this task, as a `Contact`: often a name and one address; a withheld caller ID may leave nothing to send at all. Optional. The party is who the task is *with*; `contacts` is the directory. |
|
|
160
160
|
| `phase` | Current canonical task phase: `pending`, `confirmed`, `preview`, `in-progress`, `paused`, or `completing`. `preview` is voice only. |
|
|
@@ -387,6 +387,7 @@ Migration from the earlier spellings:
|
|
|
387
387
|
| a `callback-requested` step, and a callback task starting its history afresh | a `callback-requested` step (`by` when an agent arranged it); a callback's task carries the earlier call's steps, oldest first |
|
|
388
388
|
| a recording state with an observation id, an observation instant and a validity window, and the helpers that aged it | `recordings` on the task and on `HostRecordingReport`: a list, each recording with `id`, `follows` (`party` or `agent`), `status` (`starting`, `recording`, `paused`, `not-recording`, `unknown`) and a `reason` where paused or unknown; nothing expires; commands name `follows` for a start and `recordingId` otherwise; `validateRecordings` (`recording.task.renamed` refuses the former field) |
|
|
389
389
|
| a refusal on hold under `omni.command-not-permitted` | `omni.on-hold` |
|
|
390
|
+
| outbound work's terms reported as `queue` | `dialer`: the dialer that declared the task chose its capabilities |
|
|
390
391
|
| an `end-call` while the caller was on hold | refused: a `paused` task is resumed first (`command.endCall.held`), the agent computer shows End call disabled on hold, the provider answers `failed`, and the test names an adapter that ends from hold (`test.command.held`); `terminate-call` is not gated, it ends the caller's channel too |
|
|
391
392
|
| the handset spelled by its place on a desk | `hardphone`, on the manifest's `phones` and the login's `phone`; the former spelling is refused |
|
|
392
393
|
| the desk | the agent computer, in the guide's prose |
|
package/guide.md
CHANGED
|
@@ -755,7 +755,7 @@ type Lockable<T> = T | Locked;
|
|
|
755
755
|
|
|
756
756
|
type TaskAudioState = "started" | "ended";
|
|
757
757
|
|
|
758
|
-
type CapabilitySource = "queue" | "nobody" | "not-yet-read";
|
|
758
|
+
type CapabilitySource = "queue" | "dialer" | "nobody" | "not-yet-read";
|
|
759
759
|
|
|
760
760
|
type Task<C extends Channel = Channel> = {
|
|
761
761
|
assignmentId: AssignmentId;
|