@calliopelabs/cli 3.5.1 → 3.5.3

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 (36) hide show
  1. package/dist/acp/input.d.ts +12 -0
  2. package/dist/acp/input.d.ts.map +1 -0
  3. package/dist/acp/input.js +58 -0
  4. package/dist/acp/input.js.map +1 -0
  5. package/dist/acp.d.ts +4 -4
  6. package/dist/acp.d.ts.map +1 -1
  7. package/dist/acp.js +17 -11
  8. package/dist/acp.js.map +1 -1
  9. package/dist/bin.d.ts.map +1 -1
  10. package/dist/bin.js +10 -1
  11. package/dist/bin.js.map +1 -1
  12. package/dist/brain-proposals.d.ts +54 -0
  13. package/dist/brain-proposals.d.ts.map +1 -0
  14. package/dist/brain-proposals.js +218 -0
  15. package/dist/brain-proposals.js.map +1 -0
  16. package/dist/execution/guard.d.ts.map +1 -1
  17. package/dist/execution/guard.js +11 -1
  18. package/dist/execution/guard.js.map +1 -1
  19. package/dist/execution/ledger-protocol.d.ts.map +1 -1
  20. package/dist/execution/ledger-protocol.js +2 -1
  21. package/dist/execution/ledger-protocol.js.map +1 -1
  22. package/dist/execution/ledger-server.d.ts.map +1 -1
  23. package/dist/execution/ledger-server.js +33 -9
  24. package/dist/execution/ledger-server.js.map +1 -1
  25. package/dist/execution/ledger.d.ts +5 -2
  26. package/dist/execution/ledger.d.ts.map +1 -1
  27. package/dist/execution/ledger.js +2 -2
  28. package/dist/execution/ledger.js.map +1 -1
  29. package/dist/execution/remote-ledger.d.ts +2 -0
  30. package/dist/execution/remote-ledger.d.ts.map +1 -1
  31. package/dist/execution/remote-ledger.js +14 -4
  32. package/dist/execution/remote-ledger.js.map +1 -1
  33. package/dist/orchestration/actions.d.ts.map +1 -1
  34. package/dist/orchestration/actions.js +3 -1
  35. package/dist/orchestration/actions.js.map +1 -1
  36. package/package.json +11 -10
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Calliope CLI binding for an external adopted Project Brain's maintenance
3
+ * primitives (project-brain#292): `maintenance-proposals/v1` reports and
4
+ * maintained-summary update previews, built only from an explicit CLI-supplied
5
+ * operator identity and configuration.
6
+ *
7
+ * The target brain's own `scripts/inspect-maintenance.py` and
8
+ * `scripts/maintain-summary.py` are the core contract this binds to
9
+ * (https://github.com/ConflictHQ/project-brain, `template/docs/primitives/
10
+ * semantic-maintenance.md` and `maintained-summaries.md`). This module never
11
+ * reimplements that logic: it only invokes those scripts as subprocesses and
12
+ * relays their output for independent review. Neither action ever passes
13
+ * `--propose` — there is no persist path here, only a read-only preview. A
14
+ * request or candidate carrying a model-selected actor, reviewer or grant is
15
+ * refused before either script runs.
16
+ */
17
+ import { execFile } from 'node:child_process';
18
+ import { existsSync, readFileSync } from 'node:fs';
19
+ import { join } from 'node:path';
20
+ import { parseArgs } from 'node:util';
21
+ import { promisify } from 'node:util';
22
+ import { BrainError } from './brain/types.js';
23
+ import { cancellationError, isCancellation, throwIfCancelled } from './cancellation.js';
24
+ const execFileAsync = promisify(execFile);
25
+ const DEFAULT_INTERPRETER = 'python3';
26
+ const MAX_OUTPUT_BYTES = 8 * 1024 * 1024;
27
+ /**
28
+ * Keys a model-authored draft can carry that must never reach the core
29
+ * primitives from producer input: identity and review status come only from
30
+ * host configuration and explicit CLI arguments, never a request/candidate field.
31
+ */
32
+ const FORBIDDEN_IDENTITY_KEYS = ['actor', 'grants', 'grant', 'principal', 'reviewer', 'reviewedBy', 'review'];
33
+ export function refuseForwardedIdentity(payload, where) {
34
+ if (payload !== null && typeof payload === 'object' && !Array.isArray(payload)) {
35
+ const found = FORBIDDEN_IDENTITY_KEYS.filter((key) => key in payload);
36
+ if (found.length)
37
+ throw new BrainError('policy-denied', `${where} carries model-selected identity or grant fields: ${found.sort().join(', ')}`);
38
+ }
39
+ }
40
+ function readJson(path, where) {
41
+ let raw;
42
+ try {
43
+ raw = readFileSync(path, 'utf8');
44
+ }
45
+ catch {
46
+ throw new BrainError('invalid', `${where} is unavailable: ${path}`);
47
+ }
48
+ try {
49
+ return JSON.parse(raw);
50
+ }
51
+ catch {
52
+ throw new BrainError('invalid', `${where} is not valid JSON: ${path}`);
53
+ }
54
+ }
55
+ function parseJsonOutput(raw, where) {
56
+ try {
57
+ return JSON.parse(raw);
58
+ }
59
+ catch {
60
+ throw new BrainError('unavailable', `${where} did not return valid JSON`);
61
+ }
62
+ }
63
+ async function runPrimitive(root, scriptName, argv, options) {
64
+ throwIfCancelled(options.signal);
65
+ const interpreter = options.interpreter ?? DEFAULT_INTERPRETER;
66
+ const scriptPath = join(root, 'scripts', scriptName);
67
+ if (!existsSync(scriptPath))
68
+ throw new BrainError('unavailable', `${scriptPath} is unavailable; --root must be an adopted Project Brain instance`);
69
+ try {
70
+ const { stdout } = await execFileAsync(interpreter, [scriptPath, ...argv], {
71
+ cwd: root,
72
+ signal: options.signal,
73
+ maxBuffer: MAX_OUTPUT_BYTES,
74
+ encoding: 'utf8',
75
+ });
76
+ return stdout;
77
+ }
78
+ catch (error) {
79
+ if (isCancellation(error))
80
+ throw cancellationError();
81
+ const failure = error;
82
+ if (failure.code === 'ENOENT')
83
+ throw new BrainError('unavailable', `${interpreter} is unavailable to run ${scriptName}`);
84
+ const detail = failure.stderr?.toString().trim();
85
+ throw new BrainError('unavailable', detail || `${scriptName} failed`);
86
+ }
87
+ }
88
+ /** Build a `maintenance-proposals/v1` report for independent review. */
89
+ export async function maintenanceReport(options) {
90
+ const request = readJson(options.requestPath, 'maintenance request');
91
+ refuseForwardedIdentity(request, 'maintenance request');
92
+ const argv = ['--root', options.root, '--host-config', options.hostConfig, '--actor', options.actor, '--request', options.requestPath];
93
+ if (options.maxFindings !== undefined)
94
+ argv.push('--max-findings', String(options.maxFindings));
95
+ if (options.maxBytes !== undefined)
96
+ argv.push('--max-bytes', String(options.maxBytes));
97
+ if (options.now !== undefined)
98
+ argv.push('--now', options.now);
99
+ if (options.outputPath !== undefined)
100
+ argv.push('--output', options.outputPath);
101
+ const stdout = await runPrimitive(options.root, 'inspect-maintenance.py', argv, options);
102
+ if (options.outputPath !== undefined)
103
+ return { report: null, outputPath: options.outputPath };
104
+ return { report: parseJsonOutput(stdout, 'maintenance report') };
105
+ }
106
+ /**
107
+ * Preview a maintained-summary amendment; this binding never proposes or
108
+ * commits it. `--propose` is never sent — there is no persist path here.
109
+ */
110
+ export async function summaryPlan(options) {
111
+ const input = readJson(options.inputPath, 'summary plan input');
112
+ refuseForwardedIdentity(input, 'summary plan input');
113
+ refuseForwardedIdentity(input !== null && typeof input === 'object' ? input['candidate'] : undefined, 'summary plan candidate');
114
+ const argv = ['--root', options.root, '--host-config', options.hostConfig, '--input', options.inputPath];
115
+ if (options.now !== undefined)
116
+ argv.push('--now', options.now);
117
+ if (options.outputPath !== undefined)
118
+ argv.push('--output', options.outputPath);
119
+ const stdout = await runPrimitive(options.root, 'maintain-summary.py', argv, options);
120
+ if (options.outputPath !== undefined)
121
+ return { preview: null, outputPath: options.outputPath };
122
+ return { preview: parseJsonOutput(stdout, 'summary plan preview') };
123
+ }
124
+ const USAGE = 'calliope brain-proposals maintenance-report --root <path> --host-config <path> --actor <id> --request <path> ' +
125
+ '[--max-findings N] [--max-bytes N] [--now <iso>] [--output <path>] | ' +
126
+ 'calliope brain-proposals summary-plan --root <path> --host-config <path> --input <path> [--now <iso>] [--output <path>]';
127
+ function parsePositiveInt(value, flag) {
128
+ if (value === undefined)
129
+ return undefined;
130
+ const n = Number(value);
131
+ if (!Number.isInteger(n) || n <= 0)
132
+ throw new BrainError('invalid', `--${flag} must be a positive integer`);
133
+ return n;
134
+ }
135
+ function emitEnvelope(write, action, body) {
136
+ write(JSON.stringify({ version: 1, type: 'brain-proposals', action, localOnly: true, ...body }) + '\n');
137
+ }
138
+ /**
139
+ * `calliope brain-proposals maintenance-report|summary-plan` — headless-only.
140
+ * Output is always the one-line JSON envelope: both target primitives are
141
+ * JSON-only contracts, so a bespoke human-text mode would just relabel their
142
+ * own fields.
143
+ */
144
+ export async function runBrainProposalsCommand(args, options = {}) {
145
+ const write = options.write ?? ((line) => process.stdout.write(line));
146
+ const action = args[0];
147
+ try {
148
+ throwIfCancelled(options.signal);
149
+ if (action !== 'maintenance-report' && action !== 'summary-plan')
150
+ throw new BrainError('invalid', USAGE);
151
+ const { values } = parseArgs({
152
+ args: args.slice(1),
153
+ options: {
154
+ root: { type: 'string' },
155
+ 'host-config': { type: 'string' },
156
+ actor: { type: 'string' },
157
+ request: { type: 'string' },
158
+ input: { type: 'string' },
159
+ 'max-findings': { type: 'string' },
160
+ 'max-bytes': { type: 'string' },
161
+ now: { type: 'string' },
162
+ output: { type: 'string' },
163
+ },
164
+ });
165
+ if (!values.root || !values['host-config'])
166
+ throw new BrainError('invalid', USAGE);
167
+ let data;
168
+ if (action === 'maintenance-report') {
169
+ if (!values.actor || !values.request)
170
+ throw new BrainError('invalid', USAGE);
171
+ const result = await maintenanceReport({
172
+ root: values.root,
173
+ hostConfig: values['host-config'],
174
+ actor: values.actor,
175
+ requestPath: values.request,
176
+ maxFindings: parsePositiveInt(values['max-findings'], 'max-findings'),
177
+ maxBytes: parsePositiveInt(values['max-bytes'], 'max-bytes'),
178
+ now: values.now,
179
+ outputPath: values.output,
180
+ interpreter: options.interpreter,
181
+ signal: options.signal,
182
+ });
183
+ data = result.outputPath !== undefined ? { outputPath: result.outputPath } : result.report;
184
+ }
185
+ else {
186
+ if (!values.input)
187
+ throw new BrainError('invalid', USAGE);
188
+ const result = await summaryPlan({
189
+ root: values.root,
190
+ hostConfig: values['host-config'],
191
+ inputPath: values.input,
192
+ now: values.now,
193
+ outputPath: values.output,
194
+ interpreter: options.interpreter,
195
+ signal: options.signal,
196
+ });
197
+ data = result.outputPath !== undefined ? { outputPath: result.outputPath } : result.preview;
198
+ }
199
+ emitEnvelope(write, action, { data });
200
+ return 0;
201
+ }
202
+ catch (error) {
203
+ const cancelled = options.signal?.aborted || isCancellation(error);
204
+ const known = error instanceof BrainError;
205
+ const invalid = error instanceof TypeError;
206
+ const code = cancelled ? 'cancelled' : known ? error.code : invalid ? 'invalid' : 'unavailable';
207
+ const message = cancelled
208
+ ? 'brain-proposals operation cancelled.'
209
+ : known
210
+ ? error.message
211
+ : invalid
212
+ ? USAGE
213
+ : 'brain-proposals operation failed; inspect stderr, --root and --host-config.';
214
+ emitEnvelope(write, action ?? 'unknown', { error: { code, message } });
215
+ return cancelled ? 130 : code === 'invalid' ? 2 : code === 'policy-denied' ? 3 : 1;
216
+ }
217
+ }
218
+ //# sourceMappingURL=brain-proposals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-proposals.js","sourceRoot":"","sources":["../src/brain-proposals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/execution/guard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKzE,OAAO,EAA8B,KAAK,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAErF,OAAO,EAA4B,KAAK,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAChG,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,WAAW,CAAC,EAAC,kBAAkB,CAAC;IAChC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,wFAAwF;IACxF,SAAS,CAAC,EAAE;QAAC,SAAS,EAAC,MAAM,CAAC;QAAA,cAAc,EAAC,MAAI,IAAI,CAAA;KAAC,CAAC;CACxD;AACD,qBAAa,cAAc;IAYY,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXzD,QAAQ,CAAC,QAAQ,EAAC,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAC,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,QAAQ,CAAC,eAAe,EAAC,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAU;IAC3C,QAAQ,CAAC,SAAS,EAAC,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,YAAY,SAAS,EAAC,cAAc,EAAkB,GAAG,EAAC,MAAM,EAW/D;IACD,KAAK,SAAQ,QAAQ,mBAAe,MAAM,GAAC,SAAS,CAMlD;IACF,QAAQ,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,CAK3B;IACD,KAAK,CAAC,KAAK,EAAC,IAAI,EAAE,GAAE,IAAI,EAAE,CAGzB;IACD,YAAY,IAAG,gBAAgB,CAO9B;IACD,YAAY,CAAC,MAAM,CAAC,EAAC,WAAW,GAAE,IAAI,CAQrC;IACD,MAAM,CAAC,KAAK,EAAC,cAAc,GAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,EAAC,KAAK,EAAC,IAAI,EAAE,EAAC,SAAS,EAAC,OAAO,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,OAAO,CAAC,EAAC,CAAC,KAAK,EAAC;QAAC,SAAS,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAC;QAAA,QAAQ,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,KAAG,IAAI,GAAE,qBAAqB,CAmCvO;CACF"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/execution/guard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKzE,OAAO,EAA8B,KAAK,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAErF,OAAO,EAA4B,KAAK,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAChG,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,WAAW,CAAC,EAAC,kBAAkB,CAAC;IAChC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,wFAAwF;IACxF,SAAS,CAAC,EAAE;QAAC,SAAS,EAAC,MAAM,CAAC;QAAA,cAAc,EAAC,MAAI,IAAI,CAAA;KAAC,CAAC;CACxD;AACD,qBAAa,cAAc;IAYY,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXzD,QAAQ,CAAC,QAAQ,EAAC,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAC,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,QAAQ,CAAC,eAAe,EAAC,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAU;IAC3C,QAAQ,CAAC,SAAS,EAAC,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,YAAY,SAAS,EAAC,cAAc,EAAkB,GAAG,EAAC,MAAM,EAW/D;IACD,KAAK,SAAQ,QAAQ,mBAAe,MAAM,GAAC,SAAS,CAMlD;IACF,QAAQ,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,CAK3B;IACD,KAAK,CAAC,KAAK,EAAC,IAAI,EAAE,GAAE,IAAI,EAAE,CAGzB;IACD,YAAY,IAAG,gBAAgB,CAO9B;IACD,YAAY,CAAC,MAAM,CAAC,EAAC,WAAW,GAAE,IAAI,CAQrC;IACD,MAAM,CAAC,KAAK,EAAC,cAAc,GAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,EAAC,KAAK,EAAC,IAAI,EAAE,EAAC,SAAS,EAAC,OAAO,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,OAAO,CAAC,EAAC,CAAC,KAAK,EAAC;QAAC,SAAS,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAC;QAAA,QAAQ,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,KAAG,IAAI,GAAE,qBAAqB,CA8CvO;CACF"}
@@ -134,7 +134,17 @@ export class ExecutionGuard {
134
134
  state = await this.ledger.reserve(this.cwd, this.expectedHash, { id, agentId: this.agentId, ...quote, limits, ...(this.attribution ? { attribution: this.attribution } : {}) }, signal);
135
135
  }
136
136
  catch (error) {
137
- await projectLedger.settle(id, 0);
137
+ // A failed reply is not proof that the parent refused admission. Keep
138
+ // both reservations charged unless the operation is known to have
139
+ // ended without admission. A remote journal can lag an in-flight write.
140
+ try {
141
+ if (this.ledger.canReleaseFailedReservation?.(error) !== false) {
142
+ const current = this.ledger.read(this.cwd).projection;
143
+ if (current.manifestHash === this.expectedHash && !current.requests[id])
144
+ await projectLedger.settle(id, 0);
145
+ }
146
+ }
147
+ catch { /* Unknown admission or failed refund retains the project reservation. */ }
138
148
  throw error;
139
149
  }
140
150
  onEvent?.({ requestId: id, stage: 'reserved', revision: state.revision, ...state.spent });
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/execution/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/execution/guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-protocol.d.ts","sourceRoot":"","sources":["../../src/execution/ledger-protocol.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,eAAe,yBAAuB,CAAC;AACpD,eAAO,MAAM,iBAAiB,YAAE,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,CAAU,CAAC;AAChG,MAAM,MAAM,eAAe,GAAC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC7D,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAC,CAAC,CAAC;IAAC,GAAG,EAAC,MAAM,CAAC;IAAC,IAAI,EAAC,QAAQ,GAAC,OAAO,CAAC;IAAC,GAAG,EAAC,MAAM,CAAC;IACnD,uGAAuG;IACvG,KAAK,CAAC,EAAC,MAAM,CAAC;IAAC,KAAK,CAAC,EAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,CAAC;CAClD;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,iBAAiB,GAAE,MAAM,CAE7E;AACD,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,SAAW,GAAE,iBAAiB,CAY3G;AAED,kGAAkG;AAClG,qBAAa,iBAAiB;IAChB,QAAQ,CAAC,GAAG,EAAC,MAAM;IAA/B,YAAqB,GAAG,EAAC,MAAM,EAAG;IAClC,OAAO,CAAC,MAAM;IAId,MAAM,IAAG,MAAM,CAId;IACD,MAAM,IAAG,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,CAE7B;IACD,KAAK,CAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAAkC;IAC5D,wEAAwE;IACxE,SAAS,CAAC,KAAK,EAAC,MAAM,GAAE,OAAO,CAAsC;IACrE,oFAAoF;IACpF,MAAM,CAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAG1B;CACF"}
1
+ {"version":3,"file":"ledger-protocol.d.ts","sourceRoot":"","sources":["../../src/execution/ledger-protocol.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,eAAe,yBAAuB,CAAC;AACpD,eAAO,MAAM,iBAAiB,YAAE,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,CAAU,CAAC;AAChG,MAAM,MAAM,eAAe,GAAC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC7D,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAC,CAAC,CAAC;IAAC,GAAG,EAAC,MAAM,CAAC;IAAC,IAAI,EAAC,QAAQ,GAAC,OAAO,CAAC;IAAC,GAAG,EAAC,MAAM,CAAC;IACnD,uGAAuG;IACvG,KAAK,CAAC,EAAC,MAAM,CAAC;IAAC,KAAK,CAAC,EAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,CAAC;CAClD;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,iBAAiB,GAAE,MAAM,CAE7E;AACD,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,SAAW,GAAE,iBAAiB,CAa3G;AAED,kGAAkG;AAClG,qBAAa,iBAAiB;IAChB,QAAQ,CAAC,GAAG,EAAC,MAAM;IAA/B,YAAqB,GAAG,EAAC,MAAM,EAAG;IAClC,OAAO,CAAC,MAAM;IAId,MAAM,IAAG,MAAM,CAId;IACD,MAAM,IAAG,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,CAE7B;IACD,KAAK,CAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAAkC;IAC5D,wEAAwE;IACxE,SAAS,CAAC,KAAK,EAAC,MAAM,GAAE,OAAO,CAAsC;IACrE,oFAAoF;IACpF,MAAM,CAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAG1B;CACF"}
@@ -24,7 +24,8 @@ export function verifyLedgerToken(secret, token, runId, now = Date.now()) {
24
24
  if (!body || !mac || extra !== undefined)
25
25
  throw denied('Ledger token is malformed.');
26
26
  const expected = sign(secret, body), given = Buffer.from(mac, 'base64url');
27
- if (given.length !== expected.length || !timingSafeEqual(given, expected))
27
+ // Only the canonical encoding counts: base64url ignores a final character's padding bits.
28
+ if (b64(given) !== mac || given.length !== expected.length || !timingSafeEqual(given, expected))
28
29
  throw denied('Ledger token is not valid for this ledger.');
29
30
  let claims;
30
31
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-protocol.js","sourceRoot":"","sources":["../../src/execution/ledger-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger-protocol.js","sourceRoot":"","sources":["../../src/execution/ledger-protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-server.d.ts","sourceRoot":"","sources":["../../src/execution/ledger-server.ts"],"names":[],"mappings":"AAAA;sGACsG;AACtG,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAI9C,OAAO,EAA4D,iBAAiB,EAA0D,MAAM,sBAAsB,CAAC;AAE3K,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAC,iBAAiB,CAAC;IACzB,oFAAoF;IACpF,GAAG,EAAC,MAAM,CAAC;IACX,KAAK,EAAC,iBAAiB,CAAC;IACxB,GAAG,CAAC,EAAC,MAAI,MAAM,CAAC;CACjB;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAC,mBAAmB,GAAE,IAAI,CAAC,MAAM,CA0E1E"}
1
+ {"version":3,"file":"ledger-server.d.ts","sourceRoot":"","sources":["../../src/execution/ledger-server.ts"],"names":[],"mappings":"AAAA;sGACsG;AACtG,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAI9C,OAAO,EAA4D,iBAAiB,EAA0D,MAAM,sBAAsB,CAAC;AAE3K,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAC,iBAAiB,CAAC;IACzB,oFAAoF;IACpF,GAAG,EAAC,MAAM,CAAC;IACX,KAAK,EAAC,iBAAiB,CAAC;IACxB,GAAG,CAAC,EAAC,MAAI,MAAM,CAAC;CACjB;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAC,mBAAmB,GAAE,IAAI,CAAC,MAAM,CAwF1E"}
@@ -11,12 +11,17 @@ export function createLedgerServer(options) {
11
11
  const { ledger, cwd, state } = options, now = options.now ?? Date.now, secret = state.secret();
12
12
  const current = () => ledger.read(cwd);
13
13
  const journal = () => { const { manifest, events } = current(); return { manifest, events }; };
14
+ const assertActive = (token) => {
15
+ if (token.exp <= now())
16
+ throw new ExecutionLimitError('authority', 'Ledger token expired; no further requests are authorized.');
17
+ if (token.role === 'child' && (token.epoch !== state.epoch(token.grant) || revokedLineage(token.accounts)))
18
+ throw new ExecutionLimitError('authority', 'This child grant or one of its ancestors was revoked; no further requests are authorized.');
19
+ };
14
20
  const claims = (req) => {
15
21
  const header = req.headers.authorization ?? '';
16
22
  const run = current().manifest.runId;
17
23
  const token = verifyLedgerToken(secret, header.startsWith('Bearer ') ? header.slice(7) : undefined, run, now());
18
- if (token.role === 'child' && (token.epoch !== state.epoch(token.grant) || revokedLineage(token.accounts)))
19
- throw new ExecutionLimitError('authority', 'This child grant or one of its ancestors was revoked; no further requests are authorized.');
24
+ assertActive(token);
20
25
  return token;
21
26
  };
22
27
  /** Revoking a grant fences every descendant account, whichever token it was minted under. */
@@ -35,7 +40,7 @@ export function createLedgerServer(options) {
35
40
  const handlers = {
36
41
  hello: async () => { const { manifest } = current(); return { protocol: LEDGER_PROTOCOL, operations: LEDGER_OPERATIONS, runId: manifest.runId }; },
37
42
  journal: async () => journal(),
38
- reserve: async (token, body) => {
43
+ reserve: async (token, body, outcome) => {
39
44
  const reservation = body.reservation, hash = String(body.manifestHash);
40
45
  owns(token, reservation?.agentId);
41
46
  const prior = current().projection.requests[reservation?.id];
@@ -45,7 +50,20 @@ export function createLedgerServer(options) {
45
50
  throw new ExecutionLimitError('conflict', 'Reservation id already admitted a different request.');
46
51
  return { ...journal(), replayed: true };
47
52
  }
48
- await ledger.reserve(cwd, hash, reservation);
53
+ try {
54
+ await ledger.reserve(cwd, hash, reservation, undefined, () => assertActive(token));
55
+ }
56
+ catch (error) {
57
+ // The local operation has finished. Prove non-admission from the same
58
+ // authority before calling this a refusal; failed reads stay unknown.
59
+ try {
60
+ const saved = current();
61
+ if (saved.projection.manifestHash === hash && !saved.projection.requests[reservation.id])
62
+ outcome.admission = 'refused';
63
+ }
64
+ catch { /* Preserve uncertainty. */ }
65
+ throw error;
66
+ }
49
67
  return journal();
50
68
  },
51
69
  settle: async (token, body) => {
@@ -66,9 +84,14 @@ export function createLedgerServer(options) {
66
84
  grant: async (token, body) => {
67
85
  const grant = body.grant, hash = String(body.manifestHash);
68
86
  owns(token, grant?.parentId);
69
- if (grant?.id && state.isRevoked(grant.id))
70
- throw new ExecutionLimitError('authority', 'This child grant was revoked and cannot be reissued.');
71
- await ledger.grantChildren(cwd, hash, grant);
87
+ const assertGrant = () => {
88
+ assertActive(token);
89
+ if (grant?.id && state.isRevoked(grant.id))
90
+ throw new ExecutionLimitError('authority', 'This child grant was revoked and cannot be reissued.');
91
+ };
92
+ assertGrant();
93
+ await ledger.grantChildren(cwd, hash, grant, undefined, assertGrant);
94
+ assertGrant();
72
95
  const deadline = Math.min(...grant.accounts.map(a => a.deadline));
73
96
  const child = mintLedgerToken(secret, { v: 1, run: current().manifest.runId, role: 'child', grant: grant.id, epoch: state.epoch(grant.id), accounts: grant.accounts.map(a => a.id), exp: deadline });
74
97
  return { ...journal(), token: child };
@@ -99,6 +122,7 @@ export function createLedgerServer(options) {
99
122
  chunks.push(chunk); });
100
123
  req.on('end', () => {
101
124
  void (async () => {
125
+ const outcome = { admission: 'unknown' };
102
126
  try {
103
127
  const token = claims(req);
104
128
  let body;
@@ -110,12 +134,12 @@ export function createLedgerServer(options) {
110
134
  }
111
135
  if (!body || typeof body !== 'object' || Array.isArray(body))
112
136
  throw new ExecutionLimitError('invalid', 'Ledger request must be an object.');
113
- reply(200, { ok: true, ...(await handlers[op](token, body)) });
137
+ reply(200, { ok: true, ...(await handlers[op](token, body, outcome)) });
114
138
  }
115
139
  catch (error) {
116
140
  // Only typed ledger outcomes cross the wire; anything else is an opaque unavailability.
117
141
  if (error instanceof ExecutionLimitError)
118
- reply(STATUS[error.code], { ok: false, code: error.code, message: error.message });
142
+ reply(STATUS[error.code], { ok: false, code: error.code, message: error.message, ...(op === 'reserve' ? outcome : {}) });
119
143
  else
120
144
  reply(503, { ok: false, code: 'unavailable', message: 'Ledger is unavailable; no request was authorized.' });
121
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-server.js","sourceRoot":"","sources":["../../src/execution/ledger-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger-server.js","sourceRoot":"","sources":["../../src/execution/ledger-server.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@ export declare function requestCostNanos(input: number, output: number, inputPri
4
4
  /** Pure replay includes unresolved reservations in every ancestor's spend. */
5
5
  export declare function replayReservations(input: ExecutionManifest, events: ReservationEvent[]): ReservationProjection;
6
6
  /** What request admission needs from a ledger: the local file ledger or a parent's served one (#415). */
7
- export type ReservationLedgerAccess = Pick<ReservationLedger, 'root' | 'read' | 'reserve' | 'settle'>;
7
+ export type ReservationLedgerAccess = Pick<ReservationLedger, 'root' | 'read' | 'reserve' | 'settle'> & {
8
+ /** A transport must confirm rejection; cached absence cannot rule out an in-flight commit. */
9
+ canReleaseFailedReservation?: (error: unknown) => boolean;
10
+ };
8
11
  export declare class ReservationLedger {
9
12
  private readonly now;
10
13
  readonly root: string;
@@ -16,7 +19,7 @@ export declare class ReservationLedger {
16
19
  events: ReservationEvent[];
17
20
  projection: ReservationProjection;
18
21
  };
19
- reserve(cwd: string, expectedManifest: string, value: RequestReservation, signal?: AbortSignal): Promise<ReservationProjection>;
22
+ reserve(cwd: string, expectedManifest: string, value: RequestReservation, signal?: AbortSignal, beforeCommit?: () => void): Promise<ReservationProjection>;
20
23
  grantChildren(cwd: string, expectedManifest: string, grant: ChildGrant, signal?: AbortSignal, beforeCommit?: () => void): Promise<ReservationProjection>;
21
24
  /** Settlement is allowed after cancellation/deadline so known spend can still be recorded. */
22
25
  settle(cwd: string, expectedManifest: string, value: RequestSettlement): Promise<ReservationProjection>;
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/execution/ledger.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EAAC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7L,eAAO,MAAM,sBAAsB,QAAQ,EAAE,qBAAqB,QAAmB,CAAC;AAEtF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAK/G;AA8BD,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,CA0C9G;AAgCD,yGAAyG;AACzG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAC,MAAM,GAAC,MAAM,GAAC,SAAS,GAAC,QAAQ,CAAC,CAAC;AAC/F,qBAAa,iBAAiB;IAEJ,OAAO,CAAC,QAAQ,CAAC,GAAG;IAD5C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IACrB,YAAY,IAAI,EAAC,MAAM,EAAkB,GAAG,eAAS,EAA2B;IAChF,iGAAiG;IACjG,MAAM,CAAC,KAAK,EAAC,iBAAiB,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,qBAAqB,CAUxE;IACD,IAAI,CAAC,GAAG,EAAC,MAAM,GAAE;QAAC,QAAQ,EAAC,iBAAiB,CAAC;QAAA,MAAM,EAAC,gBAAgB,EAAE,CAAC;QAAA,UAAU,EAAC,qBAAqB,CAAA;KAAC,CAGvG;IACK,OAAO,CAAC,GAAG,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,KAAK,EAAC,kBAAkB,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAE5H;IACK,aAAa,CAAC,GAAG,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,KAAK,EAAC,UAAU,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,YAAY,CAAC,EAAC,MAAI,IAAI,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAEjJ;IACD,8FAA8F;IACxF,MAAM,CAAC,GAAG,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,KAAK,EAAC,iBAAiB,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAEtG;YACa,MAAM;CAyBrB"}
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/execution/ledger.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EAAC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7L,eAAO,MAAM,sBAAsB,QAAQ,EAAE,qBAAqB,QAAmB,CAAC;AAEtF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAK/G;AA8BD,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,CA0C9G;AAgCD,yGAAyG;AACzG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAC,MAAM,GAAC,MAAM,GAAC,SAAS,GAAC,QAAQ,CAAC,GAAG;IAC/F,8FAA8F;IAC9F,2BAA2B,CAAC,EAAC,CAAC,KAAK,EAAC,OAAO,KAAG,OAAO,CAAC;CACvD,CAAC;AACF,qBAAa,iBAAiB;IAEJ,OAAO,CAAC,QAAQ,CAAC,GAAG;IAD5C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IACrB,YAAY,IAAI,EAAC,MAAM,EAAkB,GAAG,eAAS,EAA2B;IAChF,iGAAiG;IACjG,MAAM,CAAC,KAAK,EAAC,iBAAiB,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,qBAAqB,CAUxE;IACD,IAAI,CAAC,GAAG,EAAC,MAAM,GAAE;QAAC,QAAQ,EAAC,iBAAiB,CAAC;QAAA,MAAM,EAAC,gBAAgB,EAAE,CAAC;QAAA,UAAU,EAAC,qBAAqB,CAAA;KAAC,CAGvG;IACK,OAAO,CAAC,GAAG,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,KAAK,EAAC,kBAAkB,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,YAAY,CAAC,EAAC,MAAI,IAAI,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAEnJ;IACK,aAAa,CAAC,GAAG,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,KAAK,EAAC,UAAU,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,YAAY,CAAC,EAAC,MAAI,IAAI,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAEjJ;IACD,8FAA8F;IACxF,MAAM,CAAC,GAAG,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,KAAK,EAAC,iBAAiB,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAEtG;YACa,MAAM;CAyBrB"}
@@ -287,9 +287,9 @@ export class ReservationLedger {
287
287
  checkExecutionIdentity(journal.manifest, cwd);
288
288
  return { ...journal, projection: replayReservations(journal.manifest, journal.events) };
289
289
  }
290
- async reserve(cwd, expectedManifest, value, signal) {
290
+ async reserve(cwd, expectedManifest, value, signal, beforeCommit) {
291
291
  reservation(value);
292
- return this.append(cwd, expectedManifest, { type: 'reserve', reservation: structuredClone(value) }, signal);
292
+ return this.append(cwd, expectedManifest, { type: 'reserve', reservation: structuredClone(value) }, signal, beforeCommit);
293
293
  }
294
294
  async grantChildren(cwd, expectedManifest, grant, signal, beforeCommit) {
295
295
  validateChildGrant(grant);