@catalyst-cloud/sdk 0.8.49 → 0.9.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-client.d.ts","sourceRoot":"","sources":["../src/tenant-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,504 @@
1
+ // tenant-client.ts — CTC-2004. ONE typed client for every tenant read and write, so the CLI, the
2
+ // skill scripts, MCP tools and the cloud repo's own scripts share one implementation instead of six.
3
+ //
4
+ // What it wraps, and where each shape was read from (the research doc for CTC-2004 cites file:line):
5
+ // • GET /api/v1/agent/contract — the tenant's own fact document, ETag-cached per the document's
6
+ // OWN `cache` policy (docs/agent-contract.md): inside `maxAgeSeconds` the cached copy is used;
7
+ // past it a conditional GET revalidates; past `staleRefusalSeconds` with no successful
8
+ // revalidation the client REFUSES by name. There is no literal fallback for any served field.
9
+ // • GET /api/v1/issues, /pulls (keyset-paged: `?after=`, and the next page rides the
10
+ // `X-Mirror-Next-Cursor` header, absent on the last page), /issues/:identifier, /pulls/:id,
11
+ // /projects, /me.
12
+ // • Every tenant write on the /api/v1/agent/* proxy — issue-state, issue-label, issue-comment,
13
+ // issue-create, reaction, attachment, session, ask, ask-accept — plus the attachments read-back.
14
+ // ⭐ THE PATH IS NEVER A LITERAL: each is resolved from the contract's `routes[]` by its last
15
+ // segment, and a route the tenant's contract does not list is a typed `route-unknown` result.
16
+ //
17
+ // ⛔ NOTHING THROWS FOR A SERVER ANSWER. Every call resolves to a discriminated union on `outcome`.
18
+ // The mirror already speaks that grammar on the proxy (`{outcome, reason}` on every status); the auth
19
+ // plane speaks `{error, reason}` (401/403) and the open reads speak `{error}` (400/404) — `classify`
20
+ // folds all three into the same union, with a `status` on every arm the server produced, so a consumer
21
+ // never branches on an HTTP status or regexes a prose reason (the bundle today classifies the write
22
+ // budget's 429 with `/budget/i`; here it is the `rate-limited` arm, with `Retry-After` parsed when the
23
+ // server sends one — the write-budget refusal does not, the read floor does).
24
+ //
25
+ // Runtime-agnostic: the global `fetch`/`Headers`/`URL`/`AbortSignal` only (no node import), fetch is
26
+ // injectable for tests exactly as `LiveSyncClient.wsFactory` is, and the contract cache STORE is
27
+ // injectable because the bundle keeps it on disk while this module must stay free of `node:fs`.
28
+ // `IssueView` and friends are `import type`d from `@catalyst-cloud/read-model` (an existing
29
+ // dependency) — erased at build, so the root entry gains no runtime import.
30
+ import { CONTRACT_ROUTE, readTenantContract, routeByName, } from "./tenant-contract.js";
31
+ // ── Options ─────────────────────────────────────────────────────────────────────────────────────
32
+ /** Default per-request deadline — the bundle's `REQUEST_TIMEOUT_MS`. */
33
+ export const DEFAULT_TIMEOUT_MS = 15_000;
34
+ /** The default store: one entry, held for the life of the client. */
35
+ export function memoryContractCache() {
36
+ let entry = null;
37
+ return {
38
+ get: () => entry,
39
+ set: (e) => {
40
+ entry = e;
41
+ },
42
+ };
43
+ }
44
+ /** Admit a persisted token as a {@link PageCursor}. */
45
+ export function pageCursor(token) {
46
+ return token;
47
+ }
48
+ // ── Header and param names — the mirror's own strings, each in exactly one place ────────────────
49
+ /** The next-page keyset token on `/issues` and `/pulls`; ABSENT on the last page. */
50
+ export const NEXT_CURSOR_HEADER = "X-Mirror-Next-Cursor";
51
+ /** The feed head seq every list/detail read is consistent with. */
52
+ export const HEAD_SEQ_HEADER = "X-Mirror-Cursor";
53
+ /** The scope's full row count on `/issues` and `/pulls` — the page can never report what lies past it. */
54
+ export const TOTAL_HEADER = "X-Mirror-Total";
55
+ /** `/pulls` only: the "N of M blocked on an ask" numerator. */
56
+ export const BLOCKED_ON_ASK_TOTAL_HEADER = "X-Mirror-Blocked-On-Ask-Total";
57
+ /** The contract route's own version header, equal to the body's `contractVersion`. */
58
+ export const CONTRACT_VERSION_HEADER = "x-catalyst-contract-version";
59
+ // ── Internals ───────────────────────────────────────────────────────────────────────────────────
60
+ function isRecord(value) {
61
+ return value !== null && typeof value === "object" && !Array.isArray(value);
62
+ }
63
+ /**
64
+ * A detail body is the read-model's own view object; the client cannot re-declare the view to check
65
+ * it field by field without becoming the second copy this ticket deletes, so an object body is
66
+ * accepted as the view. Kept as ONE narrowing site so the assumption is visible and grep-able rather
67
+ * than scattered.
68
+ */
69
+ function asView(rec) {
70
+ return rec;
71
+ }
72
+ function stringField(rec, key) {
73
+ const v = rec[key];
74
+ return typeof v === "string" ? v : null;
75
+ }
76
+ function numberField(rec, key) {
77
+ const v = rec[key];
78
+ return typeof v === "number" ? v : null;
79
+ }
80
+ /** A header carrying an integer (the feed head, a total). `null` when absent or not a number. */
81
+ function integerHeader(headers, name) {
82
+ const raw = headers.get(name);
83
+ if (raw === null)
84
+ return null;
85
+ const n = Number(raw);
86
+ return Number.isFinite(n) ? n : null;
87
+ }
88
+ /** The reason string a refusal body carries, under whichever of the three grammars it speaks. */
89
+ function reasonOf(answer) {
90
+ if (isRecord(answer.json)) {
91
+ return (stringField(answer.json, "reason") ??
92
+ stringField(answer.json, "error") ??
93
+ stringField(answer.json, "message") ??
94
+ answer.textHead);
95
+ }
96
+ return answer.textHead;
97
+ }
98
+ /**
99
+ * Fold a non-success answer into the shared failure union. Consulted AFTER a route's own success
100
+ * table (which keys on the body's `outcome`), so the server's own discriminator wins whenever it is
101
+ * present and recognised; this handles the auth plane, the budget, and everything unmapped.
102
+ */
103
+ function classify(answer) {
104
+ const { status } = answer;
105
+ const rec = isRecord(answer.json) ? answer.json : null;
106
+ const reason = reasonOf(answer);
107
+ if (status === 401)
108
+ return { outcome: "unauthorized", status, reason, ref: rec ? stringField(rec, "ref") : null };
109
+ if (status === 403) {
110
+ return {
111
+ outcome: "forbidden",
112
+ status,
113
+ reason,
114
+ required: rec ? stringField(rec, "required") : null,
115
+ account: rec ? stringField(rec, "account") : null,
116
+ };
117
+ }
118
+ if (status === 429) {
119
+ const raw = answer.headers.get("retry-after");
120
+ const seconds = raw === null ? Number.NaN : Number(raw);
121
+ return { outcome: "rate-limited", status, reason, retryAfterSeconds: Number.isFinite(seconds) ? seconds : null };
122
+ }
123
+ if (rec !== null && rec["outcome"] === "rejected") {
124
+ const attempts = numberField(rec, "attempts");
125
+ return { outcome: "rejected", status, reason, ...(attempts === null ? {} : { attempts }) };
126
+ }
127
+ if (rec !== null && rec["outcome"] === "failed")
128
+ return { outcome: "failed", status, reason };
129
+ if (status === 400 && rec !== null && stringField(rec, "error") !== null) {
130
+ return { outcome: "rejected", status, reason };
131
+ }
132
+ if (status >= 200 && status < 300) {
133
+ return { outcome: "shape", status, reason: `unexpected body: ${reason.slice(0, 120)}` };
134
+ }
135
+ return { outcome: "http", status, reason };
136
+ }
137
+ /**
138
+ * Trim trailing slashes from the configured origin so route paths (absolute, leading-slash) append
139
+ * cleanly. ⛔ A plain scan, NOT `/\/+$/`: on library input that regex backtracks from every start
140
+ * position when the string ends in a non-slash — measured 4.2 s on 100k slashes (CodeQL
141
+ * security/code-scanning/4 on #65). This is O(n).
142
+ */
143
+ export function normalizeBaseUrl(baseUrl) {
144
+ let end = baseUrl.length;
145
+ while (end > 0 && baseUrl.charCodeAt(end - 1) === 47 /* "/" */)
146
+ end -= 1;
147
+ return baseUrl.slice(0, end);
148
+ }
149
+ export function createTenantClient(opts) {
150
+ const fetchImpl = opts.fetch ?? fetch;
151
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
152
+ const store = opts.contractCache ?? memoryContractCache();
153
+ const now = opts.now ?? Date.now;
154
+ const origin = normalizeBaseUrl(opts.baseUrl);
155
+ function url(path, query) {
156
+ const u = new URL(`${origin}${path}`);
157
+ for (const [k, v] of Object.entries(query ?? {})) {
158
+ if (v !== undefined)
159
+ u.searchParams.set(k, String(v));
160
+ }
161
+ return u.toString();
162
+ }
163
+ async function send(method, target, extraHeaders, body) {
164
+ const headers = {
165
+ authorization: `Bearer ${opts.key}`,
166
+ accept: "application/json",
167
+ ...extraHeaders,
168
+ };
169
+ if (body !== undefined)
170
+ headers["content-type"] = "application/json";
171
+ let res;
172
+ let text;
173
+ try {
174
+ res = await fetchImpl(target, {
175
+ method,
176
+ headers,
177
+ ...(body === undefined ? {} : { body: JSON.stringify(body) }),
178
+ signal: AbortSignal.timeout(timeoutMs),
179
+ });
180
+ // ⛔ THE BODY READ IS INSIDE THE TRY (Codex #65 r1, P2). `fetch` resolves once the HEADERS
181
+ // arrive; the stream can still fail, or the deadline fire, while `text()` consumes it — and
182
+ // that rejection is a transport failure exactly like a refused connect, not an exception the
183
+ // public call may leak.
184
+ text = await res.text();
185
+ }
186
+ catch (err) {
187
+ const reason = err instanceof Error ? err.message : String(err);
188
+ return { ok: false, failure: { outcome: "network", reason: `could not reach ${target}: ${reason}` } };
189
+ }
190
+ let json;
191
+ if (text !== "") {
192
+ try {
193
+ json = JSON.parse(text);
194
+ }
195
+ catch {
196
+ json = undefined;
197
+ }
198
+ }
199
+ return { ok: true, answer: { status: res.status, headers: res.headers, json, textHead: text.slice(0, 200) } };
200
+ }
201
+ // ── contract() ────────────────────────────────────────────────────────────────────────────────
202
+ async function contract(o = {}) {
203
+ const cached = await store.get();
204
+ const nowMs = now();
205
+ const ageSeconds = cached === null ? Number.POSITIVE_INFINITY : Math.max(0, Math.floor((nowMs - cached.fetchedAt) / 1000));
206
+ const fromCache = (entry) => ({
207
+ outcome: "ok",
208
+ doc: entry.doc,
209
+ source: "cache",
210
+ ageSeconds,
211
+ etag: entry.etag,
212
+ contractVersion: entry.contractVersion,
213
+ });
214
+ if (cached !== null && o.refresh !== true && ageSeconds < cached.doc.cache.maxAgeSeconds) {
215
+ return fromCache(cached);
216
+ }
217
+ if (o.offline === true) {
218
+ if (cached !== null)
219
+ return fromCache(cached);
220
+ return { outcome: "missing", reason: "no cached contract and network reads are disabled" };
221
+ }
222
+ // A revalidation that could not complete — the transport failed, or the server answered a
223
+ // TRANSIENT non-2xx (5xx, 429) — leaves the cached document exactly as usable as the policy says:
224
+ // served until `staleRefusalSeconds`, refused by name as `stale` past it (Codex #65 r1, P1:
225
+ // every agent.* call loads the contract first, so a brief server failure at the max-age
226
+ // boundary must not disable every write). A credential refusal (401/403) or a 400 is NOT
227
+ // transient and is returned as itself: the cache covers the server being away, never the key
228
+ // having been revoked or re-scoped.
229
+ const unavailable = (cause) => {
230
+ if (cached === null)
231
+ return cause;
232
+ if (ageSeconds >= cached.doc.cache.staleRefusalSeconds) {
233
+ return { outcome: "stale", ageSeconds, staleRefusalSeconds: cached.doc.cache.staleRefusalSeconds, cause };
234
+ }
235
+ return fromCache(cached);
236
+ };
237
+ const sent = await send("GET", url(CONTRACT_ROUTE), cached?.etag ? { "if-none-match": cached.etag } : {});
238
+ if (!sent.ok)
239
+ return unavailable(sent.failure);
240
+ const { answer } = sent;
241
+ if (answer.status === 429 || answer.status >= 500)
242
+ return unavailable(classify(answer));
243
+ if (answer.status === 304) {
244
+ if (cached === null) {
245
+ return { outcome: "shape", status: 304, reason: "304 with no cached contract to revalidate" };
246
+ }
247
+ const refreshed = { ...cached, fetchedAt: nowMs };
248
+ await store.set(refreshed);
249
+ return { outcome: "ok", doc: cached.doc, source: "revalidated", ageSeconds: 0, etag: cached.etag, contractVersion: cached.contractVersion };
250
+ }
251
+ if (answer.status === 200) {
252
+ const doc = readTenantContract(answer.json);
253
+ if (doc === null) {
254
+ return { outcome: "shape", status: 200, reason: `${CONTRACT_ROUTE} returned a body that does not read as a TenantContract` };
255
+ }
256
+ const contractVersion = answer.headers.get(CONTRACT_VERSION_HEADER) ?? doc.contractVersion;
257
+ const entry = { etag: answer.headers.get("etag"), fetchedAt: nowMs, contractVersion, doc };
258
+ await store.set(entry);
259
+ return { outcome: "ok", doc, source: "network", ageSeconds: 0, etag: entry.etag, contractVersion };
260
+ }
261
+ return classify(answer);
262
+ }
263
+ // ── The open reads ────────────────────────────────────────────────────────────────────────────
264
+ /** A keyset list: the bare array body plus the page's headers. */
265
+ function keysetPage(answer) {
266
+ if (!Array.isArray(answer.json))
267
+ return null;
268
+ const next = answer.headers.get(NEXT_CURSOR_HEADER);
269
+ return {
270
+ rows: answer.json,
271
+ nextCursor: next === null ? null : pageCursor(next),
272
+ total: integerHeader(answer.headers, TOTAL_HEADER),
273
+ head: integerHeader(answer.headers, HEAD_SEQ_HEADER),
274
+ };
275
+ }
276
+ /**
277
+ * The mirror's list bodies are the read-model's own view rows; the only shape check a client can
278
+ * make without re-declaring the view is "every row is an object". ⛔ ONE bad row fails the WHOLE
279
+ * page (Codex #65 r1, P2): the cursor and the totals describe the server's page, so a silently
280
+ * dropped row could never be recovered by paging — `ok` with fewer rows would be a lie.
281
+ */
282
+ function rowsOf(rows) {
283
+ const out = [];
284
+ for (const r of rows) {
285
+ if (!isRecord(r))
286
+ return null;
287
+ out.push(asView(r));
288
+ }
289
+ return out;
290
+ }
291
+ async function issuesList(params = {}) {
292
+ const sent = await send("GET", url("/api/v1/issues", {
293
+ after: params.after,
294
+ limit: params.limit,
295
+ team_id: params.teamId,
296
+ team_key: params.teamKey,
297
+ state: params.state,
298
+ priority: params.priority,
299
+ assignee_id: params.assigneeId,
300
+ assignee: params.assignee,
301
+ cycle: params.cycle,
302
+ blocked: params.blocked,
303
+ sort: params.sort,
304
+ waiting_on: params.waitingOn,
305
+ waiting_mode: params.waitingMode,
306
+ }), {});
307
+ if (!sent.ok)
308
+ return sent.failure;
309
+ if (sent.answer.status !== 200)
310
+ return classify(sent.answer);
311
+ const page = keysetPage(sent.answer);
312
+ const rows = page === null ? null : rowsOf(page.rows);
313
+ if (page === null || rows === null) {
314
+ return { outcome: "shape", status: 200, reason: "GET /api/v1/issues did not answer an array of rows" };
315
+ }
316
+ return { outcome: "ok", rows, nextCursor: page.nextCursor, total: page.total, head: page.head };
317
+ }
318
+ async function issuesGet(identifier) {
319
+ const sent = await send("GET", url(`/api/v1/issues/${encodeURIComponent(identifier)}`), {});
320
+ if (!sent.ok)
321
+ return sent.failure;
322
+ const { answer } = sent;
323
+ if (answer.status === 404)
324
+ return { outcome: "not-found", status: 404 };
325
+ if (answer.status !== 200)
326
+ return classify(answer);
327
+ if (!isRecord(answer.json))
328
+ return { outcome: "shape", status: 200, reason: "GET /api/v1/issues/:identifier did not answer an object" };
329
+ return { outcome: "ok", issue: asView(answer.json), head: integerHeader(answer.headers, HEAD_SEQ_HEADER) };
330
+ }
331
+ async function pullsList(params = {}) {
332
+ const sent = await send("GET", url("/api/v1/pulls", { repo: params.repo, state: params.state, blocked: params.blocked, after: params.after, limit: params.limit }), {});
333
+ if (!sent.ok)
334
+ return sent.failure;
335
+ if (sent.answer.status !== 200)
336
+ return classify(sent.answer);
337
+ const page = keysetPage(sent.answer);
338
+ const rows = page === null ? null : rowsOf(page.rows);
339
+ if (page === null || rows === null) {
340
+ return { outcome: "shape", status: 200, reason: "GET /api/v1/pulls did not answer an array of rows" };
341
+ }
342
+ return {
343
+ outcome: "ok",
344
+ rows,
345
+ nextCursor: page.nextCursor,
346
+ total: page.total,
347
+ blockedOnAskTotal: integerHeader(sent.answer.headers, BLOCKED_ON_ASK_TOTAL_HEADER),
348
+ head: page.head,
349
+ };
350
+ }
351
+ async function pullsGet(nodeId) {
352
+ const sent = await send("GET", url(`/api/v1/pulls/${encodeURIComponent(nodeId)}`), {});
353
+ if (!sent.ok)
354
+ return sent.failure;
355
+ const { answer } = sent;
356
+ if (answer.status === 404)
357
+ return { outcome: "not-found", status: 404 };
358
+ if (answer.status !== 200)
359
+ return classify(answer);
360
+ if (!isRecord(answer.json))
361
+ return { outcome: "shape", status: 200, reason: "GET /api/v1/pulls/:id did not answer an object" };
362
+ return { outcome: "ok", pull: asView(answer.json) };
363
+ }
364
+ async function projectsList(params = {}) {
365
+ const sent = await send("GET", url("/api/v1/projects", { limit: params.limit, cursor: params.offset }), {});
366
+ if (!sent.ok)
367
+ return sent.failure;
368
+ if (sent.answer.status !== 200)
369
+ return classify(sent.answer);
370
+ const rows = Array.isArray(sent.answer.json) ? rowsOf(sent.answer.json) : null;
371
+ if (rows === null)
372
+ return { outcome: "shape", status: 200, reason: "GET /api/v1/projects did not answer an array of rows" };
373
+ return { outcome: "ok", rows, head: integerHeader(sent.answer.headers, HEAD_SEQ_HEADER) };
374
+ }
375
+ async function me() {
376
+ const sent = await send("GET", url("/api/v1/me"), {});
377
+ if (!sent.ok)
378
+ return sent.failure;
379
+ const { answer } = sent;
380
+ if (answer.status !== 200)
381
+ return classify(answer);
382
+ const body = answer.json;
383
+ if (!isRecord(body))
384
+ return { outcome: "shape", status: 200, reason: "GET /api/v1/me did not answer an object" };
385
+ const account = stringField(body, "account");
386
+ const slug = stringField(body, "slug");
387
+ const name = stringField(body, "name");
388
+ const permissions = body["permissions"];
389
+ const principal = body["principal"];
390
+ if (account === null ||
391
+ slug === null ||
392
+ name === null ||
393
+ !(permissions === null || (Array.isArray(permissions) && permissions.every((p) => typeof p === "string"))) ||
394
+ !(principal === "service" || principal === "session")) {
395
+ return { outcome: "shape", status: 200, reason: "GET /api/v1/me returned an unexpected shape" };
396
+ }
397
+ return { outcome: "ok", account, slug, name, permissions, principal };
398
+ }
399
+ // ── The agent proxy ───────────────────────────────────────────────────────────────────────────
400
+ /**
401
+ * One implementation under every typed verb: resolve the route from the (cached) contract, send
402
+ * the input as the body (POST) or the query (GET), and hand the body back under the route's own
403
+ * success table — the set of `outcome` literals this route is documented to answer with a 2xx OR a
404
+ * mapped error status. Any other answer goes through `classify`.
405
+ */
406
+ async function callAgentRoute(name, input, accept) {
407
+ const doc = await contract();
408
+ if (doc.outcome !== "ok")
409
+ return { ok: false, failure: doc };
410
+ const route = routeByName(doc.doc, name);
411
+ if (route === null) {
412
+ return { ok: false, failure: { outcome: "route-unknown", route: name, routes: doc.doc.routes.map((r) => r.path) } };
413
+ }
414
+ const defined = Object.fromEntries(Object.entries(input).filter(([, v]) => v !== undefined));
415
+ const sent = route.method === "GET"
416
+ ? await send("GET", url(route.path, stringify(defined)), {})
417
+ : await send("POST", url(route.path), {}, defined);
418
+ if (!sent.ok)
419
+ return { ok: false, failure: sent.failure };
420
+ const { answer } = sent;
421
+ if (isRecord(answer.json) && accept(answer.json))
422
+ return { ok: true, body: answer.json, status: answer.status };
423
+ return { ok: false, failure: classify(answer) };
424
+ }
425
+ /** A route's success table: the `outcome` literals it answers with a 2xx OR a mapped error status. */
426
+ function outcomes(...names) {
427
+ return (body) => typeof body["outcome"] === "string" && names.includes(body["outcome"]);
428
+ }
429
+ function stringify(input) {
430
+ const out = {};
431
+ for (const [k, v] of Object.entries(input))
432
+ out[k] = String(v);
433
+ return out;
434
+ }
435
+ /** The body, verbatim, with the status stamped on — the pass-through the mirror's own
436
+ * response-shape discipline asks for ("the primitive's own discriminated outcome goes back to the
437
+ * caller near-verbatim"). One narrowing site per verb, typed by the route's declared union. */
438
+ function stamped(body, status) {
439
+ return { ...body, status };
440
+ }
441
+ const WRITE_OUTCOMES = outcomes("succeeded", "exhausted");
442
+ const agent = {
443
+ async issueState(input) {
444
+ const r = await callAgentRoute("issue-state", { ...input }, WRITE_OUTCOMES);
445
+ return r.ok ? stamped(r.body, r.status) : r.failure;
446
+ },
447
+ async issueLabel(input) {
448
+ const r = await callAgentRoute("issue-label", { ...input }, outcomes("succeeded", "failed"));
449
+ return r.ok ? stamped(r.body, r.status) : r.failure;
450
+ },
451
+ async issueComment(input) {
452
+ const r = await callAgentRoute("issue-comment", { ...input }, WRITE_OUTCOMES);
453
+ return r.ok ? stamped(r.body, r.status) : r.failure;
454
+ },
455
+ async issueCreate(input) {
456
+ const r = await callAgentRoute("issue-create", { ...input }, WRITE_OUTCOMES);
457
+ return r.ok ? stamped(r.body, r.status) : r.failure;
458
+ },
459
+ async reaction(input) {
460
+ const r = await callAgentRoute("reaction", { ...input }, WRITE_OUTCOMES);
461
+ return r.ok ? stamped(r.body, r.status) : r.failure;
462
+ },
463
+ async attachment(input) {
464
+ const r = await callAgentRoute("attachment", { ...input }, WRITE_OUTCOMES);
465
+ return r.ok ? stamped(r.body, r.status) : r.failure;
466
+ },
467
+ async attachments(input) {
468
+ const r = await callAgentRoute("attachments", { ...input }, outcomes("succeeded", "rejected", "unauthorized"));
469
+ if (!r.ok)
470
+ return r.failure;
471
+ const reason = stringField(r.body, "reason") ?? "";
472
+ if (r.body["outcome"] === "rejected")
473
+ return { outcome: "not-found", status: 404, reason };
474
+ if (r.body["outcome"] === "unauthorized")
475
+ return { outcome: "unauthorized-upstream", status: r.status, reason };
476
+ return stamped(r.body, r.status);
477
+ },
478
+ async session(input) {
479
+ // The composite has no top-level `outcome`; its sub-results carry their own. Every status the
480
+ // route produces (200/400/502) carries the same body shape, so the table is "has a session".
481
+ const r = await callAgentRoute("session", { ...input }, (body) => isRecord(body["session"]));
482
+ if (!r.ok)
483
+ return r.failure;
484
+ return { outcome: "ok", ...stamped(r.body, r.status) };
485
+ },
486
+ async ask(input) {
487
+ const r = await callAgentRoute("ask", { ...input }, outcomes("created", "created-but-relations-partial", "exhausted"));
488
+ return r.ok ? stamped(r.body, r.status) : r.failure;
489
+ },
490
+ async askAccept(input) {
491
+ const r = await callAgentRoute("ask-accept", { ...input }, outcomes("recorded", "refused", "record-failed"));
492
+ return r.ok ? stamped(r.body, r.status) : r.failure;
493
+ },
494
+ };
495
+ return {
496
+ contract,
497
+ me,
498
+ issues: { list: issuesList, get: issuesGet },
499
+ pulls: { list: pullsList, get: pullsGet },
500
+ projects: { list: projectsList },
501
+ agent,
502
+ };
503
+ }
504
+ //# sourceMappingURL=tenant-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-client.js","sourceRoot":"","sources":["../src/tenant-client.ts"],"names":[],"mappings":"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"}