@osstack/protocol 0.15.0 → 0.22.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/dist/attention.d.ts +863 -0
- package/dist/attention.d.ts.map +1 -0
- package/dist/attention.js +112 -0
- package/dist/attention.js.map +1 -0
- package/dist/autonomy.d.ts +14 -14
- package/dist/delivery-contract.d.ts +734 -0
- package/dist/delivery-contract.d.ts.map +1 -0
- package/dist/delivery-contract.js +111 -0
- package/dist/delivery-contract.js.map +1 -0
- package/dist/envelope.d.ts +42 -42
- package/dist/event.d.ts +4 -4
- package/dist/follow-up-delivery.d.ts +1831 -0
- package/dist/follow-up-delivery.d.ts.map +1 -0
- package/dist/follow-up-delivery.js +174 -0
- package/dist/follow-up-delivery.js.map +1 -0
- package/dist/follow-up.d.ts +1100 -0
- package/dist/follow-up.d.ts.map +1 -0
- package/dist/follow-up.js +28 -0
- package/dist/follow-up.js.map +1 -0
- package/dist/generate.d.ts +1 -0
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +61 -1
- package/dist/generate.js.map +1 -1
- package/dist/graph-checkpoint.d.ts +409 -0
- package/dist/graph-checkpoint.d.ts.map +1 -0
- package/dist/graph-checkpoint.js +91 -0
- package/dist/graph-checkpoint.js.map +1 -0
- package/dist/graph-worker.d.ts +1663 -0
- package/dist/graph-worker.d.ts.map +1 -0
- package/dist/graph-worker.js +152 -0
- package/dist/graph-worker.js.map +1 -0
- package/dist/graph.d.ts +13169 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +427 -0
- package/dist/graph.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/policy.d.ts +10 -10
- package/dist/run.d.ts +4 -4
- package/dist/session-continuation-grant.d.ts +414 -0
- package/dist/session-continuation-grant.d.ts.map +1 -0
- package/dist/session-continuation-grant.js +59 -0
- package/dist/session-continuation-grant.js.map +1 -0
- package/dist/session-continuation.d.ts +129 -0
- package/dist/session-continuation.d.ts.map +1 -0
- package/dist/session-continuation.js +30 -0
- package/dist/session-continuation.js.map +1 -0
- package/dist/task.d.ts +2 -2
- package/package.json +11 -10
- package/schemas/attention-inbox.schema.json +271 -0
- package/schemas/attention-status.schema.json +434 -0
- package/schemas/continuation-grant-body.schema.json +189 -0
- package/schemas/continuation-output-check.schema.json +65 -0
- package/schemas/delivery-contract-v2.schema.json +238 -0
- package/schemas/delivery-verification-receipt-v2.schema.json +223 -0
- package/schemas/follow-up-create-params.schema.json +78 -0
- package/schemas/follow-up-draft-params.schema.json +39 -0
- package/schemas/follow-up-list-params.schema.json +42 -0
- package/schemas/follow-up-list-result.schema.json +241 -0
- package/schemas/follow-up-mutation-result.schema.json +361 -0
- package/schemas/follow-up-obligation.schema.json +343 -0
- package/schemas/follow-up-resolve-params.schema.json +53 -0
- package/schemas/frozen-delivery-contract-v2.schema.json +258 -0
- package/schemas/graph-checkpoint-request.schema.json +222 -0
- package/schemas/graph-checkpoint-response.schema.json +258 -0
- package/schemas/graph-worker.schema.json +546 -0
- package/schemas/graph.schema.json +1798 -0
- package/schemas/session-continuation-request.schema.json +62 -0
- package/schemas/session-decision.schema.json +107 -0
- package/schemas/signed-continuation-grant.schema.json +209 -0
- package/LICENSE +0 -21
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { types } from 'node:util';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export const GRAPH_CHECKPOINT_MAX_FRAME_BYTES = 8 * 1024 * 1024;
|
|
4
|
+
export const GRAPH_CHECKPOINT_MAX_TUPLE_BYTES = 4 * 1024 * 1024;
|
|
5
|
+
export const GRAPH_CHECKPOINT_MAX_PAGE_SIZE = 16;
|
|
6
|
+
const id = z.string().min(1).max(256);
|
|
7
|
+
const namespace = z.string().max(1024);
|
|
8
|
+
const wire = z.string().max(1_048_576).refine((s) => Buffer.byteLength(s, 'utf8') <= 1_048_576);
|
|
9
|
+
const cursor = z.object({ namespace, checkpointId: id }).strict();
|
|
10
|
+
const write = z.object({ channel: id, index: z.number().int().min(-4).max(4095), value: wire }).strict();
|
|
11
|
+
const address = { threadId: id, namespace, checkpointId: id };
|
|
12
|
+
export const GraphCheckpointTupleWire = z.object({
|
|
13
|
+
...address, parentCheckpointId: id.optional(), checkpoint: wire, metadata: wire, newVersions: wire,
|
|
14
|
+
pendingWrites: z.array(write.extend({ taskId: id })).max(4096),
|
|
15
|
+
}).strict();
|
|
16
|
+
export const GraphCheckpointRequest = z.discriminatedUnion('kind', [
|
|
17
|
+
z.object({ kind: z.literal('get'), ...address, checkpointId: id.optional() }).strict(),
|
|
18
|
+
z.object({ kind: z.literal('list'), threadId: id, namespace: namespace.optional(), checkpointId: id.optional(),
|
|
19
|
+
before: id.optional(), cursor: cursor.optional(), pageSize: z.number().int().min(1).max(GRAPH_CHECKPOINT_MAX_PAGE_SIZE) }).strict(),
|
|
20
|
+
z.object({ kind: z.literal('put'), requestId: id, ...address, parentCheckpointId: id.optional(),
|
|
21
|
+
checkpoint: wire, metadata: wire, newVersions: wire }).strict(),
|
|
22
|
+
z.object({ kind: z.literal('writes'), requestId: id, ...address, taskId: id, writes: z.array(write).max(4096) }).strict(),
|
|
23
|
+
]);
|
|
24
|
+
export const GraphCheckpointResponse = z.discriminatedUnion('kind', [
|
|
25
|
+
z.object({ kind: z.literal('get'), tuple: GraphCheckpointTupleWire.nullable() }).strict(),
|
|
26
|
+
z.object({ kind: z.literal('list'), tuples: z.array(GraphCheckpointTupleWire).max(GRAPH_CHECKPOINT_MAX_PAGE_SIZE), cursor: cursor.optional() }).strict(),
|
|
27
|
+
z.object({ kind: z.literal('put'), checkpointId: id }).strict(),
|
|
28
|
+
z.object({ kind: z.literal('writes') }).strict(),
|
|
29
|
+
]);
|
|
30
|
+
// Iterative preflight rejects accessors/proxies through descriptors and bounds traversal
|
|
31
|
+
// before Zod or JSON.stringify sees untrusted trees. Transport still caps raw frames.
|
|
32
|
+
function bounded(value) {
|
|
33
|
+
const stack = [{ value, depth: 0 }];
|
|
34
|
+
let nodes = 0;
|
|
35
|
+
let bytes = 0;
|
|
36
|
+
while (stack.length) {
|
|
37
|
+
const item = stack.pop();
|
|
38
|
+
if (++nodes > 100_000 || item.depth > 16)
|
|
39
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
40
|
+
bytes += 8;
|
|
41
|
+
if (bytes > GRAPH_CHECKPOINT_MAX_FRAME_BYTES)
|
|
42
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
43
|
+
if (item.value === null || typeof item.value === 'boolean')
|
|
44
|
+
continue;
|
|
45
|
+
if (typeof item.value === 'number' && Number.isFinite(item.value))
|
|
46
|
+
continue;
|
|
47
|
+
if (typeof item.value === 'string') {
|
|
48
|
+
if (item.value.length > 1_048_576)
|
|
49
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
50
|
+
bytes += Buffer.byteLength(JSON.stringify(item.value), 'utf8');
|
|
51
|
+
if (bytes > GRAPH_CHECKPOINT_MAX_FRAME_BYTES)
|
|
52
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (typeof item.value !== 'object' || types.isProxy(item.value))
|
|
56
|
+
throw new Error('CHECKPOINT_FRAME_INVALID');
|
|
57
|
+
const proto = Object.getPrototypeOf(item.value);
|
|
58
|
+
if (proto !== Object.prototype && proto !== Array.prototype && proto !== null)
|
|
59
|
+
throw new Error('CHECKPOINT_FRAME_INVALID');
|
|
60
|
+
if (Array.isArray(item.value) && item.value.length > 100_000)
|
|
61
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
62
|
+
const descriptors = Object.getOwnPropertyDescriptors(item.value);
|
|
63
|
+
if (Array.isArray(item.value) && Object.keys(descriptors).length !== item.value.length + 1)
|
|
64
|
+
throw new Error('CHECKPOINT_FRAME_INVALID');
|
|
65
|
+
if (Reflect.ownKeys(descriptors).some((key) => typeof key !== 'string'))
|
|
66
|
+
throw new Error('CHECKPOINT_FRAME_INVALID');
|
|
67
|
+
for (const [key, descriptor] of Object.entries(descriptors)) {
|
|
68
|
+
if (key.length > 1024)
|
|
69
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
70
|
+
bytes += Buffer.byteLength(JSON.stringify(key), 'utf8') + 2;
|
|
71
|
+
if (bytes > GRAPH_CHECKPOINT_MAX_FRAME_BYTES || stack.length > 100_000)
|
|
72
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
73
|
+
if (Array.isArray(item.value) && key === 'length')
|
|
74
|
+
continue;
|
|
75
|
+
if (!('value' in descriptor) || !descriptor.enumerable || ['__proto__', 'constructor', 'prototype'].includes(key))
|
|
76
|
+
throw new Error('CHECKPOINT_FRAME_INVALID');
|
|
77
|
+
stack.push({ value: descriptor.value, depth: item.depth + 1 });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (Buffer.byteLength(JSON.stringify(value), 'utf8') > GRAPH_CHECKPOINT_MAX_FRAME_BYTES)
|
|
81
|
+
throw new Error('CHECKPOINT_FRAME_LIMIT');
|
|
82
|
+
}
|
|
83
|
+
export function parseGraphCheckpointRequest(value) {
|
|
84
|
+
bounded(value);
|
|
85
|
+
return GraphCheckpointRequest.parse(value);
|
|
86
|
+
}
|
|
87
|
+
export function parseGraphCheckpointResponse(value) {
|
|
88
|
+
bounded(value);
|
|
89
|
+
return GraphCheckpointResponse.parse(value);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=graph-checkpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-checkpoint.js","sourceRoot":"","sources":["../src/graph-checkpoint.ts"],"names":[],"mappings":"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"}
|