@sentropic/h2a 0.97.3 → 0.97.4
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +86 -40
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +1 -0
- package/dist/mcp.js.map +1 -1
- package/dist/runtime/identity/bindings.d.ts +33 -0
- package/dist/runtime/identity/bindings.d.ts.map +1 -1
- package/dist/runtime/identity/bindings.js +49 -1
- package/dist/runtime/identity/bindings.js.map +1 -1
- package/dist/runtime/identity/index.d.ts +4 -4
- package/dist/runtime/identity/index.d.ts.map +1 -1
- package/dist/runtime/identity/index.js +2 -2
- package/dist/runtime/identity/index.js.map +1 -1
- package/dist/runtime/identity/live.d.ts +63 -0
- package/dist/runtime/identity/live.d.ts.map +1 -1
- package/dist/runtime/identity/live.js +339 -64
- package/dist/runtime/identity/live.js.map +1 -1
- package/dist/runtime/identity/worker.d.ts +19 -0
- package/dist/runtime/identity/worker.d.ts.map +1 -0
- package/dist/runtime/identity/worker.js +189 -0
- package/dist/runtime/identity/worker.js.map +1 -0
- package/dist/runtime/local-files/locks.d.ts +14 -0
- package/dist/runtime/local-files/locks.d.ts.map +1 -1
- package/dist/runtime/local-files/locks.js +13 -0
- package/dist/runtime/local-files/locks.js.map +1 -1
- package/dist/runtime/local-files/store.d.ts +21 -0
- package/dist/runtime/local-files/store.d.ts.map +1 -1
- package/dist/runtime/local-files/store.js +37 -6
- package/dist/runtime/local-files/store.js.map +1 -1
- package/dist/runtime/mcp/identity-state.d.ts +131 -0
- package/dist/runtime/mcp/identity-state.d.ts.map +1 -0
- package/dist/runtime/mcp/identity-state.js +288 -0
- package/dist/runtime/mcp/identity-state.js.map +1 -0
- package/dist/runtime/mcp/index.d.ts +1 -0
- package/dist/runtime/mcp/index.d.ts.map +1 -1
- package/dist/runtime/mcp/index.js +1 -0
- package/dist/runtime/mcp/index.js.map +1 -1
- package/dist/runtime/mcp/server.d.ts +23 -0
- package/dist/runtime/mcp/server.d.ts.map +1 -1
- package/dist/runtime/mcp/server.js +105 -2
- package/dist/runtime/mcp/server.js.map +1 -1
- package/dist/runtime/mcp/sessions.d.ts +12 -2
- package/dist/runtime/mcp/sessions.d.ts.map +1 -1
- package/dist/runtime/mcp/sessions.js +15 -3
- package/dist/runtime/mcp/sessions.js.map +1 -1
- package/dist/runtime/mcp/stdio.d.ts +21 -0
- package/dist/runtime/mcp/stdio.d.ts.map +1 -1
- package/dist/runtime/mcp/stdio.js +203 -84
- package/dist/runtime/mcp/stdio.js.map +1 -1
- package/dist/runtime/mcp/tools.d.ts.map +1 -1
- package/dist/runtime/mcp/tools.js +16 -0
- package/dist/runtime/mcp/tools.js.map +1 -1
- package/dist/runtime/mcp-http/readonly-allowlist.d.ts.map +1 -1
- package/dist/runtime/mcp-http/readonly-allowlist.js +3 -0
- package/dist/runtime/mcp-http/readonly-allowlist.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createHash, generateKeyPairSync } from "node:crypto";
|
|
2
|
-
import { copyFileSync, existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { copyFileSync, existsSync, mkdirSync, readFileSync, realpathSync, unlinkSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { hostname } from "node:os";
|
|
4
4
|
import { basename, join } from "node:path";
|
|
5
5
|
import { deriveInstanceId, deriveWorkspaceId, mintAgentUuid, signCanonical } from "@sentropic/h2a";
|
|
6
6
|
import { createLocalStore } from "../local-files/store.js";
|
|
7
7
|
import { getActiveMcpTrace } from "../mcp/phase-trace.js";
|
|
8
|
-
import { findBinding, reclaimOrMint, verifyReclaimProof } from "./bindings.js";
|
|
8
|
+
import { findBinding, reclaimOrMint, reclaimOrMintAsync, verifyReclaimProof } from "./bindings.js";
|
|
9
9
|
import { decideLegacyAdoption, legacyAliasAlreadyAdopted, recordIdentityAlias } from "./migration.js";
|
|
10
10
|
import { defaultProviderSessionReaders, readHostSessionName } from "./readers.js";
|
|
11
11
|
import { resolveProviderSession } from "./resolver.js";
|
|
@@ -153,6 +153,26 @@ function ensureKeypair(root, instance, adoptFromInstance) {
|
|
|
153
153
|
writeFileSync(paths.publicKeyPath, generated.publicKeyPem, "utf8");
|
|
154
154
|
return { publicKeyPem: generated.publicKeyPem, ...paths };
|
|
155
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* F5: cheaply remove a mint-race LOSER's orphan keypair files. When a contender
|
|
158
|
+
* pre-registered a mint candidate (keys + registration + alias) but then RECLAIMED
|
|
159
|
+
* a different instance under the lock, its candidate keypair is unused — unlink it
|
|
160
|
+
* so a stray private key does not linger (N-1 per same-conversation burst). The
|
|
161
|
+
* APPEND-ONLY registration/alias rows are NOT cheaply removable (that is exactly
|
|
162
|
+
* the registry growth L3 compaction addresses) and are left for L3. Best-effort:
|
|
163
|
+
* a failure never affects the resolved identity.
|
|
164
|
+
*/
|
|
165
|
+
function cleanupOrphanKeypair(root, instance) {
|
|
166
|
+
const paths = identityKeyPaths(root, instance);
|
|
167
|
+
for (const p of [paths.privateKeyPath, paths.publicKeyPath]) {
|
|
168
|
+
try {
|
|
169
|
+
unlinkSync(p);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
/* already gone / never written — fine */
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
156
176
|
function provesLocalKey(root, instance) {
|
|
157
177
|
const store = createLocalStore({ root });
|
|
158
178
|
const keypair = readKeypair(root, instance);
|
|
@@ -171,31 +191,38 @@ function provesLocalKey(root, instance) {
|
|
|
171
191
|
}
|
|
172
192
|
}
|
|
173
193
|
function ensureRegistered(input) {
|
|
174
|
-
const store = createLocalStore({
|
|
194
|
+
const store = createLocalStore({
|
|
195
|
+
root: input.root,
|
|
196
|
+
...(input.lockTimeoutMs !== undefined ? { lockTimeoutMs: input.lockTimeoutMs } : {})
|
|
197
|
+
});
|
|
198
|
+
const buildRegistration = () => ({
|
|
199
|
+
id: input.instance,
|
|
200
|
+
instance: input.instance,
|
|
201
|
+
roles: ["AGENTS"],
|
|
202
|
+
scopes: [...input.scopes],
|
|
203
|
+
// AUTHORITY-BEARING and intentionally left EMPTY, exactly as before this
|
|
204
|
+
// workstream: it is the subagent ceiling and the attestation right. A
|
|
205
|
+
// display list must never be written here (architect ruling, 2026-07-25).
|
|
206
|
+
capabilities: [],
|
|
207
|
+
endpoints: [{ kind: "local-files", uri: `file://${input.root}` }],
|
|
208
|
+
publicKeys: [input.publicKeyPem],
|
|
209
|
+
acceptedPolicies: [],
|
|
210
|
+
agentUuid: input.agentUuid,
|
|
211
|
+
workspace: input.workspace,
|
|
212
|
+
name: input.name,
|
|
213
|
+
createdAt: new Date(input.now()).toISOString(),
|
|
214
|
+
// The declared DISPLAY list, kept structurally apart from `capabilities`.
|
|
215
|
+
...(input.declaredCapabilities.length > 0
|
|
216
|
+
? { declaredCapabilities: [...input.declaredCapabilities] }
|
|
217
|
+
: {})
|
|
218
|
+
});
|
|
219
|
+
if (input.skipExistingCheck) {
|
|
220
|
+
store.registerInstance(buildRegistration());
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
175
223
|
const existing = store.findInstance(input.instance);
|
|
176
224
|
if (!existing) {
|
|
177
|
-
|
|
178
|
-
id: input.instance,
|
|
179
|
-
instance: input.instance,
|
|
180
|
-
roles: ["AGENTS"],
|
|
181
|
-
scopes: [...input.scopes],
|
|
182
|
-
// AUTHORITY-BEARING and intentionally left EMPTY, exactly as before this
|
|
183
|
-
// workstream: it is the subagent ceiling and the attestation right. A
|
|
184
|
-
// display list must never be written here (architect ruling, 2026-07-25).
|
|
185
|
-
capabilities: [],
|
|
186
|
-
endpoints: [{ kind: "local-files", uri: `file://${input.root}` }],
|
|
187
|
-
publicKeys: [input.publicKeyPem],
|
|
188
|
-
acceptedPolicies: [],
|
|
189
|
-
agentUuid: input.agentUuid,
|
|
190
|
-
workspace: input.workspace,
|
|
191
|
-
name: input.name,
|
|
192
|
-
createdAt: new Date(input.now()).toISOString(),
|
|
193
|
-
// The declared DISPLAY list, kept structurally apart from `capabilities`.
|
|
194
|
-
...(input.declaredCapabilities.length > 0
|
|
195
|
-
? { declaredCapabilities: [...input.declaredCapabilities] }
|
|
196
|
-
: {})
|
|
197
|
-
};
|
|
198
|
-
store.registerInstance(registration);
|
|
225
|
+
store.registerInstance(buildRegistration());
|
|
199
226
|
return;
|
|
200
227
|
}
|
|
201
228
|
if (!store.listInstanceKeys(input.instance).includes(input.publicKeyPem)) {
|
|
@@ -233,66 +260,108 @@ export function resolveLiveIdentity(input) {
|
|
|
233
260
|
? readHostSessionName({ host, cwd: input.cwd, sessionId: provider.providerSessionId })
|
|
234
261
|
: undefined;
|
|
235
262
|
const name = input.name ?? hostName ?? label;
|
|
263
|
+
// The mint candidate is memoized so the SAME identity is pre-registered (below)
|
|
264
|
+
// and then committed — a would-be reclaim discards it, but it is never re-minted.
|
|
265
|
+
let mintMemo;
|
|
236
266
|
const mint = () => {
|
|
267
|
+
if (mintMemo)
|
|
268
|
+
return mintMemo;
|
|
237
269
|
const agentUuid = mintAgentUuid();
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
instance: deriveInstanceId({ host, label: name, uuid: agentUuid })
|
|
241
|
-
};
|
|
270
|
+
mintMemo = { agentUuid, instance: deriveInstanceId({ host, label: name, uuid: agentUuid }) };
|
|
271
|
+
return mintMemo;
|
|
242
272
|
};
|
|
243
273
|
const mintRemote = () => {
|
|
274
|
+
if (mintMemo)
|
|
275
|
+
return mintMemo;
|
|
244
276
|
const agentUuid = mintAgentUuid();
|
|
245
|
-
|
|
277
|
+
mintMemo = {
|
|
246
278
|
agentUuid,
|
|
247
279
|
instance: provider.providerSessionId
|
|
248
280
|
? remoteBridgeInstance(provider.providerSessionId)
|
|
249
281
|
: deriveInstanceId({ host, label: name, uuid: agentUuid })
|
|
250
282
|
};
|
|
283
|
+
return mintMemo;
|
|
251
284
|
};
|
|
252
285
|
// Re-anchor: the conversation UUID is the identity unit. When no provider
|
|
253
286
|
// session id is readable, fall back to a per-workspace-STABLE id (no
|
|
254
287
|
// timestamp) so that degenerate case keeps the old per-workspace reclaim
|
|
255
288
|
// behavior instead of minting a fresh id on every connect.
|
|
256
289
|
const providerSessionId = provider.providerSessionId ?? `fallback:${host}:${workspace.id}`;
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
:
|
|
290
|
+
const key = { host, providerSessionId, workspaceId: workspace.id };
|
|
291
|
+
const legacyDecision = decideLegacyAdoption({
|
|
292
|
+
legacyAlreadyAdopted: legacyAliasAlreadyAdopted(input.root, legacyInstance),
|
|
293
|
+
provedLegacyPossession: provesLocalKey(input.root, legacyInstance)
|
|
294
|
+
});
|
|
295
|
+
const declared = sanitizeDeclaredCapabilities(input.declaredCapabilities);
|
|
296
|
+
// F2(b): publish keyring / registration / alias for an instance. Callers invoke
|
|
297
|
+
// this BEFORE the binding append (window closure BY ORDER), so a concurrent
|
|
298
|
+
// reader — CLI OR MCP — can never observe a binding whose keyring is not yet
|
|
299
|
+
// provable and mint a duplicate for the same (host, providerSessionId).
|
|
300
|
+
const publishIdentity = (resolvedInstance, agentUuid, action, opts = {}) => {
|
|
301
|
+
const adoptedFrom = action === "mint" && legacyDecision.adopt ? legacyInstance : undefined;
|
|
302
|
+
const keypair = step("identity_keys", () => ensureKeypair(input.root, resolvedInstance, adoptedFrom));
|
|
303
|
+
step("identity_register", () => ensureRegistered({
|
|
304
|
+
root: input.root,
|
|
305
|
+
instance: resolvedInstance,
|
|
306
|
+
agentUuid,
|
|
307
|
+
workspace,
|
|
308
|
+
name,
|
|
309
|
+
publicKeyPem: keypair.publicKeyPem,
|
|
310
|
+
scopes,
|
|
311
|
+
// Declared at mint only: an already-registered instance keeps whatever it
|
|
312
|
+
// declared then. Nothing downstream may treat this list as authority, so a
|
|
313
|
+
// narrow/empty list is a display gap, never a permission gap.
|
|
314
|
+
declaredCapabilities: declared,
|
|
315
|
+
now,
|
|
316
|
+
...(opts.skipExistingCheck ? { skipExistingCheck: true } : {})
|
|
317
|
+
}));
|
|
318
|
+
step("identity_alias", () => recordIdentityAlias(input.root, {
|
|
319
|
+
instance: resolvedInstance,
|
|
320
|
+
legacyInstance,
|
|
321
|
+
adoptedKeyring: Boolean(adoptedFrom),
|
|
322
|
+
at: new Date(now()).toISOString()
|
|
323
|
+
}));
|
|
324
|
+
return keypair;
|
|
325
|
+
};
|
|
326
|
+
let keypair;
|
|
327
|
+
let result;
|
|
328
|
+
if (host === "remote") {
|
|
329
|
+
result = { action: "mint", ...mintRemote() };
|
|
330
|
+
keypair = publishIdentity(result.instance, result.agentUuid, "mint", { skipExistingCheck: true });
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
// Proof of the observed binding, computed before the lock; the binding write
|
|
334
|
+
// still re-verifies proof UNDER the lock (no cache here), so a reclaim is
|
|
335
|
+
// authoritative even if the binding changed between this read and the lock.
|
|
336
|
+
const preBinding = findBinding(input.root, key);
|
|
337
|
+
const preProof = preBinding
|
|
338
|
+
? step("identity_proof", () => provesLocalKey(input.root, preBinding.instance))
|
|
339
|
+
: false;
|
|
340
|
+
let mintKeypair;
|
|
341
|
+
if (!(preBinding && preProof)) {
|
|
342
|
+
// Mint likely: publish keyring / registration / alias BEFORE the binding.
|
|
343
|
+
const cand = mint();
|
|
344
|
+
mintKeypair = publishIdentity(cand.instance, cand.agentUuid, "mint", { skipExistingCheck: true });
|
|
345
|
+
}
|
|
346
|
+
result = step("identity_binding", () => reclaimOrMint(input.root, key, {
|
|
260
347
|
verifyProof: (binding) => step("identity_proof", () => provesLocalKey(input.root, binding.instance)),
|
|
261
348
|
mint,
|
|
262
349
|
now
|
|
263
350
|
}));
|
|
351
|
+
if (result.action === "mint") {
|
|
352
|
+
keypair = mintKeypair ?? publishIdentity(result.instance, result.agentUuid, "mint", { skipExistingCheck: true });
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
// F5: we pre-registered a mint candidate but raced into a reclaim — unlink
|
|
356
|
+
// the unused candidate's orphan keypair (append-only rows left for L3).
|
|
357
|
+
if (mintKeypair && mintMemo && mintMemo.instance !== result.instance) {
|
|
358
|
+
cleanupOrphanKeypair(input.root, mintMemo.instance);
|
|
359
|
+
}
|
|
360
|
+
keypair = publishIdentity(result.instance, result.agentUuid, "reclaim");
|
|
361
|
+
}
|
|
362
|
+
}
|
|
264
363
|
trace?.phase("identity_action", { code: result.action });
|
|
265
|
-
const existingBinding = findBinding(input.root,
|
|
266
|
-
host,
|
|
267
|
-
providerSessionId,
|
|
268
|
-
workspaceId: workspace.id
|
|
269
|
-
});
|
|
270
|
-
const legacyDecision = decideLegacyAdoption({
|
|
271
|
-
legacyAlreadyAdopted: legacyAliasAlreadyAdopted(input.root, legacyInstance),
|
|
272
|
-
provedLegacyPossession: provesLocalKey(input.root, legacyInstance)
|
|
273
|
-
});
|
|
274
|
-
const adoptedFrom = result.action === "mint" && legacyDecision.adopt ? legacyInstance : undefined;
|
|
275
|
-
const keypair = step("identity_keys", () => ensureKeypair(input.root, result.instance, adoptedFrom));
|
|
276
|
-
step("identity_register", () => ensureRegistered({
|
|
277
|
-
root: input.root,
|
|
278
|
-
instance: result.instance,
|
|
279
|
-
agentUuid: result.agentUuid,
|
|
280
|
-
workspace,
|
|
281
|
-
name,
|
|
282
|
-
publicKeyPem: keypair.publicKeyPem,
|
|
283
|
-
scopes,
|
|
284
|
-
// Declared at mint only: an already-registered instance keeps whatever it
|
|
285
|
-
// declared then. Nothing downstream may treat this list as authority, so a
|
|
286
|
-
// narrow/empty list is a display gap, never a permission gap.
|
|
287
|
-
declaredCapabilities: sanitizeDeclaredCapabilities(input.declaredCapabilities),
|
|
288
|
-
now
|
|
289
|
-
}));
|
|
290
|
-
step("identity_alias", () => recordIdentityAlias(input.root, {
|
|
291
|
-
instance: result.instance,
|
|
292
|
-
legacyInstance,
|
|
293
|
-
adoptedKeyring: Boolean(adoptedFrom),
|
|
294
|
-
at: new Date(now()).toISOString()
|
|
295
|
-
}));
|
|
364
|
+
const existingBinding = findBinding(input.root, key);
|
|
296
365
|
return {
|
|
297
366
|
instance: result.instance,
|
|
298
367
|
host,
|
|
@@ -311,4 +380,210 @@ export function resolveLiveIdentity(input) {
|
|
|
311
380
|
: undefined
|
|
312
381
|
};
|
|
313
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* L2 async resolution used ONLY by the identity worker child.
|
|
385
|
+
*
|
|
386
|
+
* Same result and same security invariants as {@link resolveLiveIdentity}, with
|
|
387
|
+
* two deliberate reductions that are safe to make off the parent's event loop:
|
|
388
|
+
*
|
|
389
|
+
* 1. **Proof outside the lock.** The existing binding is read and its
|
|
390
|
+
* proof-of-possession (keypair read + registry keyring parse + signature) is
|
|
391
|
+
* computed BEFORE the identity lock is taken, then re-checked under the lock
|
|
392
|
+
* against the binding actually found — so the ~17 MB registry parse and the
|
|
393
|
+
* ed25519 sign do NOT run inside the critical section on the reconnect
|
|
394
|
+
* (reclaim) hot path. If the binding raced (its instance changed under the
|
|
395
|
+
* lock), the proof for that row is recomputed inline (rare, correct).
|
|
396
|
+
* 2. **Binding published last.** On a mint, the keyring / registration / alias
|
|
397
|
+
* are published inside the held lock BEFORE the binding row is appended, so
|
|
398
|
+
* no concurrent worker can see a binding whose keyring is not yet provable
|
|
399
|
+
* and mint a duplicate.
|
|
400
|
+
*
|
|
401
|
+
* The lock WAIT is asynchronous (cancellable between polls); a transaction
|
|
402
|
+
* already entered under the lock still finishes cooperatively.
|
|
403
|
+
*/
|
|
404
|
+
export async function resolveLiveIdentityAsync(input, options = {}) {
|
|
405
|
+
const host = input.host || "agent";
|
|
406
|
+
if (input.explicitInstance) {
|
|
407
|
+
return { instance: input.explicitInstance, host, action: "override" };
|
|
408
|
+
}
|
|
409
|
+
const now = input.now ?? Date.now;
|
|
410
|
+
// L0 (#249) spans, relocated to the worker: the ambient trace here is the
|
|
411
|
+
// worker's `identity-child` trace, so provider/keys/register/alias/proof spans
|
|
412
|
+
// fire on the worker's stderr instead of being lost off the parent loop.
|
|
413
|
+
const trace = getActiveMcpTrace();
|
|
414
|
+
const step = (name, fn) => (trace ? trace.span(name, fn) : fn());
|
|
415
|
+
// Expensive OUTSIDE-lock reads are computed ONCE and cached across the worker's
|
|
416
|
+
// retry attempts (a contended retry must not re-parse the ~17 MB registry).
|
|
417
|
+
const cache = (options.prepCache ?? {});
|
|
418
|
+
if (!cache.prepared) {
|
|
419
|
+
const label = labelFromCwd(input.cwd);
|
|
420
|
+
const readers = input.readers ?? defaultProviderSessionReaders;
|
|
421
|
+
const provider = step("identity_provider", () => resolveProviderSession({ host, cwd: input.cwd, readers }));
|
|
422
|
+
const realPath = realWorkspacePath(input.cwd);
|
|
423
|
+
const workspaceId = durableWorkspaceId(realPath) ??
|
|
424
|
+
provider.workspaceHint ??
|
|
425
|
+
deriveWorkspaceId({ machineId: readMachineId(), path: realPath });
|
|
426
|
+
const workspace = { id: workspaceId, path: realPath, host, label };
|
|
427
|
+
const legacyInstance = `${host}:${label}`;
|
|
428
|
+
const scopes = input.scopes?.length ? input.scopes : ["scope:default"];
|
|
429
|
+
const hostName = input.name === undefined
|
|
430
|
+
? readHostSessionName({ host, cwd: input.cwd, sessionId: provider.providerSessionId })
|
|
431
|
+
: undefined;
|
|
432
|
+
const name = input.name ?? hostName ?? label;
|
|
433
|
+
const providerSessionId = provider.providerSessionId ?? `fallback:${host}:${workspace.id}`;
|
|
434
|
+
const key = { host, providerSessionId, workspaceId: workspace.id };
|
|
435
|
+
// The binding read (small file) + its proof-of-possession (keypair read +
|
|
436
|
+
// registry keyring parse + ed25519 sign) done OUTSIDE the lock.
|
|
437
|
+
const preBinding = findBinding(input.root, key);
|
|
438
|
+
const preProof = preBinding
|
|
439
|
+
? step("identity_proof", () => provesLocalKey(input.root, preBinding.instance))
|
|
440
|
+
: false;
|
|
441
|
+
const legacyDecision = decideLegacyAdoption({
|
|
442
|
+
legacyAlreadyAdopted: legacyAliasAlreadyAdopted(input.root, legacyInstance),
|
|
443
|
+
provedLegacyPossession: provesLocalKey(input.root, legacyInstance)
|
|
444
|
+
});
|
|
445
|
+
cache.prepared = {
|
|
446
|
+
provider,
|
|
447
|
+
workspace,
|
|
448
|
+
legacyInstance,
|
|
449
|
+
scopes,
|
|
450
|
+
name,
|
|
451
|
+
key,
|
|
452
|
+
preBinding,
|
|
453
|
+
preProof,
|
|
454
|
+
legacyDecision,
|
|
455
|
+
declared: sanitizeDeclaredCapabilities(input.declaredCapabilities)
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
const P = cache.prepared;
|
|
459
|
+
const mint = () => {
|
|
460
|
+
if (options.mintMemo?.value)
|
|
461
|
+
return options.mintMemo.value;
|
|
462
|
+
const agentUuid = mintAgentUuid();
|
|
463
|
+
const minted = { agentUuid, instance: deriveInstanceId({ host, label: P.name, uuid: agentUuid }) };
|
|
464
|
+
if (options.mintMemo)
|
|
465
|
+
options.mintMemo.value = minted;
|
|
466
|
+
return minted;
|
|
467
|
+
};
|
|
468
|
+
const mintRemote = () => {
|
|
469
|
+
if (options.mintMemo?.value)
|
|
470
|
+
return options.mintMemo.value;
|
|
471
|
+
const agentUuid = mintAgentUuid();
|
|
472
|
+
const minted = {
|
|
473
|
+
agentUuid,
|
|
474
|
+
instance: P.provider.providerSessionId
|
|
475
|
+
? remoteBridgeInstance(P.provider.providerSessionId)
|
|
476
|
+
: deriveInstanceId({ host, label: P.name, uuid: agentUuid })
|
|
477
|
+
};
|
|
478
|
+
if (options.mintMemo)
|
|
479
|
+
options.mintMemo.value = minted;
|
|
480
|
+
return minted;
|
|
481
|
+
};
|
|
482
|
+
const publishIdentity = (resolvedInstance, agentUuid, action, opts = {}) => {
|
|
483
|
+
const adoptedFrom = action === "mint" && P.legacyDecision.adopt ? P.legacyInstance : undefined;
|
|
484
|
+
const keypair = step("identity_keys", () => ensureKeypair(input.root, resolvedInstance, adoptedFrom));
|
|
485
|
+
step("identity_register", () => ensureRegistered({
|
|
486
|
+
root: input.root,
|
|
487
|
+
instance: resolvedInstance,
|
|
488
|
+
agentUuid,
|
|
489
|
+
workspace: P.workspace,
|
|
490
|
+
name: P.name,
|
|
491
|
+
publicKeyPem: keypair.publicKeyPem,
|
|
492
|
+
scopes: P.scopes,
|
|
493
|
+
declaredCapabilities: P.declared,
|
|
494
|
+
now,
|
|
495
|
+
...(options.registryLockTimeoutMs !== undefined
|
|
496
|
+
? { lockTimeoutMs: options.registryLockTimeoutMs }
|
|
497
|
+
: {}),
|
|
498
|
+
...(opts.skipExistingCheck ? { skipExistingCheck: true } : {})
|
|
499
|
+
}));
|
|
500
|
+
step("identity_alias", () => recordIdentityAlias(input.root, {
|
|
501
|
+
instance: resolvedInstance,
|
|
502
|
+
legacyInstance: P.legacyInstance,
|
|
503
|
+
adoptedKeyring: Boolean(adoptedFrom),
|
|
504
|
+
at: new Date(now()).toISOString()
|
|
505
|
+
}));
|
|
506
|
+
return keypair;
|
|
507
|
+
};
|
|
508
|
+
let keypair;
|
|
509
|
+
let result;
|
|
510
|
+
if (host === "remote") {
|
|
511
|
+
result = { action: "mint", ...mintRemote() };
|
|
512
|
+
keypair = publishIdentity(result.instance, result.agentUuid, "mint", { skipExistingCheck: true });
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
const willReclaim = Boolean(P.preBinding && P.preProof);
|
|
516
|
+
let mintKeypair;
|
|
517
|
+
if (!willReclaim) {
|
|
518
|
+
// Mint likely: publish keyring / registration / alias BEFORE the binding
|
|
519
|
+
// append — window closure BY ORDER (a reader can only observe the binding
|
|
520
|
+
// after its keyring is durable). Done OUTSIDE the tiny identity-lock
|
|
521
|
+
// section; a contended attempt fails here on the SHORT registry timeout
|
|
522
|
+
// (no registry parse, since the dedup runs inside the lock) and the worker
|
|
523
|
+
// retries WITHOUT re-parsing (this prep is cached) and WITHOUT the identity
|
|
524
|
+
// lock held.
|
|
525
|
+
const cand = mint();
|
|
526
|
+
mintKeypair = publishIdentity(cand.instance, cand.agentUuid, "mint", { skipExistingCheck: true });
|
|
527
|
+
}
|
|
528
|
+
// The critical section is now TINY: fresh findBinding + (reclaim | append).
|
|
529
|
+
// No registry parse, no keygen, no proof sign under the identity lock on the
|
|
530
|
+
// hot path. `reclaimOrMint*` remains the UNIQUE binding append.
|
|
531
|
+
result = await reclaimOrMintAsync(input.root, P.key, {
|
|
532
|
+
// F2 TOCTOU: trust the cached proof ONLY when it is a POSITIVE proof, for
|
|
533
|
+
// the SAME binding, on the FIRST attempt (ms-fresh vs the pre-read).
|
|
534
|
+
// Otherwise recompute the proof UNDER the lock:
|
|
535
|
+
// - negative cache: a racing (sync-order) writer may have published the
|
|
536
|
+
// keyring after our pre-read; not re-checking mints a DUPLICATE binding.
|
|
537
|
+
// - positive on a retry: a key may have been revoked during contention.
|
|
538
|
+
// - a changed binding: the cache is for a different row.
|
|
539
|
+
verifyProof: (binding) => {
|
|
540
|
+
const trustCache = (options.attempt ?? 0) === 0 &&
|
|
541
|
+
binding.instance === P.preBinding?.instance &&
|
|
542
|
+
P.preProof === true;
|
|
543
|
+
return trustCache
|
|
544
|
+
? true
|
|
545
|
+
: step("identity_proof", () => provesLocalKey(input.root, binding.instance));
|
|
546
|
+
},
|
|
547
|
+
mint,
|
|
548
|
+
now
|
|
549
|
+
}, {
|
|
550
|
+
...(options.signal ? { signal: options.signal } : {}),
|
|
551
|
+
...(options.deadlineMs !== undefined ? { deadlineMs: options.deadlineMs } : {})
|
|
552
|
+
});
|
|
553
|
+
if (result.action === "mint") {
|
|
554
|
+
keypair =
|
|
555
|
+
mintKeypair ??
|
|
556
|
+
publishIdentity(result.instance, result.agentUuid, "mint", { skipExistingCheck: true });
|
|
557
|
+
}
|
|
558
|
+
else {
|
|
559
|
+
// Reclaim (or raced into a reclaim): ensure the keyring/registration exist
|
|
560
|
+
// (idempotent). Any pre-registered mint candidate we did not use is an
|
|
561
|
+
// orphan registration with no binding — allowed (never a keyless binding).
|
|
562
|
+
// F5: unlink the unused candidate's orphan KEYPAIR (cheap); the append-only
|
|
563
|
+
// registration/alias rows are left for L3 compaction.
|
|
564
|
+
if (mintKeypair && options.mintMemo?.value && options.mintMemo.value.instance !== result.instance) {
|
|
565
|
+
cleanupOrphanKeypair(input.root, options.mintMemo.value.instance);
|
|
566
|
+
}
|
|
567
|
+
keypair = publishIdentity(result.instance, result.agentUuid, "reclaim");
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
const existingBinding = findBinding(input.root, P.key);
|
|
571
|
+
return {
|
|
572
|
+
instance: result.instance,
|
|
573
|
+
host,
|
|
574
|
+
workspace: P.workspace,
|
|
575
|
+
name: P.name,
|
|
576
|
+
legacyInstance: P.legacyInstance,
|
|
577
|
+
action: result.action,
|
|
578
|
+
providerSessionSource: P.provider.source,
|
|
579
|
+
...(P.provider.providerSessionId !== undefined
|
|
580
|
+
? { providerSessionId: P.provider.providerSessionId }
|
|
581
|
+
: {}),
|
|
582
|
+
privateKeyPath: keypair.privateKeyPath,
|
|
583
|
+
publicKeyPath: keypair.publicKeyPath,
|
|
584
|
+
migrationNotice: result.action === "mint" || !existingBinding
|
|
585
|
+
? `identity migration: ${result.instance} reads legacy ${P.legacyInstance}; ${P.legacyDecision.reason}`
|
|
586
|
+
: undefined
|
|
587
|
+
};
|
|
588
|
+
}
|
|
314
589
|
//# sourceMappingURL=live.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/runtime/identity/live.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/runtime/identity/live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L2 identity worker — the dedicated, non-detached child that resolves the
|
|
3
|
+
* shared identity OFF the parent's MCP event loop.
|
|
4
|
+
*
|
|
5
|
+
* It receives ONE typed request over IPC, runs the canonical async resolution
|
|
6
|
+
* (the same writer path as the CLI — `resolveLiveIdentityAsync`, whose only
|
|
7
|
+
* append of a binding row is `reclaimOrMint*`), and returns ONE response. It
|
|
8
|
+
* publishes NO presence, NO tool signature, NO wake, NO readiness ACK; those are
|
|
9
|
+
* the parent's job after it validates the result. No PEM ever crosses IPC — only
|
|
10
|
+
* paths, which the parent re-validates against the canonical key layout.
|
|
11
|
+
*
|
|
12
|
+
* It is argv-only (the request arrives over IPC), stdout is ignored (it must
|
|
13
|
+
* never emit protocol traffic), and diagnostics go to stderr. A cancel makes it
|
|
14
|
+
* stop starting any NEW transaction (cooperative); a transaction already entered
|
|
15
|
+
* under a lock finishes so no half-written binding is left, and the lock is
|
|
16
|
+
* released in the resolver's `finally`.
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/runtime/identity/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|