@canonmsg/agent-sdk 11.2.1 → 12.1.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.
Files changed (181) hide show
  1. package/README.md +248 -523
  2. package/dist/chunks/chunk-7N6OPPW4.js +5430 -0
  3. package/dist/chunks/chunk-N722GWCP.js +4897 -0
  4. package/dist/chunks/chunk-QZ4PPRQW.js +14247 -0
  5. package/dist/chunks/mls-crypto-LMNQZOS6.js +10 -0
  6. package/dist/cli.js +572 -0
  7. package/dist/drivers/claude.d.ts +42 -0
  8. package/dist/drivers/code.d.ts +18 -0
  9. package/dist/drivers/codex.d.ts +46 -0
  10. package/dist/drivers/connector.d.ts +34 -0
  11. package/dist/index.d.ts +20 -25
  12. package/dist/index.js +91 -13
  13. package/dist/internal/backend-contracts/agentBehaviorPolicy.d.ts +122 -0
  14. package/dist/internal/backend-contracts/agentDirectory.d.ts +32 -0
  15. package/dist/internal/backend-contracts/agentOrigin.d.ts +23 -0
  16. package/dist/internal/backend-contracts/agentSearch.d.ts +17 -0
  17. package/dist/internal/backend-contracts/api-origins.generated.d.ts +4 -0
  18. package/dist/internal/backend-contracts/apiErrors.d.ts +1 -0
  19. package/dist/internal/backend-contracts/artifactActions.d.ts +8 -0
  20. package/dist/internal/backend-contracts/artifacts.d.ts +386 -0
  21. package/dist/internal/backend-contracts/clientFloor.d.ts +41 -0
  22. package/dist/internal/backend-contracts/communication.d.ts +146 -0
  23. package/dist/internal/backend-contracts/connectorRelay.d.ts +179 -0
  24. package/dist/internal/backend-contracts/conversationMembership.d.ts +28 -0
  25. package/dist/internal/backend-contracts/deliveryObservation.d.ts +23 -0
  26. package/dist/internal/backend-contracts/diffRedaction.d.ts +6 -0
  27. package/dist/internal/backend-contracts/endpoint-unread.d.ts +4 -0
  28. package/dist/internal/backend-contracts/endpoint.d.ts +120 -0
  29. package/dist/internal/backend-contracts/endpointContentPolicy.d.ts +48 -0
  30. package/dist/internal/backend-contracts/environment.d.ts +20 -0
  31. package/dist/internal/backend-contracts/externalInbound.d.ts +24 -0
  32. package/dist/internal/backend-contracts/firestoreValues.d.ts +9 -0
  33. package/dist/internal/backend-contracts/index.d.ts +54 -0
  34. package/dist/internal/backend-contracts/media-url.d.ts +20 -0
  35. package/dist/internal/backend-contracts/media.d.ts +51 -0
  36. package/dist/internal/backend-contracts/mediaDelivery.d.ts +46 -0
  37. package/dist/internal/backend-contracts/mediaTransferProtocol.d.ts +17 -0
  38. package/dist/internal/backend-contracts/membershipChange.d.ts +21 -0
  39. package/dist/internal/backend-contracts/message.d.ts +86 -0
  40. package/dist/internal/backend-contracts/messageText.d.ts +6 -0
  41. package/dist/internal/backend-contracts/mlsDevApplication.d.ts +161 -0
  42. package/dist/internal/backend-contracts/mlsDevCredential.d.ts +78 -0
  43. package/dist/internal/backend-contracts/mlsDevCredentialReconciliation.d.ts +45 -0
  44. package/dist/internal/backend-contracts/mlsDevDeviceCustody.d.ts +52 -0
  45. package/dist/internal/backend-contracts/mlsDevEnrollment.d.ts +75 -0
  46. package/dist/internal/backend-contracts/mlsDevFeedReceipt.d.ts +43 -0
  47. package/dist/internal/backend-contracts/mlsDevGroup.d.ts +321 -0
  48. package/dist/internal/backend-contracts/mlsDevGroupFeed.d.ts +51 -0
  49. package/dist/internal/backend-contracts/mlsDevInteraction.d.ts +159 -0
  50. package/dist/internal/backend-contracts/mlsDevKeyPackage.d.ts +42 -0
  51. package/dist/internal/backend-contracts/mlsDevKeyPackages.d.ts +55 -0
  52. package/dist/internal/backend-contracts/mlsEnvironment.d.ts +35 -0
  53. package/dist/internal/backend-contracts/mlsPrincipalAlias.d.ts +23 -0
  54. package/dist/internal/backend-contracts/moderation.d.ts +7 -0
  55. package/dist/internal/backend-contracts/plaintextProcessors.d.ts +63 -0
  56. package/dist/internal/backend-contracts/preparedContent.d.ts +54 -0
  57. package/dist/internal/backend-contracts/replyAuthority.d.ts +14 -0
  58. package/dist/internal/backend-contracts/runtimeCardFields.d.ts +66 -0
  59. package/dist/internal/backend-contracts/runtimeCardStorage.d.ts +3 -0
  60. package/dist/internal/backend-contracts/runtimeDescriptor.d.ts +88 -0
  61. package/dist/internal/backend-contracts/selfContext.d.ts +9 -0
  62. package/dist/internal/backend-contracts/turnProtocol.d.ts +43 -0
  63. package/dist/internal/backend-contracts/upload-mime-types.d.ts +17 -0
  64. package/dist/internal/backend-contracts/verbContract.d.ts +856 -0
  65. package/dist/internal/backend-contracts/verbSchemas.d.ts +1717 -0
  66. package/dist/internal/backend-contracts/verbWire.d.ts +493 -0
  67. package/dist/internal/backend-contracts/webAuth.d.ts +8 -0
  68. package/dist/internal/core/agent-profiles.d.ts +65 -0
  69. package/dist/internal/core/approval-format.d.ts +22 -0
  70. package/dist/internal/core/approval-manager.d.ts +43 -0
  71. package/dist/internal/core/approval-types.d.ts +73 -0
  72. package/dist/internal/core/base-url.d.ts +1 -0
  73. package/dist/internal/core/cli-metadata.d.ts +13 -0
  74. package/dist/internal/core/client.d.ts +432 -0
  75. package/dist/internal/core/completed-output-journal.d.ts +39 -0
  76. package/dist/internal/core/constants.d.ts +1 -0
  77. package/dist/internal/core/endpoint-client.d.ts +56 -0
  78. package/dist/internal/core/execution-environment-mode.d.ts +6 -0
  79. package/dist/internal/core/gifs.d.ts +29 -0
  80. package/dist/internal/core/host-runtime.d.ts +53 -0
  81. package/dist/internal/core/index.d.ts +68 -0
  82. package/dist/internal/core/node-media.d.ts +6 -0
  83. package/dist/internal/core/policy.d.ts +2 -0
  84. package/dist/internal/core/registration-profile.d.ts +10 -0
  85. package/dist/internal/core/registration-session.d.ts +55 -0
  86. package/dist/internal/core/registration.d.ts +5 -0
  87. package/dist/internal/core/retry.d.ts +113 -0
  88. package/dist/internal/core/rtdb-rest.d.ts +141 -0
  89. package/dist/internal/core/runtime-cards.d.ts +286 -0
  90. package/dist/internal/core/runtime-descriptor.d.ts +16 -0
  91. package/dist/internal/core/runtime-endpoints.d.ts +26 -0
  92. package/dist/internal/core/runtime-heartbeat.d.ts +29 -0
  93. package/dist/internal/core/runtime-presentation.d.ts +9 -0
  94. package/dist/internal/core/runtime-request-manager.d.ts +283 -0
  95. package/dist/internal/core/runtime-state-publisher.d.ts +42 -0
  96. package/dist/internal/core/self-context.d.ts +22 -0
  97. package/dist/internal/core/silent-turn.d.ts +49 -0
  98. package/dist/internal/core/stream.d.ts +78 -0
  99. package/dist/internal/core/turn-protocol.d.ts +28 -0
  100. package/dist/internal/core/turn-verbosity.d.ts +85 -0
  101. package/dist/internal/core/types.d.ts +964 -0
  102. package/dist/internal/core/unified-diff.d.ts +35 -0
  103. package/dist/internal/endpoint/artifact-images.d.ts +60 -0
  104. package/dist/internal/endpoint/artifact-reducer.d.ts +35 -0
  105. package/dist/internal/endpoint/artifact-views.d.ts +113 -0
  106. package/dist/internal/endpoint/artifacts.d.ts +75 -0
  107. package/dist/internal/endpoint/delivery.d.ts +47 -0
  108. package/dist/internal/endpoint/engine.d.ts +249 -0
  109. package/dist/internal/endpoint/ephemeral.d.ts +8 -0
  110. package/dist/internal/endpoint/events.d.ts +32 -0
  111. package/dist/internal/endpoint/external-inbound.d.ts +36 -0
  112. package/dist/internal/endpoint/handoff.d.ts +50 -0
  113. package/dist/internal/endpoint/history.d.ts +22 -0
  114. package/dist/internal/endpoint/image-generation-errors.d.ts +2 -0
  115. package/dist/internal/endpoint/inbound.d.ts +29 -0
  116. package/dist/internal/endpoint/index.d.ts +32 -0
  117. package/dist/internal/endpoint/media.d.ts +177 -0
  118. package/dist/internal/endpoint/migration.d.ts +50 -0
  119. package/dist/internal/endpoint/mls-crypto.d.ts +32 -0
  120. package/dist/internal/endpoint/mls-dev-client.d.ts +52 -0
  121. package/dist/internal/endpoint/mls-dev-device.d.ts +69 -0
  122. package/dist/internal/endpoint/mls-dev-groups.d.ts +174 -0
  123. package/dist/internal/endpoint/mls-dev-interactions.d.ts +99 -0
  124. package/dist/internal/endpoint/mls-dev-key-package-service.d.ts +46 -0
  125. package/dist/internal/endpoint/mls-dev-key-packages.d.ts +62 -0
  126. package/dist/internal/endpoint/mls-dev-text.d.ts +67 -0
  127. package/dist/internal/endpoint/mls-dev-transport.d.ts +38 -0
  128. package/dist/internal/endpoint/node-mls-custody-protocol.d.ts +29 -0
  129. package/dist/internal/endpoint/node-mls-custody.d.ts +15 -0
  130. package/dist/internal/endpoint/node.d.ts +7 -0
  131. package/dist/internal/endpoint/observe-query.d.ts +17 -0
  132. package/dist/internal/endpoint/portable-node-mls-custody.d.ts +23 -0
  133. package/dist/internal/endpoint/queue.d.ts +22 -0
  134. package/dist/internal/endpoint/recovery.d.ts +27 -0
  135. package/dist/internal/endpoint/retention.d.ts +7 -0
  136. package/dist/internal/endpoint/store.d.ts +22 -0
  137. package/dist/internal/endpoint/sync.d.ts +33 -0
  138. package/dist/internal/endpoint/transient-publisher.d.ts +8 -0
  139. package/dist/internal/endpoint/transport.d.ts +63 -0
  140. package/dist/media.d.ts +1 -1
  141. package/dist/media.js +42 -541
  142. package/dist/runner/errands.d.ts +118 -0
  143. package/dist/runner/mls.d.ts +97 -0
  144. package/dist/runner/relay.d.ts +87 -0
  145. package/dist/runner/runner.d.ts +98 -0
  146. package/dist/runner/types.d.ts +215 -0
  147. package/package.json +18 -5
  148. package/dist/attached-session.d.ts +0 -58
  149. package/dist/attached-session.js +0 -638
  150. package/dist/bounded-file-read.d.ts +0 -14
  151. package/dist/bounded-file-read.js +0 -34
  152. package/dist/canon-agent.d.ts +0 -236
  153. package/dist/canon-agent.js +0 -2531
  154. package/dist/debouncer.d.ts +0 -18
  155. package/dist/debouncer.js +0 -133
  156. package/dist/inbound-handoff.d.ts +0 -6
  157. package/dist/inbound-handoff.js +0 -17
  158. package/dist/managed-session-host.d.ts +0 -27
  159. package/dist/managed-session-host.js +0 -195
  160. package/dist/managed-session-setup.d.ts +0 -99
  161. package/dist/managed-session-setup.js +0 -234
  162. package/dist/realtime.d.ts +0 -62
  163. package/dist/realtime.js +0 -193
  164. package/dist/runtime-card.d.ts +0 -48
  165. package/dist/runtime-card.js +0 -64
  166. package/dist/session-manager.d.ts +0 -77
  167. package/dist/session-manager.js +0 -285
  168. package/dist/turn-streaming-request.d.ts +0 -17
  169. package/dist/turn-streaming-request.js +0 -22
  170. package/dist/turn-verbosity-option.d.ts +0 -33
  171. package/dist/turn-verbosity-option.js +0 -23
  172. package/dist/types.d.ts +0 -387
  173. package/dist/types.js +0 -1
  174. package/dist/work-session-coordination.d.ts +0 -21
  175. package/dist/work-session-coordination.js +0 -53
  176. package/dist/work-session-host.d.ts +0 -31
  177. package/dist/work-session-host.js +0 -617
  178. package/dist/work-session-interactions.d.ts +0 -12
  179. package/dist/work-session-interactions.js +0 -173
  180. package/dist/work-session-state.d.ts +0 -36
  181. package/dist/work-session-state.js +0 -62
@@ -0,0 +1,27 @@
1
+ import type { EndpointEventObserver, EndpointTransportEvent } from './events.js';
2
+ import type { EndpointSyncOptions, EndpointSyncPage } from './sync.js';
3
+ import type { EndpointStore } from './store.js';
4
+ export interface EndpointRecoveryOptions {
5
+ intervalMs?: number;
6
+ onError?(error: unknown, conversationId?: string): void;
7
+ }
8
+ export interface EndpointRecoveryBaseline {
9
+ cutoverAt: string;
10
+ migrationId: string;
11
+ }
12
+ /** One account scan and recovery queue, independent of runtime/session count. */
13
+ export declare function createEndpointRecovery(input: {
14
+ store: EndpointStore;
15
+ ready(): Promise<unknown>;
16
+ query<T>(name: string, parameters: Record<string, unknown>): Promise<T>;
17
+ sync(conversationId: string, options?: EndpointSyncOptions): Promise<EndpointSyncPage>;
18
+ isProtocolReady?(conversationId: string): Promise<boolean | undefined>;
19
+ observe(listener: (event: EndpointTransportEvent) => void, hooks: EndpointEventObserver): () => void;
20
+ }): {
21
+ getBaseline(): Promise<EndpointRecoveryBaseline | undefined>;
22
+ configureBaseline(config: EndpointRecoveryBaseline): Promise<void>;
23
+ start(options?: EndpointRecoveryOptions): () => void;
24
+ refresh: () => Promise<void>;
25
+ assertReady(conversationId: string): Promise<void>;
26
+ close(): Promise<void>;
27
+ };
@@ -0,0 +1,7 @@
1
+ import type { EndpointOperation } from './engine.js';
2
+ import type { EndpointStore } from './store.js';
3
+ export declare function compactOperation(operation: EndpointOperation): EndpointOperation;
4
+ /** Age out duplicate plaintext, retaining small idempotency tombstones. */
5
+ export declare function compactExpiredPayloads(store: EndpointStore, clock: number): Promise<void>;
6
+ /** Logout erases local plaintext without turning uncertain external work into new work. */
7
+ export declare function eraseEndpointPlaintext(store: EndpointStore): Promise<void>;
@@ -0,0 +1,22 @@
1
+ /** Transaction callbacks may be retried. They must perform only store operations. */
2
+ export interface EndpointStoreTransaction {
3
+ get<T>(key: string): Promise<T | undefined>;
4
+ put<T>(key: string, value: T): Promise<void>;
5
+ delete(key: string): Promise<void>;
6
+ scan<T>(prefix: string, options?: {
7
+ after?: string;
8
+ limit?: number;
9
+ }): Promise<Array<{
10
+ key: string;
11
+ value: T;
12
+ }>>;
13
+ }
14
+ export interface EndpointStore {
15
+ transaction<T>(work: (transaction: EndpointStoreTransaction) => Promise<T>): Promise<T>;
16
+ close(): Promise<void>;
17
+ }
18
+ export declare function copyJson<T>(value: T): T;
19
+ /** Tests and explicitly ephemeral callers only. Production endpoints supply durable storage. */
20
+ export declare function createMemoryEndpointStore(): EndpointStore;
21
+ /** Shared canonical serialization for prepared payloads and legacy fingerprints. */
22
+ export { canonicalEndpointJson as canonicalJson } from '../backend-contracts/index.js';
@@ -0,0 +1,33 @@
1
+ import type { EndpointEvent } from '../backend-contracts/index.js';
2
+ import { type EndpointStore } from './store.js';
3
+ export interface EndpointSyncPage {
4
+ changes: EndpointEvent[];
5
+ cursor: string | null;
6
+ hasMore: boolean;
7
+ admissionId: string | null;
8
+ bootstrap: boolean;
9
+ reset?: boolean;
10
+ }
11
+ export interface EndpointSyncOptions {
12
+ /** Required on first use. Checkpoint is only for history proven not to be new work. */
13
+ bootstrap?: 'receive' | 'checkpoint';
14
+ limit?: number;
15
+ /** Preserve a sticky pause instead of silently creating a new admission baseline. */
16
+ pauseOnAdmissionChange?: boolean;
17
+ /** Explicitly choose a fresh boundary after a sticky pause. Ignored otherwise. */
18
+ resumeAdmissionChange?: 'checkpoint';
19
+ }
20
+ export declare function createConversationSynchronizer(input: {
21
+ store: EndpointStore;
22
+ query<T>(query: string, parameters: Record<string, unknown>): Promise<T>;
23
+ ready(): Promise<unknown>;
24
+ clock(): number;
25
+ invalidate(conversationId: string): void;
26
+ admitRecoveredMessages?: boolean;
27
+ preparationGeneration?(): number;
28
+ /** Apply ordered MLS controls through the same lifecycle before app recovery. */
29
+ prepareProtocol?(conversationId: string): Promise<boolean>;
30
+ syncProtocol?(conversationId: string, options: EndpointSyncOptions): Promise<EndpointSyncPage | undefined>;
31
+ }): ((conversationId: string, options?: EndpointSyncOptions) => Promise<EndpointSyncPage>) & {
32
+ close(): Promise<void>;
33
+ };
@@ -0,0 +1,8 @@
1
+ import type { Endpoint } from './engine.js';
2
+ /** Transient writes are coalesced here; they never enter the durable outbox. */
3
+ export declare function createEndpointTransientPublisher(endpoint: Pick<Endpoint, 'publish'>, clock?: () => number): {
4
+ pulseTyping(conversationId: string): void;
5
+ stopTyping: (conversationId: string) => void;
6
+ setPresence(state: "online" | "offline" | "hidden"): void;
7
+ close(): void;
8
+ };
@@ -0,0 +1,63 @@
1
+ import { type CanonClientIdentity, type EndpointContentLane, type EndpointOperationRequest, type EndpointOperationReceipt, type EndpointCapabilities } from '../backend-contracts/index.js';
2
+ import { type EndpointTransportEvent, type EndpointEventFamily } from './events.js';
3
+ import { type MlsDevDeviceHttpOptions, type MlsDevDeviceTransport } from './mls-dev-transport.js';
4
+ export declare class EndpointError extends Error {
5
+ readonly status: number;
6
+ readonly code: string;
7
+ readonly retryable: boolean;
8
+ readonly operationId?: string;
9
+ readonly retryAfterMs?: number;
10
+ constructor(message: string, options?: {
11
+ status?: number;
12
+ code?: string;
13
+ retryable?: boolean;
14
+ operationId?: string;
15
+ retryAfterMs?: number;
16
+ });
17
+ }
18
+ /** HTTP failures and SSE close frames carry the same error details. A changed
19
+ * authorization reconnects through authentication; a rejected handshake stops. */
20
+ export declare function decodeEndpointError(value: unknown, options?: {
21
+ status?: number;
22
+ retryAfter?: string | null;
23
+ stream?: boolean;
24
+ }): EndpointError;
25
+ export interface EndpointCredentials {
26
+ getToken(forceRefresh?: boolean): Promise<string>;
27
+ }
28
+ /** Shared transport enforces the reviewed lane inventory in both directions.
29
+ * Content remains JSON; field classification never grants authorization. */
30
+ export declare function validateEndpointContentBoundary(lane: EndpointContentLane, name: string, payload: unknown): void;
31
+ export interface EndpointTransport {
32
+ mlsDevDevice?: MlsDevDeviceTransport;
33
+ capabilities?(): Promise<EndpointCapabilities>;
34
+ execute(request: EndpointOperationRequest, signal?: AbortSignal): Promise<EndpointOperationReceipt>;
35
+ getOperation(operationId: string, installationId: string, signal?: AbortSignal): Promise<EndpointOperationReceipt | null>;
36
+ query<T>(query: string, parameters: Record<string, unknown>, signal?: AbortSignal): Promise<T>;
37
+ publish<T>(action: string, body: Record<string, unknown>, signal?: AbortSignal): Promise<T>;
38
+ events?(options: {
39
+ lastEventId?: string;
40
+ signal: AbortSignal;
41
+ families?: EndpointEventFamily[];
42
+ principalScopes?: string[];
43
+ onConnected?(): void;
44
+ }): AsyncIterable<EndpointTransportEvent>;
45
+ }
46
+ export declare function createHttpEndpointTransport(options: {
47
+ baseUrl: string;
48
+ environmentId: string;
49
+ credentials: EndpointCredentials;
50
+ fetch?: typeof globalThis.fetch;
51
+ timeoutMs?: number;
52
+ streamUrl?: string;
53
+ /** Identifies one logical subscriber within its authenticated principal.
54
+ * Resolve once per transport; independent tabs/devices must use distinct IDs. */
55
+ streamId?: string | (() => string | Promise<string>);
56
+ ownershipVersion?: number | (() => number | undefined);
57
+ mlsDevDevice?: MlsDevDeviceHttpOptions;
58
+ /** Names this client on every request and stream (`X-Canon-Client`), so Canon can apply its client floor. */
59
+ client?: CanonClientIdentity;
60
+ /** Canon refused this client as below its floor (`426 CLIENT_UPDATE_REQUIRED`), on any request or stream. Called
61
+ * before the error is thrown, so a host can stop wherever the refusal surfaces. */
62
+ onClientUpdateRequired?(error: EndpointError): void;
63
+ }): EndpointTransport;
package/dist/media.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CanonClient, type CanonReplyContext, type CanonMessage, type MediaAttachment, type ResumableMediaUploadResult, type SendMessageOptions } from '@canonmsg/core';
1
+ import { CanonClient, type CanonReplyContext, type CanonMessage, type MediaAttachment, type ResumableMediaUploadResult, type SendMessageOptions } from './internal/core/index.js';
2
2
  export interface MaterializeMediaOptions {
3
3
  agentId: string;
4
4
  conversationId: string;