@cotal-ai/auth 0.90.1 → 0.92.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/authority-client.d.ts +70 -3
- package/dist/authority-client.d.ts.map +1 -1
- package/dist/authority-client.js +113 -9
- package/dist/authority-client.js.map +1 -1
- package/dist/chat-parent-pin.d.ts +43 -0
- package/dist/chat-parent-pin.d.ts.map +1 -0
- package/dist/chat-parent-pin.js +115 -0
- package/dist/chat-parent-pin.js.map +1 -0
- package/dist/chat-session-authority.d.ts +120 -0
- package/dist/chat-session-authority.d.ts.map +1 -0
- package/dist/chat-session-authority.js +924 -0
- package/dist/chat-session-authority.js.map +1 -0
- package/dist/chat-session-row.d.ts +117 -0
- package/dist/chat-session-row.d.ts.map +1 -0
- package/dist/chat-session-row.js +358 -0
- package/dist/chat-session-row.js.map +1 -0
- package/dist/chat-session-store.d.ts +126 -0
- package/dist/chat-session-store.d.ts.map +1 -0
- package/dist/chat-session-store.js +392 -0
- package/dist/chat-session-store.js.map +1 -0
- package/dist/commands.d.ts +3 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +527 -125
- package/dist/commands.js.map +1 -1
- package/dist/continuity.js +1 -1
- package/dist/continuity.js.map +1 -1
- package/dist/daemon-flags.d.ts +42 -0
- package/dist/daemon-flags.d.ts.map +1 -0
- package/dist/daemon-flags.js +12 -0
- package/dist/daemon-flags.js.map +1 -0
- package/dist/handle-inspect.d.ts +101 -0
- package/dist/handle-inspect.d.ts.map +1 -0
- package/dist/handle-inspect.js +50 -0
- package/dist/handle-inspect.js.map +1 -0
- package/dist/handle-verification.d.ts +75 -0
- package/dist/handle-verification.d.ts.map +1 -0
- package/dist/handle-verification.js +135 -0
- package/dist/handle-verification.js.map +1 -0
- package/dist/idp.d.ts +23 -1
- package/dist/idp.d.ts.map +1 -1
- package/dist/idp.js +54 -8
- package/dist/idp.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ledger.d.ts +58 -5
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +126 -6
- package/dist/ledger.js.map +1 -1
- package/dist/lifecycle-registry.d.ts +1 -70
- package/dist/lifecycle-registry.d.ts.map +1 -1
- package/dist/lifecycle-registry.js +4 -35
- package/dist/lifecycle-registry.js.map +1 -1
- package/dist/login.d.ts +9 -0
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +53 -8
- package/dist/login.js.map +1 -1
- package/dist/manager-authority.d.ts +59 -3
- package/dist/manager-authority.d.ts.map +1 -1
- package/dist/manager-authority.js +185 -4
- package/dist/manager-authority.js.map +1 -1
- package/dist/native-service-gate.d.ts +14 -3
- package/dist/native-service-gate.d.ts.map +1 -1
- package/dist/native-service-gate.js +34 -20
- package/dist/native-service-gate.js.map +1 -1
- package/dist/native-service-name.d.ts +7 -0
- package/dist/native-service-name.d.ts.map +1 -1
- package/dist/native-service-name.js +15 -6
- package/dist/native-service-name.js.map +1 -1
- package/dist/permissions.js +4 -0
- package/dist/permissions.js.map +1 -1
- package/dist/platform-control.d.ts.map +1 -1
- package/dist/platform-control.js +1 -0
- package/dist/platform-control.js.map +1 -1
- package/dist/provider.d.ts +23 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +252 -44
- package/dist/provider.js.map +1 -1
- package/dist/run-cancel-observation.d.ts +50 -0
- package/dist/run-cancel-observation.d.ts.map +1 -0
- package/dist/run-cancel-observation.js +146 -0
- package/dist/run-cancel-observation.js.map +1 -0
- package/dist/service-adapter.d.ts +6 -0
- package/dist/service-adapter.d.ts.map +1 -0
- package/dist/service-adapter.js +120 -0
- package/dist/service-adapter.js.map +1 -0
- package/dist/service-custody.d.ts +29 -20
- package/dist/service-custody.d.ts.map +1 -1
- package/dist/service-custody.js +37 -167
- package/dist/service-custody.js.map +1 -1
- package/dist/service-endpoint-authority.d.ts +70 -0
- package/dist/service-endpoint-authority.d.ts.map +1 -0
- package/dist/service-endpoint-authority.js +257 -0
- package/dist/service-endpoint-authority.js.map +1 -0
- package/dist/service-host-contract.d.ts +158 -16
- package/dist/service-host-contract.d.ts.map +1 -1
- package/dist/service-host-contract.js +330 -1
- package/dist/service-host-contract.js.map +1 -1
- package/dist/service-host-ops.d.ts +550 -0
- package/dist/service-host-ops.d.ts.map +1 -0
- package/dist/service-host-ops.js +2180 -0
- package/dist/service-host-ops.js.map +1 -0
- package/dist/service-write.d.ts +141 -0
- package/dist/service-write.d.ts.map +1 -0
- package/dist/service-write.js +179 -0
- package/dist/service-write.js.map +1 -0
- package/dist/service.d.ts +115 -3
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +697 -92
- package/dist/service.js.map +1 -1
- package/dist/store.d.ts +10 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +25 -8
- package/dist/store.js.map +1 -1
- package/dist/token.d.ts +1 -1
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +4 -1
- package/dist/token.js.map +1 -1
- package/package.json +16 -7
package/dist/login.js
CHANGED
|
@@ -32,7 +32,7 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
32
32
|
import { join } from "node:path";
|
|
33
33
|
import { decodeJwt } from "jose";
|
|
34
34
|
import { isLoopbackLiteral, mkSecretDir, writeSecretFileAtomic } from "@cotal-ai/core";
|
|
35
|
-
import { acquireLock } from "@cotal-ai/workspace";
|
|
35
|
+
import { CommandFailure, acquireLock, credentialFailure } from "@cotal-ai/workspace";
|
|
36
36
|
const SPACE_CATALOG_REL = "https://cotal.ai/relations/space-catalog";
|
|
37
37
|
export const CATALOG_FRESH_MS = 5_000;
|
|
38
38
|
const CATALOG_FILE = "space-catalogs.json";
|
|
@@ -83,6 +83,9 @@ function idpTimeoutMs() {
|
|
|
83
83
|
throw new Error(`COTAL_IDP_TIMEOUT_MS must be a positive number of milliseconds - got "${raw}"`);
|
|
84
84
|
return n;
|
|
85
85
|
}
|
|
86
|
+
/** An IdP request that got no answer: the transport failed or the per-request timeout fired. */
|
|
87
|
+
export class IdpUnreachableError extends Error {
|
|
88
|
+
}
|
|
86
89
|
/** `fetch` with a hard per-request timeout, so a hung IdP connection can never stall the client
|
|
87
90
|
* (Node's global fetch has no default timeout). A timeout or transport failure surfaces as a
|
|
88
91
|
* legible sentence rather than a raw DOMException/TypeError. */
|
|
@@ -93,8 +96,8 @@ async function idpFetch(url, init) {
|
|
|
93
96
|
}
|
|
94
97
|
catch (e) {
|
|
95
98
|
if (e instanceof DOMException && e.name === "TimeoutError")
|
|
96
|
-
throw new
|
|
97
|
-
throw new
|
|
99
|
+
throw new IdpUnreachableError(`idp request to ${url} timed out after ${ms}ms - the IdP is unreachable or not responding`);
|
|
100
|
+
throw new IdpUnreachableError(`idp request to ${url} failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
98
101
|
}
|
|
99
102
|
}
|
|
100
103
|
/** Read a JSON body under the SAME normalization as {@link idpFetch}. The request timeout can fire
|
|
@@ -107,7 +110,7 @@ async function idpJson(url, res) {
|
|
|
107
110
|
}
|
|
108
111
|
catch (e) {
|
|
109
112
|
if (e instanceof DOMException && e.name === "TimeoutError")
|
|
110
|
-
throw new
|
|
113
|
+
throw new IdpUnreachableError(`idp request to ${url} timed out reading the response body - the IdP flushed headers then stalled`);
|
|
111
114
|
throw new Error(`idp request to ${url} returned an unreadable response body: ${e instanceof Error ? e.message : String(e)}`);
|
|
112
115
|
}
|
|
113
116
|
}
|
|
@@ -368,6 +371,27 @@ async function discoverAdvertisement(state, session) {
|
|
|
368
371
|
...(catalogUrl ? { catalogUrl } : { catalogUrl: undefined }),
|
|
369
372
|
};
|
|
370
373
|
}
|
|
374
|
+
function readCatalogPreparationState(dir) {
|
|
375
|
+
let sessions;
|
|
376
|
+
let file;
|
|
377
|
+
try {
|
|
378
|
+
sessions = readSessionsFile(dir).sessions;
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
throw new CommandFailure("refused", "DEPENDENCY_UNAVAILABLE", "the local sign-in cache could not be read; no catalog refresh or registry application was attempted", {
|
|
382
|
+
target: { path: join(dir, SESSIONS_FILE) }, remedy: "inspect and restore the sign-in cache before retrying; its contents were not printed or replaced",
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
try {
|
|
386
|
+
file = readCatalogsFile(dir);
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
throw new CommandFailure("refused", "DEPENDENCY_UNAVAILABLE", "the local space catalog cache could not be read; no catalog refresh or registry application was attempted", {
|
|
390
|
+
target: { path: join(dir, CATALOG_FILE) }, remedy: "inspect and restore the catalog cache before retrying; its contents were not printed or replaced",
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
return { sessions, file };
|
|
394
|
+
}
|
|
371
395
|
const catalogPreparations = new Map();
|
|
372
396
|
export function prepareIdpSpaceCatalogs(opts) {
|
|
373
397
|
const key = `${opts.dir}\0${opts.idpUrl ? normalizeIdpUrl(opts.idpUrl) : "*"}`;
|
|
@@ -380,13 +404,25 @@ export function prepareIdpSpaceCatalogs(opts) {
|
|
|
380
404
|
}
|
|
381
405
|
async function prepareIdpSpaceCatalogsLocked(opts) {
|
|
382
406
|
const requested = opts.idpUrl ? normalizeIdpUrl(opts.idpUrl) : undefined;
|
|
407
|
+
// No account means no catalog work. Do not create a control directory just to lock an empty
|
|
408
|
+
// observation. Active accounts are read again under the lock before any refresh or application.
|
|
409
|
+
const initial = readCatalogPreparationState(opts.dir);
|
|
410
|
+
const signedOut = () => new CommandFailure("refused", "AUTH_REQUIRED", "the requested IdP has no cached sign-in; no catalog refresh or registry application was attempted", {
|
|
411
|
+
target: { idp: requested }, remedy: `run \`cotal login --idp ${requested}\` before syncing this account`,
|
|
412
|
+
});
|
|
413
|
+
if (!Object.keys(initial.sessions).some((idp) => !requested || idp === requested)) {
|
|
414
|
+
if (requested)
|
|
415
|
+
throw signedOut();
|
|
416
|
+
return [];
|
|
417
|
+
}
|
|
383
418
|
const lock = acquireLock(join(opts.dir, CATALOG_LOCK), { label: "space catalog sync", waitMs: 30_000 });
|
|
384
419
|
try {
|
|
385
|
-
const
|
|
386
|
-
|
|
420
|
+
const current = readCatalogPreparationState(opts.dir);
|
|
421
|
+
const sessions = current.sessions;
|
|
422
|
+
let file = current.file;
|
|
387
423
|
const idps = Object.keys(sessions).filter((idp) => !requested || idp === requested).sort();
|
|
388
424
|
if (requested && idps.length === 0)
|
|
389
|
-
throw
|
|
425
|
+
throw signedOut();
|
|
390
426
|
const results = [];
|
|
391
427
|
let changed = false;
|
|
392
428
|
for (const idpUrl of idps) {
|
|
@@ -552,6 +588,15 @@ function readSessionsFile(dir) {
|
|
|
552
588
|
throw new Error(`${f}: malformed sessions map`);
|
|
553
589
|
return parsed;
|
|
554
590
|
}
|
|
591
|
+
/** Account-picker metadata only. Session tokens never leave this helper. */
|
|
592
|
+
export function listIdpAccounts(dir) {
|
|
593
|
+
return Object.entries(readSessionsFile(dir).sessions).map(([idp, session]) => {
|
|
594
|
+
const normalized = normalizeIdpUrl(idp);
|
|
595
|
+
if (normalized !== idp || !session || typeof session.expiresAt !== "number" || !Number.isFinite(session.expiresAt))
|
|
596
|
+
throw new Error("the cached account metadata is invalid");
|
|
597
|
+
return { idp, expiresAt: session.expiresAt, ...(typeof session.sub === "string" ? { sub: session.sub } : {}) };
|
|
598
|
+
});
|
|
599
|
+
}
|
|
555
600
|
export function loadIdpSession(dir, idpUrl) {
|
|
556
601
|
const key = normalizeIdpUrl(idpUrl);
|
|
557
602
|
const s = readSessionsFile(dir).sessions[key];
|
|
@@ -597,7 +642,7 @@ export function requireIdpSession(dir, idpUrl) {
|
|
|
597
642
|
const key = normalizeIdpUrl(idpUrl);
|
|
598
643
|
const s = loadIdpSession(dir, key);
|
|
599
644
|
if (!s)
|
|
600
|
-
throw
|
|
645
|
+
throw credentialFailure("signed-out", `not logged in to ${key} - this space requires a user identity and there is no anonymous fallback; run \`cotal login --idp ${key}\``);
|
|
601
646
|
return s;
|
|
602
647
|
}
|
|
603
648
|
//# sourceMappingURL=login.js.map
|
package/dist/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { remoteManagerActors, type RemoteManagerAuthorityMaterial, type RemoteManagerAuthorityRequest, type RemoteRunAdmissionRequest, type RemoteRunAttemptRequest, type RemoteRunRevokeRequest, type RemoteRunRevokeResult, type RunRevocation, type RunAdmissionView, type RunStatusValue, type RunDriverGrantArgs, type RunOperatorGrantArgs, type RemoteRunAdmissionResult, type HostedRunAttempt, type IssuedStore, type IssuedSourceRef, type EpCommandAuthority, type EndpointRequest } from "@cotal-ai/core";
|
|
1
|
+
import { remoteManagerActors, type RemoteManagerAuthorityMaterial, type RemoteManagerAuthorityRequest, type RemoteRunAdmissionRequest, type RemoteRunSubmissionRequest, type RemoteRunSubmissionResult, type RemoteRunAttemptRequest, type RemoteRunRevokeRequest, type RemoteRunCancelRequest, type RemoteRunCancelResult, type IssuedCaller, type RemoteRunRevokeResult, type RunRevocation, type RunAdmissionView, type RunStatusValue, type RunDriverGrantArgs, type RunOperatorGrantArgs, type RemoteRunAdmissionResult, type HostedRunAttempt, type IssuedStore, type IssuedSourceRef, type EpCommandAuthority, type EndpointRequest } from "@cotal-ai/core";
|
|
2
2
|
import { type JournalEntry } from "@cotal-ai/lang";
|
|
3
3
|
import type { KV } from "@nats-io/kv";
|
|
4
4
|
import { type ManagerAuthorityHolder } from "./platform-control.js";
|
|
5
5
|
import type { ObserveManagerGate } from "./managed-agent-enrollment.js";
|
|
6
|
+
import { RunCancelObservations } from "./run-cancel-observation.js";
|
|
6
7
|
/** The run attempt the host observes for itself. A null answer is a run with no record or status. */
|
|
7
8
|
export type ObserveManagerRun = (runId: string) => Promise<HostedRunAttempt | null>;
|
|
8
9
|
/** Host-only renewal authorization. The embedding host supplies a fresh gate and active run
|
|
@@ -51,6 +52,27 @@ export declare function parseRemoteManagerAuthorityRequest(raw: unknown, opts?:
|
|
|
51
52
|
export declare function issueRemoteManagerAuthority(args: IssueRemoteManagerAuthorityArgs): Promise<RemoteManagerAuthorityMaterial>;
|
|
52
53
|
/** Closed parser for {@link RemoteRunAdmissionRequest}: unknown fields refuse, never ignored. */
|
|
53
54
|
export declare function parseRemoteRunAdmissionRequest(raw: unknown): RemoteRunAdmissionRequest;
|
|
55
|
+
export declare function parseRemoteRunSubmissionRequest(raw: unknown): RemoteRunSubmissionRequest;
|
|
56
|
+
/** One issuer-observed keyed start/read. Initial authorization/evidence validation precedes
|
|
57
|
+
* binding creation. Its winner rechecks freshness before bounded admission; those fallible reads
|
|
58
|
+
* may retain binding-only debt without changing the original frozen admission authority. */
|
|
59
|
+
export declare function handleRemoteRunSubmission(args: {
|
|
60
|
+
request: unknown;
|
|
61
|
+
owner: string;
|
|
62
|
+
space: string;
|
|
63
|
+
accountPublicKey: string;
|
|
64
|
+
proofSecret: string | Uint8Array;
|
|
65
|
+
endpoint: string;
|
|
66
|
+
observeManagerGate: ObserveManagerGate;
|
|
67
|
+
issued: IssuedStore;
|
|
68
|
+
sourceIsLive: (source: IssuedSourceRef) => Promise<boolean>;
|
|
69
|
+
takeObserved: (subject: string) => Promise<ObservedRunRequest | undefined>;
|
|
70
|
+
registeredCommand: (instanceId: string, revision: number, command: string) => Promise<Pick<EpCommandAuthority, "class" | "inputDigest" | "outputDigest">>;
|
|
71
|
+
withStore: <T>(runId: string, submission: {
|
|
72
|
+
caller: import("@cotal-ai/core").EpCaller;
|
|
73
|
+
id: string;
|
|
74
|
+
}, work: (kv: KV, jsm: import("@nats-io/jetstream").JetStreamManager) => Promise<T>) => Promise<T>;
|
|
75
|
+
}): Promise<RemoteRunSubmissionResult>;
|
|
54
76
|
/**
|
|
55
77
|
* Host-side first-run admission for a registered signerless manager. The manager is trusted only to
|
|
56
78
|
* forward the `ep.v1` request subject it served, and only once for a request this host observed its
|
|
@@ -74,6 +96,29 @@ export declare function admitRemoteRun(args: {
|
|
|
74
96
|
admissions: KV;
|
|
75
97
|
now?: () => number;
|
|
76
98
|
}): Promise<RemoteRunAdmissionResult>;
|
|
99
|
+
/** The cancellation door accepts only a stage and the exact observed body and subject. */
|
|
100
|
+
export declare function parseRemoteRunCancelRequest(raw: unknown): RemoteRunCancelRequest;
|
|
101
|
+
/** Inspect never grants a later commit. A commit owns its immutable observation before caller
|
|
102
|
+
* authorization and store preparation, and checks it again at the native dispatch boundary. */
|
|
103
|
+
export declare function handleRemoteRunCancel(args: {
|
|
104
|
+
request: unknown;
|
|
105
|
+
owner: string;
|
|
106
|
+
space: string;
|
|
107
|
+
endpoint: string;
|
|
108
|
+
accountPublicKey: string;
|
|
109
|
+
proofSecret: string | Uint8Array;
|
|
110
|
+
observeManagerGate: ObserveManagerGate;
|
|
111
|
+
observations: RunCancelObservations;
|
|
112
|
+
flush: () => Promise<void>;
|
|
113
|
+
issued: IssuedStore;
|
|
114
|
+
sourceIsLive: (source: IssuedSourceRef) => Promise<boolean>;
|
|
115
|
+
interactiveScope: (caller: IssuedCaller, sources: readonly IssuedSourceRef[]) => Promise<readonly string[] | undefined>;
|
|
116
|
+
registeredCommand: (instanceId: string, revision: number, command: string) => Promise<Pick<EpCommandAuthority, "class" | "inputDigest" | "outputDigest">>;
|
|
117
|
+
readAdmission: (runId: string) => Promise<RunAdmissionView>;
|
|
118
|
+
readRevocation: (runId: string) => Promise<RunRevocation | undefined>;
|
|
119
|
+
withStore: <T>(runId: string, work: (kv: KV) => Promise<T>) => Promise<T>;
|
|
120
|
+
assertServing: () => void;
|
|
121
|
+
}): Promise<RemoteRunCancelResult>;
|
|
77
122
|
/** Closed parser for the issuing-host revoke. It carries no asserted owner or attribution. */
|
|
78
123
|
export declare function parseRemoteRunRevokeRequest(raw: unknown): RemoteRunRevokeRequest;
|
|
79
124
|
/** The door has authenticated the holder and read its current scope. The run's owner comes only
|
|
@@ -110,9 +155,19 @@ export type RunRequestOperation = {
|
|
|
110
155
|
* or serving at another incarnation than the bound one, refuses it unrun (SPEC 13.2, 13.7). */
|
|
111
156
|
export interface ObservedRunRequest {
|
|
112
157
|
operation: RunRequestOperation | {
|
|
113
|
-
command: "run-start";
|
|
158
|
+
command: "run-start" | "run-start-keyed";
|
|
159
|
+
} | {
|
|
160
|
+
command: "run-submission-status";
|
|
161
|
+
submissionId: string;
|
|
114
162
|
};
|
|
115
163
|
envelope: Pick<EndpointRequest, "class" | "op" | "bind">;
|
|
164
|
+
/** `requestEndsAt` is on this issuing process's monotonic clock, from its own observation; it
|
|
165
|
+
* never leaves this process. */
|
|
166
|
+
submission?: {
|
|
167
|
+
id: string;
|
|
168
|
+
fingerprint: string;
|
|
169
|
+
requestEndsAt: number;
|
|
170
|
+
};
|
|
116
171
|
}
|
|
117
172
|
/** The run-start, resume or answer request its caller published on `subject`, or undefined for a
|
|
118
173
|
* request no manager serves. */
|
|
@@ -143,7 +198,8 @@ export type RemoteRunAttemptGrant = {
|
|
|
143
198
|
};
|
|
144
199
|
/**
|
|
145
200
|
* Host-only authorization for {@link RemoteRunAttemptRequest}. Every coordinate the returned grant
|
|
146
|
-
* pins is derived from host stores: the admission must exist
|
|
201
|
+
* pins is derived from host stores: the admission must exist on this instance and be unrevoked
|
|
202
|
+
* for an attempt or answer. A read-only operator can inspect a revoked run. The
|
|
147
203
|
* attempt must be exactly the next epoch/fencing token the run record implies (1/1 for a first
|
|
148
204
|
* attempt with no record, as stock `start` launches), and an answer pins the pause the named run's
|
|
149
205
|
* journal records at the named step, which must be waiting. Refuses before the host signs anything.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-authority.d.ts","sourceRoot":"","sources":["../src/manager-authority.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,mBAAmB,EACnB,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAE7B,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"manager-authority.d.ts","sourceRoot":"","sources":["../src/manager-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { EpEnvelopeError, REMOTE_MANAGER_AUTHORITY_OPERATIONS, REMOTE_MANAGER_IDENTITY_NAMES, assertDerivedOwnerToken, assertPrincipalOwnerToken, assertLifecycleToken, assertValidOwnerToken, managedRetirementOpId, parseRemoteManagerEnvelope, remoteManagerActors, EP_RAIL_V1, EP_UNBOUND_CALLER_AUTHORITY, admissionKey, admissionSnapshot, createRunAdmission, revokeRunAdmission, isAccountNkey, isDerivedOwner, isIssuedCaller, isUserNkey, issuedPermitsSubject, parseEpSubject, parseEndpointRequest, checkRequestSubjectAgreement, } from "@cotal-ai/core";
|
|
1
|
+
import { EpEnvelopeError, REMOTE_MANAGER_AUTHORITY_OPERATIONS, REMOTE_MANAGER_IDENTITY_NAMES, assertDerivedOwnerToken, assertPrincipalOwnerToken, assertLifecycleToken, assertValidOwnerToken, managedRetirementOpId, parseRemoteManagerEnvelope, remoteManagerActors, readRunCancelInput, commitRunCancellation, EP_RAIL_V1, EP_UNBOUND_CALLER_AUTHORITY, admissionKey, admissionSnapshot, createRunAdmission, bindAndAdmitRunSubmission, readRunSubmission, newSubmissionRunId, submissionFingerprint, canonicalJson, KEYED_SUBMISSION_MAX_DEADLINE_MS, revokeRunAdmission, isAccountNkey, isDerivedOwner, isIssuedCaller, isUserNkey, issuedPermitsSubject, parseEpSubject, parseEndpointRequest, checkRequestSubjectAgreement, } from "@cotal-ai/core";
|
|
2
2
|
import { CheckpointNotAmendable, CheckpointNotOpen, openCheckpointToken, settledPauseToken } from "@cotal-ai/lang";
|
|
3
3
|
import { timingSafeEqual } from "node:crypto";
|
|
4
4
|
import { remoteManagerCurrentRegistrationProof } from "./retained-manager-validation.js";
|
|
5
5
|
import { requireManagerAuthorityHolder } from "./platform-control.js";
|
|
6
|
+
import { RunCancelObservations } from "./run-cancel-observation.js";
|
|
6
7
|
/** Host-only renewal authorization. The embedding host supplies a fresh gate and active run
|
|
7
8
|
* observation from its authoritative stores, never coordinates asserted by the participant. */
|
|
8
9
|
export async function authorizeRemoteManagerRenewal(args) {
|
|
@@ -238,6 +239,61 @@ export function parseRemoteRunAdmissionRequest(raw) {
|
|
|
238
239
|
run: { runId: run.runId, subject: run.subject },
|
|
239
240
|
};
|
|
240
241
|
}
|
|
242
|
+
export function parseRemoteRunSubmissionRequest(raw) {
|
|
243
|
+
const registered = parseRegisteredRunRequest(raw, "manager-run-submission", "manager keyed submission", ["subject"]);
|
|
244
|
+
const subject = raw.subject;
|
|
245
|
+
if (typeof subject !== "string")
|
|
246
|
+
runRequestError("manager keyed submission", "requires observed subject");
|
|
247
|
+
return { v: 1, kind: "manager-run-submission", ...registered, subject: subject };
|
|
248
|
+
}
|
|
249
|
+
/** One issuer-observed keyed start/read. Initial authorization/evidence validation precedes
|
|
250
|
+
* binding creation. Its winner rechecks freshness before bounded admission; those fallible reads
|
|
251
|
+
* may retain binding-only debt without changing the original frozen admission authority. */
|
|
252
|
+
export async function handleRemoteRunSubmission(args) {
|
|
253
|
+
const r = parseRemoteRunSubmissionRequest(args.request);
|
|
254
|
+
const gate = await authenticateRegisteredManager(r, args, "keyed submission");
|
|
255
|
+
const parsed = parseEpSubject(r.subject);
|
|
256
|
+
if (!r.subject.startsWith(`cotal.${r.space}.`) || !parsed || parsed.plane !== "request" || parsed.rail !== EP_RAIL_V1
|
|
257
|
+
|| parsed.endpoint !== args.endpoint || parsed.target !== null || parsed.route !== "inst" || parsed.instanceId !== r.instanceId
|
|
258
|
+
|| !["run-start-keyed", "run-submission-status"].includes(parsed.command) || !isIssuedCaller(parsed.caller))
|
|
259
|
+
throw new EpEnvelopeError("permission-denied", "keyed submission requires this exact instance's observed issued request");
|
|
260
|
+
const observed = await args.takeObserved(r.subject), c = parsed.caller;
|
|
261
|
+
if (!observed?.submission || observed.operation.command !== parsed.command || !observed.envelope.bind
|
|
262
|
+
|| observed.envelope.bind.instanceId !== r.instanceId || observed.envelope.bind.epoch !== r.processEpoch)
|
|
263
|
+
throw new EpEnvelopeError("permission-denied", "keyed submission has no exact observed instance/epoch support proof");
|
|
264
|
+
const contract = await args.registeredCommand(r.instanceId, gate.registrationRevision, parsed.command);
|
|
265
|
+
if (contract.class !== observed.envelope.class || contract.inputDigest !== observed.envelope.op.inputDigest
|
|
266
|
+
|| contract.outputDigest !== observed.envelope.op.outputDigest)
|
|
267
|
+
throw new EpEnvelopeError("permission-denied", "keyed request does not pin the registered contract");
|
|
268
|
+
if (isDerivedOwner(c.owner) && c.owner !== args.owner)
|
|
269
|
+
throw new EpEnvelopeError("permission-denied", "keyed request belongs to another owner");
|
|
270
|
+
const ref = { space: r.space, owner: c.owner, actor: c.actor, uid: c.uid, generation: c.generation };
|
|
271
|
+
const resolved = await args.issued.resolve(ref, args.sourceIsLive);
|
|
272
|
+
if (!issuedPermitsSubject(resolved.evidence.permissions.publish, r.subject))
|
|
273
|
+
throw new EpEnvelopeError("permission-denied", "issued ceiling does not permit the keyed request");
|
|
274
|
+
const id = observed.operation.command === "run-submission-status" ? observed.operation.submissionId : observed.submission.id;
|
|
275
|
+
const runId = newSubmissionRunId();
|
|
276
|
+
const result = await args.withStore(runId, { caller: c, id }, async (kv, jsm) => {
|
|
277
|
+
if (performance.now() >= observed.submission.requestEndsAt)
|
|
278
|
+
throw new EpEnvelopeError("deadline-exceeded", "original observed keyed deadline elapsed");
|
|
279
|
+
if (parsed.command === "run-submission-status")
|
|
280
|
+
return { winner: false, view: await readRunSubmission({
|
|
281
|
+
jsm, space: r.space, endpoint: args.endpoint, caller: c, submissionId: id, instanceId: r.instanceId, processEpoch: r.processEpoch
|
|
282
|
+
}) };
|
|
283
|
+
const admission = { version: 1, space: r.space, endpoint: args.endpoint, runId, instanceId: r.instanceId,
|
|
284
|
+
caller: c, ceiling: resolved.evidence.permissions, provenance: { kind: "issued", ref, resolvedRevision: resolved.revision }, admittedAt: Date.now() };
|
|
285
|
+
return bindAndAdmitRunSubmission({ kv, jsm, admission, submissionId: id, fingerprint: observed.submission.fingerprint,
|
|
286
|
+
processEpoch: r.processEpoch, deadline: { requestEndsAt: observed.submission.requestEndsAt,
|
|
287
|
+
...(resolved.evidence.expiresAt !== undefined ? { authorityExpiresAt: resolved.evidence.expiresAt * 1000 } : {}) },
|
|
288
|
+
assertCurrent: async () => {
|
|
289
|
+
await authenticateRegisteredManager(r, args, "keyed admission recheck");
|
|
290
|
+
const fresh = await args.issued.resolve(ref, args.sourceIsLive);
|
|
291
|
+
if (fresh.revision !== resolved.revision || canonicalJson(fresh.evidence) !== canonicalJson(resolved.evidence))
|
|
292
|
+
throw new EpEnvelopeError("permission-denied", "original keyed admission authority changed; retain its binding");
|
|
293
|
+
} });
|
|
294
|
+
});
|
|
295
|
+
return { v: 1, kind: "manager-run-submission", requestId: r.requestId, ...result };
|
|
296
|
+
}
|
|
241
297
|
/** Authenticate the requesting registered manager: assigned space/account, open gate owned by this
|
|
242
298
|
* owner's serve actor, current process epoch, and the current-registration proof. */
|
|
243
299
|
async function authenticateRegisteredManager(r, args, what) {
|
|
@@ -310,6 +366,111 @@ export async function admitRemoteRun(args) {
|
|
|
310
366
|
}
|
|
311
367
|
}
|
|
312
368
|
const ID_TOKEN = /^[A-Za-z0-9_-]{1,64}$/;
|
|
369
|
+
/** The cancellation door accepts only a stage and the exact observed body and subject. */
|
|
370
|
+
export function parseRemoteRunCancelRequest(raw) {
|
|
371
|
+
const registered = parseRegisteredRunRequest(raw, "manager-run-cancel", "manager run cancel", ["stage", "subject", "cancel"]);
|
|
372
|
+
const input = raw;
|
|
373
|
+
if ((input.stage !== "inspect" && input.stage !== "commit") || typeof input.subject !== "string")
|
|
374
|
+
runRequestError("manager run cancel", "requires inspect or commit and an observed subject");
|
|
375
|
+
return { v: 1, kind: "manager-run-cancel", ...registered, stage: input.stage,
|
|
376
|
+
subject: input.subject, cancel: readRunCancelInput(input.cancel) };
|
|
377
|
+
}
|
|
378
|
+
/** Inspect never grants a later commit. A commit owns its immutable observation before caller
|
|
379
|
+
* authorization and store preparation, and checks it again at the native dispatch boundary. */
|
|
380
|
+
export async function handleRemoteRunCancel(args) {
|
|
381
|
+
const request = parseRemoteRunCancelRequest(args.request);
|
|
382
|
+
const common = { v: 1, kind: "manager-run-cancel", requestId: request.requestId, runId: request.cancel.runId };
|
|
383
|
+
// Authenticate the manager before its forward can consume another caller's observation.
|
|
384
|
+
await authenticateRegisteredManager(request, args, "run cancel");
|
|
385
|
+
const parsed = parseEpSubject(request.subject);
|
|
386
|
+
if (!request.subject.startsWith(`cotal.${args.space}.`) || !parsed || parsed.plane !== "request" || parsed.rail !== "v1"
|
|
387
|
+
|| parsed.route !== "inst" || parsed.instanceId !== request.instanceId || parsed.endpoint !== args.endpoint
|
|
388
|
+
|| parsed.command !== "run-cancel" || parsed.target !== null || !isIssuedCaller(parsed.caller))
|
|
389
|
+
throw new EpEnvelopeError("permission-denied", "run-cancel forward does not name this registered manager's issued request");
|
|
390
|
+
const caller = parsed.caller;
|
|
391
|
+
const authorize = async (observation) => {
|
|
392
|
+
args.assertServing();
|
|
393
|
+
if (observation.runId !== request.cancel.runId || observation.reason !== request.cancel.reason
|
|
394
|
+
|| observation.instanceId !== request.instanceId || observation.processEpoch !== request.processEpoch)
|
|
395
|
+
throw new EpEnvelopeError("permission-denied", "run-cancel forward differs from the observed request");
|
|
396
|
+
if (performance.now() >= observation.requestEndsAt)
|
|
397
|
+
throw new EpEnvelopeError("deadline-exceeded", "run-cancel original observed deadline expired");
|
|
398
|
+
const gate = await authenticateRegisteredManager(request, args, "run cancel recheck");
|
|
399
|
+
const registered = await args.registeredCommand(request.instanceId, gate.registrationRevision, "run-cancel");
|
|
400
|
+
if (registered.class !== "ephemeral" || registered.class !== observation.class
|
|
401
|
+
|| registered.inputDigest !== observation.inputDigest || registered.outputDigest !== observation.outputDigest)
|
|
402
|
+
throw new EpEnvelopeError("permission-denied", "run-cancel observation does not pin the registered contract");
|
|
403
|
+
const resolved = await args.issued.resolve({ space: args.space, owner: caller.owner, actor: caller.actor, uid: caller.uid, generation: caller.generation }, args.sourceIsLive);
|
|
404
|
+
if (!issuedPermitsSubject(resolved.evidence.permissions.publish, request.subject))
|
|
405
|
+
throw new EpEnvelopeError("permission-denied", "run-cancel issued authority does not permit its subject");
|
|
406
|
+
const view = await args.readAdmission(request.cancel.runId);
|
|
407
|
+
if (view.admission.space !== args.space || view.admission.endpoint !== args.endpoint || view.admission.runId !== request.cancel.runId)
|
|
408
|
+
throw new EpEnvelopeError("unavailable", "run-cancel admission names other coordinates");
|
|
409
|
+
const original = view.admission.caller;
|
|
410
|
+
let authority;
|
|
411
|
+
if (caller.owner === original.owner && caller.actor === original.actor && caller.uid === original.uid)
|
|
412
|
+
authority = "original";
|
|
413
|
+
else {
|
|
414
|
+
const scope = await args.interactiveScope(caller, resolved.evidence.sources);
|
|
415
|
+
if (scope?.includes("admin"))
|
|
416
|
+
authority = "admin";
|
|
417
|
+
else if (caller.owner === original.owner && scope?.includes("run"))
|
|
418
|
+
authority = "owner-interactive";
|
|
419
|
+
else
|
|
420
|
+
throw new EpEnvelopeError("permission-denied", "run-cancel request is not authorized");
|
|
421
|
+
}
|
|
422
|
+
args.assertServing();
|
|
423
|
+
if (performance.now() >= observation.requestEndsAt)
|
|
424
|
+
throw new EpEnvelopeError("deadline-exceeded", "run-cancel original observed deadline expired");
|
|
425
|
+
return { authority, view };
|
|
426
|
+
};
|
|
427
|
+
if (request.stage === "inspect") {
|
|
428
|
+
await args.flush();
|
|
429
|
+
const observation = args.observations.inspect(request.subject);
|
|
430
|
+
const { authority } = await authorize(observation);
|
|
431
|
+
// A redelivery may have conflicted during the reads. Inspection still grants nothing.
|
|
432
|
+
if (args.observations.inspect(request.subject) !== observation)
|
|
433
|
+
throw new EpEnvelopeError("permission-denied", "run-cancel observation changed");
|
|
434
|
+
return { ...common, stage: "inspect", authority };
|
|
435
|
+
}
|
|
436
|
+
let claim;
|
|
437
|
+
try {
|
|
438
|
+
await args.flush();
|
|
439
|
+
claim = args.observations.claim(request.subject);
|
|
440
|
+
const first = await authorize(claim.observation);
|
|
441
|
+
claim.assertCurrent();
|
|
442
|
+
if (first.view.revoked)
|
|
443
|
+
return { ...common, stage: "commit", result: { kind: "committed", outcome: "existed", revocation: first.view.revoked } };
|
|
444
|
+
const result = await args.withStore(request.cancel.runId, async (kv) => {
|
|
445
|
+
const fresh = await authorize(claim.observation);
|
|
446
|
+
claim.assertCurrent();
|
|
447
|
+
if (fresh.view.revoked)
|
|
448
|
+
return { kind: "committed", outcome: "existed", revocation: fresh.view.revoked };
|
|
449
|
+
const revocation = { version: 1, runId: request.cancel.runId, by: `${caller.owner}.${caller.actor}`, reason: request.cancel.reason, revokedAt: Date.now() };
|
|
450
|
+
const outcome = await commitRunCancellation(kv, args.endpoint, revocation, () => {
|
|
451
|
+
args.assertServing();
|
|
452
|
+
claim.dispatch();
|
|
453
|
+
});
|
|
454
|
+
if (outcome === "created")
|
|
455
|
+
return { kind: "committed", outcome, revocation };
|
|
456
|
+
const stored = await args.readRevocation(request.cancel.runId);
|
|
457
|
+
if (!stored)
|
|
458
|
+
throw new EpEnvelopeError("unavailable", "run-cancel marker could not be read after an existing write");
|
|
459
|
+
return { kind: "committed", outcome, revocation: stored };
|
|
460
|
+
});
|
|
461
|
+
return { ...common, stage: "commit", result };
|
|
462
|
+
}
|
|
463
|
+
catch (error) {
|
|
464
|
+
claim?.finish();
|
|
465
|
+
const refusal = args.observations.refusal(request.subject);
|
|
466
|
+
const allowed = new Set(["permission-denied", "failed-precondition", "deadline-exceeded", "resource-exhausted", "unavailable"]);
|
|
467
|
+
const code = error instanceof EpEnvelopeError && allowed.has(error.code) ? error.code : "unavailable";
|
|
468
|
+
return { ...common, stage: "commit", result: { kind: refusal.kind, code } };
|
|
469
|
+
}
|
|
470
|
+
finally {
|
|
471
|
+
claim?.finish();
|
|
472
|
+
}
|
|
473
|
+
}
|
|
313
474
|
/** Closed parser for the issuing-host revoke. It carries no asserted owner or attribution. */
|
|
314
475
|
export function parseRemoteRunRevokeRequest(raw) {
|
|
315
476
|
const what = "manager run revoke";
|
|
@@ -407,6 +568,25 @@ export function observedRunRequest(subject, data) {
|
|
|
407
568
|
const envelope = { class: env.class, op: env.op, bind: env.bind };
|
|
408
569
|
if (parsed.command === "run-start")
|
|
409
570
|
return { operation: { command: "run-start" }, envelope };
|
|
571
|
+
if (parsed.command === "run-start-keyed" || parsed.command === "run-submission-status") {
|
|
572
|
+
if (!Number.isSafeInteger(env.deadlineMs) || env.deadlineMs <= 0 || env.deadlineMs > KEYED_SUBMISSION_MAX_DEADLINE_MS)
|
|
573
|
+
return undefined;
|
|
574
|
+
// This runs in the shared observation callback: carried content that cannot be canonicalized
|
|
575
|
+
// (a lone surrogate, nesting past the stack) leaves the request unobserved, never a throw.
|
|
576
|
+
let fingerprint;
|
|
577
|
+
try {
|
|
578
|
+
fingerprint = submissionFingerprint(env, parsed).fingerprint;
|
|
579
|
+
}
|
|
580
|
+
catch {
|
|
581
|
+
return undefined;
|
|
582
|
+
}
|
|
583
|
+
const submission = { id: env.id, fingerprint, requestEndsAt: performance.now() + env.deadlineMs };
|
|
584
|
+
if (parsed.command === "run-start-keyed")
|
|
585
|
+
return { operation: { command: "run-start-keyed" }, envelope, submission };
|
|
586
|
+
if (typeof env.args?.submissionId !== "string")
|
|
587
|
+
return undefined;
|
|
588
|
+
return { operation: { command: "run-submission-status", submissionId: env.args.submissionId }, envelope, submission };
|
|
589
|
+
}
|
|
410
590
|
const args = env.args;
|
|
411
591
|
if (args === null || args === undefined || typeof args.runId !== "string")
|
|
412
592
|
return undefined;
|
|
@@ -471,7 +651,8 @@ async function authorizeServedRunCaller(args) {
|
|
|
471
651
|
}
|
|
472
652
|
/**
|
|
473
653
|
* Host-only authorization for {@link RemoteRunAttemptRequest}. Every coordinate the returned grant
|
|
474
|
-
* pins is derived from host stores: the admission must exist
|
|
654
|
+
* pins is derived from host stores: the admission must exist on this instance and be unrevoked
|
|
655
|
+
* for an attempt or answer. A read-only operator can inspect a revoked run. The
|
|
475
656
|
* attempt must be exactly the next epoch/fencing token the run record implies (1/1 for a first
|
|
476
657
|
* attempt with no record, as stock `start` launches), and an answer pins the pause the named run's
|
|
477
658
|
* journal records at the named step, which must be waiting. Refuses before the host signs anything.
|
|
@@ -481,8 +662,8 @@ export async function authorizeRemoteRunAttempt(args) {
|
|
|
481
662
|
const gate = await authenticateRegisteredManager(r, args, "run attempt");
|
|
482
663
|
const admitted = async (runId) => {
|
|
483
664
|
const view = await args.readAdmission(runId);
|
|
484
|
-
if (view.revoked !== undefined)
|
|
485
|
-
throw new EpEnvelopeError("permission-denied", `run ${runId} was revoked;
|
|
665
|
+
if (view.revoked !== undefined && (r.attempt !== undefined || r.operator?.answers !== undefined))
|
|
666
|
+
throw new EpEnvelopeError("permission-denied", `run ${runId} was revoked; no attempt or answering authority is issued (SPEC 14.8)`);
|
|
486
667
|
if (view.admission.instanceId !== r.instanceId || view.admission.endpoint !== args.endpoint || view.admission.space !== r.space)
|
|
487
668
|
throw new EpEnvelopeError("permission-denied", `run ${runId} was admitted on another manager instance or endpoint`);
|
|
488
669
|
return view.admission;
|