@claudexor/control-api 3.0.3 → 3.1.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.
Files changed (57) hide show
  1. package/LICENSE +1 -1
  2. package/dist/artifact-serve-routes.d.ts +46 -1
  3. package/dist/artifact-serve-routes.d.ts.map +1 -1
  4. package/dist/artifact-serve-routes.js +172 -8
  5. package/dist/artifact-serve-routes.js.map +1 -1
  6. package/dist/candidates.d.ts.map +1 -1
  7. package/dist/candidates.js +14 -1
  8. package/dist/candidates.js.map +1 -1
  9. package/dist/daemon-server.d.ts +67 -3
  10. package/dist/daemon-server.d.ts.map +1 -1
  11. package/dist/daemon-server.js +349 -50
  12. package/dist/daemon-server.js.map +1 -1
  13. package/dist/operation-catalog.d.ts +10 -1
  14. package/dist/operation-catalog.d.ts.map +1 -1
  15. package/dist/operation-catalog.js +150 -18
  16. package/dist/operation-catalog.js.map +1 -1
  17. package/dist/operation-parameters.d.ts +34 -0
  18. package/dist/operation-parameters.d.ts.map +1 -0
  19. package/dist/operation-parameters.js +52 -0
  20. package/dist/operation-parameters.js.map +1 -0
  21. package/dist/problem-response.d.ts +43 -0
  22. package/dist/problem-response.d.ts.map +1 -1
  23. package/dist/problem-response.js +192 -0
  24. package/dist/problem-response.js.map +1 -1
  25. package/dist/project-routes.d.ts +1 -0
  26. package/dist/project-routes.d.ts.map +1 -1
  27. package/dist/project-routes.js +18 -1
  28. package/dist/project-routes.js.map +1 -1
  29. package/dist/run-apply-routes.d.ts +6 -1
  30. package/dist/run-apply-routes.d.ts.map +1 -1
  31. package/dist/run-apply-routes.js +32 -2
  32. package/dist/run-apply-routes.js.map +1 -1
  33. package/dist/run-events-stream.d.ts.map +1 -1
  34. package/dist/run-events-stream.js +99 -64
  35. package/dist/run-events-stream.js.map +1 -1
  36. package/dist/run-list.d.ts +74 -0
  37. package/dist/run-list.d.ts.map +1 -0
  38. package/dist/run-list.js +156 -0
  39. package/dist/run-list.js.map +1 -0
  40. package/dist/run-retry-routes.d.ts.map +1 -1
  41. package/dist/run-retry-routes.js +38 -1
  42. package/dist/run-retry-routes.js.map +1 -1
  43. package/dist/run-start.d.ts +14 -1
  44. package/dist/run-start.d.ts.map +1 -1
  45. package/dist/run-start.js +50 -1
  46. package/dist/run-start.js.map +1 -1
  47. package/dist/run-timeline.d.ts +44 -3
  48. package/dist/run-timeline.d.ts.map +1 -1
  49. package/dist/run-timeline.js +143 -24
  50. package/dist/run-timeline.js.map +1 -1
  51. package/dist/thread-projection.d.ts.map +1 -1
  52. package/dist/thread-projection.js +6 -0
  53. package/dist/thread-projection.js.map +1 -1
  54. package/dist/thread-turn-routes.d.ts.map +1 -1
  55. package/dist/thread-turn-routes.js +20 -23
  56. package/dist/thread-turn-routes.js.map +1 -1
  57. package/package.json +6 -6
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 joi-lab
3
+ Copyright (c) 2026 Anton Razzhigaev
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -8,11 +8,24 @@
8
8
  import type { ServerResponse } from "node:http";
9
9
  import { type ControlArtifactInfo } from "@claudexor/schema";
10
10
  import type { DaemonRunRecord } from "./daemon-server.js";
11
+ /** Server-owned workspace facts for a thread, taken from its journal record:
12
+ * the mode and, for an isolated thread, the persistent worktree path (pinned by
13
+ * the `claudexor/thread-*` branch) where its turns actually executed. */
14
+ export interface ResolvedThreadWorkspace {
15
+ mode: "in_place" | "isolated";
16
+ /** The isolated thread's persistent worktree; null once purged (or before the
17
+ * first write turn materializes it). */
18
+ worktreePath: string | null;
19
+ }
11
20
  export interface ArtifactServeContext {
12
21
  findRun(id: string): Promise<DaemonRunRecord | null | undefined>;
13
22
  /** Resolve a registered project id to its canonical repo root (null when the
14
23
  * project is unknown or the build has no project registry). */
15
24
  resolveProjectRoot?(id: string): Promise<string | null>;
25
+ /** Resolve a thread id to its workspace record (mode + isolated worktree
26
+ * path). Absent when the build has no thread store; null when the thread
27
+ * record cannot be found. Feeds the QA-038 isolated-produced fix. */
28
+ resolveThreadWorkspace?(id: string): Promise<ResolvedThreadWorkspace | null>;
16
29
  json(res: ServerResponse, status: number, body: unknown): void;
17
30
  }
18
31
  export declare function handleArtifactServeRoute(ctx: ArtifactServeContext, method: string, path: string, res: ServerResponse): Promise<boolean>;
@@ -27,6 +40,38 @@ export declare function listArtifacts(root: string): ControlArtifactInfo[];
27
40
  /** A run's project root, taken from its TYPED scope — NOT by path-slicing the
28
41
  * runDir. Slicing on `.claudexor` would resolve a no-project run (whose run dir
29
42
  * is `~/.claudexor/v3/runs/<id>`) to the user's HOME and let /produced list
30
- * `~/artifacts` (review-flagged). Null for scope `none` ⇒ no produced outputs. */
43
+ * `~/artifacts` (review-flagged). Null for scope `none` ⇒ no produced outputs.
44
+ *
45
+ * This is the LIVE PROJECT root — correct for an in-place run, but NOT the tree
46
+ * an ISOLATED-thread run actually mutated. Route resolution goes through
47
+ * `resolveProducedRoot`, which redirects an isolated run to its own worktree. */
31
48
  export declare function producedRepoRoot(rec: DaemonRunRecord): string | null;
49
+ /**
50
+ * Where a run's produced `artifacts/` outputs actually live (QA-038).
51
+ *
52
+ * An ISOLATED-thread run executes in a persistent per-thread git worktree
53
+ * (pinned by the `claudexor/thread-*` branch), NOT in the live project — the
54
+ * project stays untouched until an explicit thread apply. So its produced
55
+ * outputs must be read from that worktree. Reading the live project instead
56
+ * attributes pre-existing/future project files to the run and 404s the file the
57
+ * run actually created.
58
+ *
59
+ * An in-place run and a non-thread one-shot keep the live project root (correct
60
+ * today). An isolated thread whose worktree was purged/trashed (or never
61
+ * materialized) resolves to `worktree_unavailable` — a typed answer naming the
62
+ * reason, NEVER a silent fallback to the live project.
63
+ */
64
+ export type ProducedRootResolution = {
65
+ kind: "root";
66
+ root: string;
67
+ } | {
68
+ kind: "no_project";
69
+ } | {
70
+ kind: "worktree_unavailable";
71
+ threadId: string;
72
+ reason: WorktreeUnavailableReason;
73
+ };
74
+ type WorktreeUnavailableReason = "worktree_not_retained" | "worktree_missing" | "authority_unavailable";
75
+ export declare function resolveProducedRoot(rec: DaemonRunRecord, resolveThreadWorkspace?: ArtifactServeContext["resolveThreadWorkspace"]): Promise<ProducedRootResolution>;
76
+ export {};
32
77
  //# sourceMappingURL=artifact-serve-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-serve-routes.d.ts","sourceRoot":"","sources":["../src/artifact-serve-routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACjE;oEACgE;IAChE,kBAAkB,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAChE;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,oBAAoB,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,OAAO,CAAC,CA6FlB;AAED;;;mFAGmF;AACnF,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,CAAC,MAAM,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAAC,GAAG,SAAS,EAClE,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxB;AA2CD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAqBjE;AAED;;;mFAGmF;AACnF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAKpE"}
1
+ {"version":3,"file":"artifact-serve-routes.d.ts","sourceRoot":"","sources":["../src/artifact-serve-routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D;;0EAE0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B;6CACyC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACjE;oEACgE;IAChE,kBAAkB,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD;;0EAEsE;IACtE,sBAAsB,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAChE;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,oBAAoB,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,OAAO,CAAC,CAiHlB;AAED;;;mFAGmF;AACnF,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,CAAC,MAAM,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAAC,GAAG,SAAS,EAClE,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxB;AA0DD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAqBjE;AAED;;;;;;;kFAOkF;AAClF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAKpE;AASD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAE1F,KAAK,yBAAyB,GAC5B,uBAAuB,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;AAEzE,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,eAAe,EACpB,sBAAsB,CAAC,EAAE,oBAAoB,CAAC,wBAAwB,CAAC,GACtE,OAAO,CAAC,sBAAsB,CAAC,CA4BjC"}
@@ -1,5 +1,5 @@
1
1
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
2
- import { extname, join, relative, sep } from "node:path";
2
+ import { basename, extname, join, relative, sep } from "node:path";
3
3
  import { ControlArtifactListResponse, ControlProjectOutputsResponse, } from "@claudexor/schema";
4
4
  import { containsSecretLikeToken, redactSecrets } from "@claudexor/util";
5
5
  import { safeArtifactPath, safeArtifactRoot } from "./artifact-paths.js";
@@ -63,8 +63,11 @@ export async function handleArtifactServeRoute(ctx, method, path, res) {
63
63
  const rec = await ctx.findRun(decodeURIComponent(producedRootMatch[1]));
64
64
  if (!rec?.runDir)
65
65
  return (ctx.json(res, 404, { error: "no such run" }), true);
66
- const repoRoot = producedRepoRoot(rec);
67
- const artifacts = repoRoot ? listArtifacts(join(repoRoot, "artifacts")) : [];
66
+ const resolved = await resolveProducedRoot(rec, ctx.resolveThreadWorkspace);
67
+ if (resolved.kind === "worktree_unavailable")
68
+ return (ctx.json(res, worktreeUnavailableStatus(resolved.reason), isolatedWorktreeUnavailableBody(resolved)),
69
+ true);
70
+ const artifacts = resolved.kind === "root" ? listArtifacts(join(resolved.root, "artifacts")) : [];
68
71
  ctx.json(res, 200, ControlArtifactListResponse.parse({ runId: rec.runId ?? rec.id, artifacts }));
69
72
  return true;
70
73
  }
@@ -73,10 +76,13 @@ export async function handleArtifactServeRoute(ctx, method, path, res) {
73
76
  const rec = await ctx.findRun(decodeURIComponent(producedFetchMatch[1]));
74
77
  if (!rec?.runDir)
75
78
  return (ctx.json(res, 404, { error: "no such run" }), true);
76
- const repoRoot = producedRepoRoot(rec);
77
- if (!repoRoot)
79
+ const resolved = await resolveProducedRoot(rec, ctx.resolveThreadWorkspace);
80
+ if (resolved.kind === "worktree_unavailable")
81
+ return (ctx.json(res, worktreeUnavailableStatus(resolved.reason), isolatedWorktreeUnavailableBody(resolved)),
82
+ true);
83
+ if (resolved.kind !== "root")
78
84
  return (ctx.json(res, 404, { error: "no project root for run" }), true);
79
- const target = safeArtifactPath(join(repoRoot, "artifacts"), decodeURIComponent(producedFetchMatch[2]));
85
+ const target = safeArtifactPath(join(resolved.root, "artifacts"), decodeURIComponent(producedFetchMatch[2]));
80
86
  serveArtifactFile(ctx, res, target);
81
87
  return true;
82
88
  }
@@ -106,6 +112,21 @@ export async function resolveProjectRoot(listProjects, id) {
106
112
  function serveArtifactFile(ctx, res, target) {
107
113
  if (!target || !existsSync(target) || lstatSync(target).isDirectory())
108
114
  return ctx.json(res, 404, { error: "no such artifact" });
115
+ // Sensitive-filename REFUSAL (the filename analogue of the `.diff` patch
116
+ // refusal below): `.env`-style credential files have no file extension, so
117
+ // `contentType` classified them as octet-stream and they took the BINARY path
118
+ // — skipping `redactSecrets` and serving their bytes raw. Refuse the
119
+ // well-known credential-file conventions outright with a typed 409 naming the
120
+ // class, BEFORE reading any bytes, across all three fetch families (they all
121
+ // funnel through here).
122
+ const sensitiveClass = sensitiveArtifactClass(target);
123
+ if (sensitiveClass) {
124
+ return ctx.json(res, 409, {
125
+ error: `refusing to serve ${basename(target)}: credential-bearing ${sensitiveClass} file`,
126
+ code: "sensitive_file_refused",
127
+ sensitiveClass,
128
+ });
129
+ }
109
130
  const stats = lstatSync(target);
110
131
  const cap = isTextArtifact(target) ? MAX_ARTIFACT_FETCH_BYTES : MAX_ARTIFACT_BINARY_FETCH_BYTES;
111
132
  if (stats.size > cap) {
@@ -162,13 +183,82 @@ export function listArtifacts(root) {
162
183
  /** A run's project root, taken from its TYPED scope — NOT by path-slicing the
163
184
  * runDir. Slicing on `.claudexor` would resolve a no-project run (whose run dir
164
185
  * is `~/.claudexor/v3/runs/<id>`) to the user's HOME and let /produced list
165
- * `~/artifacts` (review-flagged). Null for scope `none` ⇒ no produced outputs. */
186
+ * `~/artifacts` (review-flagged). Null for scope `none` ⇒ no produced outputs.
187
+ *
188
+ * This is the LIVE PROJECT root — correct for an in-place run, but NOT the tree
189
+ * an ISOLATED-thread run actually mutated. Route resolution goes through
190
+ * `resolveProducedRoot`, which redirects an isolated run to its own worktree. */
166
191
  export function producedRepoRoot(rec) {
167
192
  const scope = rec.params?.scope;
168
193
  return scope?.kind === "project" && typeof scope.root === "string" && scope.root.trim()
169
194
  ? scope.root
170
195
  : null;
171
196
  }
197
+ /** The thread this run was bound to, from its typed request params (never a
198
+ * caller-suppliable execution root). Null for a non-thread one-shot. */
199
+ function producedThreadId(rec) {
200
+ const threadId = rec.params?.threadId;
201
+ return typeof threadId === "string" && threadId.trim() ? threadId : null;
202
+ }
203
+ export async function resolveProducedRoot(rec, resolveThreadWorkspace) {
204
+ const projectRoot = producedRepoRoot(rec);
205
+ if (!projectRoot)
206
+ return { kind: "no_project" };
207
+ const threadId = producedThreadId(rec);
208
+ if (threadId && resolveThreadWorkspace) {
209
+ let workspace;
210
+ try {
211
+ workspace = await resolveThreadWorkspace(threadId);
212
+ }
213
+ catch {
214
+ // The thread store could not answer for a run BOUND to a thread. We cannot
215
+ // prove this run executed in the live project, so serving the live root
216
+ // would re-open the QA-038 fail-open leak. Answer typed authority-
217
+ // unavailable (a transient 503), never the live project root.
218
+ return { kind: "worktree_unavailable", threadId, reason: "authority_unavailable" };
219
+ }
220
+ if (workspace?.mode === "isolated") {
221
+ const worktree = workspace.worktreePath;
222
+ // Purge nulls worktree_path (and removes the tree); a never-written
223
+ // isolated thread also has none. Either way there is no run-owned tree to
224
+ // serve — answer typed, do not leak the live project.
225
+ if (!worktree)
226
+ return { kind: "worktree_unavailable", threadId, reason: "worktree_not_retained" };
227
+ if (!existsSync(worktree))
228
+ return { kind: "worktree_unavailable", threadId, reason: "worktree_missing" };
229
+ return { kind: "root", root: worktree };
230
+ }
231
+ }
232
+ return { kind: "root", root: projectRoot };
233
+ }
234
+ /** The honest answer when an isolated run's produced tree cannot be served: the
235
+ * run existed and ran, but its execution tree is gone (410) or the thread
236
+ * authority that would locate it could not answer (503) — never a fresh
237
+ * live-project snapshot under this run id (QA-038). */
238
+ function isolatedWorktreeUnavailableBody(resolved) {
239
+ if (resolved.reason === "authority_unavailable") {
240
+ return {
241
+ error: `thread ${resolved.threadId} workspace could not be resolved to serve produced outputs (thread authority unavailable)`,
242
+ code: "thread_authority_unavailable",
243
+ reason: resolved.reason,
244
+ thread_id: resolved.threadId,
245
+ };
246
+ }
247
+ const detail = resolved.reason === "worktree_not_retained"
248
+ ? "its isolated worktree was purged or never materialized"
249
+ : "its isolated worktree directory is no longer on disk";
250
+ return {
251
+ error: `isolated thread ${resolved.threadId} has no retained worktree for produced outputs (${detail})`,
252
+ code: "isolated_worktree_unavailable",
253
+ reason: resolved.reason,
254
+ thread_id: resolved.threadId,
255
+ };
256
+ }
257
+ /** A gone worktree is permanent (410); an unavailable thread authority is a
258
+ * transient store failure (503). Both fail CLOSED — never the live root. */
259
+ function worktreeUnavailableStatus(reason) {
260
+ return reason === "authority_unavailable" ? 503 : 410;
261
+ }
172
262
  function contentType(path) {
173
263
  switch (extname(path).toLowerCase()) {
174
264
  case ".json":
@@ -210,8 +300,82 @@ function isPatchArtifact(path) {
210
300
  const ext = extname(path);
211
301
  return ext === ".diff" || ext === ".patch";
212
302
  }
303
+ /**
304
+ * Files whose NAME (not extension) marks them as secret-bearing by convention.
305
+ * These must never be served from a run/produced/project artifact tree,
306
+ * regardless of MIME — `.env`-style files carry no extension, so `contentType`
307
+ * classified them as `application/octet-stream` and the binary fetch path served
308
+ * them raw, bypassing redaction. Returns the refusal class name, or null when
309
+ * the filename is not a known credential convention.
310
+ *
311
+ * The list is bounded to the WELL-KNOWN credential-file conventions rather than
312
+ * a broad guess: dotenv files, package-registry credential files
313
+ * (`.npmrc`/`.pypirc`/`.netrc`), and any `*credentials*` filename (which also
314
+ * catches vendor stores like `.credentials.json`). Truly-binary or ordinary
315
+ * source files are unaffected.
316
+ */
317
+ function sensitiveArtifactClass(path) {
318
+ const name = basename(path).toLowerCase();
319
+ if (name === ".env" || name.startsWith(".env."))
320
+ return "dotenv";
321
+ if (name === ".npmrc" || name === ".pypirc" || name === ".netrc")
322
+ return "package_registry_credentials";
323
+ if (name.includes("credentials"))
324
+ return "credentials_file";
325
+ return null;
326
+ }
327
+ /**
328
+ * Extensions whose bytes are semantic TEXT even when their MIME is not `text/*`
329
+ * or JSON, so `contentType` classifies them as `application/octet-stream`.
330
+ * Without this set those files took the 32MiB BINARY cap and skipped
331
+ * `redactSecrets`, so a secret-like token inside a served artifact leaked raw
332
+ * (QA-067). Listing them here routes them through the text path: the smaller
333
+ * text cap AND secret redaction.
334
+ *
335
+ * The set is the common text-bearing artifact surface a run produces — source
336
+ * code, config/markup, and structured data — all of which are UTF-8 the
337
+ * redaction pass can safely serve. Truly-binary types (images, PDFs, archives)
338
+ * stay on the binary path. `.env`-style secret files are deliberately NOT here:
339
+ * they never belong in a served artifact tree, and rather than route them
340
+ * through redaction they are REFUSED outright by `sensitiveArtifactClass` (a
341
+ * typed 409) before any bytes are read — adding them here would only imply this
342
+ * path is a safe delivery channel for them.
343
+ */
344
+ const SEMANTIC_TEXT_EXTENSIONS = new Set([
345
+ // structured data / markup
346
+ ".csv",
347
+ ".xml",
348
+ ".svg",
349
+ ".markdown",
350
+ ".text",
351
+ ".json5",
352
+ ".toml",
353
+ ".ini",
354
+ ".cfg",
355
+ ".conf",
356
+ ".css",
357
+ // source code
358
+ ".js",
359
+ ".mjs",
360
+ ".cjs",
361
+ ".ts",
362
+ ".tsx",
363
+ ".jsx",
364
+ ".sh",
365
+ ".py",
366
+ ".rb",
367
+ ".go",
368
+ ".rs",
369
+ ".java",
370
+ ".c",
371
+ ".h",
372
+ ".cpp",
373
+ ".sql",
374
+ ]);
213
375
  function isTextArtifact(path) {
214
376
  const type = contentType(path);
215
- return type.startsWith("text/") || type.startsWith("application/json");
377
+ if (type.startsWith("text/") || type.startsWith("application/json"))
378
+ return true;
379
+ return SEMANTIC_TEXT_EXTENSIONS.has(extname(path).toLowerCase());
216
380
  }
217
381
  //# sourceMappingURL=artifact-serve-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-serve-routes.js","sourceRoot":"","sources":["../src/artifact-serve-routes.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,GAE9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,+BAA+B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAUzD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAyB,EACzB,MAAc,EACd,IAAY,EACZ,GAAmB;IAEnB,8EAA8E;IAC9E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,uBAAuB,GAAG,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,KAAK,IAAI,uBAAuB,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,CAAC,CAAW,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3E,GAAG,CAAC,IAAI,CACN,GAAG,EACH,GAAG,EACH,6BAA6B,CAAC,KAAK,CAAC;YAClC,SAAS;YACT,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAClD,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,wBAAwB,GAAG,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,MAAM,KAAK,KAAK,IAAI,wBAAwB,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,CAAW,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,gBAAgB,CAC7B,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EACvB,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,CAAW,CAAC,CAC1D,CAAC;QACF,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,MAAM,KAAK,KAAK,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG,EAAE,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5E,GAAG,CAAC,IAAI,CACN,GAAG,EACH,GAAG,EACH,2BAA2B,CAAC,KAAK,CAAC;YAChC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE;YAC1B,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;SACrC,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,IAAI,MAAM,KAAK,KAAK,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG,EAAE,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,gBAAgB,CAC7B,GAAG,CAAC,MAAM,EACV,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAW,CAAC,CACpD,CAAC;QACF,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,KAAK,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,GAAG,EAAE,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,IAAI,CACN,GAAG,EACH,GAAG,EACH,2BAA2B,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAC7E,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,IAAI,MAAM,KAAK,KAAK,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG,EAAE,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,gBAAgB,CAC7B,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAC3B,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAW,CAAC,CACpD,CAAC;QACF,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;mFAGmF;AACnF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAkE,EAClE,EAAU;IAEV,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,GAA8B,CAAC;YAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;gBACvF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2EAA2E;AAC3E,SAAS,iBAAiB,CACxB,GAAyB,EACzB,GAAmB,EACnB,MAAqB;IAErB,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;QACnE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,+BAA+B,CAAC;IAChG,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YACxB,KAAK,EAAE,eAAe,KAAK,CAAC,IAAI,iBAAiB,GAAG,2BAA2B,MAAM,EAAE;YACvF,KAAK,EAAE,KAAK,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YACxB,KAAK,EAAE,8DAA8D;SACtE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7F,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3F,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;sDACsD;AACtD,SAAS,cAAc,CAAC,SAAiD;IAKvE,OAAO;QACL,KAAK,EAAE,gDAAgD,SAAS,CAAC,UAAU,EAAE;QAC7E,IAAI,EAAE,0BAA0B;QAChC,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;QAC3B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,cAAc,EAAE;gBAAE,SAAS;YAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;gBAC7C,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI;gBAC7C,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;aACvD,CAAC,CAAC;YACH,IAAI,EAAE,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;mFAGmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,GAAoB;IACnD,MAAM,KAAK,GAAI,GAAG,CAAC,MAAmE,EAAE,KAAK,CAAC;IAC9F,OAAO,KAAK,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACrF,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACpC,KAAK,OAAO;YACV,OAAO,iCAAiC,CAAC;QAC3C,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,2BAA2B,CAAC;QACrC,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,0BAA0B,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,eAAe,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAC;QAC3B;YACE,OAAO,0BAA0B,CAAC;IACtC,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"artifact-serve-routes.js","sourceRoot":"","sources":["../src/artifact-serve-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../src/candidates.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAGhB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAoB3B,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,gBAAgB,EAAE,CAkDjG"}
1
+ {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../src/candidates.ts"],"names":[],"mappings":"AASA,OAAO,EACL,gBAAgB,EAGhB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAoB3B,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,gBAAgB,EAAE,CA8DjG"}
@@ -6,6 +6,7 @@
6
6
  import { existsSync, readFileSync, readdirSync } from "node:fs";
7
7
  import { join } from "node:path";
8
8
  import { parse as parseYaml } from "yaml";
9
+ import { redactSecrets } from "@claudexor/util";
9
10
  import { ControlCandidate, ReviewFinding, isBlocking, } from "@claudexor/schema";
10
11
  export function candidatesFor(runDir, decision) {
11
12
  const attemptsDir = join(runDir, "attempts");
@@ -26,6 +27,11 @@ export function candidatesFor(runDir, decision) {
26
27
  return parsed.success && isBlocking(parsed.data);
27
28
  }).length;
28
29
  const gates = Array.isArray(raw.gates) ? raw.gates : [];
30
+ // QA-028: surface this candidate's row of the decision's ranking scorecard
31
+ // so the candidate card can explain the ranking (the detail-level
32
+ // decision.decisive_axis names which axis actually separated winner from
33
+ // runner-up). Matched by attempt id; null when arbitration produced none.
34
+ const scorecardRow = decision?.ranking_scorecard?.find((r) => r.attempt_id === raw.attempt_id);
29
35
  const parsed = ControlCandidate.safeParse({
30
36
  attemptId: raw.attempt_id,
31
37
  harnessId: raw.harness_id,
@@ -33,7 +39,13 @@ export function candidatesFor(runDir, decision) {
33
39
  costUsd: typeof raw.cost_usd === "number" ? raw.cost_usd : 0,
34
40
  costEstimated: raw.cost_estimated === true,
35
41
  errored: raw.errored === true,
36
- errorReason: Array.isArray(raw.errors) && typeof raw.errors[0] === "string" ? raw.errors[0] : null,
42
+ // Redact the first error reason: this projection reads the attempt.yaml
43
+ // artifact directly, so it bypasses any serve-time redaction — a raw
44
+ // harness error string can carry a token. The protocol rule is to expose
45
+ // the first REDACTED error reason, never the raw one.
46
+ errorReason: Array.isArray(raw.errors) && typeof raw.errors[0] === "string"
47
+ ? redactSecrets(raw.errors[0])
48
+ : null,
37
49
  gatesPassed: gates.filter((g) => g.status === "passed").length,
38
50
  gatesTotal: gates.length,
39
51
  blockers,
@@ -51,6 +63,7 @@ export function candidatesFor(runDir, decision) {
51
63
  deletions: numberOr(raw.diffstat.deletions, 0),
52
64
  }
53
65
  : null,
66
+ rankingAxes: scorecardRow ? scorecardRow.axes : null,
54
67
  });
55
68
  if (parsed.success)
56
69
  out.push(parsed.data);
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../src/candidates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../src/candidates.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ export interface DaemonRunRecord {
18
18
  /** HTTP status persisted from the typed throw (refusal semantics are born
19
19
  * at the throw); the turn route serves it verbatim when 400-599. */
20
20
  errorStatus?: number;
21
+ /** Retryability persisted from the typed throw. `false` marks a pre-start
22
+ * refusal that Exact Retry can never repair (plan_not_ready — the frozen
23
+ * planRef replays the same open questions, INV-081); absent = no claim. */
24
+ errorRetryable?: boolean;
21
25
  params?: unknown;
22
26
  createdAt?: string;
23
27
  startedAt?: string;
@@ -72,6 +76,7 @@ export interface DaemonControlApiOptions {
72
76
  clientId: string;
73
77
  }) => Promise<unknown>;
74
78
  relinkProject?: (id: string, root: string) => Promise<unknown>;
79
+ removeProject?: (id: string) => Promise<unknown>;
75
80
  harnesses?: (input?: {
76
81
  fresh?: boolean;
77
82
  includeFakes?: boolean;
@@ -209,12 +214,41 @@ export declare class DaemonControlApiServer {
209
214
  private waitForRunStart;
210
215
  private respondToAcceptedJob;
211
216
  private findRun;
217
+ /**
218
+ * GET /v2/runs (QA-052): a bounded, newest-first, keyset-paginated page of run
219
+ * summaries. Ordering, filtering, and slicing all happen on the raw daemon
220
+ * records BEFORE any summary is materialized, so the expensive per-run
221
+ * artifact fingerprint/projection work is bounded by `limit` (page size), not
222
+ * by the total retained-record count. `limit`/`state`/`cursor` are typed and
223
+ * strict — an unknown or malformed param is a typed 400, never silently
224
+ * ignored. The bare (unparametered) call is still valid and now returns the
225
+ * newest `RUN_LIST_DEFAULT_LIMIT` runs with `hasMore`/`nextCursor` to page the
226
+ * rest.
227
+ */
228
+ private handleRunList;
229
+ /** Resolve a thread's workspace record (mode + isolated worktree path) from the
230
+ * thread journal — the honest source for QA-038 isolated /produced resolution.
231
+ * Trashed/purged threads are retained by getThread (purge nulls worktree_path),
232
+ * so an isolated run's execution tree is diagnosable, never silently the live
233
+ * project. Absent service or an unknown thread ⇒ null (non-thread fallback). */
234
+ private resolveThreadWorkspace;
212
235
  private operatorDecisionFor;
213
236
  private validOperatorDecisionFor;
214
- /** The needs-me / inbox signal (D8), via the ONE projection owner: a terminal
215
- * run whose review is blocked or checks failed, with no valid operator
216
- * decision recorded — the axes replacement for the ex state==="blocked". */
237
+ /** The RISK-OVERRIDABLE needs-decision signal: a terminal run whose review is
238
+ * blocked or checks failed, with no valid operator decision recorded. This is
239
+ * the gate for accept_risk / override_needs_human — a D-16 work_state veto is
240
+ * NOT included here (a risk override cannot supply missing input); see
241
+ * `runWorkStateVeto`. */
217
242
  private runNeedsDecision;
243
+ /** The needs-me / inbox signal (D8): EITHER a risk-overridable needs-decision
244
+ * OR a non-overridable D-16 work_state needs-input veto. Inbox/head surfaces
245
+ * fold both so a needs_input run still surfaces as needing the operator. */
246
+ private runNeedsAttention;
247
+ /** D-16: the non-overridable work_state veto on a succeeded run — the model
248
+ * attested it needs input / is incomplete. A risk override cannot resolve it,
249
+ * so the decision endpoint rejects accept_risk with a typed problem instead of
250
+ * a false "Apply is now available" ACK the delivery gate would then refuse. */
251
+ private runWorkStateVeto;
218
252
  private recordOperatorDecision;
219
253
  private chainRunMutation;
220
254
  private threadTurnRouteCtx;
@@ -229,7 +263,11 @@ export declare class DaemonControlApiServer {
229
263
  * runs change only when their artifacts change, so summaries are cached on a
230
264
  * state+artifact-mtime fingerprint.
231
265
  */
266
+ private static readonly SUMMARY_CACHE_MAX;
232
267
  private summarizeRunCached;
268
+ /** Test-only observability: current summary-cache entry count. Proves QA-052
269
+ * LRU boundedness (the cache never grows past SUMMARY_CACHE_MAX). */
270
+ summaryCacheSizeForTests(): number;
233
271
  /**
234
272
  * Cached artifact projection + journal-backed waiting_on_user overlay. Pending
235
273
  * interactions are not part of the run artifact fingerprint, so they must
@@ -242,8 +280,34 @@ export declare class DaemonControlApiServer {
242
280
  * the whole list/thread.
243
281
  */
244
282
  private summarizeRunOrDiagnostic;
283
+ /**
284
+ * Strict per-run SSE resume cursor (QA-061). The run cursor is the durable
285
+ * nonnegative integer event `seq` (ControlRunDetail.lastSeq). Mirrors the
286
+ * global/project/setup streams' typed contract instead of permissive
287
+ * `Number()` + fallback-0:
288
+ * absent -> 0 (intentional full replay)
289
+ * canonical decimal 0+ -> that safe integer
290
+ * present but invalid -> typed HTTP 400 (before SSE headers)
291
+ * A present-but-invalid header is NOT silently erased in favour of the query
292
+ * alias; the header wins when present, the query is used only when it is absent.
293
+ */
245
294
  private lastEventId;
246
295
  private streamEvents;
247
296
  private pendingInteractionsFor;
248
297
  }
298
+ export declare function runListFingerprintProbeCountForTests(): number;
299
+ export declare function resetRunListFingerprintProbeCountForTests(): void;
300
+ /**
301
+ * Pure subscription-VALUATION fold over a run's events (QA-023c/QA-017b),
302
+ * independent of the cash truth. The owner-locked ledger settles native-
303
+ * subscription work to cash $0 while accumulating its token valuation on
304
+ * `budget.cash.valuation_usd` (last-wins, cumulative). An UNKNOWN valuation (no
305
+ * usage ever reported — e.g. a Cursor draft) stays NULL and is never coerced to
306
+ * a fake $0. The legacy fallback for runs predating budget.cash is the summed
307
+ * `budget.observation` spend. Vendor token valuation is at best an estimate.
308
+ */
309
+ export declare function budgetValuationFromEvents(events: Record<string, unknown>[]): {
310
+ valuationUsd: number | null;
311
+ valuationKnowledge: "exact" | "estimated" | "unknown";
312
+ };
249
313
  //# sourceMappingURL=daemon-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-server.d.ts","sourceRoot":"","sources":["../src/daemon-server.ts"],"names":[],"mappings":"AAaA,OAAO,EAKL,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AA2B7B,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAK1D,OAAO,EAA0B,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAUvF,OAAO,EAKL,kCAAkC,EAIlC,qBAAqB,EAOrB,4BAA4B,EAO5B,KAAK,sBAAsB,EAoB3B,yBAAyB,EAGzB,KAAK,yBAAyB,EA6B/B,MAAM,mBAAmB,CAAC;AAY3B,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;mEAE+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;wEACoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,aAAa,GAAG,sBAAsB,CAAC;IAC/C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CACL,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1C,YAAY,CAAC,CACX,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE;QAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;KAAE,CAAC;IAC/E,QAAQ,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,qBAAqB,CAAC,GAC9B,OAAO,CAAC,wBAAwB,CAAC,GAAG;QAClC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC,CAAC;QACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;YACxB,IAAI,EAAE,MAAM,CAAC;YACb,cAAc,EAAE,MAAM,CAAC;YACvB,QAAQ,EAAE,MAAM,CAAC;SAClB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;YACnB,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;SACvB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;YACtB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;SACrC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;YACtB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,kCAAkC,CAAC;SAC7C,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;YACvB,OAAO,EAAE,4BAA4B,CAAC;YACtC,cAAc,EAAE,MAAM,CAAC;YACvB,QAAQ,EAAE,MAAM,CAAC;SAClB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAClE,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACtF,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9E,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,yBAAyB,EAAE,CAAC;QACrE,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,KACb;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,6BAA6B,GAAG,IAAI,CAAC;QAC5F,sBAAsB,CAAC,EAAE,CACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,6BAA6B,EACvC,WAAW,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,KAC5D,6BAA6B,CAAC;QACnC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC,CAAC;QAC1E,YAAY,CAAC,EAAE,CACb,EAAE,EAAE,MAAM,KACP,OAAO,CAAC;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YAAC,KAAK,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC,CAAC;QACzE,gBAAgB,CAAC,EAAE,CACjB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;YACJ,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;YACtC,WAAW,CAAC,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,OAAO,CAAA;aAAE,CAAC;SACjE,KACE,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,YAAY,CAAC,EAAE,CACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;YACL,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAC/B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACpC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SACxB,KACE,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,WAAW,CAAC,EAAE,CACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7D,KACE,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,CAAC,EAAE,OAAO,KAChB,IAAI,CAAC;QACV,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;CACL;AAuID,qBAAa,sBAAsB;IAWrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,YAAY,CAAwD;IAC5E,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoC;gBAExC,IAAI,EAAE,uBAAuB;IAEpD,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;YAmBxC,SAAS;IAYvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMP,QAAQ;IAOtB,OAAO,CAAC,eAAe;YAWT,aAAa;YAmBb,mBAAmB;IAMjC,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,OAAO;YAgBD,QAAQ;IAmBtB,OAAO,CAAC,SAAS;YA0BH,MAAM;YA+3BN,OAAO;IA0CrB,8EAA8E;YAChE,oBAAoB;YAiMpB,eAAe;YAcf,oBAAoB;YAmBpB,OAAO;IAKrB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,wBAAwB;IAOhC;;gFAE4E;IAC5E,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,uBAAuB;YAkBjB,sBAAsB;YAOtB,mBAAmB;IAUjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGzB;IAEJ;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,WAAW;YAQL,YAAY;IAoB1B,OAAO,CAAC,sBAAsB;CAO/B"}
1
+ {"version":3,"file":"daemon-server.d.ts","sourceRoot":"","sources":["../src/daemon-server.ts"],"names":[],"mappings":"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"}