@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.
Files changed (73) hide show
  1. package/dist/attention.d.ts +863 -0
  2. package/dist/attention.d.ts.map +1 -0
  3. package/dist/attention.js +112 -0
  4. package/dist/attention.js.map +1 -0
  5. package/dist/autonomy.d.ts +14 -14
  6. package/dist/delivery-contract.d.ts +734 -0
  7. package/dist/delivery-contract.d.ts.map +1 -0
  8. package/dist/delivery-contract.js +111 -0
  9. package/dist/delivery-contract.js.map +1 -0
  10. package/dist/envelope.d.ts +42 -42
  11. package/dist/event.d.ts +4 -4
  12. package/dist/follow-up-delivery.d.ts +1831 -0
  13. package/dist/follow-up-delivery.d.ts.map +1 -0
  14. package/dist/follow-up-delivery.js +174 -0
  15. package/dist/follow-up-delivery.js.map +1 -0
  16. package/dist/follow-up.d.ts +1100 -0
  17. package/dist/follow-up.d.ts.map +1 -0
  18. package/dist/follow-up.js +28 -0
  19. package/dist/follow-up.js.map +1 -0
  20. package/dist/generate.d.ts +1 -0
  21. package/dist/generate.d.ts.map +1 -1
  22. package/dist/generate.js +61 -1
  23. package/dist/generate.js.map +1 -1
  24. package/dist/graph-checkpoint.d.ts +409 -0
  25. package/dist/graph-checkpoint.d.ts.map +1 -0
  26. package/dist/graph-checkpoint.js +91 -0
  27. package/dist/graph-checkpoint.js.map +1 -0
  28. package/dist/graph-worker.d.ts +1663 -0
  29. package/dist/graph-worker.d.ts.map +1 -0
  30. package/dist/graph-worker.js +152 -0
  31. package/dist/graph-worker.js.map +1 -0
  32. package/dist/graph.d.ts +13169 -0
  33. package/dist/graph.d.ts.map +1 -0
  34. package/dist/graph.js +427 -0
  35. package/dist/graph.js.map +1 -0
  36. package/dist/index.d.ts +11 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +11 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/policy.d.ts +10 -10
  41. package/dist/run.d.ts +4 -4
  42. package/dist/session-continuation-grant.d.ts +414 -0
  43. package/dist/session-continuation-grant.d.ts.map +1 -0
  44. package/dist/session-continuation-grant.js +59 -0
  45. package/dist/session-continuation-grant.js.map +1 -0
  46. package/dist/session-continuation.d.ts +129 -0
  47. package/dist/session-continuation.d.ts.map +1 -0
  48. package/dist/session-continuation.js +30 -0
  49. package/dist/session-continuation.js.map +1 -0
  50. package/dist/task.d.ts +2 -2
  51. package/package.json +11 -10
  52. package/schemas/attention-inbox.schema.json +271 -0
  53. package/schemas/attention-status.schema.json +434 -0
  54. package/schemas/continuation-grant-body.schema.json +189 -0
  55. package/schemas/continuation-output-check.schema.json +65 -0
  56. package/schemas/delivery-contract-v2.schema.json +238 -0
  57. package/schemas/delivery-verification-receipt-v2.schema.json +223 -0
  58. package/schemas/follow-up-create-params.schema.json +78 -0
  59. package/schemas/follow-up-draft-params.schema.json +39 -0
  60. package/schemas/follow-up-list-params.schema.json +42 -0
  61. package/schemas/follow-up-list-result.schema.json +241 -0
  62. package/schemas/follow-up-mutation-result.schema.json +361 -0
  63. package/schemas/follow-up-obligation.schema.json +343 -0
  64. package/schemas/follow-up-resolve-params.schema.json +53 -0
  65. package/schemas/frozen-delivery-contract-v2.schema.json +258 -0
  66. package/schemas/graph-checkpoint-request.schema.json +222 -0
  67. package/schemas/graph-checkpoint-response.schema.json +258 -0
  68. package/schemas/graph-worker.schema.json +546 -0
  69. package/schemas/graph.schema.json +1798 -0
  70. package/schemas/session-continuation-request.schema.json +62 -0
  71. package/schemas/session-decision.schema.json +107 -0
  72. package/schemas/signed-continuation-grant.schema.json +209 -0
  73. 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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"}