@claudexor/control-api 3.0.4 → 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.
- package/dist/artifact-serve-routes.d.ts +46 -1
- package/dist/artifact-serve-routes.d.ts.map +1 -1
- package/dist/artifact-serve-routes.js +172 -8
- package/dist/artifact-serve-routes.js.map +1 -1
- package/dist/candidates.d.ts.map +1 -1
- package/dist/candidates.js +14 -1
- package/dist/candidates.js.map +1 -1
- package/dist/daemon-server.d.ts +67 -3
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +349 -50
- package/dist/daemon-server.js.map +1 -1
- package/dist/operation-catalog.d.ts +10 -1
- package/dist/operation-catalog.d.ts.map +1 -1
- package/dist/operation-catalog.js +150 -18
- package/dist/operation-catalog.js.map +1 -1
- package/dist/operation-parameters.d.ts +34 -0
- package/dist/operation-parameters.d.ts.map +1 -0
- package/dist/operation-parameters.js +52 -0
- package/dist/operation-parameters.js.map +1 -0
- package/dist/problem-response.d.ts +43 -0
- package/dist/problem-response.d.ts.map +1 -1
- package/dist/problem-response.js +192 -0
- package/dist/problem-response.js.map +1 -1
- package/dist/project-routes.d.ts +1 -0
- package/dist/project-routes.d.ts.map +1 -1
- package/dist/project-routes.js +18 -1
- package/dist/project-routes.js.map +1 -1
- package/dist/run-apply-routes.d.ts +6 -1
- package/dist/run-apply-routes.d.ts.map +1 -1
- package/dist/run-apply-routes.js +32 -2
- package/dist/run-apply-routes.js.map +1 -1
- package/dist/run-events-stream.d.ts.map +1 -1
- package/dist/run-events-stream.js +99 -64
- package/dist/run-events-stream.js.map +1 -1
- package/dist/run-list.d.ts +74 -0
- package/dist/run-list.d.ts.map +1 -0
- package/dist/run-list.js +156 -0
- package/dist/run-list.js.map +1 -0
- package/dist/run-retry-routes.d.ts.map +1 -1
- package/dist/run-retry-routes.js +38 -1
- package/dist/run-retry-routes.js.map +1 -1
- package/dist/run-start.d.ts +14 -1
- package/dist/run-start.d.ts.map +1 -1
- package/dist/run-start.js +50 -1
- package/dist/run-start.js.map +1 -1
- package/dist/run-timeline.d.ts +44 -3
- package/dist/run-timeline.d.ts.map +1 -1
- package/dist/run-timeline.js +143 -24
- package/dist/run-timeline.js.map +1 -1
- package/dist/thread-projection.d.ts.map +1 -1
- package/dist/thread-projection.js +6 -0
- package/dist/thread-projection.js.map +1 -1
- package/dist/thread-turn-routes.d.ts.map +1 -1
- package/dist/thread-turn-routes.js +20 -23
- package/dist/thread-turn-routes.js.map +1 -1
- package/package.json +6 -6
|
@@ -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,
|
|
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
|
|
67
|
-
|
|
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
|
|
77
|
-
if (
|
|
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(
|
|
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
|
-
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"artifact-serve-routes.js","sourceRoot":"","sources":["../src/artifact-serve-routes.ts"],"names":[],"mappings":"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"}
|
package/dist/candidates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../src/candidates.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/candidates.js
CHANGED
|
@@ -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
|
-
|
|
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);
|
package/dist/candidates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../src/candidates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,UAAU,GAEX,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAA+B;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,aAAa,CAAa,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;YAAE,SAAS;QAC/F,MAAM,MAAM,GAAG,aAAa,CAAY,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,0DAA0D;QAC1D,uEAAuE;QACvE,wDAAwD;QACxD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC,MAAM,CAAC;QACV,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,KAAqC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC;YACxC,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACvD,OAAO,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5D,aAAa,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI;YAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI;YAC7B,WAAW,EACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../src/candidates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,UAAU,GAEX,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAA+B;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,aAAa,CAAa,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;YAAE,SAAS;QAC/F,MAAM,MAAM,GAAG,aAAa,CAAY,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,0DAA0D;QAC1D,uEAAuE;QACvE,wDAAwD;QACxD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC,MAAM,CAAC;QACV,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,KAAqC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,2EAA2E;QAC3E,kEAAkE;QAClE,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,YAAY,GAAG,QAAQ,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC;YACxC,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACvD,OAAO,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5D,aAAa,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI;YAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI;YAC7B,wEAAwE;YACxE,qEAAqE;YACrE,yEAAyE;YACzE,sDAAsD;YACtD,WAAW,EACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAC5D,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,IAAI;YACV,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YAC9D,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,QAAQ;YACR,cAAc,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI;YAChD,gBAAgB,EACd,GAAG,CAAC,OAAO,KAAK,IAAI;gBAClB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,OAAO,MAAM,EAAE,kBAAkB,KAAK,SAAS;oBAC/C,CAAC,CAAC,MAAM,CAAC,kBAAkB;oBAC3B,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC,UAAU;YAC3C,QAAQ,EACN,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;gBAC9C,CAAC,CAAC;oBACE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;oBACtC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC9C,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;iBAC/C;gBACH,CAAC,CAAC,IAAI;YACV,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACrD,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,0EAA0E;IAC1E,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU,EAAE,QAAgB;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAI,IAAY;IACpC,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,IAAI,CAAa,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/daemon-server.d.ts
CHANGED
|
@@ -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-
|
|
215
|
-
*
|
|
216
|
-
*
|
|
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;
|
|
1
|
+
{"version":3,"file":"daemon-server.d.ts","sourceRoot":"","sources":["../src/daemon-server.ts"],"names":[],"mappings":"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"}
|