@xema/omni-protocol 0.1.118 → 0.1.119

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/testing.d.ts CHANGED
@@ -215,8 +215,6 @@ export declare class TeamStream {
215
215
  private static ids;
216
216
  /** A snapshot carrying a team is the team whole; one carrying none leaves the lead with none. */
217
217
  seed(snapshot: unknown): void;
218
- /** Whether the team currently carries this member, as the events left it. */
219
- has(id: string): boolean;
220
218
  apply(envelope: unknown, path?: string): ProtocolViolation[];
221
219
  }
222
220
  export declare class BreakStream {
package/dist/testing.js CHANGED
@@ -2235,8 +2235,6 @@ export class TeamStream {
2235
2235
  seed(snapshot) {
2236
2236
  this.members = TeamStream.ids(isRecord(snapshot) ? snapshot.team : undefined);
2237
2237
  }
2238
- /** Whether the team currently carries this member, as the events left it. */
2239
- has(id) { return this.members?.has(id) === true; }
2240
2238
  apply(envelope, path = "event") {
2241
2239
  const event = isRecord(envelope) ? envelope.event : undefined;
2242
2240
  if (!isRecord(event))
package/guide.md CHANGED
@@ -2548,7 +2548,9 @@ a backend that does not know the session yet — yields no snapshot, and the ada
2548
2548
 
2549
2549
  A snapshot must account for **everything the adapter has emitted before it resolves**, not merely
2550
2550
  everything emitted when it was requested. Omni drops the state-replacing events held during the
2551
- read on that promise, and applies the rest after it (see **`Connection.snapshot()`**); an adapter
2551
+ read on that promise, and applies the rest after it (see **`Connection.snapshot()`**). Which kinds a
2552
+ snapshot restates, and so supersedes, is exported from the testing module as
2553
+ `SUPERSEDED_BY_A_SNAPSHOT`, so an agent application and the harness drop the same ones; an adapter
2552
2554
  that serves a stale snapshot and then lets an earlier event through will have Omni apply state the
2553
2555
  snapshot already superseded. The harness reads its connect snapshot the same way, and holds the
2554
2556
  snapshot to accounting for every task event it superseded: a task published during the read and
@@ -2935,6 +2937,9 @@ same exported checks are used by Omni and adapter tests so their interpretations
2935
2937
  | `validateProviderTimeEstimate(estimate, scope)` | Optional agent application estimate shape and provider/login scope; no accuracy guarantee. |
2936
2938
  | `validateHistoryReport(report, path?, manifest?, task?)` | What the agent application reports of a leg it performed, for an adapter to check before forwarding: a task, a step, when it began, a positive `seconds` where stated, and an explicit `ended` that carries the final duration. Given the manifest, a running report is refused unless it declares `runningStepReports`. Given the task, the agent application's own mute beginning on a `paused` task is refused (`historyReport.muted.held`): the Mute waits for resume. |
2937
2939
  | `validateHostReport(report)` | The agent application's own report as published to an adapter: `online`, and where there is audio, an input that is `available` with the microphone and `flowing`, or `unavailable` with a reason and the failure that says why, and an output that is `available` or `unavailable` with its failure. The harness validates whatever agent application a test hands the adapter; `stillHost(report)` builds one that never changes. |
2940
+ | `validateNextCall(value)` | The agent's standing ask for the next call, on its own as `next-call` and `Snapshot.nextCall` carry it: since when, and nothing else (`nextCall.since`, `nextCall.field`). |
2941
+ | `validateLinedUp(value, path?, levels?)` | A call lined up in the agent's own queue, on its own as `lined-up` and `Snapshot.linedUp` carry it: the caller under the same contact rules as a task's party, the queue's label, the waits, and `release` by presence (`linedUp.*`). |
2942
+ | `validatePhoneState(value, path?, context?)` | The phone as the platform sees it, on its own as `phone-updated` and `Snapshot.phone` carry it: its status, its one active channel, its mute where a hardphone's is observed (`phone.*`). |
2938
2943
  | `validateHostMute(mute, softphone)` | What the agent application's Mute does, stated on a softphone login and nowhere else: `stream` or `station` (`host.mute`), required where the agent application holds a microphone (`host.mute.required`) and refused where it does not (`host.mute.unexpected`). The harness holds `ConnectContext.host.mute` to it. |
2939
2944
  | `validateLoginStore(store)` | The login's store the agent application hands every connection: an object with `get`, `set` and `delete` (`store.shape`, `store.get`, `.set`, `.delete`). The harness holds `ConnectContext.store` to it. |
2940
2945
  | `validateCapacity(capacity)` | What the agent application states as capacity: a whole number of zero or more (`capacity.count`), zero being agent application-stopped. The harness states one on connect and two, one and zero after the test, each answered `applied`, and holds any offer to the count in force (`stream.taskOffered.overCapacity`). |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xema/omni-protocol",
3
- "version": "0.1.118",
3
+ "version": "0.1.119",
4
4
  "description": "The Omni protocol: the contract every provider adapter implements",
5
5
  "type": "module",
6
6
  "license": "MIT",