@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 @@
1
+ {"version":3,"file":"graph-worker.d.ts","sourceRoot":"","sources":["../src/graph-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { z } from 'zod';
2
+ import { GraphScope, StartGraphRequest, GraphJsonValue } from './graph.js';
3
+ export const GRAPH_WORKER_MAX_FRAME_BYTES = 8 * 1024 * 1024;
4
+ const id = z.string().min(1).max(256);
5
+ const digest = z.string().regex(/^[a-f0-9]{64}$/);
6
+ export const GraphWorkerIdentity = z.object({
7
+ executionModel: z.literal('langgraph-functional-v1'), durability: z.literal('sync'),
8
+ engineVersion: id, checkpointVersion: id, templateVersion: id, registryVersion: id,
9
+ compilerVersion: id, schemaVersion: id, compiledProgramDigest: digest, specHash: digest, inputDigest: digest,
10
+ }).strict();
11
+ export const GraphWorkerBinding = z.object({ scope: GraphScope, graphRunId: id,
12
+ generation: z.number().int().positive().max(Number.MAX_SAFE_INTEGER), owner: id, identity: GraphWorkerIdentity }).strict();
13
+ export const GraphWorkerResume = z.discriminatedUnion('kind', [
14
+ z.object({ kind: z.literal('continue') }).strict(),
15
+ z.object({ kind: z.literal('interrupt'), value: GraphJsonValue }).strict(),
16
+ ]);
17
+ const bound = { binding: GraphWorkerBinding };
18
+ export const GraphWorkerMessage = z.discriminatedUnion('kind', [
19
+ z.object({ kind: z.literal('init'), ...bound, programId: id, source: z.string().min(1).max(131072),
20
+ input: StartGraphRequest, resume: GraphWorkerResume.optional(),
21
+ heartbeatMs: z.number().int().min(10).max(60000), maxInFlight: z.number().int().min(1).max(64),
22
+ requestTimeoutMs: z.number().int().min(10).max(300000) }).strict(),
23
+ z.object({ kind: z.literal('ready'), ...bound }).strict(),
24
+ z.object({ kind: z.literal('heartbeat'), ...bound }).strict(),
25
+ z.object({ kind: z.literal('cancel'), ...bound, reason: z.string().max(4096) }).strict(),
26
+ z.object({ kind: z.literal('request'), ...bound, id, method: z.enum(['action', 'checkpoint']), payload: z.unknown() }).strict(),
27
+ z.object({ kind: z.literal('response'), ...bound, id, ok: z.boolean(), payload: z.unknown().optional(), error: z.string().max(4096).optional() }).strict(),
28
+ z.object({ kind: z.literal('done'), ...bound, ok: z.boolean(), value: GraphJsonValue.optional(), error: z.string().max(4096).optional() }).strict(),
29
+ ]);
30
+ export function workerCanonical(value) {
31
+ if (value === null || typeof value !== 'object')
32
+ return JSON.stringify(value);
33
+ if (Array.isArray(value))
34
+ return `[${value.map(workerCanonical).join(',')}]`;
35
+ return `{${Object.keys(value).sort().map(k => `${JSON.stringify(k)}:${workerCanonical(value[k])}`).join(',')}}`;
36
+ }
37
+ export function freezeWorkerData(value) {
38
+ if (value !== null && typeof value === 'object') {
39
+ Object.values(value).forEach(freezeWorkerData);
40
+ Object.freeze(value);
41
+ }
42
+ return value;
43
+ }
44
+ export function encodeWorkerFrame(value, maxBytes = GRAPH_WORKER_MAX_FRAME_BYTES) {
45
+ const json = JSON.stringify(value);
46
+ const size = Buffer.byteLength(json);
47
+ if (size === 0 || size > maxBytes)
48
+ throw new Error('WORKER_FRAME_LIMIT');
49
+ const frame = Buffer.allocUnsafe(size + 4);
50
+ frame.writeUInt32BE(size);
51
+ frame.write(json, 4);
52
+ return frame;
53
+ }
54
+ /** Never concatenates arbitrary incoming chunks. Only a checked length allocates a body. */
55
+ export class WorkerFrameDecoder {
56
+ receive;
57
+ maxBytes;
58
+ header = Buffer.alloc(4);
59
+ headerUsed = 0;
60
+ body;
61
+ used = 0;
62
+ failed = false;
63
+ constructor(receive, maxBytes = GRAPH_WORKER_MAX_FRAME_BYTES) {
64
+ this.receive = receive;
65
+ this.maxBytes = maxBytes;
66
+ }
67
+ get bufferedBytes() { return this.headerUsed + this.used; }
68
+ push(chunk) {
69
+ if (this.failed)
70
+ throw new Error('WORKER_TRANSPORT_CLOSED');
71
+ try {
72
+ let offset = 0;
73
+ while (offset < chunk.length) {
74
+ if (!this.body) {
75
+ const count = Math.min(4 - this.headerUsed, chunk.length - offset);
76
+ chunk.copy(this.header, this.headerUsed, offset, offset + count);
77
+ this.headerUsed += count;
78
+ offset += count;
79
+ if (this.headerUsed < 4)
80
+ continue;
81
+ const size = this.header.readUInt32BE();
82
+ this.headerUsed = 0;
83
+ if (!size || size > this.maxBytes)
84
+ throw new Error('WORKER_FRAME_LIMIT');
85
+ this.body = Buffer.allocUnsafe(size);
86
+ this.used = 0;
87
+ }
88
+ const count = Math.min(this.body.length - this.used, chunk.length - offset);
89
+ chunk.copy(this.body, this.used, offset, offset + count);
90
+ this.used += count;
91
+ offset += count;
92
+ if (this.used === this.body.length) {
93
+ const body = this.body;
94
+ this.body = undefined;
95
+ this.used = 0;
96
+ this.receive(JSON.parse(body.toString('utf8')));
97
+ }
98
+ }
99
+ }
100
+ catch (error) {
101
+ this.failed = true;
102
+ this.body = undefined;
103
+ this.used = 0;
104
+ this.headerUsed = 0;
105
+ throw error;
106
+ }
107
+ }
108
+ }
109
+ /** Fail closed on a stalled peer; no additional userland send queue. */
110
+ export class WorkerFramedTransport {
111
+ readable;
112
+ writable;
113
+ failure;
114
+ closed = false;
115
+ maxFrameBytes;
116
+ maxBufferedBytes;
117
+ constructor(readable, writable, receive, failure, limits = {}) {
118
+ this.readable = readable;
119
+ this.writable = writable;
120
+ this.failure = failure;
121
+ this.maxFrameBytes = limits.maxFrameBytes ?? GRAPH_WORKER_MAX_FRAME_BYTES;
122
+ this.maxBufferedBytes = limits.maxBufferedBytes ?? this.maxFrameBytes * 2 + 8;
123
+ const decoder = new WorkerFrameDecoder(value => { if (!this.closed)
124
+ receive(value); }, this.maxFrameBytes);
125
+ readable.on('data', (chunk) => { try {
126
+ decoder.push(chunk);
127
+ }
128
+ catch (error) {
129
+ this.fail(error);
130
+ } });
131
+ readable.on('end', () => this.fail(new Error('WORKER_TRANSPORT_EOF')));
132
+ readable.on('error', error => this.fail(error));
133
+ writable.on('error', error => this.fail(error));
134
+ }
135
+ send(value) {
136
+ if (this.closed)
137
+ throw new Error('WORKER_TRANSPORT_CLOSED');
138
+ const frame = encodeWorkerFrame(value, this.maxFrameBytes);
139
+ if (this.writable.writableLength + frame.length > this.maxBufferedBytes)
140
+ throw new Error('WORKER_BACKPRESSURE');
141
+ this.writable.write(frame, error => { if (error)
142
+ this.fail(error); });
143
+ }
144
+ fail(error) {
145
+ if (this.closed)
146
+ return;
147
+ this.close();
148
+ this.failure(error instanceof Error ? error : new Error(String(error)));
149
+ }
150
+ close() { this.closed = true; this.readable.destroy(); this.writable.destroy(); }
151
+ }
152
+ //# sourceMappingURL=graph-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-worker.js","sourceRoot":"","sources":["../src/graph-worker.ts"],"names":[],"mappings":"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"}