@xenosystem/agents-client 0.1.36 โ†’ 0.1.38

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/index.d.ts CHANGED
@@ -187,9 +187,11 @@ export declare class AgentsApiError extends Error {
187
187
  readonly status: number;
188
188
  /** True when caused by a fetch/abort/timeout rather than an HTTP response. */
189
189
  readonly isNetwork: boolean;
190
+ readonly isTimeout: boolean;
190
191
  readonly cause?: unknown;
191
192
  constructor(code: AgentsApiErrorCode, message: string, status?: number, opts?: {
192
193
  isNetwork?: boolean;
194
+ isTimeout?: boolean;
193
195
  cause?: unknown;
194
196
  });
195
197
  get isBudgetExceeded(): boolean;
@@ -199,11 +201,41 @@ export declare class AgentsApiError extends Error {
199
201
  }
200
202
  export declare function isAgentsApiError(err: unknown): err is AgentsApiError;
201
203
  export type TokenProvider = string | (() => string | null | undefined | Promise<string | null | undefined>);
204
+ /**
205
+ * Mints the authorization for ONE named request.
206
+ *
207
+ * ๐Ÿ”ด It takes the method and URL because a DPoP proof is BOUND to them โ€” which is exactly why a
208
+ * `token: string` callback cannot express one. A bearer is reusable; a proof authorizes the single
209
+ * call it was minted for, so there is no "give me the token" question to ask.
210
+ *
211
+ * Returning `null` means nobody is signed in. That is a fact to report, never a reason to fall
212
+ * back to a stale credential.
213
+ */
214
+ export type RequestAuthorizer = (target: {
215
+ method: string;
216
+ url: string;
217
+ }) => Promise<{
218
+ authorization: string;
219
+ dpop?: string;
220
+ } | null>;
202
221
  export interface AgentsClientConfig {
203
222
  /** Base of the agents API. Default `https://api.xenostudio.ai/v1/agents`. */
204
223
  baseUrl?: string;
205
224
  /** Platform bearer โ€” an OIDC JWT or (once supported) a platform API key. */
206
225
  token: TokenProvider;
226
+ /**
227
+ * The signed-in ACCOUNT, preferred over `token` whenever it is supplied.
228
+ *
229
+ * ๐Ÿ”ด Why this exists: hosted runs authenticated only from a long-lived JWT in
230
+ * `~/.xeno/credentials.json` that nothing in this app refreshes. Measured 2026-09-14, that token
231
+ * had been expired for two days and every hosted turn failed `unauthorized (HTTP 401)` โ€” while
232
+ * the person WAS signed in, because the two credential paths never met. Signing in again could
233
+ * not help, which is the worst shape a credential bug can take.
234
+ *
235
+ * An authorizer that returns `null` means no account: the client then falls back to `token`, so
236
+ * a BYO-key or Hub-brokered install keeps working exactly as before.
237
+ */
238
+ authorize?: RequestAuthorizer;
207
239
  /** Optional workspace selector โ†’ `x-xeno-workspace` header (SPEC ยง7). */
208
240
  workspace?: string;
209
241
  /** Optional fetch impl (custom / testing). Defaults to global fetch. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -70,6 +70,7 @@ export class AgentsApiError extends Error {
70
70
  status;
71
71
  /** True when caused by a fetch/abort/timeout rather than an HTTP response. */
72
72
  isNetwork;
73
+ isTimeout;
73
74
  cause;
74
75
  constructor(code, message, status = 0, opts) {
75
76
  super(message);
@@ -77,6 +78,7 @@ export class AgentsApiError extends Error {
77
78
  this.code = code;
78
79
  this.status = status;
79
80
  this.isNetwork = opts?.isNetwork ?? false;
81
+ this.isTimeout = opts?.isTimeout ?? false;
80
82
  this.cause = opts?.cause;
81
83
  }
82
84
  get isBudgetExceeded() {
@@ -115,11 +117,29 @@ export function createAgentsClient(config) {
115
117
  }
116
118
  return u.toString();
117
119
  }
118
- async function authHeaders(json, extra) {
119
- const t = typeof config.token === "function" ? await config.token() : config.token;
120
+ /**
121
+ * @param method HTTP method of the request these headers are for.
122
+ * @param target Absolute URL of that request.
123
+ *
124
+ * ๐Ÿ”ด Both are REQUIRED, and that is the whole point: a DPoP proof is bound to the exact method
125
+ * and URL, so headers cannot be computed without knowing the call they authorize. A bearer
126
+ * ignores them, which is why this signature is safe for both paths.
127
+ */
128
+ async function authHeaders(method, target, json, extra) {
120
129
  const h = { accept: "application/json" };
121
- if (t)
122
- h.authorization = `Bearer ${t}`;
130
+ // The signed-in account first; the legacy token only when there is no account. An authorizer
131
+ // returning null means nobody is signed in โ€” fall back, rather than fail a BYO-key install.
132
+ const minted = config.authorize ? await config.authorize({ method, url: target }) : null;
133
+ if (minted) {
134
+ h.authorization = minted.authorization;
135
+ if (minted.dpop)
136
+ h.dpop = minted.dpop;
137
+ }
138
+ else {
139
+ const t = typeof config.token === "function" ? await config.token() : config.token;
140
+ if (t)
141
+ h.authorization = `Bearer ${t}`;
142
+ }
123
143
  if (json)
124
144
  h["content-type"] = "application/json";
125
145
  if (config.workspace)
@@ -138,7 +158,7 @@ export function createAgentsClient(config) {
138
158
  }
139
159
  let timer;
140
160
  if (timeoutMs > 0) {
141
- timer = setTimeout(() => ctl.abort(new AgentsApiError("network_error", `Request timed out after ${timeoutMs}ms`)), timeoutMs);
161
+ timer = setTimeout(() => ctl.abort(new AgentsApiError("network_error", `Request timed out after ${timeoutMs}ms`, 0, { isNetwork: true, isTimeout: true })), timeoutMs);
142
162
  if (typeof timer.unref === "function")
143
163
  timer.unref();
144
164
  }
@@ -189,9 +209,12 @@ export function createAgentsClient(config) {
189
209
  async function requestJson(method, path, opts) {
190
210
  const { signal, cancel } = withTimeout(opts?.signal, opts?.timeoutMs ?? defaultTimeout);
191
211
  try {
192
- const res = await f(url(path, opts?.query), {
212
+ // Computed ONCE: a proof is bound to this exact URL, so signing one string and fetching
213
+ // another is an authorization bug that presents as an unexplained 401.
214
+ const target = url(path, opts?.query);
215
+ const res = await f(target, {
193
216
  method,
194
- headers: await authHeaders(opts?.body !== undefined, opts?.headers),
217
+ headers: await authHeaders(method, target, opts?.body !== undefined, opts?.headers),
195
218
  ...(opts?.body !== undefined ? { body: JSON.stringify(opts.body) } : {}),
196
219
  signal,
197
220
  });
@@ -210,16 +233,18 @@ export function createAgentsClient(config) {
210
233
  /** One connection's worth of the attach stream. Yields parsed RunEvents. */
211
234
  async function* streamOnce(runId, opts) {
212
235
  const sse = opts.transport === "sse";
213
- const headers = await authHeaders(false, {
236
+ // Same rule as requestJson: one URL, used for both the proof and the fetch.
237
+ const target = url(`runs/${encodeURIComponent(runId)}/attach`, {
238
+ follow: "true",
239
+ tail: opts.tail,
240
+ since: !sse ? opts.since : undefined,
241
+ });
242
+ const headers = await authHeaders("GET", target, false, {
214
243
  accept: sse ? "text/event-stream" : "application/x-ndjson",
215
244
  // SSE resume: header wins over ?since server-side.
216
245
  ...(sse && opts.since !== undefined ? { "last-event-id": String(opts.since) } : {}),
217
246
  });
218
- const res = await f(url(`runs/${encodeURIComponent(runId)}/attach`, {
219
- follow: "true",
220
- tail: opts.tail,
221
- since: !sse ? opts.since : undefined,
222
- }), { method: "GET", headers, ...(opts.signal ? { signal: opts.signal } : {}) });
247
+ const res = await f(target, { method: "GET", headers, ...(opts.signal ? { signal: opts.signal } : {}) });
223
248
  if (!res.ok)
224
249
  throw await toError(res);
225
250
  if (!res.body)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,13 +17,112 @@ export interface CloudModelRecord {
17
17
  displayName?: string;
18
18
  isDefault?: boolean;
19
19
  reasoningOptions?: CloudModelReasoningOption[];
20
+ /** The model's context window, when the catalog states it; the conversation's context meter needs it. */
21
+ contextWindowTokens?: number;
22
+ }
23
+ /**
24
+ * A stable, typed reason the catalog load did not produce models โ€” never a raw upstream message,
25
+ * so a caller can react (retry, prompt sign-in, surface a specific UI state) without parsing
26
+ * English text out of {@link XenoCloudModelCatalog.error}.
27
+ *
28
+ * - `auth-required` โ€” no usable credential, or the server said the one we sent is invalid (401).
29
+ * Retrying without a new credential will not help.
30
+ * - `forbidden` โ€” the server recognised the credential and refused it anyway (403). Distinct from
31
+ * `auth-required`: the identity was accepted, the request was not.
32
+ * - `rate-limited` โ€” HTTP 429. See {@link CatalogFailure.retryAfterMs}.
33
+ * - `server` โ€” HTTP 5xx from the channel that answered. Transient, worth retrying.
34
+ * - `timeout` โ€” the deadline elapsed, whether during the authorizer, the connection, or a
35
+ * stalled body.
36
+ * - `network` โ€” the transport itself threw (DNS, TLS, connection reset, an injected transport
37
+ * error). Also the default for an error this client did not itself construct.
38
+ * - `invalid-response` โ€” the response could not be trusted or consumed: a redirect, oversized
39
+ * headers/body, non-UTF-8 or non-JSON content, a missing body, or an HTTP status this client
40
+ * does not otherwise classify.
41
+ * - `configuration` โ€” the caller passed options this function cannot act on (e.g. an
42
+ * out-of-range {@link LoadXenoCloudModelCatalogOptions.maxResponseBytes}). Not the server's
43
+ * fault and not fixed by retrying unmodified.
44
+ * - `cancelled` โ€” the caller's `AbortSignal` fired, or the deadline had already elapsed before a
45
+ * request could even start. Never followed by a fallback attempt.
46
+ */
47
+ export type CatalogFailureCode = 'timeout' | 'network' | 'rate-limited' | 'server' | 'auth-required' | 'forbidden' | 'invalid-response' | 'configuration' | 'cancelled';
48
+ export interface CatalogFailure {
49
+ code: CatalogFailureCode;
50
+ /** Whether trying again, unmodified, might succeed. */
51
+ retryable: boolean;
52
+ /** Present only for `rate-limited`, derived from a bounded `Retry-After`. */
53
+ retryAfterMs?: number;
54
+ }
55
+ /** One channel's failed attempt, kept even when a later channel ultimately succeeded. */
56
+ export interface CatalogAttempt {
57
+ source: CloudModelSource;
58
+ failure: CatalogFailure;
20
59
  }
21
60
  export interface XenoCloudModelCatalog {
22
61
  models: CloudModelRecord[];
23
62
  error: string | null;
63
+ /**
64
+ * Every channel that was tried and failed, in attempt order โ€” INCLUDING when a later channel
65
+ * went on to succeed. Always present (an empty array when nothing failed).
66
+ *
67
+ * ๐Ÿ”ด A genuine fallback success used to drop the earlier failure on the floor: `error` carried
68
+ * an informational sentence, but the TYPED reason (was it a 500? a timeout? rate-limited?) and
69
+ * which channel it came from were gone the moment the platform route worked. A caller deciding
70
+ * whether the direct route is worth retrying next time needs that even when today's overall
71
+ * call succeeded.
72
+ */
73
+ attempts: CatalogAttempt[];
74
+ /** Present only when no source produced a usable catalog. Equivalent to the last `attempts` entry. */
75
+ failure?: CatalogFailure;
76
+ /** Which channel actually produced `models`, when any request succeeded. */
77
+ source?: CloudModelSource;
78
+ /**
79
+ * Whether the server EXPLICITLY confirmed or rejected an identity โ€” never inferred from
80
+ * `models.length`, and never asserted `true` merely because no explicit rejection happened.
81
+ *
82
+ * - `true` โ€” a request actually completed successfully using a credential. A genuinely empty
83
+ * catalog (a valid, well-formed response with zero chat models) still sets this: the
84
+ * emptiness is a fact about the account's entitlements, not about whether sign-in worked.
85
+ * - `false` โ€” the server explicitly said the credential is invalid (401), the authorizer
86
+ * explicitly reported nobody is signed in (returned `null`), or no credential was supplied
87
+ * at all. All three are CONFIRMED negative facts, not inferred ones.
88
+ * - **absent (`undefined`)** โ€” unverified. Every other failure (timeout, network error, 5xx,
89
+ * 429, 403, a malformed response, cancellation) tells us nothing about the credential's
90
+ * validity one way or the other, and must not be read as either sign-in state. A 403 in
91
+ * particular is tempting to read as "identity confirmed, just forbidden" โ€” that is still an
92
+ * INFERENCE this field refuses to make; `failure.code === 'forbidden'` carries that distinction
93
+ * for a caller that wants to draw it explicitly.
94
+ */
95
+ authenticated?: boolean;
96
+ }
97
+ /** Finished headers for one request: an `Authorization` value and, for DPoP, its bound proof. */
98
+ export interface CatalogAuthorization {
99
+ authorization: string;
100
+ dpop?: string;
24
101
  }
102
+ /**
103
+ * Mint authorization for one outbound request.
104
+ *
105
+ * ๐Ÿ”ด Per-request by necessity, not by taste. A DPoP proof is bound to the exact method and URL,
106
+ * so there is no "the token" to fetch once and reuse โ€” asking for a bearer up front is what the
107
+ * legacy `webToken` path did, and it is why the cloud lane kept using a credential that had
108
+ * expired while the person was signed in.
109
+ */
110
+ export type XenoCloudAuthorizer = (target: {
111
+ method: string;
112
+ url: string;
113
+ }) => Promise<CatalogAuthorization | null>;
25
114
  export interface LoadXenoCloudModelCatalogOptions {
26
115
  apiKey?: string;
116
+ /**
117
+ * The signed-in account's request authorizer.
118
+ *
119
+ * Preferred over {@link LoadXenoCloudModelCatalogOptions.webToken}: that field reads a
120
+ * long-lived JWT out of `~/.xeno/credentials.json`, which is Hub's legacy file and knows nothing
121
+ * about an OIDC sign-in in this app. When only that is present, the lane reports "sign in" to a
122
+ * person who already has.
123
+ */
124
+ authorize?: XenoCloudAuthorizer;
125
+ /** @deprecated Legacy Hub credential file. Superseded by {@link LoadXenoCloudModelCatalogOptions.authorize}. */
27
126
  webToken?: string;
28
127
  directApiBase?: string;
29
128
  platformModelsUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"modelCatalog.d.ts","sourceRoot":"","sources":["../src/modelCatalog.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAA;AAE7E,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,eAAe,CAAA;AAEtD,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,sBAAsB,CAAA;IACpC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,MAAM,EAAE,gBAAgB,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAMD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,qBAAqB,CAAC,CAsDhC"}
1
+ {"version":3,"file":"modelCatalog.d.ts","sourceRoot":"","sources":["../src/modelCatalog.ts"],"names":[],"mappings":"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"}
@@ -9,45 +9,108 @@ const DEFAULT_TIMEOUT_MS = 10_000;
9
9
  export async function loadXenoCloudModelCatalog(options = {}) {
10
10
  const apiKey = cleanSecret(options.apiKey);
11
11
  const webToken = cleanSecret(options.webToken);
12
- if (!apiKey && !webToken) {
12
+ const authorize = options.authorize;
13
+ if (!apiKey && !webToken && !authorize) {
14
+ // A CONFIRMED negative: no credential of any kind was even supplied. This is not an
15
+ // inference from a failed request โ€” there was no request to fail.
13
16
  return {
14
17
  models: [],
15
18
  error: 'Sign in to load the live XENO model catalog.',
19
+ authenticated: false,
20
+ attempts: [],
21
+ failure: { code: 'auth-required', retryable: false },
16
22
  };
17
23
  }
18
24
  const fetchImpl = options.fetchImpl || fetch;
19
25
  const failures = [];
26
+ const attempts = [];
20
27
  const deadline = Date.now() + positiveTimeout(options.timeoutMs);
21
28
  if (apiKey) {
22
29
  try {
23
- const payload = await readCatalogPayload(fetchImpl, `${normalizeBase(options.directApiBase || DEFAULT_DIRECT_API_BASE)}/v1/models`, apiKey, 'Direct', options.signal, deadline, options.maxResponseBytes);
30
+ const payload = await readCatalogPayload(fetchImpl, `${normalizeBase(options.directApiBase || DEFAULT_DIRECT_API_BASE)}/v1/models`, { authorization: `Bearer ${apiKey}` }, 'Direct', options.signal, deadline, options.maxResponseBytes);
24
31
  const models = decorateCloudModels(readModelRecords(payload), 'api', 'available', null);
25
- if (models.length > 0)
26
- return { models, error: null };
27
- failures.push('The direct model catalog returned no chat models.');
32
+ /**
33
+ * ๐Ÿ”ด A well-formed response is success, whether or not it lists any chat models.
34
+ *
35
+ * This used to gate success on `models.length > 0`, pushing "returned no chat models" as a
36
+ * failure and falling through to the platform credential โ€” turning a genuinely empty (but
37
+ * valid) catalog into a synthesized error, and into a reason to try a credential the caller
38
+ * never asked to fall back to. An account with zero entitled models is not a broken lookup.
39
+ */
40
+ return { models, error: null, source: 'api', authenticated: true, attempts };
28
41
  }
29
42
  catch (error) {
43
+ const failure = failureOf(error);
44
+ attempts.push({ source: 'api', failure });
30
45
  failures.push(safeError(error, 'The direct model catalog is unavailable.'));
31
46
  }
32
47
  }
33
- if (webToken && !options.signal?.aborted && Date.now() < deadline) {
48
+ if ((authorize || webToken) && Date.now() < deadline) {
34
49
  try {
35
- const payload = await readCatalogPayload(fetchImpl, options.platformModelsUrl || DEFAULT_PLATFORM_MODELS_URL, webToken, 'Platform', options.signal, deadline, options.maxResponseBytes);
36
- const models = decorateCloudModels(readModelRecords(payload), 'platform-auth', 'degraded', apiKey
50
+ /**
51
+ * ๐Ÿ”ด Checked FIRST, inside the same `try` the rest of this attempt uses โ€” not as a
52
+ * separate outer condition. An outer `!options.signal?.aborted` guard would silently skip
53
+ * this whole branch on an already-cancelled caller, which means no `CatalogFailure` is ever
54
+ * recorded when the account-only route (no `apiKey`, so no earlier direct attempt) is the
55
+ * only one ever considered. Throwing it here instead routes through the SAME catch as every
56
+ * other platform failure, so a pre-cancelled call still reports `{ code: 'cancelled' }`
57
+ * rather than the generic "unavailable" fallback โ€” while still never touching the
58
+ * authorizer or the transport.
59
+ */
60
+ if (options.signal?.aborted)
61
+ throw new CatalogRequestError('Model catalog request cancelled.', { code: 'cancelled', retryable: false });
62
+ const platformUrl = options.platformModelsUrl || DEFAULT_PLATFORM_MODELS_URL;
63
+ /**
64
+ * The signed-in account first, the legacy file only as a fallback.
65
+ *
66
+ * ๐Ÿ”ด This order is the fix. `webToken` is a long-lived JWT in `~/.xeno/credentials.json`
67
+ * written by Hub, and nothing in this app refreshes it โ€” so once it expired, the lane told a
68
+ * signed-in person to sign in, and signing in could not help because the two credential
69
+ * paths never met. An authorizer that yields null means nobody is signed in, which is a fact
70
+ * to report, not a reason to reach for a stale token.
71
+ */
72
+ const authorization = await mintPlatformAuthorization(authorize, webToken, platformUrl, deadline, options.signal);
73
+ if (!authorization)
74
+ throw new CatalogRequestError('Sign in to XENO to use cloud models.', { code: 'auth-required', retryable: false });
75
+ const payload = await readCatalogPayload(fetchImpl, platformUrl, authorization, 'Platform', options.signal, deadline, options.maxResponseBytes);
76
+ /**
77
+ * ๐Ÿ”ด An account-only install (no `apiKey`) never had a "direct" path to fall back FROM โ€”
78
+ * this IS its primary route, so `available` is the honest availability, not `degraded`.
79
+ * `degraded` is reserved for a GENUINE fallback: an `apiKey` was supplied and its direct
80
+ * request failed, so these models are a substitute for the one the caller actually wanted.
81
+ */
82
+ const isFallback = Boolean(apiKey);
83
+ const models = decorateCloudModels(readModelRecords(payload), 'platform-auth', isFallback ? 'degraded' : 'available', isFallback
37
84
  ? 'The direct catalog was unavailable; these models came from the authenticated XENO platform catalog.'
38
85
  : 'These models came from the authenticated XENO platform catalog.');
39
- if (models.length > 0)
40
- return { models, error: failures[0] || null };
41
- failures.push('The authenticated platform catalog returned no chat models.');
86
+ // Same reasoning as the direct path: a valid empty answer is a successful load, not a
87
+ // reason to report the earlier direct failure as this call's overall error. `attempts`
88
+ // still carries that earlier failure โ€” success never erases it, see `CatalogAttempt`.
89
+ return { models, error: failures[0] || null, source: 'platform-auth', authenticated: true, attempts };
42
90
  }
43
91
  catch (error) {
92
+ const failure = failureOf(error);
93
+ attempts.push({ source: 'platform-auth', failure });
44
94
  failures.push(safeError(error, 'The authenticated platform model catalog is unavailable.'));
45
95
  }
46
96
  }
97
+ const lastFailure = attempts.length > 0 ? attempts[attempts.length - 1].failure : undefined;
47
98
  return {
48
99
  models: [],
49
100
  error: failures.join(' ')
50
101
  || 'The live XENO model catalog is unavailable.',
102
+ attempts,
103
+ ...(lastFailure ? { failure: lastFailure } : {}),
104
+ /**
105
+ * ๐Ÿ”ด `false` only for a CONFIRMED rejection (`auth-required` โ€” covers an explicit 401, the
106
+ * authorizer explicitly returning `null`, and a request that never even had a credential to
107
+ * send). Every other failure code is left `undefined` โ€” unverified โ€” rather than asserted
108
+ * `false`. A timeout, a 5xx, a 429, a malformed response, or a cancellation says NOTHING about
109
+ * whether the credential itself is good, and reporting `false` for those would be exactly the
110
+ * kind of invented positive-from-failure this field exists to refuse, just in the other
111
+ * direction.
112
+ */
113
+ ...(lastFailure?.code === 'auth-required' ? { authenticated: false } : {}),
51
114
  };
52
115
  }
53
116
  function readModelRecords(payload) {
@@ -68,6 +131,30 @@ function readModelRecords(payload) {
68
131
  }
69
132
  return records;
70
133
  }
134
+ /**
135
+ * Does this parsed body look like EITHER catalog document shape this client understands
136
+ * (`{ data: [...] }` or `{ companies: {...} }`), even if the list/map inside is empty?
137
+ *
138
+ * ๐Ÿ”ด This exists because `readModelRecords` above is deliberately LENIENT โ€” it returns `[]` for
139
+ * anything it doesn't recognise, which is correct for EXTRACTING records but was, before this
140
+ * check, the entire validation the response ever received. That let a genuinely malformed body
141
+ * (valid JSON, wrong shape entirely โ€” a bare string, `{}`, `{"unexpected":"field"}`, a top-level
142
+ * array) sail through as a "valid empty catalog" and come back `error: null, authenticated: true`
143
+ * โ€” a validated success manufactured from a document that was never a catalog at all. A body that
144
+ * does not even claim to carry `data` or `companies` gets refused here, before the "empty is
145
+ * success" reasoning in the caller ever sees it; a body that DOES have a `data: []` or an empty
146
+ * `companies: {}` still passes, because THAT is the shape of a real, valid, empty catalog.
147
+ */
148
+ function isRecognizedCatalogShape(payload) {
149
+ if (!isRecord(payload))
150
+ return false;
151
+ const model = (value) => isRecord(value) && typeof value.id === 'string' && !!value.id.trim();
152
+ if (Array.isArray(payload.data))
153
+ return payload.data.every(model);
154
+ if (isRecord(payload.companies))
155
+ return Object.values(payload.companies).every(value => Array.isArray(value) && value.every(model));
156
+ return false;
157
+ }
71
158
  function decorateCloudModels(models, source, availability, availabilityReason) {
72
159
  return normalizeCloudChatModels(models).map((model) => ({
73
160
  ...model,
@@ -91,17 +178,27 @@ function normalizeCloudChatModels(models) {
91
178
  if (type && !['model', 'text', 'chat', 'llm'].includes(type))
92
179
  continue;
93
180
  seen.add(id);
181
+ const contextWindow = contextWindowOf(model);
94
182
  normalized.push({
95
183
  id,
96
184
  object: typeof model.object === 'string' ? model.object : 'model',
97
185
  ...(typeof model.displayName === 'string' && model.displayName.trim() ? { displayName: model.displayName.trim() } : {}),
98
186
  ...(typeof model.isDefault === 'boolean' ? { isDefault: model.isDefault } : {}),
187
+ ...(contextWindow !== undefined ? { contextWindowTokens: contextWindow } : {}),
99
188
  ...(Array.isArray(model.reasoningOptions) ? { reasoningOptions: normalizeReasoningOptions(model.reasoningOptions)
100
189
  .filter((option) => !option.runtimeModelId || !unavailableIds.has(option.runtimeModelId)) } : {}),
101
190
  });
102
191
  }
103
192
  return normalized;
104
193
  }
194
+ /** A positive whole token count from whichever field the catalog uses; anything else is absent, never guessed. */
195
+ function contextWindowOf(model) {
196
+ for (const value of [model.contextWindowTokens, model.context_window, model.contextLength, model.context_length]) {
197
+ if (typeof value === 'number' && Number.isInteger(value) && value > 0 && value <= 100_000_000)
198
+ return value;
199
+ }
200
+ return undefined;
201
+ }
105
202
  function normalizeReasoningOptions(values) {
106
203
  const seen = new Set();
107
204
  return values.flatMap((value) => {
@@ -127,34 +224,107 @@ function isCloudChatModelId(id) {
127
224
  return !/(^|[/_-])(imagen|nano[_-]?banana|veo|lyria|tts|whisper|audio|image|video|embed|embedding|moderation|rerank|search)([/_.-]|$)/i.test(id);
128
225
  }
129
226
  class CatalogRequestError extends Error {
227
+ failure;
228
+ constructor(message, failure) {
229
+ super(message);
230
+ this.failure = failure;
231
+ }
232
+ }
233
+ /** Anything this module did not itself throw is treated as a transient transport failure. */
234
+ function failureOf(error) {
235
+ if (error instanceof CatalogRequestError)
236
+ return error.failure;
237
+ return { code: 'network', retryable: true };
238
+ }
239
+ // Bounds how long a caller can be told to wait: a broken or hostile server sending an absurd
240
+ // `Retry-After` must not be able to park a caller indefinitely. Mirrors the spirit of the
241
+ // existing byte/time bounds in this file.
242
+ const MAX_RETRY_AFTER_MS = 10 * 60 * 1000;
243
+ /** Accepts both `Retry-After` forms (delta-seconds and an HTTP-date), always bounded and >= 0. */
244
+ function parseRetryAfterMs(value) {
245
+ if (!value)
246
+ return undefined;
247
+ const trimmed = value.trim();
248
+ if (/^\d+$/.test(trimmed)) {
249
+ const seconds = Number(trimmed);
250
+ if (!Number.isFinite(seconds) || seconds < 0)
251
+ return undefined;
252
+ return Math.min(seconds * 1000, MAX_RETRY_AFTER_MS);
253
+ }
254
+ const asDate = Date.parse(trimmed);
255
+ if (Number.isNaN(asDate))
256
+ return undefined;
257
+ return Math.max(0, Math.min(asDate - Date.now(), MAX_RETRY_AFTER_MS));
258
+ }
259
+ /**
260
+ * Mints the platform authorization under the SAME deadline and cancellation the transport obeys.
261
+ *
262
+ * ๐Ÿ”ด Without this, a stalled authorizer (one that never resolves) hung the whole call past its
263
+ * configured timeout โ€” the deadline only ever covered `readCatalogPayload`'s own fetch, never the
264
+ * `await authorize(...)` that runs before it. A caller supplying `timeoutMs` was entitled to
265
+ * assume it bounded the ENTIRE call, authorizer included.
266
+ */
267
+ async function mintPlatformAuthorization(authorize, webToken, platformUrl, deadline, callerSignal) {
268
+ if (!authorize)
269
+ return { authorization: `Bearer ${webToken}` };
270
+ if (callerSignal?.aborted)
271
+ throw new CatalogRequestError('Model catalog request cancelled.', { code: 'cancelled', retryable: false });
272
+ const remaining = deadline - Date.now();
273
+ if (remaining <= 0)
274
+ throw new CatalogRequestError('Model catalog request timed out.', { code: 'timeout', retryable: true });
275
+ let rejectStalled;
276
+ const stalled = new Promise((_, reject) => { rejectStalled = reject; });
277
+ void stalled.catch(() => undefined);
278
+ const timer = setTimeout(() => rejectStalled(new CatalogRequestError('Model catalog request timed out.', { code: 'timeout', retryable: true })), remaining);
279
+ const onAbort = () => rejectStalled(new CatalogRequestError('Model catalog request cancelled.', { code: 'cancelled', retryable: false }));
280
+ callerSignal?.addEventListener('abort', onAbort, { once: true });
281
+ try {
282
+ const minting = authorize({ method: 'GET', url: platformUrl });
283
+ // Promise.race observes late rejection, and finally also covers a synchronous authorizer throw.
284
+ return await Promise.race([minting, stalled]);
285
+ }
286
+ finally {
287
+ clearTimeout(timer);
288
+ callerSignal?.removeEventListener('abort', onAbort);
289
+ }
130
290
  }
131
291
  /** Portable fetch path: the deadline covers headers AND streamed body, including fallback. */
132
- async function readCatalogPayload(fetchImpl, url, credential, label, callerSignal, deadline, maximumBytes) {
292
+ /**
293
+ * @param authorization the finished request headers, not a bare token.
294
+ *
295
+ * ๐Ÿ”ด It used to take a token string and write `Bearer ${credential}`. A DPoP-bound access token
296
+ * needs BOTH a different scheme and a second `DPoP` header carrying a proof over this exact
297
+ * method and URL โ€” neither of which a caller can express by handing over a string.
298
+ */
299
+ async function readCatalogPayload(fetchImpl, url, authorization, label, callerSignal, deadline, maximumBytes) {
133
300
  const maxBytes = maximumBytes ?? 2 * 1024 * 1024;
134
301
  if (!Number.isSafeInteger(maxBytes) || maxBytes < 1 || maxBytes > 16 * 1024 * 1024)
135
- throw new CatalogRequestError('Invalid model catalog response limit.');
302
+ throw new CatalogRequestError('Invalid model catalog response limit.', { code: 'configuration', retryable: false });
136
303
  if (callerSignal?.aborted)
137
- throw new CatalogRequestError('Model catalog request cancelled.');
304
+ throw new CatalogRequestError('Model catalog request cancelled.', { code: 'cancelled', retryable: false });
138
305
  const remaining = deadline - Date.now();
139
306
  if (remaining <= 0)
140
- throw new CatalogRequestError('Model catalog request timed out.');
307
+ throw new CatalogRequestError('Model catalog request timed out.', { code: 'timeout', retryable: true });
141
308
  const controller = new AbortController();
142
309
  let reader;
143
310
  let stopped;
144
311
  let rejectInterruption;
145
312
  const interrupted = new Promise((_, reject) => { rejectInterruption = reject; });
146
313
  void interrupted.catch(() => undefined);
147
- const stop = (message) => {
148
- stopped ??= new CatalogRequestError(message);
314
+ const stop = (message, failure) => {
315
+ stopped ??= new CatalogRequestError(message, failure);
149
316
  controller.abort();
150
317
  rejectInterruption(stopped);
151
318
  void reader?.cancel().catch(() => undefined);
152
319
  };
153
- const onAbort = () => stop('Model catalog request cancelled.');
320
+ const onAbort = () => stop('Model catalog request cancelled.', { code: 'cancelled', retryable: false });
154
321
  callerSignal?.addEventListener('abort', onAbort, { once: true });
155
- const timer = setTimeout(() => stop('Model catalog request timed out.'), remaining);
322
+ const timer = setTimeout(() => stop('Model catalog request timed out.', { code: 'timeout', retryable: true }), remaining);
156
323
  try {
157
- const pending = fetchImpl(url, { headers: { Authorization: `Bearer ${credential}` }, signal: controller.signal, redirect: 'manual' });
324
+ const pending = fetchImpl(url, {
325
+ headers: { Authorization: authorization.authorization, ...(authorization.dpop ? { DPoP: authorization.dpop } : {}) },
326
+ signal: controller.signal, redirect: 'manual',
327
+ });
158
328
  // Abort is advisory for injected transports; a late body must not remain open.
159
329
  void pending.then(response => { if (controller.signal.aborted)
160
330
  void response.body?.cancel().catch(() => undefined); }, () => undefined);
@@ -165,26 +335,66 @@ async function readCatalogPayload(fetchImpl, url, credential, label, callerSigna
165
335
  }
166
336
  if (response.redirected || (response.status >= 300 && response.status < 400)) {
167
337
  void response.body?.cancel().catch(() => undefined);
168
- throw new CatalogRequestError('Model catalog redirects are disabled.');
338
+ throw new CatalogRequestError('Model catalog redirects are disabled.', { code: 'invalid-response', retryable: false });
169
339
  }
170
340
  let headerBytes = 0;
171
341
  const encoder = new TextEncoder();
172
342
  response.headers.forEach((value, key) => { headerBytes += encoder.encode(key).byteLength + encoder.encode(value).byteLength; });
173
343
  if (headerBytes > 64 * 1024) {
174
344
  void response.body?.cancel().catch(() => undefined);
175
- throw new CatalogRequestError('Model catalog headers exceed the response limit.');
345
+ throw new CatalogRequestError('Model catalog headers exceed the response limit.', { code: 'invalid-response', retryable: false });
176
346
  }
177
347
  if (!response.ok) {
178
348
  void response.body?.cancel().catch(() => undefined);
179
- throw new CatalogRequestError(`${label} model catalog returned HTTP ${response.status}.`);
349
+ /**
350
+ * ๐Ÿ”ด A 401 is not an outage, and saying "returned HTTP 401" makes it read like one.
351
+ *
352
+ * Measured in the running app: the cloud lane was blocked with "Platform model catalog
353
+ * returned HTTP 401." โ€” true, unactionable, and indistinguishable to a reader from the
354
+ * service being down. It is the ONE catalog failure the person can fix themselves, and the
355
+ * surface already has a branch waiting for a reason that starts with "Sign in"
356
+ * (it relabels the lane "Sign in for Cloud"), which nothing was producing.
357
+ *
358
+ * Every other status stays verbatim: a 500 really is the service, and inventing advice for
359
+ * it would be worse than the number.
360
+ *
361
+ * ๐Ÿ”ด 401 and 403 are DIFFERENT failures, WITH DIFFERENT PERSON-FACING SENTENCES.
362
+ *
363
+ * 401 means we sent no usable credential (`auth-required` โ€” the identity was never
364
+ * established): "Sign in" is the correct, actionable instruction. 403 means the server
365
+ * recognised the request and refused it anyway (`forbidden`) โ€” telling that person to
366
+ * "sign in" is either useless (they already are) or actively wrong (no amount of signing in
367
+ * fixes a permission the account doesn't have). An earlier version of this code sent the
368
+ * identical "Sign in to XENO..." sentence for both, which is the same category of mistake as
369
+ * reporting "authenticated" from a failure: inferring a fact (what will fix this) that the
370
+ * response never confirmed. This does NOT claim identity was confirmed for 403 either โ€”
371
+ * see `authenticated` on `XenoCloudModelCatalog`, which stays unset for `forbidden`.
372
+ */
373
+ if (response.status === 401) {
374
+ // โš ๏ธ NOT `${label}` here: that is the internal channel name ("Platform", "Direct"),
375
+ // and this sentence is read by a person in the dock. The channel still names the
376
+ // non-auth failures below, where a reader benefits from knowing which one answered.
377
+ throw new CatalogRequestError('Sign in to XENO to use cloud models.', { code: 'auth-required', retryable: false });
378
+ }
379
+ if (response.status === 403) {
380
+ throw new CatalogRequestError('Your XENO account does not have permission to use cloud models.', { code: 'forbidden', retryable: false });
381
+ }
382
+ if (response.status === 429) {
383
+ const retryAfterMs = parseRetryAfterMs(response.headers.get('retry-after'));
384
+ throw new CatalogRequestError(`${label} model catalog is rate limited.`, { code: 'rate-limited', retryable: true, ...(retryAfterMs !== undefined ? { retryAfterMs } : {}) });
385
+ }
386
+ if (response.status >= 500) {
387
+ throw new CatalogRequestError(`${label} model catalog returned HTTP ${response.status}.`, { code: 'server', retryable: true });
388
+ }
389
+ throw new CatalogRequestError(`${label} model catalog returned HTTP ${response.status}.`, { code: 'invalid-response', retryable: false });
180
390
  }
181
391
  const declared = response.headers.get('content-length');
182
392
  if (declared && /^\d+$/.test(declared) && Number(declared) > maxBytes) {
183
393
  void response.body?.cancel().catch(() => undefined);
184
- throw new CatalogRequestError('Model catalog response exceeds the byte limit.');
394
+ throw new CatalogRequestError('Model catalog response exceeds the byte limit.', { code: 'invalid-response', retryable: false });
185
395
  }
186
396
  if (!response.body)
187
- throw new CatalogRequestError('Model catalog returned an empty response.');
397
+ throw new CatalogRequestError('Model catalog returned an empty response.', { code: 'invalid-response', retryable: false });
188
398
  reader = response.body.getReader();
189
399
  const decoder = new TextDecoder('utf-8', { fatal: true });
190
400
  let bytes = 0, text = '';
@@ -196,26 +406,32 @@ async function readCatalogPayload(fetchImpl, url, credential, label, callerSigna
196
406
  break;
197
407
  bytes += part.value.byteLength;
198
408
  if (bytes > maxBytes)
199
- throw new CatalogRequestError('Model catalog response exceeds the byte limit.');
409
+ throw new CatalogRequestError('Model catalog response exceeds the byte limit.', { code: 'invalid-response', retryable: false });
200
410
  try {
201
411
  text += decoder.decode(part.value, { stream: true });
202
412
  }
203
413
  catch {
204
- throw new CatalogRequestError('Model catalog response is not valid UTF-8.');
414
+ throw new CatalogRequestError('Model catalog response is not valid UTF-8.', { code: 'invalid-response', retryable: false });
205
415
  }
206
416
  }
207
417
  try {
208
418
  text += decoder.decode();
209
419
  }
210
420
  catch {
211
- throw new CatalogRequestError('Model catalog response is not valid UTF-8.');
421
+ throw new CatalogRequestError('Model catalog response is not valid UTF-8.', { code: 'invalid-response', retryable: false });
212
422
  }
423
+ let parsed;
213
424
  try {
214
- return JSON.parse(text);
425
+ parsed = JSON.parse(text);
215
426
  }
216
427
  catch {
217
- throw new CatalogRequestError('Model catalog response is not valid JSON.');
428
+ throw new CatalogRequestError('Model catalog response is not valid JSON.', { code: 'invalid-response', retryable: false });
218
429
  }
430
+ // Valid JSON is not the same as a valid CATALOG. See `isRecognizedCatalogShape` โ€” a
431
+ // malformed-but-parseable body must fail here, never be silently treated as an empty catalog.
432
+ if (!isRecognizedCatalogShape(parsed))
433
+ throw new CatalogRequestError('Model catalog response has an unrecognized shape.', { code: 'invalid-response', retryable: false });
434
+ return parsed;
219
435
  }
220
436
  finally {
221
437
  clearTimeout(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"modelCatalog.js","sourceRoot":"","sources":["../src/modelCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelCatalog.js","sourceRoot":"","sources":["../src/modelCatalog.ts"],"names":[],"mappings":"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"}
package/dist/node.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type AgentsClient } from './index.js';
2
- import { type XenoCloudModelCatalog } from './modelCatalog.js';
2
+ import { type CatalogFailure, type XenoCloudAuthorizer, type XenoCloudModelCatalog } from './modelCatalog.js';
3
3
  export * from './index.js';
4
4
  export interface XenoCloudCredentialSnapshot {
5
5
  apiKey?: string;
@@ -13,6 +13,18 @@ export interface XenoCloudCredentialSourceOptions {
13
13
  export interface XenoCloudNodeClientOptions extends XenoCloudCredentialSourceOptions {
14
14
  baseUrl?: string;
15
15
  fetchImpl?: typeof fetch;
16
+ /**
17
+ * The signed-in account's request authorizer, supplied by the host composition.
18
+ *
19
+ * When present it is preferred over the legacy `~/.xeno/credentials.json` token, and
20
+ * `authenticated` reflects whether IT can mint โ€” so the lane's answer follows the account the
21
+ * person actually signed into rather than a file Hub last wrote.
22
+ *
23
+ * ๐Ÿ”ด It lives on THIS interface, not only on the discovery options, because the agents CLIENT
24
+ * is what performs hosted runs. Declaring it one level down was the shape of the original bug:
25
+ * the model catalogue could authorize as the account and hosted runs structurally could not.
26
+ */
27
+ authorize?: XenoCloudAuthorizer;
16
28
  }
17
29
  export interface DiscoverXenoCloudNodeRuntimeOptions extends XenoCloudNodeClientOptions {
18
30
  directApiBase?: string;
@@ -21,11 +33,42 @@ export interface DiscoverXenoCloudNodeRuntimeOptions extends XenoCloudNodeClient
21
33
  timeoutMs?: number;
22
34
  }
23
35
  export interface XenoCloudHostedStatus {
24
- authenticated: boolean;
36
+ /**
37
+ * Whether the server EXPLICITLY confirmed or rejected the credential's identity.
38
+ *
39
+ * - `false` โ€” a CONFIRMED rejection: no credential was supplied at all, or the server
40
+ * explicitly said the one we sent is invalid (401 / `unauthorized`).
41
+ * - **absent (`undefined`)** โ€” unverified, which includes a SUCCESSFUL `status()` call.
42
+ *
43
+ * ๐Ÿ”ด There is deliberately no `true` case. `/v1/agents/status` (`AgentsApiStatus`:
44
+ * `schemaVersion`/`ok`/`service`/`version`/`capabilities`) is a capability-negotiation probe,
45
+ * not an identity check โ€” nothing in that shape confirms the CALLER was authenticated, and the
46
+ * route can legitimately answer successfully whether or not it even required a credential. A
47
+ * 200 there proves the SERVICE is reachable, never that a person is signed in. Treating that
48
+ * success as "authenticated" was the same invented-positive-from-an-unconfirming-signal mistake
49
+ * this field already refuses for failures (see the account catch below) โ€” just on the success
50
+ * side instead. A timeout, a network error, a 5xx, or a 403 (identity recognised, ACTION
51
+ * refused โ€” a different fact from "not signed in") tells us nothing about the credential's
52
+ * validity either, and also stays unverified. See `hostedStatusFailure`.
53
+ */
54
+ authenticated?: boolean;
25
55
  ok: boolean;
26
56
  capabilities: string[];
27
57
  version?: string;
28
58
  service?: string;
59
+ /**
60
+ * Present whenever this probe did not confirm success, INCLUDING the early "no credential at
61
+ * all" case. Reuses the model catalog's `CatalogFailure` vocabulary (rather than a second
62
+ * taxonomy) so a caller does not need to special-case which lane it is reading.
63
+ *
64
+ * The model catalog and this hosted-status probe run independently (`Promise.all` in
65
+ * `discoverXenoCloudNodeRuntime`) and neither call's outcome is inferred from the other's. A
66
+ * caller building a recovery/retry loop must retry THIS probe on its own `failure.retryable`
67
+ * signal even when `modelCatalog` already succeeded โ€” a successful model catalog load says
68
+ * nothing about whether the hosted-runs service answered, and this field is what carries that
69
+ * information forward rather than it being dropped.
70
+ */
71
+ failure?: CatalogFailure;
29
72
  safeUnavailableReason?: string;
30
73
  }
31
74
  export interface XenoCloudNodeRuntimeDiscovery {
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAA;AAE1B,cAAc,YAAY,CAAA;AAE1B,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gCAAgC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,0BAA2B,SAAQ,gCAAgC;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED,MAAM,WAAW,mCAAoC,SAAQ,0BAA0B;IACrF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,OAAO,CAAA;IACtB,EAAE,EAAE,OAAO,CAAA;IACX,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,OAAO,CAAA;IACtB,yBAAyB,EAAE,OAAO,CAAA;IAClC,YAAY,EAAE,qBAAqB,CAAA;IACnC,YAAY,EAAE,qBAAqB,CAAA;CACpC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,gCAAqC,GAC7C,2BAA2B,CAc7B;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,0BAA+B,GACvC,YAAY,CAMd;AAED,wBAAsB,4BAA4B,CAChD,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,6BAA6B,CAAC,CAqBxC;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,qBAAqB,CAAC,CAEhC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAA;AAE1B,cAAc,YAAY,CAAA;AAE1B,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gCAAgC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,0BAA2B,SAAQ,gCAAgC;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;CAChC;AAED,MAAM,WAAW,mCAAoC,SAAQ,0BAA0B;IACrF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,EAAE,EAAE,OAAO,CAAA;IACX,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,OAAO,CAAA;IACtB,yBAAyB,EAAE,OAAO,CAAA;IAClC,YAAY,EAAE,qBAAqB,CAAA;IACnC,YAAY,EAAE,qBAAqB,CAAA;CACpC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,gCAAqC,GAC7C,2BAA2B,CAc7B;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,0BAA+B,GACvC,YAAY,CAmBd;AAED,wBAAsB,4BAA4B,CAChD,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,6BAA6B,CAAC,CAwCxC;AA2BD,wBAAsB,0BAA0B,CAC9C,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,qBAAqB,CAAC,CAKhC"}
package/dist/node.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { join } from 'node:path';
4
- import { createAgentsClient, } from './index.js';
4
+ import { createAgentsClient, isAgentsApiError, } from './index.js';
5
5
  import { loadXenoCloudModelCatalog, } from './modelCatalog.js';
6
6
  export * from './index.js';
7
7
  export function readXenoCloudCredentials(options = {}) {
@@ -22,6 +22,19 @@ export function readXenoCloudCredentials(options = {}) {
22
22
  export function createXenoCloudNodeAgentsClient(options = {}) {
23
23
  return createAgentsClient({
24
24
  ...(options.baseUrl ? { baseUrl: options.baseUrl } : {}),
25
+ /**
26
+ * ๐Ÿ”ด The signed-in ACCOUNT authorizes hosted runs, with the legacy file as the fallback.
27
+ *
28
+ * This order is the fix. `webToken` is a long-lived JWT in `~/.xeno/credentials.json` written
29
+ * by Hub, and nothing in this app refreshes it โ€” so once it expired, hosted runs failed
30
+ * `unauthorized (HTTP 401)` for a person who was signed in, and signing in again could not
31
+ * help because the two credential paths never met. Measured 2026-09-14: that token had been
32
+ * expired for two days while the account itself was perfectly valid.
33
+ *
34
+ * The same ordering `loadXenoCloudModelCatalog` already uses โ€” hosted runs were simply the
35
+ * half that never got it.
36
+ */
37
+ ...(options.authorize ? { authorize: options.authorize } : {}),
25
38
  token: () => readXenoCloudCredentials(options).webToken || '',
26
39
  ...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
27
40
  });
@@ -30,6 +43,7 @@ export async function discoverXenoCloudNodeRuntime(options = {}) {
30
43
  const credentials = readXenoCloudCredentials(options);
31
44
  const modelOptions = {
32
45
  ...(credentials.apiKey ? { apiKey: credentials.apiKey } : {}),
46
+ ...(options.authorize ? { authorize: options.authorize } : {}),
33
47
  ...(credentials.webToken ? { webToken: credentials.webToken } : {}),
34
48
  ...(options.directApiBase ? { directApiBase: options.directApiBase } : {}),
35
49
  ...(options.platformModelsUrl ? { platformModelsUrl: options.platformModelsUrl } : {}),
@@ -39,47 +53,145 @@ export async function discoverXenoCloudNodeRuntime(options = {}) {
39
53
  };
40
54
  const [modelCatalog, hostedStatus] = await Promise.all([
41
55
  loadXenoCloudModelCatalog(modelOptions),
42
- loadHostedStatusWithToken(credentials.webToken, options),
56
+ /**
57
+ * โœ… Hosted RUNS now authenticate as the signed-in account, with the legacy file as fallback.
58
+ *
59
+ * This comment used to record the opposite as a known boundary: the client took a `token()`
60
+ * callback returning one bearer string, and a DPoP credential cannot be expressed that way โ€”
61
+ * it needs a proof per method and URL. That was true, and it was the whole bug: hosted runs
62
+ * failed `unauthorized (HTTP 401)` for a signed-in person because the legacy token had
63
+ * expired and no account path existed to replace it.
64
+ *
65
+ * `AgentsClientConfig.authorize` is that path โ€” it receives the method and URL, so a proof
66
+ * can be bound to them. `token` remains for BYO-key and Hub-brokered installs.
67
+ */
68
+ loadHostedStatusWithToken(isLiveWebToken(credentials.webToken) ? credentials.webToken : undefined, options),
43
69
  ]);
44
70
  return {
45
- authenticated: Boolean(credentials.webToken),
71
+ // This compatibility boolean means a credential this discovery can run hosted work with: a
72
+ // LIVE legacy web token (BYO-key and Hub-brokered installs โ€” the surface smoke's cloud fixture
73
+ // is exactly that install, and dropping this branch refused it with "Sign in", measured
74
+ // 2026-09-17), or platform authentication the model catalog CONFIRMED. A public service-status
75
+ // response never establishes one, and model COUNT is not a credential (that was the old
76
+ // inference); the host separately owns account identity.
77
+ authenticated: isLiveWebToken(credentials.webToken) || (modelCatalog.source === 'platform-auth' && modelCatalog.authenticated === true),
46
78
  directCredentialAvailable: Boolean(credentials.apiKey),
47
79
  hostedStatus,
48
80
  modelCatalog,
49
81
  };
50
82
  }
83
+ /**
84
+ * Is the legacy `webToken` present AND not expired?
85
+ *
86
+ * ๐Ÿ”ด "Present" was the old test, and an expired token passed it โ€” so the lane reported itself
87
+ * authenticated, skipped the account path, and failed every hosted run with `unauthorized (HTTP
88
+ * 401)`. Measured 2026-09-14: expired two days earlier, and nothing in this app refreshes it.
89
+ *
90
+ * โš ๏ธ Deliberately lenient about SHAPE, strict about EXPIRY. This never decides that a token is
91
+ * VALID โ€” only the server does that. A token we cannot parse is left for the server to judge,
92
+ * because refusing one we merely failed to read would break installs this code has never seen.
93
+ * The 60s skew margin avoids treating a token that dies mid-flight as usable.
94
+ */
95
+ function isLiveWebToken(webToken) {
96
+ if (!webToken)
97
+ return false;
98
+ const parts = webToken.split('.');
99
+ if (parts.length !== 3)
100
+ return true;
101
+ try {
102
+ const payload = JSON.parse(Buffer.from(parts[1], 'base64url').toString('utf8'));
103
+ if (typeof payload.exp !== 'number')
104
+ return true;
105
+ return payload.exp * 1000 > Date.now() + 60_000;
106
+ }
107
+ catch {
108
+ return true;
109
+ }
110
+ }
51
111
  export async function probeXenoCloudHostedStatus(options = {}) {
52
- return loadHostedStatusWithToken(readXenoCloudCredentials(options).webToken, options);
112
+ const { webToken } = readXenoCloudCredentials(options);
113
+ // Hand the probe only a token it could actually authenticate with, so an expired one falls
114
+ // through to the account authorizer instead of shadowing it.
115
+ return loadHostedStatusWithToken(isLiveWebToken(webToken) ? webToken : undefined, options);
53
116
  }
54
117
  async function loadHostedStatusWithToken(webToken, options) {
55
- if (!webToken) {
118
+ /**
119
+ * ๐Ÿ”ด A signed-in ACCOUNT is a hosted-runs credential, exactly like the legacy token.
120
+ *
121
+ * This gate used to read `webToken` alone, so an account-only install was told to "sign in" no
122
+ * matter how many times it signed in โ€” the credential it was asking for was one this app never
123
+ * mints. Measured 2026-09-14: the lane reported that message with a two-days-expired token while
124
+ * the account was valid and the model catalogue, which DOES authorize as the account, was full.
125
+ */
126
+ if (!webToken && !options.authorize) {
56
127
  return {
57
128
  authenticated: false,
58
129
  ok: false,
59
130
  capabilities: [],
131
+ failure: { code: 'auth-required', retryable: false },
60
132
  safeUnavailableReason: 'Sign in to use hosted XENO Agent runs.',
61
133
  };
62
134
  }
63
135
  try {
64
136
  const status = await createXenoCloudNodeAgentsClient(options).status(options.signal ? { signal: options.signal } : undefined);
137
+ // ๐Ÿ”ด No `authenticated: true` here โ€” see the doc comment on `XenoCloudHostedStatus.authenticated`.
138
+ // This probe answering successfully is not evidence the caller's identity was checked.
65
139
  return {
66
- authenticated: true,
67
140
  ok: status.ok === true,
68
141
  capabilities: Array.isArray(status.capabilities) ? [...status.capabilities] : [],
69
142
  ...(status.version ? { version: status.version } : {}),
70
143
  ...(status.service ? { service: status.service } : {}),
71
- ...(status.ok === true ? {} : { safeUnavailableReason: 'The hosted XENO Agent service is unavailable.' }),
144
+ ...(status.ok === true ? {} : { failure: { code: 'server', retryable: true }, safeUnavailableReason: 'The hosted XENO Agent service is unavailable.' }),
72
145
  };
73
146
  }
74
147
  catch (error) {
148
+ /**
149
+ * ๐Ÿ”ด Never `true`, and not unconditionally `false` either. This used to report
150
+ * `authenticated: true` for ANY failure, on the reasoning that reaching this branch already
151
+ * means a credential was supplied โ€” conflating "we sent something" with "the server confirmed
152
+ * an identity", which is exactly the invented-positive-from-failure this whole fix removes.
153
+ *
154
+ * The fix is NOT "flip it to false on any failure" โ€” that is the same mistake in the other
155
+ * direction: a timeout or a 503 confirms nothing about the credential either, so asserting
156
+ * `false` there would be an invented NEGATIVE. Only a CONFIRMED rejection (`auth-required` โ€”
157
+ * an explicit 401 / `unauthorized`) sets `false`. A 403 (identity recognised, action refused โ€”
158
+ * a different fact from "not signed in") and every other failure (network, timeout, 5xx,
159
+ * rate-limited) leave the field OMITTED: unverified, not a guess in either direction.
160
+ */
161
+ const failure = hostedStatusFailure(error);
75
162
  return {
76
- authenticated: true,
163
+ ...(failure.code === 'auth-required' ? { authenticated: false } : {}),
77
164
  ok: false,
78
165
  capabilities: [],
166
+ failure,
79
167
  safeUnavailableReason: safeError(error),
80
168
  };
81
169
  }
82
170
  }
171
+ /**
172
+ * Maps the agents-API's own error taxonomy (`AgentsApiErrorCode`, `index.ts`) onto the SAME
173
+ * `CatalogFailureCode` vocabulary the model catalog uses, so a caller reading a hosted-status
174
+ * failure does not need a second set of codes.
175
+ *
176
+ * Timeout is a typed client signal, not a match against an English error message.
177
+ */
178
+ function hostedStatusFailure(error) {
179
+ if (!isAgentsApiError(error))
180
+ return { code: 'network', retryable: true };
181
+ if (error.status === 401 || error.code === 'unauthorized')
182
+ return { code: 'auth-required', retryable: false };
183
+ if (error.status === 403 || error.code === 'forbidden')
184
+ return { code: 'forbidden', retryable: false };
185
+ if (error.status === 429 || error.code === 'rate_limited')
186
+ return { code: 'rate-limited', retryable: true };
187
+ if (error.status >= 500)
188
+ return { code: 'server', retryable: true };
189
+ if (error.isTimeout)
190
+ return { code: 'timeout', retryable: true };
191
+ if (error.isNetwork)
192
+ return { code: 'network', retryable: true };
193
+ return { code: 'invalid-response', retryable: false };
194
+ }
83
195
  function readJsonRecord(path) {
84
196
  try {
85
197
  if (!existsSync(path))
@@ -96,8 +208,15 @@ function cleanSecret(value) {
96
208
  return cleaned || undefined;
97
209
  }
98
210
  function safeError(error) {
99
- if (error instanceof Error && error.message.trim())
100
- return error.message.trim().slice(0, 500);
211
+ const failure = hostedStatusFailure(error);
212
+ if (failure.code === 'auth-required')
213
+ return 'Sign in to use hosted XENO Agent runs.';
214
+ if (failure.code === 'forbidden')
215
+ return 'Your account is not permitted to use hosted XENO Agent runs.';
216
+ if (failure.code === 'timeout')
217
+ return 'The hosted XENO Agent service request timed out.';
218
+ if (failure.code === 'rate-limited')
219
+ return 'The hosted XENO Agent service is rate limited.';
101
220
  return 'The hosted XENO Agent service is unavailable.';
102
221
  }
103
222
  function isRecord(value) {
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenosystem/agents-client",
3
- "version": "0.1.36",
3
+ "version": "0.1.38",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Portable authenticated client for the hosted XENO Agents run API.",
6
6
  "type": "module",