@fabric-harness/sdk 2.1.2 → 2.2.1

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 (153) hide show
  1. package/NOTICE +11 -0
  2. package/dist/agent-definition.d.ts +8 -0
  3. package/dist/agent-definition.d.ts.map +1 -1
  4. package/dist/agent-definition.js +27 -4
  5. package/dist/agent-definition.js.map +1 -1
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +3 -0
  8. package/dist/agent.js.map +1 -1
  9. package/dist/approval-notifier.d.ts +63 -0
  10. package/dist/approval-notifier.d.ts.map +1 -0
  11. package/dist/approval-notifier.js +152 -0
  12. package/dist/approval-notifier.js.map +1 -0
  13. package/dist/attachment-store.d.ts +12 -0
  14. package/dist/attachment-store.d.ts.map +1 -1
  15. package/dist/attachment-store.js +61 -3
  16. package/dist/attachment-store.js.map +1 -1
  17. package/dist/channel-contract.d.ts +29 -0
  18. package/dist/channel-contract.d.ts.map +1 -0
  19. package/dist/channel-contract.js +153 -0
  20. package/dist/channel-contract.js.map +1 -0
  21. package/dist/channel-runtime.d.ts +7 -0
  22. package/dist/channel-runtime.d.ts.map +1 -0
  23. package/dist/channel-runtime.js +6 -0
  24. package/dist/channel-runtime.js.map +1 -0
  25. package/dist/conversation-projection.d.ts.map +1 -1
  26. package/dist/conversation-projection.js +12 -5
  27. package/dist/conversation-projection.js.map +1 -1
  28. package/dist/conversation-stream.d.ts +3 -0
  29. package/dist/conversation-stream.d.ts.map +1 -1
  30. package/dist/conversation-stream.js +14 -0
  31. package/dist/conversation-stream.js.map +1 -1
  32. package/dist/cost-budget.d.ts +5 -0
  33. package/dist/cost-budget.d.ts.map +1 -1
  34. package/dist/cost-budget.js +20 -0
  35. package/dist/cost-budget.js.map +1 -1
  36. package/dist/error.d.ts +16 -4
  37. package/dist/error.d.ts.map +1 -1
  38. package/dist/error.js +30 -5
  39. package/dist/error.js.map +1 -1
  40. package/dist/filesystem.d.ts +3 -3
  41. package/dist/filesystem.d.ts.map +1 -1
  42. package/dist/in-memory-submission-store.d.ts +4 -0
  43. package/dist/in-memory-submission-store.d.ts.map +1 -1
  44. package/dist/in-memory-submission-store.js +45 -0
  45. package/dist/in-memory-submission-store.js.map +1 -1
  46. package/dist/index.d.ts +24 -9
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +11 -4
  49. package/dist/index.js.map +1 -1
  50. package/dist/job-invoke.d.ts +43 -0
  51. package/dist/job-invoke.d.ts.map +1 -0
  52. package/dist/job-invoke.js +71 -0
  53. package/dist/job-invoke.js.map +1 -0
  54. package/dist/mcp.d.ts +53 -0
  55. package/dist/mcp.d.ts.map +1 -1
  56. package/dist/mcp.js +145 -20
  57. package/dist/mcp.js.map +1 -1
  58. package/dist/model.d.ts +22 -8
  59. package/dist/model.d.ts.map +1 -1
  60. package/dist/model.js +465 -230
  61. package/dist/model.js.map +1 -1
  62. package/dist/network-enforcement.d.ts +16 -0
  63. package/dist/network-enforcement.d.ts.map +1 -0
  64. package/dist/network-enforcement.js +36 -0
  65. package/dist/network-enforcement.js.map +1 -0
  66. package/dist/observability.d.ts +36 -0
  67. package/dist/observability.d.ts.map +1 -0
  68. package/dist/observability.js +89 -0
  69. package/dist/observability.js.map +1 -0
  70. package/dist/operational-metrics.d.ts +53 -0
  71. package/dist/operational-metrics.d.ts.map +1 -0
  72. package/dist/operational-metrics.js +119 -0
  73. package/dist/operational-metrics.js.map +1 -0
  74. package/dist/otel-observer.d.ts +3 -0
  75. package/dist/otel-observer.d.ts.map +1 -1
  76. package/dist/otel-observer.js +21 -9
  77. package/dist/otel-observer.js.map +1 -1
  78. package/dist/persistence-bundle-contract.d.ts +7 -0
  79. package/dist/persistence-bundle-contract.d.ts.map +1 -0
  80. package/dist/persistence-bundle-contract.js +86 -0
  81. package/dist/persistence-bundle-contract.js.map +1 -0
  82. package/dist/persistence-bundle.d.ts +56 -0
  83. package/dist/persistence-bundle.d.ts.map +1 -0
  84. package/dist/persistence-bundle.js +2 -0
  85. package/dist/persistence-bundle.js.map +1 -0
  86. package/dist/persistent-agent.d.ts +1 -1
  87. package/dist/persistent-agent.js +1 -1
  88. package/dist/policied-sandbox.d.ts +3 -0
  89. package/dist/policied-sandbox.d.ts.map +1 -1
  90. package/dist/policied-sandbox.js +25 -16
  91. package/dist/policied-sandbox.js.map +1 -1
  92. package/dist/policy.d.ts +8 -1
  93. package/dist/policy.d.ts.map +1 -1
  94. package/dist/policy.js +104 -19
  95. package/dist/policy.js.map +1 -1
  96. package/dist/redaction.js +1 -1
  97. package/dist/redaction.js.map +1 -1
  98. package/dist/sandbox-ref.d.ts +37 -2
  99. package/dist/sandbox-ref.d.ts.map +1 -1
  100. package/dist/sandbox-ref.js +164 -3
  101. package/dist/sandbox-ref.js.map +1 -1
  102. package/dist/sandbox.d.ts +26 -0
  103. package/dist/sandbox.d.ts.map +1 -1
  104. package/dist/sandbox.js +67 -19
  105. package/dist/sandbox.js.map +1 -1
  106. package/dist/secret-provider.d.ts +24 -0
  107. package/dist/secret-provider.d.ts.map +1 -0
  108. package/dist/secret-provider.js +36 -0
  109. package/dist/secret-provider.js.map +1 -0
  110. package/dist/session-submission-executor.d.ts +15 -0
  111. package/dist/session-submission-executor.d.ts.map +1 -0
  112. package/dist/session-submission-executor.js +79 -0
  113. package/dist/session-submission-executor.js.map +1 -0
  114. package/dist/session.d.ts +6 -1
  115. package/dist/session.d.ts.map +1 -1
  116. package/dist/session.js +39 -11
  117. package/dist/session.js.map +1 -1
  118. package/dist/store.d.ts +3 -0
  119. package/dist/store.d.ts.map +1 -1
  120. package/dist/store.js +28 -0
  121. package/dist/store.js.map +1 -1
  122. package/dist/strict.d.ts +20 -7
  123. package/dist/strict.d.ts.map +1 -1
  124. package/dist/strict.js +9 -3
  125. package/dist/strict.js.map +1 -1
  126. package/dist/submission-context.d.ts +5 -0
  127. package/dist/submission-context.d.ts.map +1 -1
  128. package/dist/submission-context.js.map +1 -1
  129. package/dist/submission-runner.d.ts +4 -0
  130. package/dist/submission-runner.d.ts.map +1 -1
  131. package/dist/submission-runner.js +13 -4
  132. package/dist/submission-runner.js.map +1 -1
  133. package/dist/submission-store.d.ts +6 -0
  134. package/dist/submission-store.d.ts.map +1 -1
  135. package/dist/submission-store.js.map +1 -1
  136. package/dist/testing-contracts.d.ts +4 -0
  137. package/dist/testing-contracts.d.ts.map +1 -1
  138. package/dist/testing-contracts.js +2 -0
  139. package/dist/testing-contracts.js.map +1 -1
  140. package/dist/tools.d.ts +4 -0
  141. package/dist/tools.d.ts.map +1 -1
  142. package/dist/tools.js.map +1 -1
  143. package/dist/types.d.ts +4 -2
  144. package/dist/types.d.ts.map +1 -1
  145. package/dist/types.js.map +1 -1
  146. package/dist/virtual-sandbox.d.ts.map +1 -1
  147. package/dist/virtual-sandbox.js +9 -2
  148. package/dist/virtual-sandbox.js.map +1 -1
  149. package/package.json +12 -6
  150. package/dist/lite.d.ts +0 -19
  151. package/dist/lite.d.ts.map +0 -1
  152. package/dist/lite.js +0 -19
  153. package/dist/lite.js.map +0 -1
@@ -25,6 +25,7 @@ export async function createAttachmentRef(input) {
25
25
  mimeType: input.mimeType,
26
26
  sizeBytes: input.bytes.byteLength,
27
27
  digest: await attachmentDigest(input.bytes),
28
+ createdAt: new Date().toISOString(),
28
29
  ...(input.filename !== undefined ? { filename: input.filename } : {}),
29
30
  };
30
31
  }
@@ -90,6 +91,24 @@ export class InMemoryAttachmentStore {
90
91
  throw new AttachmentStoreError('NOT_FOUND', `Attachment not found: ${scope}/${digest}`);
91
92
  }
92
93
  }
94
+ /** Serializable state used by durable adapters that wrap the reference semantics. */
95
+ exportPersistenceSnapshot() {
96
+ return [...this.records.entries()].map(([key, record]) => [key, {
97
+ ref: { ...record.ref },
98
+ bytes: [...record.bytes],
99
+ }]);
100
+ }
101
+ importPersistenceSnapshot(snapshot) {
102
+ this.records.clear();
103
+ if (!Array.isArray(snapshot))
104
+ return;
105
+ for (const entry of snapshot) {
106
+ if (!Array.isArray(entry) || typeof entry[0] !== 'string' || !entry[1])
107
+ continue;
108
+ const record = entry[1];
109
+ this.records.set(entry[0], { ref: { ...record.ref }, bytes: Uint8Array.from(record.bytes) });
110
+ }
111
+ }
93
112
  }
94
113
  function attachmentKey(scope, digest) {
95
114
  return JSON.stringify([scope, digest]);
@@ -116,10 +135,25 @@ export function messageHasDataAttachments(message) {
116
135
  * reference).
117
136
  */
118
137
  export async function materializeMessageAttachments(message, store, options) {
119
- if (!messageHasDataAttachments(message) || message.kind !== 'user')
138
+ if (message.kind !== 'user')
120
139
  return message;
121
140
  const attachments = [];
122
141
  const source = message.attachments ?? [];
142
+ const maxCount = options.maxCount ?? 20;
143
+ const maxAttachmentBytes = options.maxAttachmentBytes ?? 10 * 1024 * 1024;
144
+ const maxTotalBytes = options.maxTotalBytes ?? 25 * 1024 * 1024;
145
+ if (source.length > maxCount)
146
+ throw new AttachmentLimitError(`Attachment count ${source.length} exceeds limit ${maxCount}.`);
147
+ let totalBytes = 0;
148
+ if (!messageHasDataAttachments(message)) {
149
+ for (const attachment of source) {
150
+ const size = attachment.ref?.sizeBytes ?? 0;
151
+ assertAttachmentSize(size, maxAttachmentBytes);
152
+ totalBytes += size;
153
+ }
154
+ assertAttachmentTotal(totalBytes, maxTotalBytes);
155
+ return message;
156
+ }
123
157
  for (let index = 0; index < source.length; index += 1) {
124
158
  const attachment = source[index];
125
159
  if (!attachment || attachment.data === undefined) {
@@ -128,6 +162,9 @@ export async function materializeMessageAttachments(message, store, options) {
128
162
  continue;
129
163
  }
130
164
  const bytes = decodeAttachmentBase64(attachment.data);
165
+ assertAttachmentSize(bytes.byteLength, maxAttachmentBytes);
166
+ totalBytes += bytes.byteLength;
167
+ assertAttachmentTotal(totalBytes, maxTotalBytes);
131
168
  const ref = await createAttachmentRef({
132
169
  id: `${options.idPrefix}_${index}`,
133
170
  mimeType: attachment.mimeType,
@@ -144,10 +181,31 @@ export async function materializeMessageAttachments(message, store, options) {
144
181
  }
145
182
  return { kind: 'user', body: message.body, attachments };
146
183
  }
184
+ export class AttachmentLimitError extends Error {
185
+ code = 'ATTACHMENT_LIMIT_EXCEEDED';
186
+ constructor(message) {
187
+ super(`[fabric-harness] ${message}`);
188
+ this.name = 'AttachmentLimitError';
189
+ }
190
+ }
191
+ function assertAttachmentSize(size, limit) {
192
+ if (size > limit)
193
+ throw new AttachmentLimitError(`Attachment size ${size} bytes exceeds per-attachment limit ${limit}.`);
194
+ }
195
+ function assertAttachmentTotal(size, limit) {
196
+ if (size > limit)
197
+ throw new AttachmentLimitError(`Attachment total ${size} bytes exceeds limit ${limit}.`);
198
+ }
147
199
  function decodeAttachmentBase64(value) {
148
200
  try {
149
- if (typeof Buffer !== 'undefined')
150
- return new Uint8Array(Buffer.from(value, 'base64'));
201
+ if (value.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(value))
202
+ throw new Error('invalid base64');
203
+ if (typeof Buffer !== 'undefined') {
204
+ const bytes = Buffer.from(value, 'base64');
205
+ if (bytes.toString('base64') !== value)
206
+ throw new Error('invalid base64');
207
+ return new Uint8Array(bytes);
208
+ }
151
209
  const bin = atob(value);
152
210
  const out = new Uint8Array(bin.length);
153
211
  for (let i = 0; i < bin.length; i += 1)
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-store.js","sourceRoot":"","sources":["../src/attachment-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-store.js","sourceRoot":"","sources":["../src/attachment-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { Channel, ChannelDispatchRequest } from './channel.js';
2
+ import type { ToolDef } from './tools.js';
3
+ export interface ChannelContractDispatch {
4
+ agent: string;
5
+ request: ChannelDispatchRequest;
6
+ }
7
+ export interface ChannelContractRequest {
8
+ route: number;
9
+ request: () => Request | Promise<Request>;
10
+ }
11
+ export interface ChannelContractFixture {
12
+ name: string;
13
+ createChannel: () => Channel;
14
+ conversationRef: unknown;
15
+ valid: ChannelContractRequest;
16
+ invalidAuthentication: ChannelContractRequest;
17
+ staleAuthentication?: ChannelContractRequest;
18
+ oversized?: ChannelContractRequest;
19
+ handshake?: ChannelContractRequest & {
20
+ expectedBody?: string;
21
+ };
22
+ loopSuppression?: ChannelContractRequest;
23
+ outboundTool?: () => ToolDef<unknown, unknown>;
24
+ secrets?: readonly string[];
25
+ assertDispatch?: (dispatch: ChannelContractDispatch) => void;
26
+ }
27
+ /** Shared behavioral contract for first-party and community channel adapters. */
28
+ export declare function defineChannelContractTests(fixture: ChannelContractFixture): void;
29
+ //# sourceMappingURL=channel-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-contract.d.ts","sourceRoot":"","sources":["../src/channel-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAkB,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,qBAAqB,EAAE,sBAAsB,CAAC;IAC9C,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;IAC7C,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,SAAS,CAAC,EAAE,sBAAsB,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,CAAC;CAC9D;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CA6HhF"}
@@ -0,0 +1,153 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ /** Shared behavioral contract for first-party and community channel adapters. */
3
+ export function defineChannelContractTests(fixture) {
4
+ describe(`${fixture.name} channel contract`, () => {
5
+ it('round-trips a canonical conversation key', () => {
6
+ const channel = fixture.createChannel();
7
+ const key = channel.conversationKey(fixture.conversationRef);
8
+ expect(key).toMatch(new RegExp(`^${escapeRegExp(fixture.name)}:v\\d+:`));
9
+ expect(channel.parseConversationKey(key)).toEqual(fixture.conversationRef);
10
+ });
11
+ it('rejects unauthenticated exact-body delivery without dispatching or leaking secrets', async () => {
12
+ const { context, calls } = recordingContext();
13
+ const channel = fixture.createChannel();
14
+ const test = fixture.invalidAuthentication;
15
+ const response = await requireRoute(channel, test.route).handler(await test.request(), context);
16
+ expect([401, 403]).toContain(response.status);
17
+ expect(calls).toHaveLength(0);
18
+ const text = await response.text();
19
+ for (const secret of fixture.secrets ?? [])
20
+ expect(text).not.toContain(secret);
21
+ });
22
+ it('normalizes identity, tenancy, dedupe, and conversation routing', async () => {
23
+ const { context, calls } = recordingContext();
24
+ const channel = fixture.createChannel();
25
+ const test = fixture.valid;
26
+ const response = await requireRoute(channel, test.route).handler(await test.request(), context);
27
+ expect(response.status).toBeGreaterThanOrEqual(200);
28
+ expect(response.status).toBeLessThan(300);
29
+ expect(calls).toHaveLength(1);
30
+ const dispatch = calls[0];
31
+ if (!dispatch)
32
+ throw new Error('expected a recorded dispatch');
33
+ expect(dispatch.request.instanceId).toBeTruthy();
34
+ expect(dispatch.request.dedupeKey).toBeTruthy();
35
+ expect(dispatch.request.tenantId).toBeTruthy();
36
+ expect(dispatch.request.actor?.onBehalfOf).toBeTruthy();
37
+ fixture.assertDispatch?.(dispatch);
38
+ });
39
+ it('produces stable identifiers for provider retries', async () => {
40
+ const { context, calls } = recordingContext();
41
+ const channel = fixture.createChannel();
42
+ const test = fixture.valid;
43
+ await requireRoute(channel, test.route).handler(await test.request(), context);
44
+ await requireRoute(channel, test.route).handler(await test.request(), context);
45
+ expect(calls).toHaveLength(2);
46
+ expect(calls[1]?.request.instanceId).toBe(calls[0]?.request.instanceId);
47
+ expect(calls[1]?.request.dedupeKey).toBe(calls[0]?.request.dedupeKey);
48
+ });
49
+ it('surfaces dispatch failure so the provider retries delivery', async () => {
50
+ const channel = fixture.createChannel();
51
+ const test = fixture.valid;
52
+ const context = {
53
+ env: {},
54
+ dispatch: async () => { throw new Error('contract dispatch failure'); },
55
+ };
56
+ try {
57
+ const response = await requireRoute(channel, test.route).handler(await test.request(), context);
58
+ expect(response.status).toBeGreaterThanOrEqual(500);
59
+ }
60
+ catch (error) {
61
+ expect(error).toMatchObject({ message: 'contract dispatch failure' });
62
+ }
63
+ });
64
+ if (fixture.staleAuthentication) {
65
+ it('rejects stale signed delivery', async () => {
66
+ const { context, calls } = recordingContext();
67
+ const channel = fixture.createChannel();
68
+ const test = fixture.staleAuthentication;
69
+ if (!test)
70
+ throw new Error('staleAuthentication fixture disappeared');
71
+ const response = await requireRoute(channel, test.route).handler(await test.request(), context);
72
+ expect([401, 403]).toContain(response.status);
73
+ expect(calls).toHaveLength(0);
74
+ });
75
+ }
76
+ if (fixture.oversized) {
77
+ it('rejects oversized bodies before dispatch', async () => {
78
+ const { context, calls } = recordingContext();
79
+ const channel = fixture.createChannel();
80
+ const test = fixture.oversized;
81
+ if (!test)
82
+ throw new Error('oversized fixture disappeared');
83
+ const route = channel.routes[test.route];
84
+ if (!route)
85
+ throw new Error(`channel is missing route ${test.route}`);
86
+ const response = await route.handler(await test.request(), context);
87
+ expect(response.status).toBe(413);
88
+ expect(calls).toHaveLength(0);
89
+ });
90
+ }
91
+ if (fixture.handshake) {
92
+ it('answers the provider handshake without dispatch', async () => {
93
+ const { context, calls } = recordingContext();
94
+ const channel = fixture.createChannel();
95
+ const test = fixture.handshake;
96
+ if (!test)
97
+ throw new Error('handshake fixture disappeared');
98
+ const route = channel.routes[test.route];
99
+ if (!route)
100
+ throw new Error(`channel is missing route ${test.route}`);
101
+ const response = await route.handler(await test.request(), context);
102
+ expect(response.ok).toBe(true);
103
+ if (test.expectedBody !== undefined)
104
+ expect(await response.text()).toContain(test.expectedBody);
105
+ expect(calls).toHaveLength(0);
106
+ });
107
+ }
108
+ if (fixture.loopSuppression) {
109
+ it('suppresses self-generated delivery loops', async () => {
110
+ const { context, calls } = recordingContext();
111
+ const channel = fixture.createChannel();
112
+ const test = fixture.loopSuppression;
113
+ if (!test)
114
+ throw new Error('loopSuppression fixture disappeared');
115
+ const response = await requireRoute(channel, test.route).handler(await test.request(), context);
116
+ expect(response.ok).toBe(true);
117
+ expect(calls).toHaveLength(0);
118
+ });
119
+ }
120
+ if (fixture.outboundTool) {
121
+ it('marks outbound operations as governed write effects', () => {
122
+ const tool = fixture.outboundTool?.();
123
+ if (!tool)
124
+ throw new Error('outboundTool fixture disappeared');
125
+ expect(tool.metadata).toMatchObject({ effect: 'write', channel: fixture.name });
126
+ expect(tool.inputSchema).toMatchObject({ type: 'object', additionalProperties: false });
127
+ });
128
+ }
129
+ });
130
+ }
131
+ function requireRoute(channel, index) {
132
+ const route = channel.routes[index];
133
+ if (!route)
134
+ throw new Error(`channel is missing route ${index}`);
135
+ return route;
136
+ }
137
+ function recordingContext() {
138
+ const calls = [];
139
+ return {
140
+ calls,
141
+ context: {
142
+ env: {},
143
+ dispatch: async (agent, request) => {
144
+ calls.push({ agent, request });
145
+ return { dispatchId: request.dedupeKey ?? `dispatch-${calls.length}`, acceptedAt: new Date(0).toISOString() };
146
+ },
147
+ },
148
+ };
149
+ }
150
+ function escapeRegExp(value) {
151
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
152
+ }
153
+ //# sourceMappingURL=channel-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-contract.js","sourceRoot":"","sources":["../src/channel-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { bytesToHex, conversationKey, defineChannel, hexToBytes, hmacSha256, parseConversationKey, readJsonBody, readRequestBody, verifyHmacSha256, } from './channel.js';
2
+ export type { Channel, ChannelContext, ChannelDispatch, ChannelDispatchRequest, ChannelRoute, ParsedConversationKey, RequestBody, } from './channel.js';
3
+ export type { ToolDef, ToolEffect } from './tools.js';
4
+ import type { ToolDef } from './tools.js';
5
+ /** Edge-safe identity helper equivalent to the root SDK's `defineTool`. */
6
+ export declare function defineTool<TInput = unknown, TOutput = unknown>(tool: ToolDef<TInput, TOutput>): ToolDef<TInput, TOutput>;
7
+ //# sourceMappingURL=channel-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-runtime.d.ts","sourceRoot":"","sources":["../src/channel-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,OAAO,EACP,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAExH"}
@@ -0,0 +1,6 @@
1
+ export { bytesToHex, conversationKey, defineChannel, hexToBytes, hmacSha256, parseConversationKey, readJsonBody, readRequestBody, verifyHmacSha256, } from './channel.js';
2
+ /** Edge-safe identity helper equivalent to the root SDK's `defineTool`. */
3
+ export function defineTool(tool) {
4
+ return tool;
5
+ }
6
+ //# sourceMappingURL=channel-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-runtime.js","sourceRoot":"","sources":["../src/channel-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAatB,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAsC,IAA8B;IAC5F,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-projection.d.ts","sourceRoot":"","sources":["../src/conversation-projection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,uBAAuB,EAChC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAAO,GACxE,YAAY,CAyBd;AAUD,qBAAa,qBAAqB;IAM9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;gBAG3C,OAAO,EAAE,uBAAuB,EACjD,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KAAO;IAQ3E,qEAAqE;IAC/D,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/F,6EAA6E;IACvE,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAStC,cAAc;IAmB5B,mFAAmF;YACrE,qBAAqB;IAoBnC;;;;OAIG;YACW,SAAS;YAgCT,aAAa;CA6B5B"}
1
+ {"version":3,"file":"conversation-projection.d.ts","sourceRoot":"","sources":["../src/conversation-projection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,uBAAuB,EAChC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAAO,GACxE,YAAY,CA+Bd;AAUD,qBAAa,qBAAqB;IAM9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;gBAG3C,OAAO,EAAE,uBAAuB,EACjD,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KAAO;IAQ3E,qEAAqE;IAC/D,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/F,6EAA6E;IACvE,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAStC,cAAc;IAmB5B,mFAAmF;YACrE,qBAAqB;IAoBnC;;;;OAIG;YACW,SAAS;YAgCT,aAAa;CA6B5B"}
@@ -21,8 +21,7 @@ import { ConversationStreamStoreError, conversationStreamPath, } from './convers
21
21
  */
22
22
  export function withConversationProjection(store, streams, options = {}) {
23
23
  const projector = new ConversationProjector(streams, options);
24
- const wrapped = {
25
- ...store,
24
+ const overrides = {
26
25
  load: (id) => store.load(id),
27
26
  save: async (data) => {
28
27
  await store.save(data);
@@ -30,18 +29,26 @@ export function withConversationProjection(store, streams, options = {}) {
30
29
  },
31
30
  };
32
31
  if (store.appendEntry) {
33
- wrapped.appendEntry = async (sessionId, entry) => {
32
+ overrides.appendEntry = async (sessionId, entry) => {
34
33
  await store.appendEntry?.(sessionId, entry);
35
34
  await projector.projectAppend(store, sessionId, entry);
36
35
  };
37
36
  }
38
37
  if (store.delete) {
39
- wrapped.delete = async (sessionId) => {
38
+ overrides.delete = async (sessionId) => {
40
39
  await store.delete?.(sessionId);
41
40
  await projector.deleteStream(sessionId);
42
41
  };
43
42
  }
44
- return wrapped;
43
+ return new Proxy(store, {
44
+ get(target, property) {
45
+ const override = overrides[property];
46
+ if (override !== undefined)
47
+ return override;
48
+ const value = Reflect.get(target, property, target);
49
+ return typeof value === 'function' ? value.bind(target) : value;
50
+ },
51
+ });
45
52
  }
46
53
  export class ConversationProjector {
47
54
  streams;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-projection.js","sourceRoot":"","sources":["../src/conversation-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-projection.js","sourceRoot":"","sources":["../src/conversation-projection.ts"],"names":[],"mappings":"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"}
@@ -136,6 +136,9 @@ export declare class InMemoryConversationStreamStore implements ConversationStre
136
136
  getMeta(path: string): Promise<ConversationStreamMeta | null>;
137
137
  delete(path: string): Promise<void>;
138
138
  subscribe(path: string, listener: () => void): () => void;
139
+ /** Serializable state used by durable adapters that wrap the reference semantics. */
140
+ exportPersistenceSnapshot(): unknown;
141
+ importPersistenceSnapshot(snapshot: unknown): void;
139
142
  private requireStream;
140
143
  }
141
144
  //# sourceMappingURL=conversation-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-stream.d.ts","sourceRoot":"","sources":["../src/conversation-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-stream.d.ts","sourceRoot":"","sources":["../src/conversation-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACtC;IACE,IAAI,EAAE,WAAW,CAAC;IAClB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,UAAU,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC9C;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,qEAAqE;IACrE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtF,mDAAmD;IACnD,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E,8EAA8E;IAC9E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACzG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,0EAA0E;IAC1E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC3D;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,EACT,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,CAAC;gBAEZ,IAAI,EAAE,4BAA4B,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;CAKxE;AAED,eAAO,MAAM,sCAAsC,MAAM,CAAC;AAC1D,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAEvD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKhE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKpE;AAED,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAEhE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAazD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAS3B;AAiBD,kFAAkF;AAClF,qBAAa,+BAAgC,YAAW,uBAAuB;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IAEnD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAarF,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAsCzE,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,4BAA4B,CAAC;IAiBlC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAY7D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAIzD,qFAAqF;IACrF,yBAAyB,IAAI,OAAO;IAIpC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IASlD,OAAO,CAAC,aAAa;CAOtB"}
@@ -148,6 +148,20 @@ export class InMemoryConversationStreamStore {
148
148
  subscribe(path, listener) {
149
149
  return this.registry.subscribe(path, listener);
150
150
  }
151
+ /** Serializable state used by durable adapters that wrap the reference semantics. */
152
+ exportPersistenceSnapshot() {
153
+ return [...this.streams.entries()].map(([path, stream]) => [path, structuredClone(stream)]);
154
+ }
155
+ importPersistenceSnapshot(snapshot) {
156
+ this.streams.clear();
157
+ if (!Array.isArray(snapshot))
158
+ return;
159
+ for (const entry of snapshot) {
160
+ if (!Array.isArray(entry) || typeof entry[0] !== 'string' || !entry[1])
161
+ continue;
162
+ this.streams.set(entry[0], structuredClone(entry[1]));
163
+ }
164
+ }
151
165
  requireStream(path) {
152
166
  const stream = this.streams.get(path);
153
167
  if (!stream) {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-stream.js","sourceRoot":"","sources":["../src/conversation-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-stream.js","sourceRoot":"","sources":["../src/conversation-stream.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,11 @@ export interface CostBudgetStore {
30
30
  incrementUsd(scope: string, deltaUsd: number): Promise<number>;
31
31
  /** Read current total without mutating. */
32
32
  getUsd(scope: string): Promise<number>;
33
+ /** Atomically reserve spend only when the resulting total does not exceed `limitUsd`. */
34
+ reserveUsd?(scope: string, deltaUsd: number, limitUsd: number): Promise<{
35
+ reserved: boolean;
36
+ totalUsd: number;
37
+ }>;
33
38
  /** Reset (used by tests / period rollover). Optional. */
34
39
  reset?(scope: string): Promise<void>;
35
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cost-budget.d.ts","sourceRoot":"","sources":["../src/cost-budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-budget.d.ts","sourceRoot":"","sources":["../src/cost-budget.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,14 @@ export function inMemoryCostBudgetStore() {
63
63
  async getUsd(scope) {
64
64
  return totals.get(scope) ?? 0;
65
65
  },
66
+ async reserveUsd(scope, delta, limit) {
67
+ const current = totals.get(scope) ?? 0;
68
+ const next = current + delta;
69
+ if (next > limit)
70
+ return { reserved: false, totalUsd: current };
71
+ totals.set(scope, next);
72
+ return { reserved: true, totalUsd: next };
73
+ },
66
74
  async reset(scope) {
67
75
  totals.delete(scope);
68
76
  },
@@ -155,6 +163,18 @@ export class CostBudgetTracker {
155
163
  this.defaultStore = this.limit.store ?? inMemoryCostBudgetStore();
156
164
  }
157
165
  const store = this.defaultStore;
166
+ if (store.reserveUsd) {
167
+ const reservation = await store.reserveUsd(this.limit.scopeKey, callUsd, this.limit.perScope);
168
+ if (!reservation.reserved) {
169
+ return {
170
+ scope: 'cross-process',
171
+ observedUsd: reservation.totalUsd + callUsd,
172
+ limitUsd: this.limit.perScope,
173
+ scopeKey: this.limit.scopeKey,
174
+ };
175
+ }
176
+ return undefined;
177
+ }
158
178
  const total = await store.incrementUsd(this.limit.scopeKey, callUsd);
159
179
  if (total > this.limit.perScope) {
160
180
  return { scope: 'cross-process', observedUsd: total, limitUsd: this.limit.perScope, scopeKey: this.limit.scopeKey };