@cotal-ai/auth 0.91.0 → 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 +109 -8
- package/dist/authority-client.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +37 -10
- package/dist/commands.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/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.map +1 -1
- package/dist/provider.js +8 -0
- 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-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 +54 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +313 -14
- package/dist/service.js.map +1 -1
- package/package.json +9 -4
|
@@ -27,9 +27,14 @@
|
|
|
27
27
|
import { type NatsConnection } from "@nats-io/transport-node";
|
|
28
28
|
import { remoteManagerRegistrationProof, type EpCaller, type PlaneConnTuple } from "@cotal-ai/core";
|
|
29
29
|
import { type ConnectReader } from "./connect-reader.js";
|
|
30
|
+
import type { ServiceWriteScope } from "./service-write.js";
|
|
30
31
|
/** Self-minted infra-credential TTL (fact-3 pin: SHORT expiry + in-process renewal, a bounded
|
|
31
32
|
* in-memory credential that closes with the service — never an unbounded persisted one). */
|
|
32
33
|
export declare const AUTHORITY_CLIENT_TTL_SEC: number;
|
|
34
|
+
/** The longest window one service host effect credential covers: one service host invocation. */
|
|
35
|
+
export declare const SERVICE_HOST_INVOCATION_MS = 60000;
|
|
36
|
+
/** The fixed CONNZ name of every service host effect connection in `space`. */
|
|
37
|
+
export declare const serviceHostEffectLabel: (space: string) => string;
|
|
33
38
|
/** Only the auth mint writer records consents. Derived host writers use the shared base without it. */
|
|
34
39
|
export declare function authorityWriterGrants(space: string, connId: string): {
|
|
35
40
|
publish: string[];
|
|
@@ -65,6 +70,8 @@ export declare function platformReadinessGrants(space: string, connId: string, c
|
|
|
65
70
|
* The issuing host reads them and never replies: the broker let only the caller's ceiling publish
|
|
66
71
|
* each one, so observing it is the host's own evidence that the caller asked. */
|
|
67
72
|
export declare function servedRunRequestSubjects(space: string): string[];
|
|
73
|
+
/** Cancellation observes only the issued untargeted exact-instance rail. */
|
|
74
|
+
export declare function servedRunCancelRequestSubject(space: string): string;
|
|
68
75
|
export { remoteManagerRegistrationProof };
|
|
69
76
|
/**
|
|
70
77
|
* The registration executor grant for one instance of an endpoint the AUTH PLANE self-authorizes
|
|
@@ -141,6 +148,47 @@ export declare function authorityBarrierGrants(space: string, connId: string): {
|
|
|
141
148
|
export declare function barrierExecutorSettlementGrants(space: string, endpoint: string, pools: string[]): {
|
|
142
149
|
publish: string[];
|
|
143
150
|
};
|
|
151
|
+
/** The SERVICE HOST DISCOVERY reader: `STREAM.INFO` and leader-served `STREAM.MSG.GET` on both
|
|
152
|
+
* authority KV streams, and its own inbox. It publishes no `$KV` subject at all.
|
|
153
|
+
*
|
|
154
|
+
* Named residual: `MSG.GET` is body-selected, so its reads are stream-wide on both stores. The
|
|
155
|
+
* same reads ride every effect credential; write confinement is exact-key, read confinement is
|
|
156
|
+
* not offered. */
|
|
157
|
+
export declare function serviceHostDiscoveryGrants(space: string, connId: string): {
|
|
158
|
+
publish: string[];
|
|
159
|
+
subscribe: string[];
|
|
160
|
+
};
|
|
161
|
+
/** One service host invocation's EFFECT credential: the discovery reads, plus a `$KV` publish on
|
|
162
|
+
* exactly each key of `keys` and on exactly one more token under each auth family (a root
|
|
163
|
+
* credential id minted during the write). No key carries a wildcard, so the grant's subjects can
|
|
164
|
+
* never be wider than the scope the engine guards every write with.
|
|
165
|
+
*
|
|
166
|
+
* Named residual: this is publish-subject confinement only. Broker permissions do not restrict
|
|
167
|
+
* what a publish on a granted subject does; the engine's own writes are only creates and
|
|
168
|
+
* exact-revision CASes. */
|
|
169
|
+
export declare function serviceHostEffectGrants(space: string, connId: string, keys: ServiceWriteScope, reads?: ServiceHostEffectReads): {
|
|
170
|
+
publish: string[];
|
|
171
|
+
subscribe: string[];
|
|
172
|
+
};
|
|
173
|
+
/** What a serving effect reads and publishes beyond its writes: exact records keys, granted by
|
|
174
|
+
* Direct Get, and exact contract artifacts it publishes create-only and reads back after a lost
|
|
175
|
+
* create. The registry's KV handles are bound without Direct Get, so their reads of those records
|
|
176
|
+
* keys are leader message gets (`STREAM.MSG.GET` last by subject) under the base grant. */
|
|
177
|
+
export interface ServiceHostEffectReads {
|
|
178
|
+
readonly records: readonly string[];
|
|
179
|
+
readonly contract: readonly string[];
|
|
180
|
+
}
|
|
181
|
+
/** The SERVICE CALLOUT writer: the base writer, plus the endpoint gate and endpoint credential
|
|
182
|
+
* families a native service connection's mint stages and touches.
|
|
183
|
+
*
|
|
184
|
+
* Named residual: a broker ACL cannot confine one endpoint-token key family to service
|
|
185
|
+
* assignments, so these families also cover native control endpoints' rows. The native service
|
|
186
|
+
* mint writes only the bearer's own assignment rows, and every service gate parse refuses another
|
|
187
|
+
* authority family. */
|
|
188
|
+
export declare function serviceCalloutWriterGrants(space: string, connId: string): {
|
|
189
|
+
publish: string[];
|
|
190
|
+
subscribe: string[];
|
|
191
|
+
};
|
|
144
192
|
export interface AuthorityClientOpts {
|
|
145
193
|
/** Package-internal connection custody for an embedded auth context. */
|
|
146
194
|
onConnection?: (nc: NatsConnection, label: string) => void;
|
|
@@ -211,6 +259,24 @@ export interface AuthorityClientOpts {
|
|
|
211
259
|
* A copied JWT plus identity seed loses the old 900-second leak bound: it remains usable
|
|
212
260
|
* until signing-key removal. Service stop closes owned sockets, not an exfiltrated copy. */
|
|
213
261
|
toolResultCustody?: boolean;
|
|
262
|
+
/** One service host invocation's effect connection only: label {@link serviceHostEffectLabel},
|
|
263
|
+
* `noReconnect` required, never a plane, custody or renewing profile. `deadlineMs` is the
|
|
264
|
+
* invocation's ORIGINAL deadline: a safe integer after now and at most
|
|
265
|
+
* {@link SERVICE_HOST_INVOCATION_MS} ahead. The credential's one fixed `exp` is
|
|
266
|
+
* `ceil(deadlineMs / 1000)` whole seconds, so `exp * 1000` is never earlier than that deadline;
|
|
267
|
+
* it is never renewed, the connect is bounded by the remaining window, and {@link AuthorityClient.gone}
|
|
268
|
+
* resolves when the connection is gone.
|
|
269
|
+
*
|
|
270
|
+
* Broker granularity, disclosed: nats-server checks `exp` in whole seconds against its own clock,
|
|
271
|
+
* refuses a connect once its current second is past `exp`, and arms one whole-second timer at
|
|
272
|
+
* connect to close a live connection. With a broker clock that agrees with this process's and
|
|
273
|
+
* timely broker and client scheduling, that timer fires inside the second after `exp`, up to
|
|
274
|
+
* about `deadlineMs + 1999` ms (observed on 2.12.12 and 2.14.0). That is timer granularity, not a
|
|
275
|
+
* guaranteed close time: a skewed clock or a paused or late broker or client moves the close
|
|
276
|
+
* either way. No close, at any time, proves that an earlier write cannot still settle. */
|
|
277
|
+
serviceHostInvocation?: {
|
|
278
|
+
deadlineMs: number;
|
|
279
|
+
};
|
|
214
280
|
}
|
|
215
281
|
export interface AuthorityClient {
|
|
216
282
|
nc: NatsConnection;
|
|
@@ -222,9 +288,10 @@ export interface AuthorityClient {
|
|
|
222
288
|
/** planeCandidate only: this connection's broker identity, captured from the protocol INFO at
|
|
223
289
|
* connect — what the plane claim row pins ({@link PlaneConnTuple}). */
|
|
224
290
|
tuple?: PlaneConnTuple;
|
|
225
|
-
/** planeCandidate only: resolves when the NON-RECONNECTING connection
|
|
226
|
-
* plane's fencing signal
|
|
227
|
-
* deliberate teardown from a mid-life
|
|
291
|
+
/** planeCandidate and serviceHostInvocation only: resolves when the NON-RECONNECTING connection
|
|
292
|
+
* is permanently gone (the plane's fencing signal and the invocation's latch — close() also
|
|
293
|
+
* resolves it; the composition's `closing` flag tells a deliberate teardown from a mid-life
|
|
294
|
+
* death). */
|
|
228
295
|
gone?: Promise<void>;
|
|
229
296
|
close(): Promise<void>;
|
|
230
297
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority-client.d.ts","sourceRoot":"","sources":["../src/authority-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzF,OAAO,EAAyQ,8BAA8B,EAAiO,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE1kB,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"authority-client.d.ts","sourceRoot":"","sources":["../src/authority-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzF,OAAO,EAAyQ,8BAA8B,EAAiO,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE1kB,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;6FAC6F;AAC7F,eAAO,MAAM,wBAAwB,QAAU,CAAC;AAEhD,iGAAiG;AACjG,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,WAAyC,CAAC;AAoD9F,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAK/G;AAED;gEACgE;AAChE,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAWjI;AAED,oGAAoG;AACpG,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAKhI;AAED;;qEAEqE;AACrE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CA8BnH;AAED;;yFAEyF;AACzF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CASvJ;AAED;;;kFAGkF;AAClF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAShE;AAED,4EAA4E;AAC5E,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC1J;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CA6DhH;AAED;;;;;;;;;;;;;;;;;;;;iGAoBiG;AACjG,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAcvH;AAED;;;;;mBAKmB;AACnB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAQpH;AAUD;;;;;;;4BAO4B;AAC5B,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,GAAE,sBAAwC,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAiB3L;AAED;;;4FAG4F;AAC5F,MAAM,WAAW,sBAAsB;IAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAGrH;;;;;;wBAMwB;AACxB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAGpH;AAED,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,mGAAmG;IACnG,KAAK,EAAE,MAAM,CAAC;IACd;mDAC+C;IAC/C,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvE;;;;2GAIuG;IACvG,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B;;qDAEiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;8DAE0D;IAC1D,YAAY,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD;;;;;;;;kFAQ8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;;;;kGAc8F;IAC9F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;gGAI4F;IAC5F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;+FAc2F;IAC3F,qBAAqB,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,cAAc,CAAC;IACnB,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;IACf;oFACgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;4EACwE;IACxE,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB;;;kBAGc;IACd,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAsBD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoF7F;AAED,MAAM,WAAW,uBAAuB;IACtC;;8CAE0C;IAC1C,OAAO,IAAI,aAAa,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,OAAO,CAAC,GAClD,OAAO,CAAC,uBAAuB,CAAC,CA0DlC"}
|
package/dist/authority-client.js
CHANGED
|
@@ -34,6 +34,10 @@ import { environmentManagerAdmissionIndexBucket } from "./environment-manager-ad
|
|
|
34
34
|
/** Self-minted infra-credential TTL (fact-3 pin: SHORT expiry + in-process renewal, a bounded
|
|
35
35
|
* in-memory credential that closes with the service — never an unbounded persisted one). */
|
|
36
36
|
export const AUTHORITY_CLIENT_TTL_SEC = 15 * 60;
|
|
37
|
+
/** The longest window one service host effect credential covers: one service host invocation. */
|
|
38
|
+
export const SERVICE_HOST_INVOCATION_MS = 60_000;
|
|
39
|
+
/** The fixed CONNZ name of every service host effect connection in `space`. */
|
|
40
|
+
export const serviceHostEffectLabel = (space) => `cotal:service-host-effect:${space}`;
|
|
37
41
|
/**
|
|
38
42
|
* The MINT WRITER's scoped credential grant (SPEC 13.9): the exchange-time issuance executor.
|
|
39
43
|
* Exactly the store-ensure + activation-saga + root-mint surface:
|
|
@@ -142,7 +146,7 @@ export function remoteManagerIssuerGrants(space, connId) {
|
|
|
142
146
|
`$JS.API.STREAM.INFO.KV_${sessionsBucket(space)}`,
|
|
143
147
|
`$JS.API.STREAM.MSG.GET.KV_${sessionsBucket(space)}`,
|
|
144
148
|
],
|
|
145
|
-
subscribe: [...base.subscribe, ...servedRunRequestSubjects(space)],
|
|
149
|
+
subscribe: [...base.subscribe, ...servedRunRequestSubjects(space), servedRunCancelRequestSubject(space)],
|
|
146
150
|
};
|
|
147
151
|
}
|
|
148
152
|
/** The PLATFORM READINESS reader (SPEC 13.9): `describe` and `status` of one manager instance on
|
|
@@ -163,12 +167,16 @@ export function servedRunRequestSubjects(space) {
|
|
|
163
167
|
const p = spacePrefix(space);
|
|
164
168
|
const m = endpointToken("manager");
|
|
165
169
|
return [
|
|
166
|
-
...["run-start", "run-resume", "run-answer"].flatMap((c) => [`${p}.ep.v1.inst.${m}.*.${c}.>`, `${p}.ep.v1.one.${m}.${c}.>`]),
|
|
170
|
+
...["run-start", "run-resume", "run-answer", "run-start-keyed", "run-submission-status"].flatMap((c) => [`${p}.ep.v1.inst.${m}.*.${c}.>`, `${p}.ep.v1.one.${m}.${c}.>`]),
|
|
167
171
|
// A managed seat answers on the legacy rail, the relay path; nothing else served there is forwarded.
|
|
168
172
|
`${p}.ep.inst.${m}.*.run-answer.>`,
|
|
169
173
|
`${p}.ep.one.${m}.run-answer.>`,
|
|
170
174
|
];
|
|
171
175
|
}
|
|
176
|
+
/** Cancellation observes only the issued untargeted exact-instance rail. */
|
|
177
|
+
export function servedRunCancelRequestSubject(space) {
|
|
178
|
+
return `${spacePrefix(space)}.ep.v1.inst.${endpointToken("manager")}.*.run-cancel.>`;
|
|
179
|
+
}
|
|
172
180
|
export { remoteManagerRegistrationProof };
|
|
173
181
|
/**
|
|
174
182
|
* The registration executor grant for one instance of an endpoint the AUTH PLANE self-authorizes
|
|
@@ -346,6 +354,89 @@ export function barrierExecutorSettlementGrants(space, endpoint, pools) {
|
|
|
346
354
|
publish.push(`$JS.API.STREAM.MSG.GET.${epfStreamName(space)}`);
|
|
347
355
|
return { publish };
|
|
348
356
|
}
|
|
357
|
+
/** The SERVICE HOST DISCOVERY reader: `STREAM.INFO` and leader-served `STREAM.MSG.GET` on both
|
|
358
|
+
* authority KV streams, and its own inbox. It publishes no `$KV` subject at all.
|
|
359
|
+
*
|
|
360
|
+
* Named residual: `MSG.GET` is body-selected, so its reads are stream-wide on both stores. The
|
|
361
|
+
* same reads ride every effect credential; write confinement is exact-key, read confinement is
|
|
362
|
+
* not offered. */
|
|
363
|
+
export function serviceHostDiscoveryGrants(space, connId) {
|
|
364
|
+
const auth = `KV_${epAuthBucket(space)}`;
|
|
365
|
+
const records = `KV_${recordsBucket(space)}`;
|
|
366
|
+
return {
|
|
367
|
+
publish: ["$JS.API.INFO", `$JS.API.STREAM.INFO.${auth}`, `$JS.API.STREAM.INFO.${records}`,
|
|
368
|
+
`$JS.API.STREAM.MSG.GET.${auth}`, `$JS.API.STREAM.MSG.GET.${records}`],
|
|
369
|
+
subscribe: [`_INBOX_${assertInboxConnId(connId)}.>`],
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
const KV_KEY = /^[-/=\w]+(\.[-/=\w]+)*$/;
|
|
373
|
+
const KV_FAMILY = /^([-/=\w]+\.)+$/;
|
|
374
|
+
function scopeKey(pattern, key, what) {
|
|
375
|
+
if (typeof key !== "string" || !pattern.test(key))
|
|
376
|
+
throw new EpEnvelopeError("bad-request", `a service host effect grant names ${what} ${JSON.stringify(key)} that is not plain dotted key tokens`);
|
|
377
|
+
return key;
|
|
378
|
+
}
|
|
379
|
+
/** One service host invocation's EFFECT credential: the discovery reads, plus a `$KV` publish on
|
|
380
|
+
* exactly each key of `keys` and on exactly one more token under each auth family (a root
|
|
381
|
+
* credential id minted during the write). No key carries a wildcard, so the grant's subjects can
|
|
382
|
+
* never be wider than the scope the engine guards every write with.
|
|
383
|
+
*
|
|
384
|
+
* Named residual: this is publish-subject confinement only. Broker permissions do not restrict
|
|
385
|
+
* what a publish on a granted subject does; the engine's own writes are only creates and
|
|
386
|
+
* exact-revision CASes. */
|
|
387
|
+
export function serviceHostEffectGrants(space, connId, keys, reads = NO_EFFECT_READS) {
|
|
388
|
+
const base = serviceHostDiscoveryGrants(space, connId);
|
|
389
|
+
const auth = epAuthBucket(space);
|
|
390
|
+
const records = recordsBucket(space);
|
|
391
|
+
const epc = epcStreamName(space), prefix = spacePrefix(space);
|
|
392
|
+
return {
|
|
393
|
+
publish: [...base.publish,
|
|
394
|
+
...keys.records.map((k) => `$KV.${records}.${scopeKey(KV_KEY, k, "the records key")}`),
|
|
395
|
+
...keys.auth.map((k) => `$KV.${auth}.${scopeKey(KV_KEY, k, "the auth key")}`),
|
|
396
|
+
...keys.authFamilies.map((f) => `$KV.${auth}.${scopeKey(KV_FAMILY, f, "the auth family")}*`),
|
|
397
|
+
...reads.records.map((k) => `$JS.API.DIRECT.GET.KV_${records}.$KV.${records}.${scopeKey(KV_KEY, k, "the records read")}`),
|
|
398
|
+
...reads.contract.flatMap((hex) => {
|
|
399
|
+
if (!/^[0-9a-f]{64}$/.test(hex))
|
|
400
|
+
throw new EpEnvelopeError("bad-request", "a service host effect grant names a contract artifact that is not a sha256 hex digest");
|
|
401
|
+
return [`${prefix}.epc.${hex}`, `$JS.API.DIRECT.GET.${epc}.${prefix}.epc.${hex}`];
|
|
402
|
+
})],
|
|
403
|
+
subscribe: base.subscribe,
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
const NO_EFFECT_READS = Object.freeze({ records: Object.freeze([]), contract: Object.freeze([]) });
|
|
407
|
+
/** The SERVICE CALLOUT writer: the base writer, plus the endpoint gate and endpoint credential
|
|
408
|
+
* families a native service connection's mint stages and touches.
|
|
409
|
+
*
|
|
410
|
+
* Named residual: a broker ACL cannot confine one endpoint-token key family to service
|
|
411
|
+
* assignments, so these families also cover native control endpoints' rows. The native service
|
|
412
|
+
* mint writes only the bearer's own assignment rows, and every service gate parse refuses another
|
|
413
|
+
* authority family. */
|
|
414
|
+
export function serviceCalloutWriterGrants(space, connId) {
|
|
415
|
+
const base = baseAuthorityWriterGrants(space, connId), auth = epAuthBucket(space);
|
|
416
|
+
return { publish: [...base.publish, `$KV.${auth}.epgate.*.*`, `$KV.${auth}.epcred.*.*.*`], subscribe: base.subscribe };
|
|
417
|
+
}
|
|
418
|
+
function refuseServiceHostEffect(detail) {
|
|
419
|
+
throw new EpEnvelopeError("failed-precondition", `a service host effect credential ${detail}`);
|
|
420
|
+
}
|
|
421
|
+
/** The service host effect profile's one fixed `exp`, derived from the original deadline alone. */
|
|
422
|
+
function serviceHostInvocationExpiry(opts) {
|
|
423
|
+
if (opts.label !== serviceHostEffectLabel(opts.space))
|
|
424
|
+
refuseServiceHostEffect(`requires the label ${serviceHostEffectLabel(opts.space)}`);
|
|
425
|
+
if (opts.noReconnect !== true)
|
|
426
|
+
refuseServiceHostEffect("requires noReconnect");
|
|
427
|
+
if (opts.planeCandidate || opts.toolResultCustody || opts.probeRenewal !== undefined || opts.onRenewalFailure !== undefined)
|
|
428
|
+
refuseServiceHostEffect("is never a plane, custody or renewing profile");
|
|
429
|
+
const deadlineMs = opts.serviceHostInvocation?.deadlineMs, now = Date.now();
|
|
430
|
+
if (typeof deadlineMs !== "number" || !Number.isSafeInteger(deadlineMs))
|
|
431
|
+
refuseServiceHostEffect("requires a safe-integer original deadline in milliseconds");
|
|
432
|
+
if (deadlineMs <= now || deadlineMs > now + SERVICE_HOST_INVOCATION_MS)
|
|
433
|
+
refuseServiceHostEffect(`requires an original deadline after now and at most ${SERVICE_HOST_INVOCATION_MS} ms ahead`);
|
|
434
|
+
// Whole seconds, never milliseconds: a millisecond-valued exp would pass the broker as a far-future second.
|
|
435
|
+
const exp = Math.ceil(deadlineMs / 1000);
|
|
436
|
+
if (!Number.isSafeInteger(exp) || exp * 1000 < deadlineMs || exp * 1000 - deadlineMs >= 1000)
|
|
437
|
+
refuseServiceHostEffect("has no exact whole-second expiry");
|
|
438
|
+
return { exp, deadlineMs };
|
|
439
|
+
}
|
|
349
440
|
/**
|
|
350
441
|
* Open one self-minted data-account connection: a stable user nkey, a short-exp user JWT signed
|
|
351
442
|
* by the data account's signing seed, re-minted in-process at half-life. The authenticator
|
|
@@ -355,23 +446,30 @@ export function barrierExecutorSettlementGrants(space, endpoint, pools) {
|
|
|
355
446
|
export async function openAuthorityClient(opts) {
|
|
356
447
|
if (opts.toolResultCustody && (opts.planeCandidate || !["cotal:tool-result-snapshot", "cotal:tool-result-revocation"].includes(opts.label)))
|
|
357
448
|
throw new Error("tool-result custody requires its dedicated internal reader or writer profile");
|
|
449
|
+
// Checked before any identity, grant or connection exists.
|
|
450
|
+
const invocation = opts.serviceHostInvocation === undefined ? undefined : serviceHostInvocationExpiry(opts);
|
|
358
451
|
const uninterrupted = Boolean(opts.planeCandidate || opts.toolResultCustody);
|
|
359
452
|
const identity = newIdentity();
|
|
360
453
|
const grants = opts.grants(identity.id);
|
|
361
454
|
const signer = fromSeed(new TextEncoder().encode(opts.dataAccount.signingSeed));
|
|
362
455
|
const mint = async () => encodeUser(opts.label, fromPublic(identity.id), fromPublic(opts.dataAccount.pub), { pub: { allow: grants.publish }, sub: { allow: grants.subscribe },
|
|
363
456
|
...(opts.principal ? { tags: principalTags(opts.principal.owner, opts.principal.actor) } : {}) },
|
|
364
|
-
// Plane scanners and the separate custody profile require uninterrupted identities.
|
|
365
|
-
//
|
|
366
|
-
|
|
457
|
+
// Plane scanners and the separate custody profile require uninterrupted identities. A
|
|
458
|
+
// service host effect expires at its invocation's original deadline. Every other authority
|
|
459
|
+
// connection keeps short expiry and half-life renewal.
|
|
460
|
+
uninterrupted ? { signer } : { signer, exp: invocation ? invocation.exp : Math.floor(Date.now() / 1000) + AUTHORITY_CLIENT_TTL_SEC });
|
|
367
461
|
let currentJwt = await mint();
|
|
368
462
|
const renew = async () => {
|
|
369
463
|
if (opts.probeRenewal?.fail)
|
|
370
464
|
throw new Error("probe-forced renewal failure");
|
|
371
465
|
return mint();
|
|
372
466
|
};
|
|
373
|
-
//
|
|
374
|
-
|
|
467
|
+
// No uninterrupted profile can present renewal without its forbidden reconnect, and a service
|
|
468
|
+
// host effect never outlives its one fixed expiry.
|
|
469
|
+
const remaining = invocation ? invocation.deadlineMs - Date.now() : undefined;
|
|
470
|
+
if (remaining !== undefined && remaining <= 0)
|
|
471
|
+
refuseServiceHostEffect("its original deadline passed before the connect");
|
|
472
|
+
const renewal = uninterrupted || invocation ? undefined : setInterval(() => {
|
|
375
473
|
void renew().then((jwt) => { currentJwt = jwt; }, (e) => {
|
|
376
474
|
opts.log(`${opts.label}: credential renewal FAILED (${e?.message ?? String(e)}) - failing closed NOW (fail-closed renewal boundary)`);
|
|
377
475
|
opts.onRenewalFailure?.();
|
|
@@ -387,6 +485,8 @@ export async function openAuthorityClient(opts) {
|
|
|
387
485
|
// Custody, plane candidates and per-call repairs never reconnect. Other standing
|
|
388
486
|
// authority connections use stock renewal/reconnect semantics.
|
|
389
487
|
...(uninterrupted || opts.noReconnect ? { reconnect: false, maxReconnectAttempts: 0 } : { maxReconnectAttempts: -1 }),
|
|
488
|
+
// A service host effect's handshake never outlasts its invocation.
|
|
489
|
+
...(remaining !== undefined ? { timeout: remaining } : {}),
|
|
390
490
|
});
|
|
391
491
|
}
|
|
392
492
|
catch (e) {
|
|
@@ -407,8 +507,9 @@ export async function openAuthorityClient(opts) {
|
|
|
407
507
|
throw new EpEnvelopeError("unavailable", `${opts.label}: the broker INFO carries no usable (server_id, client_id) for the plane claim (got server_id=${JSON.stringify(info?.server_id)}, client_id=${JSON.stringify(info?.client_id)}); an ownership-bearing scanner connection must be claim-pinnable (SPEC 13.13)`);
|
|
408
508
|
}
|
|
409
509
|
tuple = { serverId: info.server_id, cid: info.client_id, userNkey: identity.id };
|
|
410
|
-
gone = nc.closed().then(() => undefined, () => undefined);
|
|
411
510
|
}
|
|
511
|
+
if (opts.planeCandidate || invocation)
|
|
512
|
+
gone = nc.closed().then(() => undefined, () => undefined);
|
|
412
513
|
return {
|
|
413
514
|
nc,
|
|
414
515
|
connId: identity.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority-client.js","sourceRoot":"","sources":["../src/authority-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authority-client.js","sourceRoot":"","sources":["../src/authority-client.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAqaA;4CAC4C;AAC5C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAEhG"}
|
package/dist/commands.js
CHANGED
|
@@ -9,7 +9,7 @@ import { authServiceFlags } from "./daemon-flags.js";
|
|
|
9
9
|
import { readFileSync } from "node:fs";
|
|
10
10
|
import * as prompts from "@clack/prompts";
|
|
11
11
|
import { assertDerivedOwnerToken, assertLifecycleToken, assertValidChannel, assertValidOwnerToken, assertValidRole, isLoopbackLiteral, registry, resolveAuthProvider, resolveSpaceCatalogConsumer, writePrivateRecord } from "@cotal-ai/core";
|
|
12
|
-
import { CommandFailure, credentialMintFlags, validateCredentialMintArguments, exportSpaceSigner, signerExportFlags, validateSignerExportInput, inputDisabledByFlag, isWorkspaceTargetError, resolveMeshTarget, targetErrorCode, spaceFlag, isCommandFailure, oneLine, jsonFlag, plainFlag, presentationOf, renderReport, terminalWidth, writeResult, CLI_USER_ACTOR, findCotalRoot, getSpaceAuth, homeCotalDir, loadMeshes, probeLiveness, removeCatalogMeshes, untilInputEnds, userAuthStateDir, deprecatedDaemonEntry, workspaceSecretStore } from "@cotal-ai/workspace";
|
|
12
|
+
import { CommandFailure, credentialMintFlags, validateCredentialMintArguments, exportSpaceSigner, signerExportFlags, validateSignerExportInput, inputDisabledByFlag, isWorkspaceTargetError, resolveMeshTarget, targetErrorCode, spaceFlag, isCommandFailure, oneLine, jsonFlag, plainFlag, presentationOf, renderReport, terminalWidth, writeResult, CLI_USER_ACTOR, findCotalRoot, getSpaceAuth, homeCotalDir, loadMeshes, probeLiveness, removeCatalogMeshes, untilInputEnds, userAuthStateDir, deprecatedDaemonEntry, workspaceErrorParts, workspaceSecretStore } from "@cotal-ai/workspace";
|
|
13
13
|
import { deleteIdpSession, deleteIdpSpaceCatalog, establishIdpSession, IdpUnreachableError, loadIdpSession, listIdpAccounts, normalizeIdpUrl, revokeIdpSession, } from "./login.js";
|
|
14
14
|
import { inspectHandleFile } from "./handle-inspect.js";
|
|
15
15
|
import { checkedEviction } from "./barrier-evict.js";
|
|
@@ -238,7 +238,17 @@ async function runLogout(args) {
|
|
|
238
238
|
* workstation commands — the ledger machine — so the workspace FS composition IS the correct
|
|
239
239
|
* one, not a fallback). */
|
|
240
240
|
function actorState(target) {
|
|
241
|
-
return { dir: userAuthStateDir(target.root, target.space), space: target.space, store: workspaceSecretStore(target.root) };
|
|
241
|
+
return { dir: userAuthStateDir(target.root, target.space), space: target.space, mode: target.mode, store: workspaceSecretStore(target.root) };
|
|
242
|
+
}
|
|
243
|
+
/** The refusal of a grant read or change on a root that holds no owner secret and IdP pin for the
|
|
244
|
+
* space. A static or open space has no user-auth ledger on any machine, so its refusal says grants
|
|
245
|
+
* need a user-auth space; another space's ledger may live at another root. `unwritten` says what
|
|
246
|
+
* this command did not do. */
|
|
247
|
+
function noLedger(st, unwritten) {
|
|
248
|
+
const target = { space: st.space };
|
|
249
|
+
if (st.mode === "auth" || st.mode === "open")
|
|
250
|
+
return new CommandFailure("refused", "UNSUPPORTED", `space "${st.space}" is ${st.mode === "auth" ? "a static-credential" : "an open"} space and has no user-auth ledger; ${unwritten}`, { target, remedy: "actor grants apply only to a space started with `cotal up --user-auth`" });
|
|
251
|
+
return new CommandFailure("refused", "UNSUPPORTED", `this root does not hold the space's authoritative user-auth ledger; ${unwritten}`, { target, remedy: "manage grants on the machine and root that host this space's user-auth ledger; a space started without `--user-auth` has none" });
|
|
242
252
|
}
|
|
243
253
|
/** Resolve the operator's target (owner) for `actor grant`/`revoke`: an explicit derived `--owner`
|
|
244
254
|
* token, or `--sub` (the IdP subject `cotal login` prints) derived through the SAME frozen encoding
|
|
@@ -246,11 +256,11 @@ function actorState(target) {
|
|
|
246
256
|
* IS the machine that ran `cotal up --user-auth`, where the authoritative ledger lives. Without
|
|
247
257
|
* them a grant would write an INERT LOCAL row and print a misleading success while the mesh's real
|
|
248
258
|
* ledger is untouched (an off-machine `--owner` cannot mutate authority), so we refuse instead. */
|
|
249
|
-
async function resolveGrantOwner(st, values) {
|
|
259
|
+
async function resolveGrantOwner(st, values, unwritten) {
|
|
250
260
|
const secret = await loadOwnerSecret(st.store, st.space);
|
|
251
261
|
const idp = loadPinnedIdp(st.dir);
|
|
252
262
|
if (!secret || !idp)
|
|
253
|
-
throw
|
|
263
|
+
throw noLedger(st, unwritten);
|
|
254
264
|
if (values.owner)
|
|
255
265
|
return values.owner;
|
|
256
266
|
return deriveOwnerForIdpSubject(secret, idp.issuer, values.sub);
|
|
@@ -324,7 +334,7 @@ async function runActor(args, target, command) {
|
|
|
324
334
|
await legibly(async () => {
|
|
325
335
|
if (sub === "list") {
|
|
326
336
|
if (!(await loadOwnerSecret(st.store, space)) || !loadPinnedIdp(dir))
|
|
327
|
-
throw
|
|
337
|
+
throw noLedger(st, "an empty grant list was not inferred");
|
|
328
338
|
const items = loadActorLedger(dir).sort((a, b) => (a.owner + a.actor).localeCompare(b.owner + b.actor)).map(publicActor);
|
|
329
339
|
writeResult(presentationOf(args.values), { command, target: { space }, result: { kind: "actor-grants", items } }, (result) => grantView(space, result.items));
|
|
330
340
|
return;
|
|
@@ -332,7 +342,7 @@ async function runActor(args, target, command) {
|
|
|
332
342
|
if (sub === "grant") {
|
|
333
343
|
if (!actor)
|
|
334
344
|
throw new CommandFailure("refused", "USAGE_INVALID", grantUsage(command));
|
|
335
|
-
const owner = await resolveGrantOwner(st, values);
|
|
345
|
+
const owner = await resolveGrantOwner(st, values, "no inert grant was written");
|
|
336
346
|
//
|
|
337
347
|
// A re-grant rotates the lifecycle so a copied bearer cannot cross the authorization update.
|
|
338
348
|
// Retire the predecessor through the auth plane first; issuance is not allowed to perform a
|
|
@@ -380,7 +390,7 @@ async function runActor(args, target, command) {
|
|
|
380
390
|
if (sub === "revoke") {
|
|
381
391
|
if (!actor)
|
|
382
392
|
throw new CommandFailure("refused", "USAGE_INVALID", grantUsage(command));
|
|
383
|
-
const owner = await resolveGrantOwner(st, values);
|
|
393
|
+
const owner = await resolveGrantOwner(st, values, "nothing was revoked");
|
|
384
394
|
const current = findInteractiveActor(dir, owner, actor);
|
|
385
395
|
if (!current) {
|
|
386
396
|
if (findManagedActor(dir, owner, actor))
|
|
@@ -732,13 +742,15 @@ function validateGrantUsage(command, mode, actor, extra, flags) {
|
|
|
732
742
|
function localAuthTarget(values) {
|
|
733
743
|
try {
|
|
734
744
|
const target = resolveMeshTarget(process.cwd(), { ...values, readOnly: true });
|
|
735
|
-
return { root: target.root, space: target.space };
|
|
745
|
+
return { root: target.root, space: target.space, mode: target.mode };
|
|
736
746
|
}
|
|
737
747
|
catch (error) {
|
|
738
748
|
if (isWorkspaceTargetError(error)) {
|
|
739
749
|
if (error.code === "not-started" && error.details.root && error.details.space)
|
|
740
750
|
return { root: error.details.root, space: error.details.space };
|
|
741
|
-
|
|
751
|
+
// These commands take no --server, so the no-mesh step names only `cotal up`.
|
|
752
|
+
const remedy = error.code === "no-meshes" ? "run `cotal up` in a project" : workspaceErrorParts({ kind: "target", error }).remedy;
|
|
753
|
+
throw new CommandFailure("refused", targetErrorCode(error.code), "the selected space's local authority root could not be resolved; no different root was selected", remedy === undefined ? {} : { remedy });
|
|
742
754
|
}
|
|
743
755
|
throw error;
|
|
744
756
|
}
|
|
@@ -812,9 +824,24 @@ async function authGroup(args) {
|
|
|
812
824
|
const expiry = new Date(account.expiresAt * 1000);
|
|
813
825
|
return { provider: account.idp, subject: account.sub ?? null, cachedExpiry: account.expiresAt, cachedExpiryIso: Number.isFinite(expiry.getTime()) ? expiry.toISOString() : null, cachedExpiryPassed: account.expiresAt * 1000 <= Date.now(), verification: "not-checked" };
|
|
814
826
|
});
|
|
827
|
+
// The Next lines name a real space: the requested one, else the one a bare command resolves. With
|
|
828
|
+
// none, they point to the space list rather than print an unfilled `--space`.
|
|
829
|
+
let space = args.values.space;
|
|
830
|
+
if (space === undefined) {
|
|
831
|
+
try {
|
|
832
|
+
space = resolveMeshTarget(process.cwd(), { readOnly: true }).space;
|
|
833
|
+
}
|
|
834
|
+
catch (error) {
|
|
835
|
+
if (!isWorkspaceTargetError(error))
|
|
836
|
+
throw error;
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
const spaceSteps = space === undefined
|
|
840
|
+
? [{ command: "cotal space", description: "See registered spaces and choose one" }]
|
|
841
|
+
: [{ command: `cotal whoami --space ${space}`, description: "Resolve the selected space's actual CLI caller" }, { command: `cotal auth grants --space ${space}`, description: "Read the locally authoritative actor ledger" }];
|
|
815
842
|
writeResult(presentationOf(args.values), { command: "auth", target: { requestedSpace: args.values.space ?? null }, result: { kind: "account-cache", items, liveAuthorization: "not-checked" } }, (result) => ({ sections: [
|
|
816
843
|
{ title: "Cached accounts", blocks: [result.items.length ? { kind: "table", columns: [{ key: "provider", label: "Provider" }, { key: "subject", label: "Account subject" }, { key: "expiry", label: "Cached expiry" }, { key: "state", label: "Cache state" }], rows: result.items.map((account) => ({ provider: account.provider, subject: account.subject ?? "not cached", expiry: account.cachedExpiryIso ?? "not representable", state: account.cachedExpiryPassed ? "expiry passed" : "not verified online" })) } : { kind: "lines", lines: ["No cached provider accounts."] }, { kind: "lines", lines: [{ text: "Cache metadata only. A sign-in is not a space grant and this view does not prove current session validity or live authorization. Tokens and grant secrets are not printed.", tone: "hint" }] }] },
|
|
817
|
-
{ title: "Next", blocks: [{ kind: "commands", items: [
|
|
844
|
+
{ title: "Next", blocks: [{ kind: "commands", items: [...spaceSteps, { command: "cotal login", description: "Choose a provider and approve sign-in" }] }] },
|
|
818
845
|
] }));
|
|
819
846
|
}
|
|
820
847
|
const authCommand = {
|