@cotal-ai/auth 0.48.2 → 0.49.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/auth-admin.d.ts +4 -0
- package/dist/auth-admin.d.ts.map +1 -1
- package/dist/auth-admin.js +18 -12
- package/dist/auth-admin.js.map +1 -1
- package/dist/authority-client.d.ts +2 -5
- package/dist/authority-client.d.ts.map +1 -1
- package/dist/authority-client.js +10 -17
- package/dist/authority-client.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/manager-admin-authorization.d.ts +17 -0
- package/dist/manager-admin-authorization.d.ts.map +1 -0
- package/dist/manager-admin-authorization.js +91 -0
- package/dist/manager-admin-authorization.js.map +1 -0
- package/dist/manager-authority.d.ts.map +1 -1
- package/dist/manager-authority.js +41 -7
- package/dist/manager-authority.js.map +1 -1
- package/dist/manager-goal-index.d.ts +17 -0
- package/dist/manager-goal-index.d.ts.map +1 -0
- package/dist/manager-goal-index.js +80 -0
- package/dist/manager-goal-index.js.map +1 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +128 -2
- package/dist/provider.js.map +1 -1
- package/dist/records-scanner.d.ts +17 -9
- package/dist/records-scanner.d.ts.map +1 -1
- package/dist/records-scanner.js +131 -10
- package/dist/records-scanner.js.map +1 -1
- package/dist/retained-manager-validation.d.ts +27 -0
- package/dist/retained-manager-validation.d.ts.map +1 -0
- package/dist/retained-manager-validation.js +139 -0
- package/dist/retained-manager-validation.js.map +1 -0
- package/dist/service.d.ts +67 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +128 -10
- package/dist/service.js.map +1 -1
- package/package.json +4 -4
package/dist/records-scanner.js
CHANGED
|
@@ -47,12 +47,13 @@
|
|
|
47
47
|
* same-or-narrower filter stays covered by that composition assumption, not by the check.
|
|
48
48
|
*/
|
|
49
49
|
import { AckPolicy, DeliverPolicy, JetStreamApiCodes, JetStreamApiError, jetstream, jetstreamManager } from "@nats-io/jetstream";
|
|
50
|
-
import { EpEnvelopeError, assertInboxConnId, recordsBucket, recordsKvStreamName } from "@cotal-ai/core";
|
|
50
|
+
import { EpEnvelopeError, RECORD_KINDS, assertDerivedOwnerToken, assertInboxConnId, parseGoalIndexEntry, parseRecordKey, recordsBucket, recordsKvStreamName } from "@cotal-ai/core";
|
|
51
51
|
import { openAuthorityClient } from "./authority-client.js";
|
|
52
52
|
/** The ONE literal consumer name every obligation scan over the records stream reuses (the grant
|
|
53
53
|
* pins exactly this token; separate from the auth-ledger scanner's — fact-5, one name per stream).
|
|
54
54
|
* Scans over it serialize on the MODULE-LEVEL per-space chain below, never a per-instance lock. */
|
|
55
55
|
const RECORDS_SCANNER_CONSUMER_NAME = "cotal-records-scan";
|
|
56
|
+
const MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME = "cotal-manager-goalidx-scan";
|
|
56
57
|
/** fact-5 ENFORCED (panel HIGH): the serialization critical section for a space's literal consumer
|
|
57
58
|
* name lives at MODULE level, keyed by space, so two branded same-space instances share one chain
|
|
58
59
|
* and can never interleave pre-clean/create/fetch/delete on that name (a per-instance lock cannot
|
|
@@ -139,7 +140,7 @@ export async function openRecordsScannerCandidate(opts) {
|
|
|
139
140
|
if (activated)
|
|
140
141
|
throw new EpEnvelopeError("failed-precondition", "this records scanner candidate is already activated (one branded scanner per candidate)");
|
|
141
142
|
activated = true;
|
|
142
|
-
return buildScanner(client.nc, opts.space, () => client.close(),
|
|
143
|
+
return buildScanner(client.nc, opts.space, () => client.close(), opts.probe, guard);
|
|
143
144
|
},
|
|
144
145
|
close: async () => {
|
|
145
146
|
closed = true;
|
|
@@ -272,6 +273,113 @@ function buildScanner(nc, space, onClose, probe, guard) {
|
|
|
272
273
|
catch { /* orphan collected by inactivity */ }
|
|
273
274
|
}
|
|
274
275
|
};
|
|
276
|
+
const scanManagerGoalIndexOnce = async (owner) => {
|
|
277
|
+
const expectedOwner = assertDerivedOwnerToken(owner);
|
|
278
|
+
const jsm = await jsmOf();
|
|
279
|
+
const js = jsOf();
|
|
280
|
+
const rawFilter = `goalidx.manager.${expectedOwner}.>`;
|
|
281
|
+
const filter = `$KV.${bucket}.${rawFilter}`;
|
|
282
|
+
let provedAbsent = false;
|
|
283
|
+
try {
|
|
284
|
+
provedAbsent = (await jsm.consumers.delete(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME)) === true;
|
|
285
|
+
}
|
|
286
|
+
catch (e) {
|
|
287
|
+
if (isConsumerNotFound(e))
|
|
288
|
+
provedAbsent = true;
|
|
289
|
+
else
|
|
290
|
+
throw new EpEnvelopeError("unavailable", `the manager goal-index scanner could not prove its literal consumer absent before create: ${e?.message ?? String(e)}`);
|
|
291
|
+
}
|
|
292
|
+
if (!provedAbsent)
|
|
293
|
+
throw new EpEnvelopeError("unavailable", "the manager goal-index scanner did not confirm its literal consumer deleted or absent");
|
|
294
|
+
try {
|
|
295
|
+
await jsm.consumers.add(stream, {
|
|
296
|
+
name: MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME,
|
|
297
|
+
filter_subject: filter,
|
|
298
|
+
ack_policy: AckPolicy.None,
|
|
299
|
+
deliver_policy: DeliverPolicy.LastPerSubject,
|
|
300
|
+
mem_storage: true,
|
|
301
|
+
inactive_threshold: INACTIVE_THRESHOLD_NS,
|
|
302
|
+
});
|
|
303
|
+
const info = await jsm.consumers.info(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME);
|
|
304
|
+
const cfg = info.config;
|
|
305
|
+
const drift = cfg.name !== MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME ? `name=${cfg.name}` :
|
|
306
|
+
cfg.filter_subject !== filter ? `filter=${cfg.filter_subject}` :
|
|
307
|
+
(Array.isArray(cfg.filter_subjects) && cfg.filter_subjects.length > 0) ? `filter_subjects=${JSON.stringify(cfg.filter_subjects)}` :
|
|
308
|
+
cfg.deliver_subject !== undefined ? `deliver_subject=${cfg.deliver_subject}` :
|
|
309
|
+
cfg.durable_name !== undefined ? `durable=${cfg.durable_name}` :
|
|
310
|
+
cfg.ack_policy !== AckPolicy.None ? `ack=${cfg.ack_policy}` :
|
|
311
|
+
cfg.deliver_policy !== DeliverPolicy.LastPerSubject ? `deliver=${cfg.deliver_policy}` :
|
|
312
|
+
cfg.mem_storage !== true ? `mem_storage=${cfg.mem_storage}` :
|
|
313
|
+
cfg.inactive_threshold !== INACTIVE_THRESHOLD_NS ? `inactive_threshold=${cfg.inactive_threshold}` :
|
|
314
|
+
undefined;
|
|
315
|
+
if (drift !== undefined)
|
|
316
|
+
throw new EpEnvelopeError("failed-precondition", `the manager goal-index scanner's consumer does not carry the forced pull/LastPerSubject shape (${drift})`);
|
|
317
|
+
if (probe?.afterManagerGoalIndexCreate)
|
|
318
|
+
await probe.afterManagerGoalIndexCreate();
|
|
319
|
+
const latest = new Map();
|
|
320
|
+
const consumer = await js.consumers.get(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME);
|
|
321
|
+
let noProgress = 0;
|
|
322
|
+
for (let round = 0;; round++) {
|
|
323
|
+
const pending = (await consumer.info()).num_pending;
|
|
324
|
+
if (pending === 0)
|
|
325
|
+
break;
|
|
326
|
+
if (round >= MAX_DRAIN_ROUNDS)
|
|
327
|
+
throw new EpEnvelopeError("unavailable", `the manager goal-index scanner never settled to zero pending after ${round} rounds`);
|
|
328
|
+
const iter = await consumer.fetch({ max_messages: Math.min(pending, 256), expires: 5_000 });
|
|
329
|
+
let got = 0;
|
|
330
|
+
for await (const m of iter) {
|
|
331
|
+
got++;
|
|
332
|
+
if (!matchesFilter(m.subject, filter))
|
|
333
|
+
throw new EpEnvelopeError("internal", `the manager goal-index scanner received subject ${m.subject} outside ${filter}`);
|
|
334
|
+
if (!Number.isSafeInteger(m.seq) || m.seq <= 0)
|
|
335
|
+
throw new EpEnvelopeError("internal", `the manager goal-index scanner received invalid sequence ${m.seq}`);
|
|
336
|
+
const prev = latest.get(m.subject);
|
|
337
|
+
if (prev === undefined || m.seq > prev.seq)
|
|
338
|
+
latest.set(m.subject, { data: m.data, seq: m.seq, op: m.headers?.get("KV-Operation") || undefined });
|
|
339
|
+
}
|
|
340
|
+
if (round === 0 && probe?.afterManagerGoalIndexFirstFetch)
|
|
341
|
+
await probe.afterManagerGoalIndexFirstFetch();
|
|
342
|
+
if (got === 0) {
|
|
343
|
+
if (++noProgress >= MAX_NO_PROGRESS_ROUNDS)
|
|
344
|
+
throw new EpEnvelopeError("unavailable", "the manager goal-index scanner reported pending but delivered nothing");
|
|
345
|
+
}
|
|
346
|
+
else
|
|
347
|
+
noProgress = 0;
|
|
348
|
+
}
|
|
349
|
+
const out = [];
|
|
350
|
+
for (const [subject, row] of latest) {
|
|
351
|
+
const key = subject.slice(keyPrefixLen);
|
|
352
|
+
if (row.op !== undefined)
|
|
353
|
+
throw new EpEnvelopeError("failed-precondition", `manager goal-index entry ${key} carries a ${row.op} marker; a deletion is never a live index row`);
|
|
354
|
+
let raw;
|
|
355
|
+
try {
|
|
356
|
+
raw = JSON.parse(new TextDecoder().decode(row.data));
|
|
357
|
+
}
|
|
358
|
+
catch (e) {
|
|
359
|
+
throw new EpEnvelopeError("internal", `manager goal-index entry ${key} does not decode as JSON: ${e.message}`);
|
|
360
|
+
}
|
|
361
|
+
const parsed = parseGoalIndexEntry(raw, key);
|
|
362
|
+
const parsedKey = parseRecordKey(key);
|
|
363
|
+
if (parsedKey?.def !== RECORD_KINDS.goalidx || parsedKey.part !== "atomic")
|
|
364
|
+
throw new EpEnvelopeError("internal", `manager goal-index scanner received ${key}, which is not an atomic goalidx key`);
|
|
365
|
+
const bodyQualifiers = [parsed.endpoint, parsed.owner, parsed.actor, parsed.uid, parsed.goalId];
|
|
366
|
+
if (JSON.stringify(parsedKey.qualifiers) !== JSON.stringify(bodyQualifiers))
|
|
367
|
+
throw new EpEnvelopeError("internal", `manager goal-index entry body qualifiers ${JSON.stringify(bodyQualifiers)} do not match key ${key}`);
|
|
368
|
+
if (parsed.endpoint !== "manager")
|
|
369
|
+
throw new EpEnvelopeError("internal", `manager goal-index scanner returned endpoint ${parsed.endpoint}`);
|
|
370
|
+
if (parsed.owner !== expectedOwner)
|
|
371
|
+
throw new EpEnvelopeError("internal", `manager goal-index scanner delivered foreign owner ${parsed.owner} outside ${expectedOwner}`);
|
|
372
|
+
out.push(parsed);
|
|
373
|
+
}
|
|
374
|
+
return out;
|
|
375
|
+
}
|
|
376
|
+
finally {
|
|
377
|
+
try {
|
|
378
|
+
await jsm.consumers.delete(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME);
|
|
379
|
+
}
|
|
380
|
+
catch { /* bounded inactivity is the orphan backstop */ }
|
|
381
|
+
}
|
|
382
|
+
};
|
|
275
383
|
// FROZEN before branding (capability integrity): the brand keys this exact reference, and the
|
|
276
384
|
// freeze guarantees its ops are still the module's when an install seam asserts the brand — a
|
|
277
385
|
// post-brand method swap throws (strict mode) instead of surviving as a silent-empty scanner.
|
|
@@ -286,20 +394,29 @@ function buildScanner(nc, space, onClose, probe, guard) {
|
|
|
286
394
|
await guard.assertHeld("after");
|
|
287
395
|
return out;
|
|
288
396
|
}),
|
|
397
|
+
scanManagerGoalIndex: (owner) => serializedForSpace(space, async () => {
|
|
398
|
+
if (guard === undefined)
|
|
399
|
+
return scanManagerGoalIndexOnce(owner);
|
|
400
|
+
await guard.assertHeld("before");
|
|
401
|
+
const out = await scanManagerGoalIndexOnce(owner);
|
|
402
|
+
await guard.assertHeld("after");
|
|
403
|
+
return out;
|
|
404
|
+
}),
|
|
289
405
|
close: onClose,
|
|
290
406
|
});
|
|
291
407
|
RECORDS_SCANNER_BRAND.set(scanner, space);
|
|
292
408
|
return scanner;
|
|
293
409
|
}
|
|
294
410
|
/**
|
|
295
|
-
* The SEALED records scanner's credential grant on the RECORDS stream (SPEC 13.9): exactly
|
|
296
|
-
* literal
|
|
297
|
-
* {@link RECORDS_SCANNER_CONSUMER_NAME}
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
*
|
|
411
|
+
* The SEALED records scanner's credential grant on the RECORDS stream (SPEC 13.9): exactly two
|
|
412
|
+
* literal consumers' lifecycles. CREATE/INFO/NEXT/DELETE are pinned to
|
|
413
|
+
* {@link RECORDS_SCANNER_CONSUMER_NAME} for the `oblig.` subtree and to
|
|
414
|
+
* {@link MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME} for the manager `goalidx` subtree, plus the stream
|
|
415
|
+
* shape read and scoped inbox. This is the ONLY profile that holds `CONSUMER.CREATE` on
|
|
416
|
+
* `KV_cotal_records_<space>` for either enumeration. {@link openRecordsScannerCandidate} opens it for
|
|
417
|
+
* the trusted process and it is NEVER registered as an external/mintable profile. The bucket is
|
|
418
|
+
* DERIVED from the validated space and both names are module constants, so no caller-supplied token
|
|
419
|
+
* forms a privileged subject.
|
|
303
420
|
*/
|
|
304
421
|
export function recordsScannerGrants(space, connId) {
|
|
305
422
|
const bucket = recordsBucket(space);
|
|
@@ -313,6 +430,10 @@ export function recordsScannerGrants(space, connId) {
|
|
|
313
430
|
`$JS.API.CONSUMER.INFO.${stream}.${RECORDS_SCANNER_CONSUMER_NAME}`,
|
|
314
431
|
`$JS.API.CONSUMER.MSG.NEXT.${stream}.${RECORDS_SCANNER_CONSUMER_NAME}`,
|
|
315
432
|
`$JS.API.CONSUMER.DELETE.${stream}.${RECORDS_SCANNER_CONSUMER_NAME}`,
|
|
433
|
+
`$JS.API.CONSUMER.CREATE.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}.$KV.${bucket}.goalidx.manager.>`,
|
|
434
|
+
`$JS.API.CONSUMER.INFO.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}`,
|
|
435
|
+
`$JS.API.CONSUMER.MSG.NEXT.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}`,
|
|
436
|
+
`$JS.API.CONSUMER.DELETE.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}`,
|
|
316
437
|
],
|
|
317
438
|
subscribe: [`_INBOX_${inbox}.>`],
|
|
318
439
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records-scanner.js","sourceRoot":"","sources":["../src/records-scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"records-scanner.js","sourceRoot":"","sources":["../src/records-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type RemoteRetainedAgentValidationRequest, type RemoteRetainedAgentValidationResult, type RetainedAgentAuthority } from "@cotal-ai/core";
|
|
2
|
+
/** Host-authenticated, stateless proof for one activated manager registration. The account signing
|
|
3
|
+
* seed is already held by the host authority plane and never crosses this seam. */
|
|
4
|
+
export declare function remoteManagerCurrentRegistrationProof(secret: string | Uint8Array, owner: string, request: Pick<RemoteRetainedAgentValidationRequest, "space" | "actor" | "instanceId" | "managerLifecycleUid" | "identities">, current: {
|
|
5
|
+
registrationRevision: number;
|
|
6
|
+
processEpoch: number;
|
|
7
|
+
}): string;
|
|
8
|
+
/** Parse the secret-bearing retained-validation request without retaining unknown input fields. */
|
|
9
|
+
export declare function parseRemoteRetainedAgentValidationRequest(raw: unknown): RemoteRetainedAgentValidationRequest;
|
|
10
|
+
export interface AuthorizeRemoteRetainedAgentValidationArgs {
|
|
11
|
+
request: RemoteRetainedAgentValidationRequest;
|
|
12
|
+
space: string;
|
|
13
|
+
owner: string;
|
|
14
|
+
scope: string[];
|
|
15
|
+
proofSecret: string | Uint8Array;
|
|
16
|
+
observeManagerGate: (instanceId: string) => Promise<{
|
|
17
|
+
state: "open" | "frozen" | "retired";
|
|
18
|
+
principal: string;
|
|
19
|
+
processEpoch: number;
|
|
20
|
+
registrationRevision: number;
|
|
21
|
+
} | null>;
|
|
22
|
+
}
|
|
23
|
+
/** Host policy authorizing one fresh, non-minting retained-agent continuity validation. */
|
|
24
|
+
export declare function authorizeRemoteRetainedAgentValidation(args: AuthorizeRemoteRetainedAgentValidationArgs): Promise<RemoteRetainedAgentValidationRequest>;
|
|
25
|
+
/** Build the closed non-secret result after the fixed host provider validation succeeds. */
|
|
26
|
+
export declare function completeRemoteRetainedAgentValidation(r: RemoteRetainedAgentValidationRequest, owner: string, authority: RetainedAgentAuthority): RemoteRetainedAgentValidationResult;
|
|
27
|
+
//# sourceMappingURL=retained-manager-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retained-manager-validation.d.ts","sourceRoot":"","sources":["../src/retained-manager-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,sBAAsB,EAC5B,MAAM,gBAAgB,CAAC;AAKxB;mFACmF;AACnF,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,IAAI,CAAC,oCAAoC,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,qBAAqB,GAAG,YAAY,CAAC,EAC5H,OAAO,EAAE;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC9D,MAAM,CAeR;AAMD,mGAAmG;AACnG,wBAAgB,yCAAyC,CAAC,GAAG,EAAE,OAAO,GAAG,oCAAoC,CAiE5G;AAED,MAAM,WAAW,0CAA0C;IACzD,OAAO,EAAE,oCAAoC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC;IACjC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;QAClD,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,GAAG,IAAI,CAAC,CAAC;CACX;AAED,2FAA2F;AAC3F,wBAAsB,sCAAsC,CAC1D,IAAI,EAAE,0CAA0C,GAC/C,OAAO,CAAC,oCAAoC,CAAC,CAsB/C;AAED,4FAA4F;AAC5F,wBAAgB,qCAAqC,CACnD,CAAC,EAAE,oCAAoC,EACvC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,sBAAsB,GAChC,mCAAmC,CAiBrC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { EpEnvelopeError, assertDerivedOwnerToken, assertLifecycleToken, assertValidOwnerToken, remoteManagerActors, } from "@cotal-ai/core";
|
|
2
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
3
|
+
const identityNames = ["supervisor", "executor", "serve", "goalWriter", "sessionLedger"];
|
|
4
|
+
/** Host-authenticated, stateless proof for one activated manager registration. The account signing
|
|
5
|
+
* seed is already held by the host authority plane and never crosses this seam. */
|
|
6
|
+
export function remoteManagerCurrentRegistrationProof(secret, owner, request, current) {
|
|
7
|
+
const payload = JSON.stringify({
|
|
8
|
+
v: 1,
|
|
9
|
+
kind: "manager-current-registration",
|
|
10
|
+
space: request.space,
|
|
11
|
+
owner,
|
|
12
|
+
actor: request.actor,
|
|
13
|
+
instanceId: request.instanceId,
|
|
14
|
+
lifecycleUid: request.managerLifecycleUid,
|
|
15
|
+
actors: remoteManagerActors(request.instanceId),
|
|
16
|
+
identities: request.identities,
|
|
17
|
+
registrationRevision: current.registrationRevision,
|
|
18
|
+
processEpoch: current.processEpoch,
|
|
19
|
+
});
|
|
20
|
+
return `sha256:${createHmac("sha256", secret).update("cotal/manager-current-registration/v1\0").update(payload).digest("hex")}`;
|
|
21
|
+
}
|
|
22
|
+
function requestError(what) {
|
|
23
|
+
throw new EpEnvelopeError("bad-request", `manager retained-agent validation request ${what}`);
|
|
24
|
+
}
|
|
25
|
+
/** Parse the secret-bearing retained-validation request without retaining unknown input fields. */
|
|
26
|
+
export function parseRemoteRetainedAgentValidationRequest(raw) {
|
|
27
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
28
|
+
requestError("must be an object");
|
|
29
|
+
const o = raw;
|
|
30
|
+
const allowed = new Set([
|
|
31
|
+
"v", "kind", "space", "actor", "instanceId", "managerLifecycleUid", "requestId",
|
|
32
|
+
"registrationProof", "serveEpoch", "identities", "target", "actorToken", "sentinelCreds",
|
|
33
|
+
]);
|
|
34
|
+
for (const key of Object.keys(o))
|
|
35
|
+
if (!allowed.has(key))
|
|
36
|
+
requestError(`carries unknown field ${JSON.stringify(key)} (the protocol is closed)`);
|
|
37
|
+
if (o.v !== 1 || o.kind !== "manager-retained-agent-validation")
|
|
38
|
+
requestError('must carry { v: 1, kind: "manager-retained-agent-validation" }');
|
|
39
|
+
for (const key of ["space", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof", "actorToken", "sentinelCreds"])
|
|
40
|
+
if (typeof o[key] !== "string" || o[key].length === 0)
|
|
41
|
+
requestError(`requires non-empty ${key}`);
|
|
42
|
+
if (o.actorToken.length > 4096 || o.sentinelCreds.length > 16 * 1024)
|
|
43
|
+
requestError("secret material exceeds its bounded wire size");
|
|
44
|
+
assertValidOwnerToken(o.actor);
|
|
45
|
+
assertLifecycleToken(o.instanceId, "manager retained validation instanceId");
|
|
46
|
+
assertLifecycleToken(o.managerLifecycleUid, "manager retained validation lifecycleUid");
|
|
47
|
+
if (!/^[A-Za-z0-9_-]{22,64}$/.test(o.requestId))
|
|
48
|
+
requestError("requestId must be a 22-64 character idempotency token");
|
|
49
|
+
if (!/^sha256:[0-9a-f]{64}$/.test(o.registrationProof))
|
|
50
|
+
requestError("requires a sha256 registrationProof");
|
|
51
|
+
if (typeof o.serveEpoch !== "number" || !Number.isSafeInteger(o.serveEpoch) || o.serveEpoch < 0)
|
|
52
|
+
requestError("serveEpoch must be a non-negative safe integer");
|
|
53
|
+
const ids = o.identities;
|
|
54
|
+
if (ids === null || typeof ids !== "object" || Array.isArray(ids))
|
|
55
|
+
requestError("requires identities");
|
|
56
|
+
const idObj = ids;
|
|
57
|
+
if (Object.keys(idObj).sort().join(",") !== [...identityNames].sort().join(","))
|
|
58
|
+
requestError(`identities must contain exactly ${identityNames.join(", ")}`);
|
|
59
|
+
const identities = {};
|
|
60
|
+
for (const name of identityNames) {
|
|
61
|
+
const item = idObj[name];
|
|
62
|
+
if (item === null || typeof item !== "object" || Array.isArray(item) || Object.keys(item).join(",") !== "id")
|
|
63
|
+
requestError(`identities.${name} must be exactly { id }`);
|
|
64
|
+
const id = item.id;
|
|
65
|
+
if (typeof id !== "string" || !/^U[A-Z2-7]{55}$/.test(id))
|
|
66
|
+
requestError(`identities.${name}.id must be a user nkey`);
|
|
67
|
+
identities[name] = { id };
|
|
68
|
+
}
|
|
69
|
+
const target = o.target;
|
|
70
|
+
if (target === null || typeof target !== "object" || Array.isArray(target) ||
|
|
71
|
+
Object.keys(target).sort().join(",") !== "actor,lifecycleUid,owner")
|
|
72
|
+
requestError("target must be exactly { owner, actor, lifecycleUid }");
|
|
73
|
+
const t = target;
|
|
74
|
+
if (typeof t.owner !== "string" || typeof t.actor !== "string" || typeof t.lifecycleUid !== "string")
|
|
75
|
+
requestError("target must contain string owner, actor, and lifecycleUid");
|
|
76
|
+
const parsedTarget = {
|
|
77
|
+
owner: assertDerivedOwnerToken(t.owner),
|
|
78
|
+
actor: assertValidOwnerToken(t.actor),
|
|
79
|
+
lifecycleUid: assertLifecycleToken(t.lifecycleUid, "manager retained validation target lifecycleUid"),
|
|
80
|
+
};
|
|
81
|
+
return {
|
|
82
|
+
v: 1,
|
|
83
|
+
kind: "manager-retained-agent-validation",
|
|
84
|
+
space: o.space,
|
|
85
|
+
actor: o.actor,
|
|
86
|
+
instanceId: o.instanceId,
|
|
87
|
+
managerLifecycleUid: o.managerLifecycleUid,
|
|
88
|
+
requestId: o.requestId,
|
|
89
|
+
registrationProof: o.registrationProof,
|
|
90
|
+
serveEpoch: o.serveEpoch,
|
|
91
|
+
identities,
|
|
92
|
+
target: parsedTarget,
|
|
93
|
+
actorToken: o.actorToken,
|
|
94
|
+
sentinelCreds: o.sentinelCreds,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/** Host policy authorizing one fresh, non-minting retained-agent continuity validation. */
|
|
98
|
+
export async function authorizeRemoteRetainedAgentValidation(args) {
|
|
99
|
+
const r = parseRemoteRetainedAgentValidationRequest(args.request);
|
|
100
|
+
if (r.space !== args.space)
|
|
101
|
+
throw new EpEnvelopeError("permission-denied", `manager retained-agent validation request names space ${r.space}, not this host space ${args.space}`);
|
|
102
|
+
if (!args.scope.includes("supervise"))
|
|
103
|
+
throw new EpEnvelopeError("permission-denied", 'manager retained-agent validation needs scope "supervise"; spawn/admin do not imply it');
|
|
104
|
+
if (r.target.owner !== args.owner)
|
|
105
|
+
throw new EpEnvelopeError("permission-denied", `manager retained-agent validation may target only its authenticated owner ${args.owner}, not ${r.target.owner}`);
|
|
106
|
+
const actors = remoteManagerActors(r.instanceId);
|
|
107
|
+
const gate = await args.observeManagerGate(r.instanceId);
|
|
108
|
+
if (!gate || gate.state !== "open")
|
|
109
|
+
throw new EpEnvelopeError("failed-precondition", `manager retained-agent validation found no current open manager gate for instance ${r.instanceId}`);
|
|
110
|
+
const servePrincipal = `${args.owner}.${actors.serve}`;
|
|
111
|
+
if (gate.principal !== servePrincipal)
|
|
112
|
+
throw new EpEnvelopeError("permission-denied", `manager retained-agent validation gate belongs to ${gate.principal}, not the server-derived serve principal ${servePrincipal}`);
|
|
113
|
+
if (gate.processEpoch !== r.serveEpoch)
|
|
114
|
+
throw new EpEnvelopeError("conflict", `manager retained-agent validation serve epoch ${r.serveEpoch} is stale; current is ${gate.processEpoch}`);
|
|
115
|
+
const expectedProof = remoteManagerCurrentRegistrationProof(args.proofSecret, args.owner, r, gate);
|
|
116
|
+
if (!timingSafeEqual(Buffer.from(r.registrationProof), Buffer.from(expectedProof)))
|
|
117
|
+
throw new EpEnvelopeError("permission-denied", "manager retained-agent validation proof does not match the current host registration");
|
|
118
|
+
return r;
|
|
119
|
+
}
|
|
120
|
+
/** Build the closed non-secret result after the fixed host provider validation succeeds. */
|
|
121
|
+
export function completeRemoteRetainedAgentValidation(r, owner, authority) {
|
|
122
|
+
if (authority.owner !== r.target.owner || authority.actor !== r.target.actor || authority.lifecycleUid !== r.target.lifecycleUid)
|
|
123
|
+
throw new EpEnvelopeError("conflict", "manager retained-agent validation host returned a replacement principal or lifecycle");
|
|
124
|
+
return {
|
|
125
|
+
v: 1,
|
|
126
|
+
kind: "manager-retained-agent-validation",
|
|
127
|
+
space: r.space,
|
|
128
|
+
owner,
|
|
129
|
+
actor: r.actor,
|
|
130
|
+
instanceId: r.instanceId,
|
|
131
|
+
managerLifecycleUid: r.managerLifecycleUid,
|
|
132
|
+
requestId: r.requestId,
|
|
133
|
+
registrationProof: r.registrationProof,
|
|
134
|
+
serveEpoch: r.serveEpoch,
|
|
135
|
+
target: r.target,
|
|
136
|
+
authority,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=retained-manager-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retained-manager-validation.js","sourceRoot":"","sources":["../src/retained-manager-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { type ParsedArgs, type RemoteManagerAuthorityRequest, type SecretStore } from "@cotal-ai/core";
|
|
1
|
+
import { type ParsedArgs, type RemoteManagerAdminAuthorizationRequest, type RemoteManagerAuthorityRequest, type RemoteRetainedAgentValidationRequest, type SecretStore } from "@cotal-ai/core";
|
|
2
|
+
import { type IdpBridge } from "./idp.js";
|
|
2
3
|
import type { ValidatedUserToken } from "./token.js";
|
|
4
|
+
import { pinnedJwksResolver, type UserTokenIssuer } from "./issuer.js";
|
|
3
5
|
import { type PlaneLivenessOracle } from "./plane-claim.js";
|
|
4
6
|
import { type EvictPrincipal } from "./credential-ledger.js";
|
|
5
7
|
/** JWKS max-age seconds — the cache contract's knob. Exported so a rotation tool can compute the
|
|
@@ -33,6 +35,21 @@ export interface AuthAuthorityPlane {
|
|
|
33
35
|
scope: string[];
|
|
34
36
|
request: RemoteManagerAuthorityRequest;
|
|
35
37
|
}) => Promise<import("@cotal-ai/core").RemoteManagerAuthorityMaterial>;
|
|
38
|
+
validateRetainedAgent: (args: {
|
|
39
|
+
owner: string;
|
|
40
|
+
scope: string[];
|
|
41
|
+
request: RemoteRetainedAgentValidationRequest;
|
|
42
|
+
}) => Promise<RemoteRetainedAgentValidationRequest>;
|
|
43
|
+
scanManagerGoalIndex: (args: {
|
|
44
|
+
owner: string;
|
|
45
|
+
scope: string[];
|
|
46
|
+
request: import("@cotal-ai/core").RemoteManagerGoalIndexScanRequest;
|
|
47
|
+
}) => Promise<import("@cotal-ai/core").RemoteManagerGoalIndexScanResult>;
|
|
48
|
+
authorizeManagerAdmin: (args: {
|
|
49
|
+
owner: string;
|
|
50
|
+
scope: string[];
|
|
51
|
+
request: RemoteManagerAdminAuthorizationRequest;
|
|
52
|
+
}) => Promise<import("@cotal-ai/core").RemoteManagerAdminAuthorizationResult>;
|
|
36
53
|
/** Resolves with the state-3 copy when a mid-life scanner death FENCES the plane (SPEC 13.13):
|
|
37
54
|
* the plane is no longer whole, `authorizeConnect`/`mintConnectCredential` refuse from that
|
|
38
55
|
* moment, and the composition root must take the whole service DOWN loud (a fenced plane that
|
|
@@ -41,6 +58,21 @@ export interface AuthAuthorityPlane {
|
|
|
41
58
|
fenced: Promise<string>;
|
|
42
59
|
close(): Promise<void>;
|
|
43
60
|
}
|
|
61
|
+
type RemoteRetirementGate = {
|
|
62
|
+
state: "open" | "frozen" | "retired";
|
|
63
|
+
principal: string;
|
|
64
|
+
processEpoch: number;
|
|
65
|
+
};
|
|
66
|
+
/** Package-internal policy step for the hosted retirement requester. The HTTP production door calls
|
|
67
|
+
* this after deriving the owner and manager actors; broker-free smokes exercise the same decision. */
|
|
68
|
+
export declare function authorizeRemoteManagerRetirement(args: {
|
|
69
|
+
owner: string;
|
|
70
|
+
serveActor: string;
|
|
71
|
+
instanceId: string;
|
|
72
|
+
targetOwner: string;
|
|
73
|
+
serveEpoch: number;
|
|
74
|
+
gate: RemoteRetirementGate | null;
|
|
75
|
+
}): void;
|
|
44
76
|
/**
|
|
45
77
|
* Open the authority plane — the PRODUCTION connect/exchange composition (exported so the live
|
|
46
78
|
* deny-new smoke exercises exactly what the daemon runs). Boot order is the readiness contract:
|
|
@@ -92,6 +124,39 @@ export declare function openAuthAuthorityPlane(opts: {
|
|
|
92
124
|
* NON-SEAM state (the actor ledger, the IdP pin, the discovery file) still lives in the local
|
|
93
125
|
* state dir either way — hosting those is a later, separate seam. */
|
|
94
126
|
export declare function runAuthService(args: ParsedArgs, store?: SecretStore): Promise<void>;
|
|
127
|
+
interface HandlerCtx {
|
|
128
|
+
issuer: UserTokenIssuer;
|
|
129
|
+
bridge: IdpBridge;
|
|
130
|
+
bridgeIdp: {
|
|
131
|
+
issuer: string;
|
|
132
|
+
audience: string;
|
|
133
|
+
key: ReturnType<typeof pinnedJwksResolver>;
|
|
134
|
+
};
|
|
135
|
+
ownerSecret: string | Uint8Array;
|
|
136
|
+
managerServiceAuthority: AuthAuthorityPlane["issueManagerServiceAuthority"];
|
|
137
|
+
validateRetainedAgent: AuthAuthorityPlane["validateRetainedAgent"];
|
|
138
|
+
scanManagerGoalIndex: AuthAuthorityPlane["scanManagerGoalIndex"];
|
|
139
|
+
authorizeManagerAdmin: AuthAuthorityPlane["authorizeManagerAdmin"];
|
|
140
|
+
secrets: SecretStore;
|
|
141
|
+
retireInteractiveLifecycle: AuthAuthorityPlane["retireInteractiveLifecycle"];
|
|
142
|
+
cap: string;
|
|
143
|
+
failures: number[];
|
|
144
|
+
badCaps: number[];
|
|
145
|
+
space: string;
|
|
146
|
+
/** The provider state dir — the AGENT grant type reads its ledger rows fresh per exchange. */
|
|
147
|
+
dir: string;
|
|
148
|
+
/** The authority plane's root-credential ensure — the agent-exchange arm stamps from it (the
|
|
149
|
+
* human arm stamps inside the bridge). */
|
|
150
|
+
mintConnectCredential: (args: {
|
|
151
|
+
owner: string;
|
|
152
|
+
actor: string;
|
|
153
|
+
lifecycleUid: string;
|
|
154
|
+
}) => Promise<string>;
|
|
155
|
+
}
|
|
156
|
+
/** Dispatch one already-authenticated manager-authority body through the fixed host validator. */
|
|
157
|
+
export declare function dispatchManagerAuthorityRequest(ctx: Pick<HandlerCtx, "space" | "dir" | "secrets" | "managerServiceAuthority" | "validateRetainedAgent" | "scanManagerGoalIndex" | "authorizeManagerAdmin">, owner: string, body: {
|
|
158
|
+
request: unknown;
|
|
159
|
+
}): Promise<unknown>;
|
|
95
160
|
/** The advertised broker address the public bundle carries — the URL participants will dial, so
|
|
96
161
|
* the same scheme family `cotal meshes add` accepts. Exported for the producer/consumer contract
|
|
97
162
|
* smoke; returns the refusal sentence, or undefined when the address is usable. */
|
|
@@ -127,4 +192,5 @@ export declare function finalizeUserBundleEndpoint(bundle: Record<string, unknow
|
|
|
127
192
|
* Exported for the producer/consumer contract smoke; returns the refusal, or undefined when
|
|
128
193
|
* usable. */
|
|
129
194
|
export declare function checkAgentProvisioningUrl(raw: string): string | undefined;
|
|
195
|
+
export {};
|
|
130
196
|
//# sourceMappingURL=service.d.ts.map
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAoU,KAAK,UAAU,EAAE,KAAK,6BAA6B,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|