@fabric-harness/sdk 2.1.2 → 2.2.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.
- package/NOTICE +11 -0
- package/dist/agent-definition.d.ts +8 -0
- package/dist/agent-definition.d.ts.map +1 -1
- package/dist/agent-definition.js +27 -4
- package/dist/agent-definition.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +3 -0
- package/dist/agent.js.map +1 -1
- package/dist/approval-notifier.d.ts +63 -0
- package/dist/approval-notifier.d.ts.map +1 -0
- package/dist/approval-notifier.js +152 -0
- package/dist/approval-notifier.js.map +1 -0
- package/dist/attachment-store.d.ts +12 -0
- package/dist/attachment-store.d.ts.map +1 -1
- package/dist/attachment-store.js +61 -3
- package/dist/attachment-store.js.map +1 -1
- package/dist/channel-contract.d.ts +29 -0
- package/dist/channel-contract.d.ts.map +1 -0
- package/dist/channel-contract.js +153 -0
- package/dist/channel-contract.js.map +1 -0
- package/dist/channel-runtime.d.ts +7 -0
- package/dist/channel-runtime.d.ts.map +1 -0
- package/dist/channel-runtime.js +6 -0
- package/dist/channel-runtime.js.map +1 -0
- package/dist/conversation-projection.d.ts.map +1 -1
- package/dist/conversation-projection.js +12 -5
- package/dist/conversation-projection.js.map +1 -1
- package/dist/conversation-stream.d.ts +3 -0
- package/dist/conversation-stream.d.ts.map +1 -1
- package/dist/conversation-stream.js +14 -0
- package/dist/conversation-stream.js.map +1 -1
- package/dist/cost-budget.d.ts +5 -0
- package/dist/cost-budget.d.ts.map +1 -1
- package/dist/cost-budget.js +20 -0
- package/dist/cost-budget.js.map +1 -1
- package/dist/error.d.ts +16 -4
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +30 -5
- package/dist/error.js.map +1 -1
- package/dist/filesystem.d.ts +3 -3
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/in-memory-submission-store.d.ts +4 -0
- package/dist/in-memory-submission-store.d.ts.map +1 -1
- package/dist/in-memory-submission-store.js +45 -0
- package/dist/in-memory-submission-store.js.map +1 -1
- package/dist/index.d.ts +24 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/job-invoke.d.ts +43 -0
- package/dist/job-invoke.d.ts.map +1 -0
- package/dist/job-invoke.js +56 -0
- package/dist/job-invoke.js.map +1 -0
- package/dist/mcp.d.ts +53 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +145 -20
- package/dist/mcp.js.map +1 -1
- package/dist/model.d.ts +22 -8
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +465 -230
- package/dist/model.js.map +1 -1
- package/dist/network-enforcement.d.ts +16 -0
- package/dist/network-enforcement.d.ts.map +1 -0
- package/dist/network-enforcement.js +36 -0
- package/dist/network-enforcement.js.map +1 -0
- package/dist/observability.d.ts +36 -0
- package/dist/observability.d.ts.map +1 -0
- package/dist/observability.js +89 -0
- package/dist/observability.js.map +1 -0
- package/dist/operational-metrics.d.ts +53 -0
- package/dist/operational-metrics.d.ts.map +1 -0
- package/dist/operational-metrics.js +119 -0
- package/dist/operational-metrics.js.map +1 -0
- package/dist/otel-observer.d.ts +3 -0
- package/dist/otel-observer.d.ts.map +1 -1
- package/dist/otel-observer.js +21 -9
- package/dist/otel-observer.js.map +1 -1
- package/dist/persistence-bundle-contract.d.ts +7 -0
- package/dist/persistence-bundle-contract.d.ts.map +1 -0
- package/dist/persistence-bundle-contract.js +86 -0
- package/dist/persistence-bundle-contract.js.map +1 -0
- package/dist/persistence-bundle.d.ts +56 -0
- package/dist/persistence-bundle.d.ts.map +1 -0
- package/dist/persistence-bundle.js +2 -0
- package/dist/persistence-bundle.js.map +1 -0
- package/dist/persistent-agent.d.ts +1 -1
- package/dist/persistent-agent.js +1 -1
- package/dist/policied-sandbox.d.ts +3 -0
- package/dist/policied-sandbox.d.ts.map +1 -1
- package/dist/policied-sandbox.js +25 -16
- package/dist/policied-sandbox.js.map +1 -1
- package/dist/policy.d.ts +8 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +104 -19
- package/dist/policy.js.map +1 -1
- package/dist/redaction.js +1 -1
- package/dist/redaction.js.map +1 -1
- package/dist/sandbox-ref.d.ts +37 -2
- package/dist/sandbox-ref.d.ts.map +1 -1
- package/dist/sandbox-ref.js +164 -3
- package/dist/sandbox-ref.js.map +1 -1
- package/dist/sandbox.d.ts +26 -0
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +67 -19
- package/dist/sandbox.js.map +1 -1
- package/dist/secret-provider.d.ts +24 -0
- package/dist/secret-provider.d.ts.map +1 -0
- package/dist/secret-provider.js +36 -0
- package/dist/secret-provider.js.map +1 -0
- package/dist/session-submission-executor.d.ts +15 -0
- package/dist/session-submission-executor.d.ts.map +1 -0
- package/dist/session-submission-executor.js +79 -0
- package/dist/session-submission-executor.js.map +1 -0
- package/dist/session.d.ts +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +24 -10
- package/dist/session.js.map +1 -1
- package/dist/store.d.ts +3 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +28 -0
- package/dist/store.js.map +1 -1
- package/dist/strict.d.ts +20 -7
- package/dist/strict.d.ts.map +1 -1
- package/dist/strict.js +9 -3
- package/dist/strict.js.map +1 -1
- package/dist/submission-context.d.ts +5 -0
- package/dist/submission-context.d.ts.map +1 -1
- package/dist/submission-context.js.map +1 -1
- package/dist/submission-runner.d.ts +4 -0
- package/dist/submission-runner.d.ts.map +1 -1
- package/dist/submission-runner.js +13 -4
- package/dist/submission-runner.js.map +1 -1
- package/dist/submission-store.d.ts +6 -0
- package/dist/submission-store.d.ts.map +1 -1
- package/dist/submission-store.js.map +1 -1
- package/dist/testing-contracts.d.ts +4 -0
- package/dist/testing-contracts.d.ts.map +1 -1
- package/dist/testing-contracts.js +2 -0
- package/dist/testing-contracts.js.map +1 -1
- package/dist/tools.d.ts +4 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/virtual-sandbox.d.ts.map +1 -1
- package/dist/virtual-sandbox.js +9 -2
- package/dist/virtual-sandbox.js.map +1 -1
- package/package.json +12 -6
- package/dist/lite.d.ts +0 -19
- package/dist/lite.d.ts.map +0 -1
- package/dist/lite.js +0 -19
- package/dist/lite.js.map +0 -1
package/dist/attachment-store.js
CHANGED
|
@@ -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 (
|
|
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 (
|
|
150
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
38
|
+
overrides.delete = async (sessionId) => {
|
|
40
39
|
await store.delete?.(sessionId);
|
|
41
40
|
await projector.deleteStream(sessionId);
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
|
-
return
|
|
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":"AAAA,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAOlC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAmB,EACnB,OAAgC,EAChC,UAAuE,EAAE;IAEzE,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE9D,MAAM,
|
|
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":"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"}
|
|
@@ -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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"}
|
package/dist/cost-budget.d.ts
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,2CAA2C;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,yDAAyD;IACzD,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,SAAS,CAuBX;AAED,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"cost-budget.d.ts","sourceRoot":"","sources":["../src/cost-budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,2CAA2C;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,yFAAyF;IACzF,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjH,yDAAyD;IACzD,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,SAAS,CAuBX;AAED,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,eAAe,CAsBzD;AAED,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,aAAa,GAAG,UAAU,CAAC;IACzC;;;OAGG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,eAAe,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,eAAe,EAC7B,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;CAC5E;AAED,qBAAa,sBAAuB,SAAQ,WAAW;aACzB,OAAO,EAAE,gBAAgB;gBAAzB,OAAO,EAAE,gBAAgB;CAQtD;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJlC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,YAAY,CAA8B;gBAErB,KAAK,EAAE,SAAS,GAAG,SAAS;IAEzD,2GAA2G;IAC3G,IAAI,WAAW,IAAI,aAAa,GAAG,UAAU,CAE5C;IAED,iCAAiC;IACjC,OAAO,IAAI,OAAO;IAMlB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAYtD;;;;;;;OAOG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAgD9G,uEAAuE;IACvE,wBAAwB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAI3D,0DAA0D;IAC1D,yBAAyB,IAAI,gBAAgB,GAAG,SAAS;IAMzD,uCAAuC;IACvC,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,OAAO,GAAG,SAAS;CAGhC"}
|
package/dist/cost-budget.js
CHANGED
|
@@ -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 };
|