@calliopelabs/cli 3.4.0 → 3.5.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/bin.d.ts.map +1 -1
- package/dist/bin.js +12 -0
- package/dist/bin.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/execution/guard.d.ts +2 -2
- package/dist/execution/guard.d.ts.map +1 -1
- package/dist/execution/guard.js.map +1 -1
- package/dist/execution/index.d.ts +3 -0
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +3 -0
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/ledger-cli.d.ts +2 -0
- package/dist/execution/ledger-cli.d.ts.map +1 -0
- package/dist/execution/ledger-cli.js +31 -0
- package/dist/execution/ledger-cli.js.map +1 -0
- package/dist/execution/ledger-protocol.d.ts +31 -0
- package/dist/execution/ledger-protocol.d.ts.map +1 -0
- package/dist/execution/ledger-protocol.js +105 -0
- package/dist/execution/ledger-protocol.js.map +1 -0
- package/dist/execution/ledger-server.d.ts +14 -0
- package/dist/execution/ledger-server.d.ts.map +1 -0
- package/dist/execution/ledger-server.js +126 -0
- package/dist/execution/ledger-server.js.map +1 -0
- package/dist/execution/ledger.d.ts +2 -0
- package/dist/execution/ledger.d.ts.map +1 -1
- package/dist/execution/ledger.js.map +1 -1
- package/dist/execution/remote-ledger.d.ts +38 -0
- package/dist/execution/remote-ledger.d.ts.map +1 -0
- package/dist/execution/remote-ledger.js +106 -0
- package/dist/execution/remote-ledger.js.map +1 -0
- package/dist/model-detection.d.ts.map +1 -1
- package/dist/model-detection.js +7 -132
- package/dist/model-detection.js.map +1 -1
- package/dist/providers/bedrock-auth.d.ts +9 -0
- package/dist/providers/bedrock-auth.d.ts.map +1 -0
- package/dist/providers/bedrock-auth.js +84 -0
- package/dist/providers/bedrock-auth.js.map +1 -0
- package/dist/providers/bedrock-credential-worker.d.ts +2 -0
- package/dist/providers/bedrock-credential-worker.d.ts.map +1 -0
- package/dist/providers/bedrock-credential-worker.js +54 -0
- package/dist/providers/bedrock-credential-worker.js.map +1 -0
- package/dist/providers/bedrock.d.ts +2 -2
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +14 -121
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/spawning/authority.d.ts +1 -1
- package/dist/spawning/authority.d.ts.map +1 -1
- package/dist/spawning/authority.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/** Serve one run's ReservationLedger over delegation-ledger/v1 (#415). The ledger stays the only
|
|
2
|
+
* authority: this adds authentication, per-account ownership, idempotent replay and grant fencing. */
|
|
3
|
+
import * as http from 'node:http';
|
|
4
|
+
import { canonicalJson } from '../approvals/index.js';
|
|
5
|
+
import { ExecutionLimitError } from './types.js';
|
|
6
|
+
import { accountLineage } from './authority.js';
|
|
7
|
+
import { effectiveExecutionManifest } from './child-grants.js';
|
|
8
|
+
import { LEDGER_PROTOCOL, LEDGER_OPERATIONS, MAX_LEDGER_REQUEST_BYTES, mintLedgerToken, verifyLedgerToken } from './ledger-protocol.js';
|
|
9
|
+
const STATUS = { invalid: 400, authority: 403, budget: 409, deadline: 409, conflict: 409, limit: 409, locked: 503, unavailable: 503 };
|
|
10
|
+
export function createLedgerServer(options) {
|
|
11
|
+
const { ledger, cwd, state } = options, now = options.now ?? Date.now, secret = state.secret();
|
|
12
|
+
const current = () => ledger.read(cwd);
|
|
13
|
+
const journal = () => { const { manifest, events } = current(); return { manifest, events }; };
|
|
14
|
+
const claims = (req) => {
|
|
15
|
+
const header = req.headers.authorization ?? '';
|
|
16
|
+
const run = current().manifest.runId;
|
|
17
|
+
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.');
|
|
20
|
+
return token;
|
|
21
|
+
};
|
|
22
|
+
/** Revoking a grant fences every descendant account, whichever token it was minted under. */
|
|
23
|
+
const revokedLineage = (accounts) => {
|
|
24
|
+
const saved = current(), effective = effectiveExecutionManifest(saved.manifest, saved.projection), records = saved.projection.childGrants ?? [];
|
|
25
|
+
return accounts.some(id => accountLineage(effective, id).some(a => records.some(r => state.isRevoked(r.grant.id) && r.grant.accounts.some(g => g.id === a.id))));
|
|
26
|
+
};
|
|
27
|
+
/** A child may act only for its own accounts and their descendants (grandchildren it granted). */
|
|
28
|
+
const owns = (token, agentId) => {
|
|
29
|
+
if (token.role === 'parent')
|
|
30
|
+
return;
|
|
31
|
+
const saved = current(), effective = effectiveExecutionManifest(saved.manifest, saved.projection);
|
|
32
|
+
if (!accountLineage(effective, agentId).some(a => token.accounts.includes(a.id)))
|
|
33
|
+
throw new ExecutionLimitError('authority', 'This token cannot act for that account.');
|
|
34
|
+
};
|
|
35
|
+
const handlers = {
|
|
36
|
+
hello: async () => { const { manifest } = current(); return { protocol: LEDGER_PROTOCOL, operations: LEDGER_OPERATIONS, runId: manifest.runId }; },
|
|
37
|
+
journal: async () => journal(),
|
|
38
|
+
reserve: async (token, body) => {
|
|
39
|
+
const reservation = body.reservation, hash = String(body.manifestHash);
|
|
40
|
+
owns(token, reservation?.agentId);
|
|
41
|
+
const prior = current().projection.requests[reservation?.id];
|
|
42
|
+
// Replay with the same id answers the original admission; a different body is a conflict.
|
|
43
|
+
if (prior) {
|
|
44
|
+
if (canonicalJson(prior.reservation) !== canonicalJson(reservation))
|
|
45
|
+
throw new ExecutionLimitError('conflict', 'Reservation id already admitted a different request.');
|
|
46
|
+
return { ...journal(), replayed: true };
|
|
47
|
+
}
|
|
48
|
+
await ledger.reserve(cwd, hash, reservation);
|
|
49
|
+
return journal();
|
|
50
|
+
},
|
|
51
|
+
settle: async (token, body) => {
|
|
52
|
+
const settlement = body.settlement, hash = String(body.manifestHash);
|
|
53
|
+
const saved = current(), entry = saved.projection.requests[settlement?.requestId];
|
|
54
|
+
if (!entry)
|
|
55
|
+
throw new ExecutionLimitError('conflict', 'Request was never reserved.');
|
|
56
|
+
owns(token, entry.reservation.agentId);
|
|
57
|
+
if (entry.state !== 'pending') {
|
|
58
|
+
const settled = saved.events.find(e => e.change.type === 'settle' && e.change.settlement.requestId === settlement.requestId);
|
|
59
|
+
if (settled && settled.change.type === 'settle' && canonicalJson(settled.change.settlement) === canonicalJson(settlement))
|
|
60
|
+
return { ...journal(), replayed: true };
|
|
61
|
+
throw new ExecutionLimitError('conflict', 'Request was already settled differently.');
|
|
62
|
+
}
|
|
63
|
+
await ledger.settle(cwd, hash, settlement);
|
|
64
|
+
return journal();
|
|
65
|
+
},
|
|
66
|
+
grant: async (token, body) => {
|
|
67
|
+
const grant = body.grant, hash = String(body.manifestHash);
|
|
68
|
+
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);
|
|
72
|
+
const deadline = Math.min(...grant.accounts.map(a => a.deadline));
|
|
73
|
+
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
|
+
return { ...journal(), token: child };
|
|
75
|
+
},
|
|
76
|
+
revoke: async (token, body) => {
|
|
77
|
+
if (token.role !== 'parent')
|
|
78
|
+
throw new ExecutionLimitError('authority', 'Only the parent can revoke a child grant.');
|
|
79
|
+
const grant = String(body.grant);
|
|
80
|
+
if (!current().projection.childGrants?.some(r => r.grant.id === grant))
|
|
81
|
+
throw new ExecutionLimitError('conflict', 'No such child grant.');
|
|
82
|
+
return { grant, epoch: state.revoke(grant) };
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
return http.createServer((req, res) => {
|
|
86
|
+
const reply = (status, value) => { const raw = JSON.stringify(value); res.writeHead(status, { 'content-type': 'application/json', 'cache-control': 'no-store' }); res.end(raw); };
|
|
87
|
+
const op = (req.url ?? '').replace(/^\/v1\//, '');
|
|
88
|
+
if (req.method !== 'POST' || !Object.hasOwn(handlers, op)) {
|
|
89
|
+
reply(404, { ok: false, code: 'invalid', message: 'Unknown ledger operation.' });
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const chunks = [];
|
|
93
|
+
let size = 0;
|
|
94
|
+
req.on('data', (chunk) => { size += chunk.length; if (size > MAX_LEDGER_REQUEST_BYTES) {
|
|
95
|
+
reply(413, { ok: false, code: 'limit', message: 'Ledger request is too large.' });
|
|
96
|
+
req.destroy();
|
|
97
|
+
}
|
|
98
|
+
else
|
|
99
|
+
chunks.push(chunk); });
|
|
100
|
+
req.on('end', () => {
|
|
101
|
+
void (async () => {
|
|
102
|
+
try {
|
|
103
|
+
const token = claims(req);
|
|
104
|
+
let body;
|
|
105
|
+
try {
|
|
106
|
+
body = JSON.parse(Buffer.concat(chunks).toString('utf8') || '{}');
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
throw new ExecutionLimitError('invalid', 'Ledger request is not JSON.');
|
|
110
|
+
}
|
|
111
|
+
if (!body || typeof body !== 'object' || Array.isArray(body))
|
|
112
|
+
throw new ExecutionLimitError('invalid', 'Ledger request must be an object.');
|
|
113
|
+
reply(200, { ok: true, ...(await handlers[op](token, body)) });
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
// Only typed ledger outcomes cross the wire; anything else is an opaque unavailability.
|
|
117
|
+
if (error instanceof ExecutionLimitError)
|
|
118
|
+
reply(STATUS[error.code], { ok: false, code: error.code, message: error.message });
|
|
119
|
+
else
|
|
120
|
+
reply(503, { ok: false, code: 'unavailable', message: 'Ledger is unavailable; no request was authorized.' });
|
|
121
|
+
}
|
|
122
|
+
})();
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=ledger-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-server.js","sourceRoot":"","sources":["../../src/execution/ledger-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ export declare const MAX_RESERVATION_EVENTS = 10000, MAX_RESERVATION_BYTES: numb
|
|
|
3
3
|
export declare function requestCostNanos(input: number, output: number, inputPrice: number, outputPrice: number): number;
|
|
4
4
|
/** Pure replay includes unresolved reservations in every ancestor's spend. */
|
|
5
5
|
export declare function replayReservations(input: ExecutionManifest, events: ReservationEvent[]): ReservationProjection;
|
|
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'>;
|
|
6
8
|
export declare class ReservationLedger {
|
|
7
9
|
private readonly now;
|
|
8
10
|
readonly root: string;
|
|
@@ -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,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,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/execution/ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/execution/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type ChildGrant, type ExecutionManifest, type RequestReservation, type RequestSettlement, type ReservationEvent, type ReservationProjection } from './types.js';
|
|
2
|
+
export interface RemoteLedgerOptions {
|
|
3
|
+
url: string;
|
|
4
|
+
token: string;
|
|
5
|
+
/** Local, private directory outside the project (ExecutionGuard checks it is not inside). */
|
|
6
|
+
root: string;
|
|
7
|
+
fetch?: typeof fetch;
|
|
8
|
+
attempts?: number;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class RemoteReservationLedger {
|
|
12
|
+
private readonly options;
|
|
13
|
+
readonly root: string;
|
|
14
|
+
private journal;
|
|
15
|
+
private constructor();
|
|
16
|
+
static connect(options: RemoteLedgerOptions): Promise<RemoteReservationLedger>;
|
|
17
|
+
read(cwd: string): {
|
|
18
|
+
manifest: ExecutionManifest;
|
|
19
|
+
events: ReservationEvent[];
|
|
20
|
+
projection: ReservationProjection;
|
|
21
|
+
};
|
|
22
|
+
refresh(): Promise<void>;
|
|
23
|
+
reserve(_cwd: string, manifestHash: string, reservation: RequestReservation, signal?: AbortSignal): Promise<ReservationProjection>;
|
|
24
|
+
settle(_cwd: string, manifestHash: string, settlement: RequestSettlement): Promise<ReservationProjection>;
|
|
25
|
+
/** Nested allocation from this child's own accounts; returns the grandchild's scoped token. */
|
|
26
|
+
grantChildren(_cwd: string, manifestHash: string, grant: ChildGrant, signal?: AbortSignal): Promise<{
|
|
27
|
+
projection: ReservationProjection;
|
|
28
|
+
token: string;
|
|
29
|
+
}>;
|
|
30
|
+
/** Retries reuse the same id (the server replays it). If every attempt is lost, inspect before
|
|
31
|
+
* deciding: only an outcome the parent recorded counts; otherwise the result is unknown. */
|
|
32
|
+
private write;
|
|
33
|
+
private projection;
|
|
34
|
+
/** Validate the hash chain and refuse anything but an append-only extension of what we saw. */
|
|
35
|
+
private accept;
|
|
36
|
+
private call;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=remote-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-ledger.d.ts","sourceRoot":"","sources":["../../src/execution/remote-ledger.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqB,KAAK,UAAU,EAAC,KAAK,iBAAiB,EAAC,KAAK,kBAAkB,EAAC,KAAK,iBAAiB,EAAC,KAAK,gBAAgB,EAAC,KAAK,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAGtL,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IACzB,6FAA6F;IAC7F,IAAI,EAAC,MAAM,CAAC;IACZ,KAAK,CAAC,EAAC,OAAO,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,CAAC;IAAC,SAAS,CAAC,EAAC,MAAM,CAAC;CAC1D;AAID,qBAAa,uBAAuB;IAGd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAF5C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IACrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,eAAmF;IAE1F,OAAa,OAAO,CAAC,OAAO,EAAC,mBAAmB,GAAE,OAAO,CAAC,uBAAuB,CAAC,CAIjF;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,IAAG,OAAO,CAAC,IAAI,CAAC,CAA8C;IACrE,OAAO,CAAC,IAAI,EAAC,MAAM,EAAC,YAAY,EAAC,MAAM,EAAC,WAAW,EAAC,kBAAkB,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAE/H;IACK,MAAM,CAAC,IAAI,EAAC,MAAM,EAAC,YAAY,EAAC,MAAM,EAAC,UAAU,EAAC,iBAAiB,GAAE,OAAO,CAAC,qBAAqB,CAAC,CAExG;IACD,+FAA+F;IACzF,aAAa,CAAC,IAAI,EAAC,MAAM,EAAC,YAAY,EAAC,MAAM,EAAC,KAAK,EAAC,UAAU,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC;QAAC,UAAU,EAAC,qBAAqB,CAAC;QAAA,KAAK,EAAC,MAAM,CAAA;KAAC,CAAC,CAGjJ;IAED;gGAC4F;YAC9E,KAAK;IAanB,OAAO,CAAC,UAAU;IAClB,+FAA+F;IAC/F,OAAO,CAAC,MAAM;YASA,IAAI;CASnB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/** A child's view of a parent ledger served over delegation-ledger/v1 (#415).
|
|
2
|
+
* It keeps a verified local replay so ExecutionGuard reads stay synchronous; the server decides
|
|
3
|
+
* every reserve/settle. A server history that is not an append-only extension of what this child
|
|
4
|
+
* already saw is refused, so a reset or rollback can never return spent capacity. */
|
|
5
|
+
import { canonicalJson } from '../approvals/index.js';
|
|
6
|
+
import { cancellableDelay, throwIfCancelled } from '../cancellation.js';
|
|
7
|
+
import { checkExecutionIdentity, validateExecutionManifest } from './authority.js';
|
|
8
|
+
import { replayReservations } from './ledger.js';
|
|
9
|
+
import { ExecutionLimitError } from './types.js';
|
|
10
|
+
import { LEDGER_PROTOCOL } from './ledger-protocol.js';
|
|
11
|
+
const CODES = new Set(['invalid', 'authority', 'budget', 'deadline', 'unavailable', 'locked', 'conflict', 'limit']);
|
|
12
|
+
export class RemoteReservationLedger {
|
|
13
|
+
options;
|
|
14
|
+
root;
|
|
15
|
+
journal;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.options = options;
|
|
18
|
+
this.root = options.root;
|
|
19
|
+
}
|
|
20
|
+
static async connect(options) {
|
|
21
|
+
const ledger = new RemoteReservationLedger(options), hello = await ledger.call('hello', {});
|
|
22
|
+
if (hello.protocol !== LEDGER_PROTOCOL)
|
|
23
|
+
throw new ExecutionLimitError('unavailable', `Parent ledger speaks ${String(hello.protocol)}, not ${LEDGER_PROTOCOL}.`);
|
|
24
|
+
ledger.accept(await ledger.call('journal', {}));
|
|
25
|
+
return ledger;
|
|
26
|
+
}
|
|
27
|
+
read(cwd) {
|
|
28
|
+
checkExecutionIdentity(this.journal.manifest, cwd);
|
|
29
|
+
return { ...this.journal, projection: replayReservations(this.journal.manifest, this.journal.events) };
|
|
30
|
+
}
|
|
31
|
+
async refresh() { this.accept(await this.call('journal', {})); }
|
|
32
|
+
async reserve(_cwd, manifestHash, reservation, signal) {
|
|
33
|
+
return this.write('reserve', { manifestHash, reservation }, reservation.id, signal, 'Reservation outcome is unknown; no request was authorized.');
|
|
34
|
+
}
|
|
35
|
+
async settle(_cwd, manifestHash, settlement) {
|
|
36
|
+
return this.write('settle', { manifestHash, settlement }, settlement.requestId, undefined, 'Settlement outcome is unknown; the reservation stays charged.');
|
|
37
|
+
}
|
|
38
|
+
/** Nested allocation from this child's own accounts; returns the grandchild's scoped token. */
|
|
39
|
+
async grantChildren(_cwd, manifestHash, grant, signal) {
|
|
40
|
+
const result = await this.call('grant', { manifestHash, grant }, signal);
|
|
41
|
+
this.accept(result);
|
|
42
|
+
return { projection: replayReservations(this.journal.manifest, this.journal.events), token: result.token };
|
|
43
|
+
}
|
|
44
|
+
/** Retries reuse the same id (the server replays it). If every attempt is lost, inspect before
|
|
45
|
+
* deciding: only an outcome the parent recorded counts; otherwise the result is unknown. */
|
|
46
|
+
async write(op, body, id, signal, unknown) {
|
|
47
|
+
let lost;
|
|
48
|
+
for (let attempt = 0; attempt < (this.options.attempts ?? 3); attempt++) {
|
|
49
|
+
throwIfCancelled(signal);
|
|
50
|
+
try {
|
|
51
|
+
this.accept(await this.call(op, body, signal));
|
|
52
|
+
return this.projection();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (error instanceof ExecutionLimitError && error.code !== 'unavailable')
|
|
56
|
+
throw error;
|
|
57
|
+
lost = error;
|
|
58
|
+
await cancellableDelay(100 * 2 ** attempt, signal);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
await this.refresh();
|
|
63
|
+
const entry = this.projection().requests[id];
|
|
64
|
+
if (op === 'reserve' && entry || op === 'settle' && entry && entry.state !== 'pending')
|
|
65
|
+
return this.projection();
|
|
66
|
+
}
|
|
67
|
+
catch { /* Still unreachable: fall through to an explicit unknown outcome. */ }
|
|
68
|
+
throw new ExecutionLimitError('unavailable', `${unknown} (${lost instanceof Error ? lost.message : 'parent ledger unreachable'})`);
|
|
69
|
+
}
|
|
70
|
+
projection() { return replayReservations(this.journal.manifest, this.journal.events); }
|
|
71
|
+
/** Validate the hash chain and refuse anything but an append-only extension of what we saw. */
|
|
72
|
+
accept(value) {
|
|
73
|
+
const next = value;
|
|
74
|
+
if (!next || !Array.isArray(next.events))
|
|
75
|
+
throw new ExecutionLimitError('unavailable', 'Parent ledger returned no history.');
|
|
76
|
+
const manifest = validateExecutionManifest(next.manifest);
|
|
77
|
+
replayReservations(manifest, next.events);
|
|
78
|
+
if (this.journal) {
|
|
79
|
+
if (canonicalJson(this.journal.manifest) !== canonicalJson(manifest) || next.events.length < this.journal.events.length || this.journal.events.some((e, i) => e.hash !== next.events[i].hash))
|
|
80
|
+
throw new ExecutionLimitError('conflict', 'Parent ledger history was rewritten or rolled back; execution stopped.');
|
|
81
|
+
}
|
|
82
|
+
this.journal = { manifest, events: next.events };
|
|
83
|
+
}
|
|
84
|
+
async call(op, body, signal) {
|
|
85
|
+
const timeout = AbortSignal.timeout(this.options.timeoutMs ?? 10000), combined = signal ? AbortSignal.any([signal, timeout]) : timeout;
|
|
86
|
+
let response;
|
|
87
|
+
try {
|
|
88
|
+
response = await (this.options.fetch ?? fetch)(`${this.options.url.replace(/\/$/, '')}/v1/${op}`, { method: 'POST', headers: { 'content-type': 'application/json', authorization: `Bearer ${this.options.token}` }, body: JSON.stringify(body), signal: combined });
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
throwIfCancelled(signal);
|
|
92
|
+
throw new ExecutionLimitError('unavailable', `Parent ledger unreachable: ${error.message}`);
|
|
93
|
+
}
|
|
94
|
+
let value;
|
|
95
|
+
try {
|
|
96
|
+
value = await response.json();
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
throw new ExecutionLimitError('unavailable', 'Parent ledger returned an unreadable response.');
|
|
100
|
+
}
|
|
101
|
+
if (!value.ok)
|
|
102
|
+
throw new ExecutionLimitError(CODES.has(String(value.code)) ? value.code : 'unavailable', String(value.message ?? 'Parent ledger refused the request.'));
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=remote-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-ledger.js","sourceRoot":"","sources":["../../src/execution/remote-ledger.ts"],"names":[],"mappings":"AAAA;;;qFAGqF;AACrF,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAC,sBAAsB,EAAC,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAC,mBAAmB,EAAwI,MAAM,YAAY,CAAC;AACtL,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AASrD,MAAM,KAAK,GAAC,IAAI,GAAG,CAAC,CAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,UAAU,EAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAC,OAAO,CAAC,CAAC,CAAC;AAE3G,MAAM,OAAO,uBAAuB;IAGG,OAAO;IAFnC,IAAI,CAAQ;IACb,OAAO,CAAU;IACzB,YAAqC,OAA2B;uBAA3B,OAAO;QAAsB,IAAI,CAAC,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC;IAAA,CAAC;IAE1F,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAA2B;QAC9C,MAAM,MAAM,GAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,EAAC,KAAK,GAAC,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAC,EAAE,CAAuB,CAAC;QAC5G,IAAG,KAAK,CAAC,QAAQ,KAAG,eAAe;YAAC,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAC,wBAAwB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,eAAe,GAAG,CAAC,CAAC;QAC3J,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAC,EAAE,CAAC,CAAC,CAAC;QAAA,OAAO,MAAM,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,GAAU;QACb,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,GAAG,CAAC,CAAC;QAClD,OAAO,EAAC,GAAG,IAAI,CAAC,OAAO,EAAC,UAAU,EAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC;IACpG,CAAC;IACD,KAAK,CAAC,OAAO,KAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC;IAC3E,KAAK,CAAC,OAAO,CAAC,IAAW,EAAC,YAAmB,EAAC,WAA8B,EAAC,MAAmB;QAC9F,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAC,EAAC,YAAY,EAAC,WAAW,EAAC,EAAC,WAAW,CAAC,EAAE,EAAC,MAAM,EAAC,4DAA4D,CAAC,CAAC;IAC7I,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAW,EAAC,YAAmB,EAAC,UAA4B;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAC,EAAC,YAAY,EAAC,UAAU,EAAC,EAAC,UAAU,CAAC,SAAS,EAAC,SAAS,EAAC,+DAA+D,CAAC,CAAC;IACvJ,CAAC;IACD,+FAA+F;IAC/F,KAAK,CAAC,aAAa,CAAC,IAAW,EAAC,YAAmB,EAAC,KAAgB,EAAC,MAAmB;QACtF,MAAM,MAAM,GAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC,EAAC,YAAY,EAAC,KAAK,EAAC,EAAC,MAAM,CAA2B,CAAC;QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChH,OAAO,EAAC,UAAU,EAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC,KAAK,EAAC,MAAM,CAAC,KAAK,EAAC,CAAC;IACvG,CAAC;IAED;gGAC4F;IACpF,KAAK,CAAC,KAAK,CAAC,EAAqB,EAAC,IAAW,EAAC,EAAS,EAAC,MAA4B,EAAC,OAAc;QACzG,IAAI,IAAY,CAAC;QACjB,KAAI,IAAI,OAAO,GAAC,CAAC,EAAC,OAAO,GAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAE,CAAC,CAAC,EAAC,OAAO,EAAE,EAAC,CAAC;YAC9D,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,IAAG,CAAC;gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,EAAC,MAAM,CAAC,CAAC,CAAC;gBAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAAA,CAAC;YAC3E,OAAM,KAAK,EAAC,CAAC;gBAAA,IAAG,KAAK,YAAY,mBAAmB,IAAE,KAAK,CAAC,IAAI,KAAG,aAAa;oBAAC,MAAM,KAAK,CAAC;gBAAA,IAAI,GAAC,KAAK,CAAC;gBAAA,MAAM,gBAAgB,CAAC,GAAG,GAAC,CAAC,IAAE,OAAO,EAAC,MAAM,CAAC,CAAC;YAAA,CAAC;QACzJ,CAAC;QACD,IAAG,CAAC;YACF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAAM,KAAK,GAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChE,IAAG,EAAE,KAAG,SAAS,IAAE,KAAK,IAAE,EAAE,KAAG,QAAQ,IAAE,KAAK,IAAE,KAAK,CAAC,KAAK,KAAG,SAAS;gBAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QACnG,CAAC;QAAA,MAAK,CAAC,CAAA,qEAAqE,CAAA,CAAC;QAC7E,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAC,GAAG,OAAO,KAAK,IAAI,YAAY,KAAK,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAA,CAAC,CAAA,2BAA2B,GAAG,CAAC,CAAC;IAChI,CAAC;IACO,UAAU,KAA0B,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC;IAClH,+FAA+F;IACvF,MAAM,CAAC,KAAa;QAC1B,MAAM,IAAI,GAAC,KAAgB,CAAC;QAAA,IAAG,CAAC,IAAI,IAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAAC,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAC,oCAAoC,CAAC,CAAC;QACpJ,MAAM,QAAQ,GAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAA,kBAAkB,CAAC,QAAQ,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjG,IAAG,IAAI,CAAC,OAAO,EAAC,CAAC;YACf,IAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAG,aAAa,CAAC,QAAQ,CAAC,IAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,IAAI,KAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;gBAC9K,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAC,wEAAwE,CAAC,CAAC;QACvH,CAAC;QACD,IAAI,CAAC,OAAO,GAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,CAAC,MAAM,EAAC,CAAC;IAC7C,CAAC;IACO,KAAK,CAAC,IAAI,CAAC,EAAS,EAAC,IAAW,EAAC,MAAmB;QAC1D,MAAM,OAAO,GAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAE,KAAK,CAAC,EAAC,QAAQ,GAAC,MAAM,CAAA,CAAC,CAAA,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC,CAAA,CAAC,CAAA,OAAO,CAAC;QAC3H,IAAI,QAAiB,CAAC;QACtB,IAAG,CAAC;YAAA,QAAQ,GAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,aAAa,EAAC,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,CAAC,CAAC;QAAA,CAAC;QACrP,OAAM,KAAK,EAAC,CAAC;YAAA,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAAA,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAC,8BAA+B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAAA,CAAC;QAC7I,IAAI,KAAgD,CAAC;QAAA,IAAG,CAAC;YAAA,KAAK,GAAC,MAAM,QAAQ,CAAC,IAAI,EAAkB,CAAC;QAAA,CAAC;QAAA,MAAK,CAAC;YAAA,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAC,gDAAgD,CAAC,CAAC;QAAA,CAAC;QAC3M,IAAG,CAAC,KAAK,CAAC,EAAE;YAAC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,IAAmC,CAAA,CAAC,CAAA,aAAa,EAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAE,oCAAoC,CAAC,CAAC,CAAC;QAC9L,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-detection.d.ts","sourceRoot":"","sources":["../src/model-detection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"model-detection.d.ts","sourceRoot":"","sources":["../src/model-detection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,EAA+I,KAAK,SAAS,EAA0B,MAAM,mBAAmB,CAAC;AACxN,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAItE,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;yEACqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAoCD,wFAAwF;AACxF,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAMrH;AAkID,8EAA8E;AAC9E,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,SAAS,CAG1F;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,SAAS,CAIlF;AAED,+EAA+E;AAC/E,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAoBlI;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqC5F;AAifD;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBrE;AAkSD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAQ5D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CASjF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAY1F;AAwDD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBnF;AAwBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAchF"}
|
package/dist/model-detection.js
CHANGED
|
@@ -8,7 +8,6 @@ import { select } from '@inquirer/prompts';
|
|
|
8
8
|
import * as config from './config.js';
|
|
9
9
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
10
10
|
import { cancellable, throwIfCancelled } from './cancellation.js';
|
|
11
|
-
import { bindProcessCancellation, detachedProcess } from './process-cancellation.js';
|
|
12
11
|
import { createHash } from 'node:crypto';
|
|
13
12
|
import { ModelDiscoveryError, compatibleMetadata, anthropicMetadata, openRouterPricing, capability, positiveLimit, price, stringList, validateModels } from './models/index.js';
|
|
14
13
|
const DEBUG = process.env.CALLIOPE_DEBUG === '1';
|
|
@@ -793,143 +792,19 @@ async function getBedrockModels() {
|
|
|
793
792
|
// 2. Native AWS path — let errors bubble up so the user sees the real reason.
|
|
794
793
|
return discoverBedrockModelsNative();
|
|
795
794
|
}
|
|
796
|
-
/**
|
|
797
|
-
* Resolve AWS credentials via the `aws` CLI. Handles SSO profiles,
|
|
798
|
-
* role-assumption profiles, and anything else `aws` knows about.
|
|
799
|
-
* Returns null if the CLI isn't installed or the profile resolution fails.
|
|
800
|
-
*/
|
|
801
|
-
async function resolveAwsCredentialsViaCli(profile) {
|
|
802
|
-
try {
|
|
803
|
-
const { execFileSync } = await import('child_process');
|
|
804
|
-
const signal = discoveryContext.getStore()?.signal;
|
|
805
|
-
const read = async (format) => {
|
|
806
|
-
const args = ['configure', 'export-credentials', '--profile', profile, '--format', format];
|
|
807
|
-
if (!signal)
|
|
808
|
-
return execFileSync('aws', args, { encoding: 'utf-8', timeout: 10000, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
809
|
-
throwIfCancelled(signal);
|
|
810
|
-
const { spawn } = await import('node:child_process');
|
|
811
|
-
throwIfCancelled(signal);
|
|
812
|
-
return new Promise((resolve, reject) => {
|
|
813
|
-
const capacity = new AbortController();
|
|
814
|
-
const combined = AbortSignal.any([signal, AbortSignal.timeout(10000), capacity.signal]);
|
|
815
|
-
const child = spawn('aws', args, { stdio: ['ignore', 'pipe', 'pipe'], detached: detachedProcess });
|
|
816
|
-
const cleanup = bindProcessCancellation(child, combined);
|
|
817
|
-
discoveryContext.getStore()?.cleanups.push(cleanup);
|
|
818
|
-
const chunks = [];
|
|
819
|
-
let size = 0;
|
|
820
|
-
child.stdout.on('data', (chunk) => {
|
|
821
|
-
size += chunk.length;
|
|
822
|
-
if (size > 1024 * 1024)
|
|
823
|
-
capacity.abort();
|
|
824
|
-
else
|
|
825
|
-
chunks.push(chunk);
|
|
826
|
-
});
|
|
827
|
-
child.stderr.resume();
|
|
828
|
-
child.once('error', () => { void cleanup.then(() => reject(new Error('AWS profile credential resolution failed'))); });
|
|
829
|
-
child.once('close', code => {
|
|
830
|
-
void cleanup.then(() => code === 0 && !combined.aborted
|
|
831
|
-
? resolve(Buffer.concat(chunks).toString('utf8')) : reject(new Error('AWS profile credential resolution failed')));
|
|
832
|
-
});
|
|
833
|
-
});
|
|
834
|
-
};
|
|
835
|
-
let output = '';
|
|
836
|
-
try {
|
|
837
|
-
output = await read('env-no-export');
|
|
838
|
-
}
|
|
839
|
-
catch {
|
|
840
|
-
throwIfCancelled(signal);
|
|
841
|
-
output = await read('env');
|
|
842
|
-
}
|
|
843
|
-
const envs = {};
|
|
844
|
-
for (const rawLine of output.split(/\r?\n/)) {
|
|
845
|
-
const line = rawLine.trim();
|
|
846
|
-
const match = line.match(/^(?:export\s+)?([A-Z_]+)\s*=\s*(.+)$/);
|
|
847
|
-
if (!match)
|
|
848
|
-
continue;
|
|
849
|
-
let val = match[2].trim();
|
|
850
|
-
if ((val.startsWith('"') && val.endsWith('"')) || (val.startsWith("'") && val.endsWith("'"))) {
|
|
851
|
-
val = val.slice(1, -1);
|
|
852
|
-
}
|
|
853
|
-
envs[match[1]] = val;
|
|
854
|
-
}
|
|
855
|
-
if (envs.AWS_ACCESS_KEY_ID && envs.AWS_SECRET_ACCESS_KEY) {
|
|
856
|
-
return {
|
|
857
|
-
accessKeyId: envs.AWS_ACCESS_KEY_ID,
|
|
858
|
-
secretAccessKey: envs.AWS_SECRET_ACCESS_KEY,
|
|
859
|
-
sessionToken: envs.AWS_SESSION_TOKEN,
|
|
860
|
-
};
|
|
861
|
-
}
|
|
862
|
-
return null;
|
|
863
|
-
}
|
|
864
|
-
catch {
|
|
865
|
-
return null;
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
795
|
/**
|
|
869
796
|
* Discover Bedrock models using the native AWS ListFoundationModels API.
|
|
870
|
-
* Uses
|
|
797
|
+
* Uses the same native AWS credential provider as Converse inference.
|
|
871
798
|
*/
|
|
872
799
|
async function discoverBedrockModelsNative() {
|
|
873
800
|
const { createHash, createHmac } = await import('crypto');
|
|
874
|
-
const {
|
|
875
|
-
const { homedir } = await import('os');
|
|
876
|
-
const { existsSync, readFileSync } = await import('fs');
|
|
877
|
-
// Resolve credentials (same logic as bedrock.ts)
|
|
878
|
-
let accessKeyId = process.env.AWS_ACCESS_KEY_ID || '';
|
|
879
|
-
let secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY || '';
|
|
880
|
-
let sessionToken = process.env.AWS_SESSION_TOKEN;
|
|
881
|
-
const profile = config.getProviderCred('bedrock').profile || 'default';
|
|
882
|
-
// Parse an INI-style AWS file. Handles both ~/.aws/credentials sections
|
|
883
|
-
// ([name]) and ~/.aws/config sections ([profile name]).
|
|
884
|
-
const readIni = (path) => {
|
|
885
|
-
if (!existsSync(path))
|
|
886
|
-
return {};
|
|
887
|
-
const content = readFileSync(path, 'utf-8');
|
|
888
|
-
const sections = {};
|
|
889
|
-
let section = '';
|
|
890
|
-
for (const line of content.split('\n')) {
|
|
891
|
-
const trimmed = line.trim();
|
|
892
|
-
if (!trimmed || trimmed.startsWith('#') || trimmed.startsWith(';'))
|
|
893
|
-
continue;
|
|
894
|
-
const secMatch = trimmed.match(/^\[(.+)\]$/);
|
|
895
|
-
if (secMatch) {
|
|
896
|
-
section = secMatch[1].replace(/^profile\s+/, '');
|
|
897
|
-
sections[section] = sections[section] || {};
|
|
898
|
-
continue;
|
|
899
|
-
}
|
|
900
|
-
const kvMatch = trimmed.match(/^([^=]+?)\s*=\s*(.+)$/);
|
|
901
|
-
if (kvMatch && section)
|
|
902
|
-
sections[section][kvMatch[1].trim()] = kvMatch[2].trim();
|
|
903
|
-
}
|
|
904
|
-
return sections;
|
|
905
|
-
};
|
|
906
|
-
if (!accessKeyId || !secretAccessKey) {
|
|
907
|
-
// Try ~/.aws/credentials (static keys) first, then ~/.aws/config (also
|
|
908
|
-
// used by some setups that put static keys alongside SSO config).
|
|
909
|
-
const credSections = readIni(join(homedir(), '.aws', 'credentials'));
|
|
910
|
-
const configSections = readIni(join(homedir(), '.aws', 'config'));
|
|
911
|
-
const cred = credSections[profile] || configSections[profile];
|
|
912
|
-
if (cred?.aws_access_key_id) {
|
|
913
|
-
accessKeyId = cred.aws_access_key_id;
|
|
914
|
-
secretAccessKey = cred.aws_secret_access_key || '';
|
|
915
|
-
sessionToken = cred.aws_session_token;
|
|
916
|
-
}
|
|
917
|
-
}
|
|
918
|
-
// Last resort: shell out to the AWS CLI. This resolves SSO / role-assumption
|
|
919
|
-
// profiles that can't be parsed from the INI files alone.
|
|
920
|
-
if (!accessKeyId || !secretAccessKey) {
|
|
921
|
-
const cliCreds = await resolveAwsCredentialsViaCli(profile);
|
|
922
|
-
if (cliCreds) {
|
|
923
|
-
accessKeyId = cliCreds.accessKeyId;
|
|
924
|
-
secretAccessKey = cliCreds.secretAccessKey;
|
|
925
|
-
sessionToken = cliCreds.sessionToken;
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
if (!accessKeyId || !secretAccessKey) {
|
|
929
|
-
throw new Error(`No AWS credentials found for profile "${profile}". ` +
|
|
930
|
-
`Try: aws sso login --profile ${profile} (for SSO), or set AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY.`);
|
|
931
|
-
}
|
|
801
|
+
const { resolveBedrockCredentials } = await import('./providers/bedrock-auth.js');
|
|
932
802
|
const region = config.getProviderCred('bedrock').region || 'us-east-1';
|
|
803
|
+
const context = discoveryContext.getStore();
|
|
804
|
+
const pending = resolveBedrockCredentials(context?.signal);
|
|
805
|
+
// The outer discovery cancellation race must await credential-tree cleanup.
|
|
806
|
+
context?.cleanups.push(pending.then(() => { }, () => { }));
|
|
807
|
+
const { accessKeyId, secretAccessKey, sessionToken } = await pending;
|
|
933
808
|
const host = `bedrock.${region}.amazonaws.com`;
|
|
934
809
|
const signedGet = async (path, query) => {
|
|
935
810
|
const url = `https://${host}${path}${query ? '?' + query : ''}`;
|