@sentropic/h2a 0.97.2 → 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/bin.js +13 -0
- package/dist/bin.js.map +1 -1
- package/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +94 -37
- 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 +2 -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 +65 -2
- 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 +346 -65
- 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 +34 -0
- package/dist/runtime/local-files/locks.d.ts.map +1 -1
- package/dist/runtime/local-files/locks.js +55 -2
- 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 +79 -10
- package/dist/runtime/local-files/store.js.map +1 -1
- package/dist/runtime/mcp/discovery-pagination.d.ts +73 -0
- package/dist/runtime/mcp/discovery-pagination.d.ts.map +1 -0
- package/dist/runtime/mcp/discovery-pagination.js +446 -0
- package/dist/runtime/mcp/discovery-pagination.js.map +1 -0
- package/dist/runtime/mcp/frame-budget.d.ts +149 -0
- package/dist/runtime/mcp/frame-budget.d.ts.map +1 -0
- package/dist/runtime/mcp/frame-budget.js +275 -0
- package/dist/runtime/mcp/frame-budget.js.map +1 -0
- package/dist/runtime/mcp/handlers.d.ts +14 -3
- package/dist/runtime/mcp/handlers.d.ts.map +1 -1
- package/dist/runtime/mcp/handlers.js +22 -1
- package/dist/runtime/mcp/handlers.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 +2 -0
- package/dist/runtime/mcp/index.d.ts.map +1 -1
- package/dist/runtime/mcp/index.js +2 -0
- package/dist/runtime/mcp/index.js.map +1 -1
- package/dist/runtime/mcp/notifications.d.ts +13 -1
- package/dist/runtime/mcp/notifications.d.ts.map +1 -1
- package/dist/runtime/mcp/notifications.js +36 -20
- package/dist/runtime/mcp/notifications.js.map +1 -1
- package/dist/runtime/mcp/payload-store.d.ts +67 -0
- package/dist/runtime/mcp/payload-store.d.ts.map +1 -0
- package/dist/runtime/mcp/payload-store.js +242 -0
- package/dist/runtime/mcp/payload-store.js.map +1 -0
- package/dist/runtime/mcp/phase-trace.d.ts +98 -0
- package/dist/runtime/mcp/phase-trace.d.ts.map +1 -0
- package/dist/runtime/mcp/phase-trace.js +179 -0
- package/dist/runtime/mcp/phase-trace.js.map +1 -0
- package/dist/runtime/mcp/server.d.ts +36 -1
- package/dist/runtime/mcp/server.d.ts.map +1 -1
- package/dist/runtime/mcp/server.js +162 -5
- 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 +378 -98
- 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 +47 -4
- package/dist/runtime/mcp/tools.js.map +1 -1
- package/dist/runtime/mcp-central.d.ts.map +1 -1
- package/dist/runtime/mcp-central.js +17 -7
- package/dist/runtime/mcp-central.js.map +1 -1
- package/dist/runtime/mcp-http/hosted-mcp-server.d.ts.map +1 -1
- package/dist/runtime/mcp-http/hosted-mcp-server.js +16 -6
- package/dist/runtime/mcp-http/hosted-mcp-server.js.map +1 -1
- package/dist/runtime/mcp-http/readonly-allowlist.d.ts.map +1 -1
- package/dist/runtime/mcp-http/readonly-allowlist.js +6 -0
- package/dist/runtime/mcp-http/readonly-allowlist.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,10 +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
|
-
import {
|
|
7
|
+
import { getActiveMcpTrace } from "../mcp/phase-trace.js";
|
|
8
|
+
import { findBinding, reclaimOrMint, reclaimOrMintAsync, verifyReclaimProof } from "./bindings.js";
|
|
8
9
|
import { decideLegacyAdoption, legacyAliasAlreadyAdopted, recordIdentityAlias } from "./migration.js";
|
|
9
10
|
import { defaultProviderSessionReaders, readHostSessionName } from "./readers.js";
|
|
10
11
|
import { resolveProviderSession } from "./resolver.js";
|
|
@@ -152,6 +153,26 @@ function ensureKeypair(root, instance, adoptFromInstance) {
|
|
|
152
153
|
writeFileSync(paths.publicKeyPath, generated.publicKeyPem, "utf8");
|
|
153
154
|
return { publicKeyPem: generated.publicKeyPem, ...paths };
|
|
154
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
|
+
}
|
|
155
176
|
function provesLocalKey(root, instance) {
|
|
156
177
|
const store = createLocalStore({ root });
|
|
157
178
|
const keypair = readKeypair(root, instance);
|
|
@@ -170,31 +191,38 @@ function provesLocalKey(root, instance) {
|
|
|
170
191
|
}
|
|
171
192
|
}
|
|
172
193
|
function ensureRegistered(input) {
|
|
173
|
-
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
|
+
}
|
|
174
223
|
const existing = store.findInstance(input.instance);
|
|
175
224
|
if (!existing) {
|
|
176
|
-
|
|
177
|
-
id: input.instance,
|
|
178
|
-
instance: input.instance,
|
|
179
|
-
roles: ["AGENTS"],
|
|
180
|
-
scopes: [...input.scopes],
|
|
181
|
-
// AUTHORITY-BEARING and intentionally left EMPTY, exactly as before this
|
|
182
|
-
// workstream: it is the subagent ceiling and the attestation right. A
|
|
183
|
-
// display list must never be written here (architect ruling, 2026-07-25).
|
|
184
|
-
capabilities: [],
|
|
185
|
-
endpoints: [{ kind: "local-files", uri: `file://${input.root}` }],
|
|
186
|
-
publicKeys: [input.publicKeyPem],
|
|
187
|
-
acceptedPolicies: [],
|
|
188
|
-
agentUuid: input.agentUuid,
|
|
189
|
-
workspace: input.workspace,
|
|
190
|
-
name: input.name,
|
|
191
|
-
createdAt: new Date(input.now()).toISOString(),
|
|
192
|
-
// The declared DISPLAY list, kept structurally apart from `capabilities`.
|
|
193
|
-
...(input.declaredCapabilities.length > 0
|
|
194
|
-
? { declaredCapabilities: [...input.declaredCapabilities] }
|
|
195
|
-
: {})
|
|
196
|
-
};
|
|
197
|
-
store.registerInstance(registration);
|
|
225
|
+
store.registerInstance(buildRegistration());
|
|
198
226
|
return;
|
|
199
227
|
}
|
|
200
228
|
if (!store.listInstanceKeys(input.instance).includes(input.publicKeyPem)) {
|
|
@@ -202,13 +230,17 @@ function ensureRegistered(input) {
|
|
|
202
230
|
}
|
|
203
231
|
}
|
|
204
232
|
export function resolveLiveIdentity(input) {
|
|
233
|
+
// L0 identity spans: provider resolution, key prep, proof, enrollment, alias.
|
|
234
|
+
// NEVER a PEM or a private path in an event — only the phase and its timing.
|
|
235
|
+
const trace = getActiveMcpTrace();
|
|
236
|
+
const step = (name, fn) => (trace ? trace.span(name, fn) : fn());
|
|
205
237
|
const host = input.host || "agent";
|
|
206
238
|
const label = labelFromCwd(input.cwd);
|
|
207
239
|
if (input.explicitInstance) {
|
|
208
240
|
return { instance: input.explicitInstance, host, action: "override" };
|
|
209
241
|
}
|
|
210
242
|
const readers = input.readers ?? defaultProviderSessionReaders;
|
|
211
|
-
const provider = resolveProviderSession({ host, cwd: input.cwd, readers });
|
|
243
|
+
const provider = step("identity_provider", () => resolveProviderSession({ host, cwd: input.cwd, readers }));
|
|
212
244
|
const realPath = realWorkspacePath(input.cwd);
|
|
213
245
|
const workspaceId = durableWorkspaceId(realPath) ??
|
|
214
246
|
provider.workspaceHint ??
|
|
@@ -228,65 +260,108 @@ export function resolveLiveIdentity(input) {
|
|
|
228
260
|
? readHostSessionName({ host, cwd: input.cwd, sessionId: provider.providerSessionId })
|
|
229
261
|
: undefined;
|
|
230
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;
|
|
231
266
|
const mint = () => {
|
|
267
|
+
if (mintMemo)
|
|
268
|
+
return mintMemo;
|
|
232
269
|
const agentUuid = mintAgentUuid();
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
instance: deriveInstanceId({ host, label: name, uuid: agentUuid })
|
|
236
|
-
};
|
|
270
|
+
mintMemo = { agentUuid, instance: deriveInstanceId({ host, label: name, uuid: agentUuid }) };
|
|
271
|
+
return mintMemo;
|
|
237
272
|
};
|
|
238
273
|
const mintRemote = () => {
|
|
274
|
+
if (mintMemo)
|
|
275
|
+
return mintMemo;
|
|
239
276
|
const agentUuid = mintAgentUuid();
|
|
240
|
-
|
|
277
|
+
mintMemo = {
|
|
241
278
|
agentUuid,
|
|
242
279
|
instance: provider.providerSessionId
|
|
243
280
|
? remoteBridgeInstance(provider.providerSessionId)
|
|
244
281
|
: deriveInstanceId({ host, label: name, uuid: agentUuid })
|
|
245
282
|
};
|
|
283
|
+
return mintMemo;
|
|
246
284
|
};
|
|
247
285
|
// Re-anchor: the conversation UUID is the identity unit. When no provider
|
|
248
286
|
// session id is readable, fall back to a per-workspace-STABLE id (no
|
|
249
287
|
// timestamp) so that degenerate case keeps the old per-workspace reclaim
|
|
250
288
|
// behavior instead of minting a fresh id on every connect.
|
|
251
289
|
const providerSessionId = provider.providerSessionId ?? `fallback:${host}:${workspace.id}`;
|
|
252
|
-
const
|
|
253
|
-
? { action: "mint", ...mintRemote() }
|
|
254
|
-
: reclaimOrMint(input.root, { host, providerSessionId, workspaceId: workspace.id }, {
|
|
255
|
-
verifyProof: (binding) => provesLocalKey(input.root, binding.instance),
|
|
256
|
-
mint,
|
|
257
|
-
now
|
|
258
|
-
});
|
|
259
|
-
const existingBinding = findBinding(input.root, {
|
|
260
|
-
host,
|
|
261
|
-
providerSessionId,
|
|
262
|
-
workspaceId: workspace.id
|
|
263
|
-
});
|
|
290
|
+
const key = { host, providerSessionId, workspaceId: workspace.id };
|
|
264
291
|
const legacyDecision = decideLegacyAdoption({
|
|
265
292
|
legacyAlreadyAdopted: legacyAliasAlreadyAdopted(input.root, legacyInstance),
|
|
266
293
|
provedLegacyPossession: provesLocalKey(input.root, legacyInstance)
|
|
267
294
|
});
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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, {
|
|
347
|
+
verifyProof: (binding) => step("identity_proof", () => provesLocalKey(input.root, binding.instance)),
|
|
348
|
+
mint,
|
|
349
|
+
now
|
|
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
|
+
}
|
|
363
|
+
trace?.phase("identity_action", { code: result.action });
|
|
364
|
+
const existingBinding = findBinding(input.root, key);
|
|
290
365
|
return {
|
|
291
366
|
instance: result.instance,
|
|
292
367
|
host,
|
|
@@ -305,4 +380,210 @@ export function resolveLiveIdentity(input) {
|
|
|
305
380
|
: undefined
|
|
306
381
|
};
|
|
307
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
|
+
}
|
|
308
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"}
|