@cleocode/contracts 2026.9.25 → 2026.10.1

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.
@@ -28,7 +28,7 @@ export declare const NEXUS_CLI_CLIENT_ID = "cleo-cli";
28
28
  */
29
29
  export declare const NEXUS_LOGIN_TARGET = "nexus";
30
30
  /** Stable error codes of the Nexus account flows. */
31
- export declare const NEXUS_ACCOUNT_ERROR_CODES: readonly ["E_NEXUS_INVALID_API_URL", "E_NEXUS_NOT_SIGNED_IN", "E_NEXUS_SESSION_EXPIRED", "E_NEXUS_DEVICE_CODE_START_FAILED", "E_NEXUS_UNTRUSTED_VERIFICATION_URI", "E_NEXUS_DEVICE_CODE_EXPIRED", "E_NEXUS_ACCESS_DENIED", "E_NEXUS_DEVICE_CODE_FAILED", "E_NEXUS_REVOKE_FAILED", "E_NEXUS_REQUEST_FAILED", "E_NEXUS_NOT_A_PROJECT", "E_NEXUS_INVALID_LABEL"];
31
+ export declare const NEXUS_ACCOUNT_ERROR_CODES: readonly ["E_NEXUS_INVALID_API_URL", "E_NEXUS_NOT_SIGNED_IN", "E_NEXUS_SESSION_EXPIRED", "E_NEXUS_DEVICE_CODE_START_FAILED", "E_NEXUS_UNTRUSTED_VERIFICATION_URI", "E_NEXUS_DEVICE_CODE_EXPIRED", "E_NEXUS_ACCESS_DENIED", "E_NEXUS_DEVICE_CODE_FAILED", "E_NEXUS_REVOKE_FAILED", "E_NEXUS_REQUEST_FAILED", "E_NEXUS_NOT_A_PROJECT", "E_NEXUS_INVALID_LABEL", "E_NEXUS_UNREACHABLE", "E_NEXUS_REVOKE_PENDING", "E_NEXUS_DEVICE_SIGNED_OUT", "E_NEXUS_DEVICE_REVOKED", "E_NEXUS_CREDENTIAL_COMPROMISED", "E_NEXUS_INSUFFICIENT_SCOPE", "E_NEXUS_REPLICA_COPIED", "E_NEXUS_BUSY", "E_NEXUS_ACCOUNT_AMBIGUOUS", "E_NEXUS_DEVICE_REQUIRED", "E_NEXUS_LINK_FILE_UNSUPPORTED"];
32
32
  /** One of {@link NEXUS_ACCOUNT_ERROR_CODES}. */
33
33
  export type NexusAccountErrorCode = (typeof NEXUS_ACCOUNT_ERROR_CODES)[number];
34
34
  /** The signed-in user, as `/v1/account/me` reports it. */
@@ -93,6 +93,19 @@ export interface NexusAccountStatus {
93
93
  /** One human line: "signed in as a@b.c (Org)", "session expired", "not signed in". */
94
94
  summary: string;
95
95
  }
96
+ /** The enrolled device, as `cleo login nexus` reports it (device contract §3.3 step 10). */
97
+ export interface NexusLoginDevice {
98
+ /** The Nexus device id (UUIDv7, scoped to this CLEO home, origin and user). */
99
+ deviceId: string;
100
+ /** Display name the server holds. */
101
+ name: string;
102
+ /** Server-side state (`active` right after a login). */
103
+ state: string;
104
+ /** Credential profile: `device` or `read-only`. */
105
+ profile: string | null;
106
+ /** `true` when E1 created the device row, `false` when it re-enrolled it. */
107
+ created: boolean | null;
108
+ }
96
109
  /** Result of `cleo login nexus` (never carries the token). */
97
110
  export interface NexusLoginResult {
98
111
  /** API origin the session belongs to. */
@@ -107,6 +120,10 @@ export interface NexusLoginResult {
107
120
  credentialsPath: string;
108
121
  /** Non-fatal problems, e.g. the account lookup failed after a good login. */
109
122
  warnings: string[];
123
+ /** The enrolled device; present only with device credentials (the default; off with `CLEO_NEXUS_DEVICE=0`). */
124
+ device?: NexusLoginDevice;
125
+ /** Scopes of the stored device credential; present only with device credentials. */
126
+ scopes?: string[];
110
127
  }
111
128
  /** Result of `cleo logout nexus`. */
112
129
  export interface NexusLogoutResult {
@@ -124,6 +141,53 @@ export interface NexusLogoutResult {
124
141
  /** Non-fatal problems. */
125
142
  warnings: string[];
126
143
  }
144
+ /**
145
+ * What happened to one device's sign-out (E9) or revoke (E10) in
146
+ * `cleo logout nexus [--revoke]` with device credentials (the default; `CLEO_NEXUS_DEVICE=0` turns them off) (cleo-nexus
147
+ * device contract §3.5, M3). Holds no secret.
148
+ *
149
+ * - `confirmed`: the server answered 200, or 401 `device-signed-out` /
150
+ * `device-revoked` (a revoke accepts only `device-revoked`);
151
+ * - `pending`: no usable answer (network, timeout, 429, 5xx, or a route the
152
+ * server does not have yet); the credentials stay in their slot and the
153
+ * next `cleo logout nexus`, `cleo login nexus` or cloud command retries;
154
+ * - `unconfirmed`: every credential held was refused as stale, so the CLI
155
+ * cannot finish it; the slot is kept, and a sign-out or revoke of the
156
+ * device on cleocode.dev lets the next retry confirm it;
157
+ * - `signed-out`: a revoke found the device already signed out (E10 401
158
+ * `device-signed-out`). Its credentials are dead, so the CLI cannot revoke
159
+ * it; the revoke slot is cleared (never retried) and the device must be
160
+ * revoked on cleocode.dev.
161
+ */
162
+ export type NexusDeviceEndOutcome = 'confirmed' | 'pending' | 'unconfirmed' | 'signed-out';
163
+ /** One device row of a {@link NexusDeviceLogoutResult}. */
164
+ export interface NexusDeviceLogoutRow {
165
+ /** Nexus user id of the entry. */
166
+ userId: string;
167
+ /** The device the request ended. */
168
+ deviceId: string;
169
+ /** `sign-out` (E9) or `revoke` (E10). */
170
+ action: 'sign-out' | 'revoke';
171
+ /** `true` for a replaced device's leftover request retried from `retired`. */
172
+ retired: boolean;
173
+ /** Server-side outcome. */
174
+ outcome: NexusDeviceEndOutcome;
175
+ /** `true` when a confirmed revoke removed the (origin, user) entry from `nexus-device.json`. */
176
+ removedLocally: boolean;
177
+ }
178
+ /** Result of `cleo logout nexus [--revoke]` with device credentials. Holds no secret. */
179
+ export interface NexusDeviceLogoutResult {
180
+ /** API origin. */
181
+ apiUrl: string;
182
+ /** `sign-out` or `revoke` (`--revoke`). */
183
+ action: 'sign-out' | 'revoke';
184
+ /** One row per device request settled or retried in this run, sorted by user then device. */
185
+ devices: NexusDeviceLogoutRow[];
186
+ /** The 9.24 session sign-out, when a leftover session was found for the origin. */
187
+ session: NexusLogoutResult | null;
188
+ /** Non-fatal problems: every non-`confirmed` row is named here. */
189
+ warnings: string[];
190
+ }
127
191
  /**
128
192
  * The binding of a local CLEO project to its Nexus registration, persisted in
129
193
  * the project's machine-local `.cleo/nexus-link.json`, keyed by API origin.
@@ -143,6 +207,30 @@ export interface NexusProjectLink {
143
207
  streamId: string;
144
208
  /** ISO time of the last successful link. */
145
209
  linkedAt: string;
210
+ /**
211
+ * This store's replica id as attached on the server (device contract
212
+ * §3.6, §3.7). A cache, not the source of truth: the store's active
213
+ * `_sync_replica` row is. Absent before the first device-credential link.
214
+ */
215
+ replicaId?: string;
216
+ /** The Nexus device id that attached {@link NexusProjectLink.replicaId}. */
217
+ nexusDeviceId?: string;
218
+ /** ISO time the replica was last attached or confirmed. */
219
+ attachedAt?: string;
220
+ }
221
+ /**
222
+ * What `cleo project link` did for this machine's copy of the project with a
223
+ * device credential (contract §3.6 steps 3 to 5). Holds no path or secret.
224
+ */
225
+ export interface NexusReplicaAttachment {
226
+ /** The store's replica id (UUIDv7), now attached on the server. */
227
+ replicaId: string;
228
+ /** The Nexus device that holds it. */
229
+ deviceId: string;
230
+ /** The retired replica id when this link rebound the store (a copy, or a re-enrolled device). */
231
+ reboundFrom: string | null;
232
+ /** Server time the presence report was received, or `null` when sending it failed (see warnings). */
233
+ presenceAt: string | null;
146
234
  }
147
235
  /** Result of `cleo project link`. */
148
236
  export interface NexusProjectLinkResult {
@@ -156,5 +244,22 @@ export interface NexusProjectLinkResult {
156
244
  alreadyLinked: boolean;
157
245
  /** Absolute path of the local binding file. */
158
246
  linkPath: string;
247
+ /**
248
+ * The replica attach and presence report, with device credentials; `null`
249
+ * with the 9.24 session (`CLEO_NEXUS_DEVICE=0`), which cannot attach.
250
+ */
251
+ replica: NexusReplicaAttachment | null;
252
+ /**
253
+ * Why this machine's copy was not attached, when device mode tried and
254
+ * failed (for example `E_NEXUS_REPLICA_COPIED`); `null` otherwise. The same
255
+ * text is also in {@link NexusProjectLinkResult.warnings}.
256
+ */
257
+ attachError: {
258
+ code: string;
259
+ message: string;
260
+ fix: string | null;
261
+ } | null;
262
+ /** Non-fatal problems (for example, presence could not be sent). */
263
+ warnings: string[];
159
264
  }
160
265
  //# sourceMappingURL=nexus-account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nexus-account.d.ts","sourceRoot":"","sources":["../src/nexus-account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nexus-account.d.ts","sourceRoot":"","sources":["../src/nexus-account.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,29 @@ export const NEXUS_ACCOUNT_ERROR_CODES = [
41
41
  'E_NEXUS_REQUEST_FAILED',
42
42
  'E_NEXUS_NOT_A_PROJECT',
43
43
  'E_NEXUS_INVALID_LABEL',
44
+ // Device credentials (cleo-nexus device contract §3.3, §4.0.4; T12868).
45
+ /** No answer from the API (network error or timeout). */
46
+ 'E_NEXUS_UNREACHABLE',
47
+ /** `cleo login nexus` while a revoke of this device is unconfirmed (§3.3, v2.9). */
48
+ 'E_NEXUS_REVOKE_PENDING',
49
+ /** The device was signed out (E9, E11): 401 `device-signed-out`. */
50
+ 'E_NEXUS_DEVICE_SIGNED_OUT',
51
+ /** The device was revoked (E10, E12): 401 `device-revoked`. */
52
+ 'E_NEXUS_DEVICE_REVOKED',
53
+ /** A credential replaced or revoked elsewhere, or a `rotation-conflict` (R2). */
54
+ 'E_NEXUS_CREDENTIAL_COMPROMISED',
55
+ /** The device credential lacks the scope (a read-only device): 403 `insufficient-scope`. */
56
+ 'E_NEXUS_INSUFFICIENT_SCOPE',
57
+ /** A replica attach from a second device: 409 `replica-copied`. */
58
+ 'E_NEXUS_REPLICA_COPIED',
59
+ /** Another cleo process holds the device file or an upgrade in flight; retry. */
60
+ 'E_NEXUS_BUSY',
61
+ /** Several accounts hold a device credential on one origin and none was named. */
62
+ 'E_NEXUS_ACCOUNT_AMBIGUOUS',
63
+ /** An option that needs device credentials (`--read-only`) with `CLEO_NEXUS_DEVICE=0`. */
64
+ 'E_NEXUS_DEVICE_REQUIRED',
65
+ /** `.cleo/nexus-link.json` is in a format this CLEO cannot update (written by a newer CLEO). */
66
+ 'E_NEXUS_LINK_FILE_UNSUPPORTED',
44
67
  ];
45
68
  /** The signed-in user, as `/v1/account/me` reports it. */
46
69
  export const nexusAccountUserSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"nexus-account.js","sourceRoot":"","sources":["../src/nexus-account.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wCAAwC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEhE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,yBAAyB;IACzB,uBAAuB;IACvB,yBAAyB;IACzB,kCAAkC;IAClC,oCAAoC;IACpC,6BAA6B;IAC7B,uBAAuB;IACvB,4BAA4B;IAC5B,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;CACf,CAAC;AAKX,0DAA0D;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,sBAAsB;IAC5B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACnE,CAAC,CAAC"}
1
+ {"version":3,"file":"nexus-account.js","sourceRoot":"","sources":["../src/nexus-account.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wCAAwC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEhE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,yBAAyB;IACzB,uBAAuB;IACvB,yBAAyB;IACzB,kCAAkC;IAClC,oCAAoC;IACpC,6BAA6B;IAC7B,uBAAuB;IACvB,4BAA4B;IAC5B,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,wEAAwE;IACxE,yDAAyD;IACzD,qBAAqB;IACrB,oFAAoF;IACpF,wBAAwB;IACxB,oEAAoE;IACpE,2BAA2B;IAC3B,+DAA+D;IAC/D,wBAAwB;IACxB,iFAAiF;IACjF,gCAAgC;IAChC,4FAA4F;IAC5F,4BAA4B;IAC5B,mEAAmE;IACnE,wBAAwB;IACxB,iFAAiF;IACjF,cAAc;IACd,kFAAkF;IAClF,2BAA2B;IAC3B,0FAA0F;IAC1F,yBAAyB;IACzB,gGAAgG;IAChG,+BAA+B;CACvB,CAAC;AAKX,0DAA0D;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,sBAAsB;IAC5B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACnE,CAAC,CAAC"}