@canonmsg/agent-sdk 11.2.0 → 12.0.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 (188) hide show
  1. package/README.md +171 -536
  2. package/dist/chunks/chunk-6VK4UZHJ.js +2806 -0
  3. package/dist/chunks/chunk-FPQFTTND.js +4899 -0
  4. package/dist/chunks/chunk-OLJ7H4E2.js +14705 -0
  5. package/dist/chunks/mls-crypto-NZDNSPAO.js +10 -0
  6. package/dist/cli.js +198 -0
  7. package/dist/drivers/claude.d.ts +36 -0
  8. package/dist/drivers/code.d.ts +18 -0
  9. package/dist/drivers/codex.d.ts +37 -0
  10. package/dist/index.d.ts +12 -25
  11. package/dist/index.js +69 -13
  12. package/dist/internal/backend-contracts/agentBehaviorPolicy.d.ts +122 -0
  13. package/dist/internal/backend-contracts/agentDirectory.d.ts +32 -0
  14. package/dist/internal/backend-contracts/agentOrigin.d.ts +23 -0
  15. package/dist/internal/backend-contracts/agentSearch.d.ts +17 -0
  16. package/dist/internal/backend-contracts/api-origins.generated.d.ts +4 -0
  17. package/dist/internal/backend-contracts/apiErrors.d.ts +1 -0
  18. package/dist/internal/backend-contracts/artifactActions.d.ts +159 -0
  19. package/dist/internal/backend-contracts/artifacts.d.ts +386 -0
  20. package/dist/internal/backend-contracts/communication.d.ts +131 -0
  21. package/dist/internal/backend-contracts/conversationMembership.d.ts +28 -0
  22. package/dist/internal/backend-contracts/deliveryObservation.d.ts +23 -0
  23. package/dist/internal/backend-contracts/diffRedaction.d.ts +6 -0
  24. package/dist/internal/backend-contracts/endpoint-unread.d.ts +4 -0
  25. package/dist/internal/backend-contracts/endpoint.d.ts +103 -0
  26. package/dist/internal/backend-contracts/endpointContentPolicy.d.ts +37 -0
  27. package/dist/internal/backend-contracts/environment.d.ts +20 -0
  28. package/dist/internal/backend-contracts/externalInbound.d.ts +24 -0
  29. package/dist/internal/backend-contracts/firestoreValues.d.ts +9 -0
  30. package/dist/internal/backend-contracts/index.d.ts +48 -0
  31. package/dist/internal/backend-contracts/media-url.d.ts +6 -0
  32. package/dist/internal/backend-contracts/media.d.ts +51 -0
  33. package/dist/internal/backend-contracts/mediaDelivery.d.ts +46 -0
  34. package/dist/internal/backend-contracts/mediaTransferProtocol.d.ts +17 -0
  35. package/dist/internal/backend-contracts/membershipChange.d.ts +21 -0
  36. package/dist/internal/backend-contracts/message.d.ts +86 -0
  37. package/dist/internal/backend-contracts/messageText.d.ts +6 -0
  38. package/dist/internal/backend-contracts/mlsDevApplication.d.ts +73 -0
  39. package/dist/internal/backend-contracts/mlsDevCredential.d.ts +75 -0
  40. package/dist/internal/backend-contracts/mlsDevCredentialReconciliation.d.ts +45 -0
  41. package/dist/internal/backend-contracts/mlsDevDeviceCustody.d.ts +51 -0
  42. package/dist/internal/backend-contracts/mlsDevEnrollment.d.ts +74 -0
  43. package/dist/internal/backend-contracts/mlsDevGroup.d.ts +197 -0
  44. package/dist/internal/backend-contracts/mlsDevGroupFeed.d.ts +47 -0
  45. package/dist/internal/backend-contracts/mlsDevKeyPackage.d.ts +42 -0
  46. package/dist/internal/backend-contracts/mlsDevKeyPackages.d.ts +55 -0
  47. package/dist/internal/backend-contracts/moderation.d.ts +7 -0
  48. package/dist/internal/backend-contracts/plaintextProcessors.d.ts +63 -0
  49. package/dist/internal/backend-contracts/preparedContent.d.ts +54 -0
  50. package/dist/internal/backend-contracts/replyAuthority.d.ts +14 -0
  51. package/dist/internal/backend-contracts/runtimeCardFields.d.ts +66 -0
  52. package/dist/internal/backend-contracts/runtimeCardStorage.d.ts +3 -0
  53. package/dist/internal/backend-contracts/runtimeDescriptor.d.ts +88 -0
  54. package/dist/internal/backend-contracts/selfContext.d.ts +9 -0
  55. package/dist/internal/backend-contracts/turnProtocol.d.ts +43 -0
  56. package/dist/internal/backend-contracts/verbContract.d.ts +848 -0
  57. package/dist/internal/backend-contracts/verbSchemas.d.ts +1707 -0
  58. package/dist/internal/backend-contracts/verbWire.d.ts +493 -0
  59. package/dist/internal/backend-contracts/webAuth.d.ts +8 -0
  60. package/dist/internal/backend-contracts/workSessions.d.ts +205 -0
  61. package/dist/internal/core/agent-profiles.d.ts +69 -0
  62. package/dist/internal/core/agent-resolver.d.ts +49 -0
  63. package/dist/internal/core/agent-session.d.ts +12 -0
  64. package/dist/internal/core/approval-format.d.ts +26 -0
  65. package/dist/internal/core/approval-manager.d.ts +43 -0
  66. package/dist/internal/core/approval-types.d.ts +74 -0
  67. package/dist/internal/core/artifacts.d.ts +262 -0
  68. package/dist/internal/core/attached-native-session.d.ts +174 -0
  69. package/dist/internal/core/attached-session-file-store.d.ts +3 -0
  70. package/dist/internal/core/base-url.d.ts +1 -0
  71. package/dist/internal/core/cli-metadata.d.ts +13 -0
  72. package/dist/internal/core/client.d.ts +486 -0
  73. package/dist/internal/core/completed-output-journal.d.ts +39 -0
  74. package/dist/internal/core/constants.d.ts +4 -0
  75. package/dist/internal/core/control-poller.d.ts +221 -0
  76. package/dist/internal/core/endpoint-client.d.ts +43 -0
  77. package/dist/internal/core/exclusive-json-file-store.d.ts +7 -0
  78. package/dist/internal/core/execution-environment-mode.d.ts +8 -0
  79. package/dist/internal/core/execution-environment.d.ts +55 -0
  80. package/dist/internal/core/gifs.d.ts +35 -0
  81. package/dist/internal/core/group-context.d.ts +25 -0
  82. package/dist/internal/core/host-runtime.d.ts +257 -0
  83. package/dist/internal/core/inbound-frame.d.ts +64 -0
  84. package/dist/internal/core/index.d.ts +107 -0
  85. package/dist/internal/core/local-runtime-catalog.d.ts +131 -0
  86. package/dist/internal/core/message-format.d.ts +13 -0
  87. package/dist/internal/core/native-session-interaction.d.ts +44 -0
  88. package/dist/internal/core/node-media.d.ts +6 -0
  89. package/dist/internal/core/policy.d.ts +2 -0
  90. package/dist/internal/core/provenance.d.ts +31 -0
  91. package/dist/internal/core/registration-cli.d.ts +40 -0
  92. package/dist/internal/core/registration-profile.d.ts +10 -0
  93. package/dist/internal/core/registration-session.d.ts +55 -0
  94. package/dist/internal/core/registration.d.ts +21 -0
  95. package/dist/internal/core/retry.d.ts +122 -0
  96. package/dist/internal/core/rtdb-rest.d.ts +145 -0
  97. package/dist/internal/core/runtime-cards.d.ts +331 -0
  98. package/dist/internal/core/runtime-descriptor.d.ts +75 -0
  99. package/dist/internal/core/runtime-endpoints.d.ts +26 -0
  100. package/dist/internal/core/runtime-heartbeat.d.ts +29 -0
  101. package/dist/internal/core/runtime-presentation.d.ts +35 -0
  102. package/dist/internal/core/runtime-request-manager.d.ts +284 -0
  103. package/dist/internal/core/runtime-state-publisher.d.ts +42 -0
  104. package/dist/internal/core/self-context.d.ts +61 -0
  105. package/dist/internal/core/silent-turn.d.ts +86 -0
  106. package/dist/internal/core/stream.d.ts +77 -0
  107. package/dist/internal/core/turn-output-controller.d.ts +69 -0
  108. package/dist/internal/core/turn-protocol.d.ts +33 -0
  109. package/dist/internal/core/turn-verbosity.d.ts +97 -0
  110. package/dist/internal/core/types.d.ts +1075 -0
  111. package/dist/internal/core/typing-status-publisher.d.ts +14 -0
  112. package/dist/internal/core/unified-diff.d.ts +35 -0
  113. package/dist/internal/core/work-session-provider.d.ts +29 -0
  114. package/dist/internal/core/workspace-discovery.d.ts +17 -0
  115. package/dist/internal/endpoint/artifact-images.d.ts +60 -0
  116. package/dist/internal/endpoint/artifact-reducer.d.ts +35 -0
  117. package/dist/internal/endpoint/artifact-views.d.ts +113 -0
  118. package/dist/internal/endpoint/artifacts.d.ts +75 -0
  119. package/dist/internal/endpoint/delivery.d.ts +47 -0
  120. package/dist/internal/endpoint/engine.d.ts +219 -0
  121. package/dist/internal/endpoint/ephemeral.d.ts +8 -0
  122. package/dist/internal/endpoint/events.d.ts +32 -0
  123. package/dist/internal/endpoint/external-inbound.d.ts +36 -0
  124. package/dist/internal/endpoint/handoff.d.ts +50 -0
  125. package/dist/internal/endpoint/history.d.ts +22 -0
  126. package/dist/internal/endpoint/image-generation-errors.d.ts +2 -0
  127. package/dist/internal/endpoint/inbound.d.ts +29 -0
  128. package/dist/internal/endpoint/index.d.ts +32 -0
  129. package/dist/internal/endpoint/media.d.ts +172 -0
  130. package/dist/internal/endpoint/migration.d.ts +50 -0
  131. package/dist/internal/endpoint/mls-crypto.d.ts +25 -0
  132. package/dist/internal/endpoint/mls-dev-client.d.ts +44 -0
  133. package/dist/internal/endpoint/mls-dev-device.d.ts +67 -0
  134. package/dist/internal/endpoint/mls-dev-groups.d.ts +114 -0
  135. package/dist/internal/endpoint/mls-dev-key-package-service.d.ts +33 -0
  136. package/dist/internal/endpoint/mls-dev-key-packages.d.ts +42 -0
  137. package/dist/internal/endpoint/mls-dev-transport.d.ts +37 -0
  138. package/dist/internal/endpoint/node-mls-custody-protocol.d.ts +24 -0
  139. package/dist/internal/endpoint/node-mls-custody.d.ts +15 -0
  140. package/dist/internal/endpoint/node.d.ts +7 -0
  141. package/dist/internal/endpoint/observe-query.d.ts +17 -0
  142. package/dist/internal/endpoint/portable-node-mls-custody.d.ts +23 -0
  143. package/dist/internal/endpoint/queue.d.ts +22 -0
  144. package/dist/internal/endpoint/recovery.d.ts +27 -0
  145. package/dist/internal/endpoint/retention.d.ts +7 -0
  146. package/dist/internal/endpoint/store.d.ts +22 -0
  147. package/dist/internal/endpoint/sync.d.ts +33 -0
  148. package/dist/internal/endpoint/transient-publisher.d.ts +8 -0
  149. package/dist/internal/endpoint/transport.d.ts +58 -0
  150. package/dist/media.d.ts +1 -1
  151. package/dist/media.js +42 -541
  152. package/dist/runner/runner.d.ts +37 -0
  153. package/dist/runner/types.d.ts +168 -0
  154. package/package.json +18 -5
  155. package/dist/attached-session.d.ts +0 -58
  156. package/dist/attached-session.js +0 -638
  157. package/dist/bounded-file-read.d.ts +0 -14
  158. package/dist/bounded-file-read.js +0 -34
  159. package/dist/canon-agent.d.ts +0 -238
  160. package/dist/canon-agent.js +0 -2534
  161. package/dist/debouncer.d.ts +0 -18
  162. package/dist/debouncer.js +0 -133
  163. package/dist/inbound-handoff.d.ts +0 -6
  164. package/dist/inbound-handoff.js +0 -17
  165. package/dist/managed-session-host.d.ts +0 -27
  166. package/dist/managed-session-host.js +0 -195
  167. package/dist/managed-session-setup.d.ts +0 -99
  168. package/dist/managed-session-setup.js +0 -234
  169. package/dist/realtime.d.ts +0 -62
  170. package/dist/realtime.js +0 -193
  171. package/dist/runtime-card.d.ts +0 -48
  172. package/dist/runtime-card.js +0 -64
  173. package/dist/session-manager.d.ts +0 -77
  174. package/dist/session-manager.js +0 -285
  175. package/dist/turn-streaming-request.d.ts +0 -17
  176. package/dist/turn-streaming-request.js +0 -22
  177. package/dist/turn-verbosity-option.d.ts +0 -33
  178. package/dist/turn-verbosity-option.js +0 -23
  179. package/dist/types.d.ts +0 -387
  180. package/dist/types.js +0 -1
  181. package/dist/work-session-coordination.d.ts +0 -21
  182. package/dist/work-session-coordination.js +0 -53
  183. package/dist/work-session-host.d.ts +0 -31
  184. package/dist/work-session-host.js +0 -617
  185. package/dist/work-session-interactions.d.ts +0 -12
  186. package/dist/work-session-interactions.js +0 -173
  187. package/dist/work-session-state.d.ts +0 -36
  188. package/dist/work-session-state.js +0 -62
@@ -0,0 +1,54 @@
1
+ import { type EndpointPreconditions } from './endpoint.js';
2
+ export declare const PREPARED_CONTENT_VERSION: 1;
3
+ export declare const PREPARED_JSON_CODEC: "canon.json.v1";
4
+ /** Reviewed public routing context. Authentication and installation/operation
5
+ * identity stay in the containing endpoint request, never in this payload. */
6
+ export interface PreparedContentContext {
7
+ readonly action: string;
8
+ readonly conversationId?: string;
9
+ readonly messageId?: string;
10
+ }
11
+ export interface PreparedBlobDependency {
12
+ /** Logical identity survives replacement of a transport upload session. */
13
+ readonly id: string;
14
+ readonly index: number;
15
+ }
16
+ export interface PreparedContentExpected {
17
+ readonly installationGeneration: number;
18
+ readonly protocolRevision: number;
19
+ readonly admission?: Readonly<EndpointPreconditions>;
20
+ }
21
+ export interface PreparedContent {
22
+ readonly version: typeof PREPARED_CONTENT_VERSION;
23
+ readonly context: PreparedContentContext;
24
+ readonly codec: typeof PREPARED_JSON_CODEC;
25
+ /** Exact immutable bytes represented as UTF-8 JSON; transport retries reuse it. */
26
+ readonly payload: string;
27
+ readonly blobs: readonly PreparedBlobDependency[];
28
+ readonly expected: PreparedContentExpected;
29
+ }
30
+ export interface PreparedJsonInput {
31
+ context: PreparedContentContext;
32
+ body: Record<string, unknown>;
33
+ envelope?: Record<string, unknown>;
34
+ blobs?: readonly PreparedBlobDependency[];
35
+ expected: PreparedContentExpected;
36
+ }
37
+ export interface DecodedPreparedJsonContent {
38
+ body: Record<string, unknown>;
39
+ envelope?: Record<string, unknown>;
40
+ }
41
+ export declare class PreparedContentError extends Error {
42
+ readonly code: 'INVALID_PREPARED_CONTENT' | 'UNSUPPORTED_PREPARED_CONTENT_VERSION' | 'UNSUPPORTED_PREPARED_CONTENT_CODEC' | 'PREPARED_CONTENT_MEMORY_ONLY';
43
+ constructor(code: 'INVALID_PREPARED_CONTENT' | 'UNSUPPORTED_PREPARED_CONTENT_VERSION' | 'UNSUPPORTED_PREPARED_CONTENT_CODEC' | 'PREPARED_CONTENT_MEMORY_ONLY');
44
+ }
45
+ /** Shared deterministic JSON after normal transport serialization. This keeps
46
+ * existing endpoint fingerprint semantics, including omitted undefined fields. */
47
+ export declare function canonicalEndpointJson(value: unknown): string;
48
+ /** Only the JSON processor may inspect this payload. It returns a fresh copy;
49
+ * neither decoding nor transport can mutate the sealed publication. */
50
+ export declare function decodePreparedJsonContent(value: unknown): DecodedPreparedJsonContent;
51
+ export declare function isPreparedContent(value: unknown): value is PreparedContent;
52
+ export declare function prepareJsonContent(input: PreparedJsonInput): PreparedContent;
53
+ /** Stable media dependency identity contains no renewable upload id or URL. */
54
+ export declare function logicalMediaBlobId(conversationId: string, messageId: string, index: number): string;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Opaque, server-issued authority for one agent reply to one inbound message.
3
+ *
4
+ * The stream delivers this beside the triggering message. Runtimes keep it out
5
+ * of model-visible schemas and return it only on the ordinary reply path.
6
+ */
7
+ export interface AgentReplyAuthorityV1 {
8
+ schema: 'canon.agent-reply-authority.v1';
9
+ sourceMessageId: string;
10
+ token: string;
11
+ expiresAt: string;
12
+ /** Agent membership admission at issuance; absent/null only for legacy membership. */
13
+ admissionId?: string | null;
14
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Canonical `canon.card.v1` action-field type vocabulary. The runtime array is
3
+ * the single source of truth and the type is derived from it, so a value and a
4
+ * type cannot drift.
5
+ *
6
+ * ORDER IS LOAD-BEARING: scripts/generate-skill-bundles.mjs renders this list
7
+ * verbatim (via @canonmsg/rich-cards) into two committed SKILL.md files, and
8
+ * `npm run check:skill-bundles` fails on a byte change.
9
+ */
10
+ export declare const RUNTIME_CARD_FIELD_TYPES: readonly ["text", "textarea", "select", "multiSelect", "boolean", "date", "number", "currency", "searchSelect", "lineItems"];
11
+ export type RuntimeCardFieldType = (typeof RUNTIME_CARD_FIELD_TYPES)[number];
12
+ /**
13
+ * Caps shared across runtime-card normalizers, response validation, and
14
+ * authoring tools. Keep these backend-safe so Functions can import them.
15
+ */
16
+ export declare const RUNTIME_CARD_LIMITS: {
17
+ readonly detailsRows: 32;
18
+ readonly lineItemRows: 50;
19
+ readonly lineItemColumns: 8;
20
+ readonly searchSelectChoices: 100;
21
+ };
22
+ export interface RuntimeCardFieldChoice {
23
+ label: string;
24
+ value?: string;
25
+ description?: string;
26
+ preview?: string;
27
+ }
28
+ /** Column cell types allowed inside a `lineItems` field. */
29
+ export declare const RUNTIME_CARD_LINE_ITEM_COLUMN_TYPES: readonly ["text", "number", "currency", "date", "select"];
30
+ export type RuntimeCardLineItemColumnType = (typeof RUNTIME_CARD_LINE_ITEM_COLUMN_TYPES)[number];
31
+ export interface RuntimeCardLineItemColumn {
32
+ id: string;
33
+ label: string;
34
+ type: RuntimeCardLineItemColumnType;
35
+ required?: boolean;
36
+ choices?: RuntimeCardFieldChoice[];
37
+ min?: number;
38
+ max?: number;
39
+ step?: number;
40
+ precision?: number;
41
+ currencyCode?: string;
42
+ allowOther?: boolean;
43
+ }
44
+ export interface RuntimeCardField {
45
+ id: string;
46
+ label: string;
47
+ type: RuntimeCardFieldType;
48
+ required?: boolean;
49
+ placeholder?: string;
50
+ choices?: RuntimeCardFieldChoice[];
51
+ allowOther?: boolean;
52
+ sensitive?: boolean;
53
+ min?: number | string;
54
+ max?: number | string;
55
+ step?: number;
56
+ precision?: number;
57
+ currencyCode?: string;
58
+ columns?: RuntimeCardLineItemColumn[];
59
+ minRows?: number;
60
+ maxRows?: number;
61
+ }
62
+ export declare function validateRuntimeCardFieldValues(input: {
63
+ actionId: string | undefined;
64
+ actionFields: ReadonlyArray<RuntimeCardField> | undefined;
65
+ values: Record<string, unknown> | undefined;
66
+ }): string | null;
@@ -0,0 +1,3 @@
1
+ export declare function decodeStoredRuntimeCard(input: {
2
+ runtimeCardJson?: unknown;
3
+ }): Record<string, unknown> | undefined;
@@ -0,0 +1,88 @@
1
+ export type CanonControlValue = string;
2
+ export type CanonRuntimeStreamingMode = 'none' | 'status' | 'snapshot' | 'block' | 'delta';
3
+ export type CanonRuntimeDetailTier = 'primary' | 'detail' | 'diagnostic';
4
+ export type CanonRuntimeVisibility = 'conversation' | 'hidden';
5
+ export type CanonRuntimeActionAvailability = 'idle' | 'busy' | 'busy_with_queue' | 'waiting_input' | 'always';
6
+ export type CanonRuntimeActionPlacement = 'composer_slash' | 'command_palette' | 'session_strip';
7
+ export type CanonRuntimeActionCategory = 'plan' | 'turn' | 'session' | 'runtime' | 'details' | 'skill' | 'custom';
8
+ export type CanonRuntimePrimitiveId = 'runtime.status' | 'runtime.reasoning.set' | 'runtime.verbosity.set' | 'runtime.usage' | 'context.compact' | 'session.new' | 'session.reset';
9
+ export type CanonRuntimeCommandArgumentKind = 'string' | 'enum' | 'boolean';
10
+ export interface CanonRuntimeCommandArgumentChoice {
11
+ value: string;
12
+ label: string;
13
+ description?: string;
14
+ }
15
+ export interface CanonRuntimeCommandArgumentDescriptor {
16
+ id: string;
17
+ label: string;
18
+ kind: CanonRuntimeCommandArgumentKind;
19
+ required?: boolean;
20
+ captureRemaining?: boolean;
21
+ choices?: ReadonlyArray<CanonRuntimeCommandArgumentChoice>;
22
+ }
23
+ export type CanonRuntimeActionDispatch = {
24
+ kind: 'control';
25
+ controlId: string;
26
+ value?: CanonControlValue;
27
+ } | {
28
+ kind: 'signal';
29
+ signal: 'interrupt' | 'stop_and_drop' | 'new_session';
30
+ } | {
31
+ kind: 'primitive';
32
+ primitive: CanonRuntimePrimitiveId;
33
+ } | {
34
+ kind: 'text_passthrough';
35
+ template: string;
36
+ } | {
37
+ kind: 'compose';
38
+ text: string;
39
+ } | {
40
+ kind: 'open_details';
41
+ target?: string;
42
+ };
43
+ export interface CanonRuntimeActionDescriptor {
44
+ id: string;
45
+ label: string;
46
+ description?: string;
47
+ visibility?: CanonRuntimeVisibility;
48
+ tier?: CanonRuntimeDetailTier;
49
+ sensitive?: boolean;
50
+ primitive?: CanonRuntimePrimitiveId;
51
+ aliases?: ReadonlyArray<string>;
52
+ category?: CanonRuntimeActionCategory;
53
+ placements?: ReadonlyArray<CanonRuntimeActionPlacement>;
54
+ availability?: ReadonlyArray<CanonRuntimeActionAvailability>;
55
+ ownerOnly?: boolean;
56
+ disabledReason?: string | null;
57
+ trailingTextBehavior?: 'ignore' | 'send_as_prompt';
58
+ args?: ReadonlyArray<CanonRuntimeCommandArgumentDescriptor>;
59
+ dispatch: CanonRuntimeActionDispatch;
60
+ }
61
+ export interface CanonRuntimeCommandDescriptor extends CanonRuntimeActionDescriptor {
62
+ primitive?: CanonRuntimePrimitiveId;
63
+ args?: ReadonlyArray<CanonRuntimeCommandArgumentDescriptor>;
64
+ }
65
+ export declare function normalizeRuntimeCommandAlias(value: string): string | null;
66
+ export declare function normalizeRuntimeCommandAliases(command: Pick<CanonRuntimeCommandDescriptor, 'id' | 'aliases'>): string[];
67
+ export declare const MAX_PUBLIC_RUNTIME_COMMANDS = 256;
68
+ export declare function isRuntimePrimitiveId(value: unknown): value is CanonRuntimePrimitiveId;
69
+ /** Public command metadata shared by endpoint-backed runtime publishers. Never copies local configuration. */
70
+ export declare function normalizePublicRuntimeCommands(value: unknown): CanonRuntimeCommandDescriptor[];
71
+ export interface PublicRuntimeDescriptor {
72
+ supportsInterrupt?: boolean;
73
+ supportsInputInterrupt?: boolean;
74
+ streamingTextMode?: CanonRuntimeStreamingMode;
75
+ commands?: CanonRuntimeCommandDescriptor[];
76
+ }
77
+ export declare function normalizePublicRuntimeDescriptor(value: unknown): PublicRuntimeDescriptor;
78
+ /** Read-only session facts, excluding local paths, inventories, and hidden/sensitive values. */
79
+ export declare function normalizePublicRuntimeFacts(value: unknown): {
80
+ id: string;
81
+ group: "runtime" | "model" | "connection" | "route";
82
+ label: string;
83
+ value: string;
84
+ tier: "primary" | "detail" | "diagnostic" | undefined;
85
+ tone: "neutral" | "good" | "warning" | "danger" | undefined;
86
+ copyable: boolean | undefined;
87
+ updatedAt: number | undefined;
88
+ }[];
@@ -0,0 +1,9 @@
1
+ /** Stored self-context id, or null when absent, empty, or path-like. */
2
+ export declare function normalizeStoredSelfContextId(value: unknown): string | null;
3
+ /**
4
+ * Agent-facing projection of an `agentSelfContexts` document; null for anything
5
+ * that is not a usable cross-session context. Ownership and conversation
6
+ * scoping stay with the CALLER — both consumers check them against their own
7
+ * Firestore handle before calling this.
8
+ */
9
+ export declare function serializeSelfContext(id: string, data: Record<string, unknown>): Record<string, unknown> | null;
@@ -0,0 +1,43 @@
1
+ export type SenderType = 'human' | 'ai_agent';
2
+ export type TurnLifecycleState = 'idle' | 'thinking' | 'streaming' | 'tool' | 'waiting_input' | 'completed' | 'interrupted';
3
+ export type TurnMessageSemantics = 'progress' | 'turn_complete' | 'control';
4
+ export type DeliveryIntent = 'queue' | 'interrupt' | 'interleave' | 'stop';
5
+ export type InboundDisposition = 'queued' | 'accepted_now' | 'interleaved' | 'trigger_suppressed' | 'rejected' | 'cancelled';
6
+ export interface TurnMetadata {
7
+ turnId?: string | null;
8
+ turnSemantics?: TurnMessageSemantics;
9
+ deliveryIntent?: DeliveryIntent;
10
+ replyBehavior?: 'allow_auto_reply' | 'suppress_auto_reply';
11
+ inboundDisposition?: InboundDisposition;
12
+ requestedTurnMode?: string;
13
+ }
14
+ export interface TriggerDecision {
15
+ allow: boolean;
16
+ semantics: TurnMessageSemantics;
17
+ reason: string;
18
+ }
19
+ export interface TurnStateLike {
20
+ state: TurnLifecycleState;
21
+ openedAt?: number;
22
+ updatedAt?: number;
23
+ turnUpdatedAt?: number | null;
24
+ }
25
+ export declare const ACTIVE_TURN_STALE_THRESHOLD_MS: number;
26
+ export declare const WAITING_INPUT_STALE_THRESHOLD_MS: number;
27
+ export declare function normalizeTurnMetadata(metadata: unknown): TurnMetadata | null;
28
+ export declare function isTurnOpen(turnState: TurnStateLike | null | undefined): boolean;
29
+ export declare function getTurnStateStaleThresholdMs(state: TurnLifecycleState): number;
30
+ export declare function isTurnStateStale(turnState: TurnStateLike | null | undefined): boolean;
31
+ export declare function resolveTurnMessageSemantics(input: {
32
+ senderType: SenderType;
33
+ metadata?: unknown;
34
+ }): TurnMessageSemantics;
35
+ export declare function shouldPromoteConversationMessage(input: {
36
+ senderType: SenderType;
37
+ metadata?: unknown;
38
+ }): boolean;
39
+ export declare function shouldTriggerAgentTurn(input: {
40
+ senderType: SenderType;
41
+ metadata?: unknown;
42
+ }): TriggerDecision;
43
+ export declare function normalizeRuntimeTurnState(value: unknown): TurnStateLike | null;