@claudexor/control-api 3.1.1 → 3.2.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/authorization.d.ts +3 -0
- package/dist/authorization.d.ts.map +1 -0
- package/dist/authorization.js +15 -0
- package/dist/authorization.js.map +1 -0
- package/dist/binary-response.d.ts +5 -0
- package/dist/binary-response.d.ts.map +1 -0
- package/dist/binary-response.js +31 -0
- package/dist/binary-response.js.map +1 -0
- package/dist/budget-valuation.d.ts +23 -0
- package/dist/budget-valuation.d.ts.map +1 -0
- package/dist/budget-valuation.js +90 -0
- package/dist/budget-valuation.js.map +1 -0
- package/dist/catalog-query.d.ts +310 -0
- package/dist/catalog-query.d.ts.map +1 -0
- package/dist/catalog-query.js +36 -0
- package/dist/catalog-query.js.map +1 -0
- package/dist/daemon-server.d.ts +33 -79
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +175 -281
- package/dist/daemon-server.js.map +1 -1
- package/dist/decision-accept-risk.d.ts +36 -0
- package/dist/decision-accept-risk.d.ts.map +1 -0
- package/dist/decision-accept-risk.js +79 -0
- package/dist/decision-accept-risk.js.map +1 -0
- package/dist/decision-rerun.d.ts +2 -1
- package/dist/decision-rerun.d.ts.map +1 -1
- package/dist/decision-rerun.js +79 -48
- package/dist/decision-rerun.js.map +1 -1
- package/dist/delegation-control.d.ts +23 -0
- package/dist/delegation-control.d.ts.map +1 -0
- package/dist/delegation-control.js +81 -0
- package/dist/delegation-control.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/maintenance-routes.d.ts +2 -2
- package/dist/maintenance-routes.d.ts.map +1 -1
- package/dist/maintenance-routes.js +11 -10
- package/dist/maintenance-routes.js.map +1 -1
- package/dist/operation-catalog.d.ts +9 -9
- package/dist/operation-catalog.d.ts.map +1 -1
- package/dist/operation-catalog.js +22 -79
- package/dist/operation-catalog.js.map +1 -1
- package/dist/operation-draft.d.ts +3 -0
- package/dist/operation-draft.d.ts.map +1 -0
- package/dist/operation-draft.js +2 -0
- package/dist/operation-draft.js.map +1 -0
- package/dist/operation-parameters.d.ts.map +1 -1
- package/dist/operation-summaries.d.ts +3 -0
- package/dist/operation-summaries.d.ts.map +1 -0
- package/dist/operation-summaries.js +75 -0
- package/dist/operation-summaries.js.map +1 -0
- package/dist/primary-output.d.ts +3 -3
- package/dist/primary-output.d.ts.map +1 -1
- package/dist/primary-output.js +70 -19
- package/dist/primary-output.js.map +1 -1
- package/dist/problem-response.d.ts.map +1 -1
- package/dist/problem-response.js +14 -9
- package/dist/problem-response.js.map +1 -1
- package/dist/project-routes.d.ts +21 -13
- package/dist/project-routes.d.ts.map +1 -1
- package/dist/project-routes.js +80 -34
- package/dist/project-routes.js.map +1 -1
- package/dist/remote-operation-descriptors.d.ts +36 -0
- package/dist/remote-operation-descriptors.d.ts.map +1 -0
- package/dist/remote-operation-descriptors.js +35 -0
- package/dist/remote-operation-descriptors.js.map +1 -0
- package/dist/resource-routes.d.ts +4 -3
- package/dist/resource-routes.d.ts.map +1 -1
- package/dist/resource-routes.js +63 -39
- package/dist/resource-routes.js.map +1 -1
- package/dist/route-stages.d.ts +15 -0
- package/dist/route-stages.d.ts.map +1 -0
- package/dist/route-stages.js +24 -0
- package/dist/route-stages.js.map +1 -0
- package/dist/run-facts-projection.d.ts +35 -0
- package/dist/run-facts-projection.d.ts.map +1 -0
- package/dist/run-facts-projection.js +133 -0
- package/dist/run-facts-projection.js.map +1 -0
- package/dist/run-list-fingerprint.d.ts +7 -0
- package/dist/run-list-fingerprint.d.ts.map +1 -0
- package/dist/run-list-fingerprint.js +68 -0
- package/dist/run-list-fingerprint.js.map +1 -0
- package/dist/run-record.d.ts +53 -0
- package/dist/run-record.d.ts.map +1 -0
- package/dist/run-record.js +61 -0
- package/dist/run-record.js.map +1 -0
- package/dist/run-retry-routes.d.ts +3 -2
- package/dist/run-retry-routes.d.ts.map +1 -1
- package/dist/run-retry-routes.js +129 -48
- package/dist/run-retry-routes.js.map +1 -1
- package/dist/run-start.d.ts +13 -1
- package/dist/run-start.d.ts.map +1 -1
- package/dist/run-start.js +90 -18
- package/dist/run-start.js.map +1 -1
- package/dist/run-timeline.d.ts.map +1 -1
- package/dist/run-timeline.js +17 -9
- package/dist/run-timeline.js.map +1 -1
- package/dist/thread-lifecycle-routes.d.ts +1 -1
- package/dist/thread-lifecycle-routes.d.ts.map +1 -1
- package/dist/thread-lifecycle-routes.js +3 -4
- package/dist/thread-lifecycle-routes.js.map +1 -1
- package/dist/thread-mutation.d.ts +6 -0
- package/dist/thread-mutation.d.ts.map +1 -1
- package/dist/thread-mutation.js +23 -0
- package/dist/thread-mutation.js.map +1 -1
- package/dist/thread-projection.d.ts +6 -1
- package/dist/thread-projection.d.ts.map +1 -1
- package/dist/thread-projection.js +28 -1
- package/dist/thread-projection.js.map +1 -1
- package/dist/thread-recovery.d.ts +54 -0
- package/dist/thread-recovery.d.ts.map +1 -0
- package/dist/thread-recovery.js +71 -0
- package/dist/thread-recovery.js.map +1 -0
- package/dist/thread-turn-routes.d.ts +22 -8
- package/dist/thread-turn-routes.d.ts.map +1 -1
- package/dist/thread-turn-routes.js +73 -49
- package/dist/thread-turn-routes.js.map +1 -1
- package/package.json +6 -6
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* at the boundary, never trusted.
|
|
5
5
|
*/
|
|
6
6
|
import { ControlSession, ControlThread, ControlThreadTurn, ControlTurnRunCard, } from "@claudexor/schema";
|
|
7
|
+
import { directDelegatedChildrenFromRecords } from "./run-record.js";
|
|
8
|
+
export function delegatedChildRunIds(parentRunId, runs) {
|
|
9
|
+
return directDelegatedChildrenFromRecords(parentRunId, runs).map((child) => child.runId ?? child.id);
|
|
10
|
+
}
|
|
7
11
|
export function projectThread(raw, needsHuman) {
|
|
8
12
|
const t = raw;
|
|
9
13
|
const repo = t["repo"];
|
|
@@ -42,19 +46,34 @@ export function projectSession(raw) {
|
|
|
42
46
|
});
|
|
43
47
|
}
|
|
44
48
|
/** Project a run summary down to the compact card embedded on a thread turn. */
|
|
45
|
-
export function turnRunCard(summary) {
|
|
49
|
+
export function turnRunCard(summary, delegatedChildRunIds = []) {
|
|
46
50
|
return ControlTurnRunCard.parse({
|
|
47
51
|
state: summary.state,
|
|
48
52
|
mode: summary.mode,
|
|
49
53
|
strategy: summary.strategy ?? null,
|
|
50
54
|
n: summary.n,
|
|
51
55
|
result: summary.result,
|
|
56
|
+
outcomeFacts: summary.outcomeFacts,
|
|
52
57
|
spendUsd: summary.spendUsd ?? null,
|
|
53
58
|
outputReadyState: summary.outputReadyState,
|
|
54
59
|
waitingOnUser: summary.waitingOnUser,
|
|
55
60
|
finishedAt: summary.finishedAt ?? null,
|
|
61
|
+
delegation: summary.delegation,
|
|
62
|
+
delegatedChildRunIds,
|
|
56
63
|
});
|
|
57
64
|
}
|
|
65
|
+
export function projectTurnRunCards(turns, runs, summarize) {
|
|
66
|
+
const byRun = new Map(runs.map((run) => [run.runId ?? run.id, run]));
|
|
67
|
+
const cards = new Map();
|
|
68
|
+
for (const turn of turns) {
|
|
69
|
+
const runId = turn.run_id ?? null;
|
|
70
|
+
const record = runId ? byRun.get(runId) : undefined;
|
|
71
|
+
if (runId && record && !cards.has(runId)) {
|
|
72
|
+
cards.set(runId, turnRunCard(summarize(record), delegatedChildRunIds(runId, runs)));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return cards;
|
|
76
|
+
}
|
|
58
77
|
export function projectTurn(raw, cards) {
|
|
59
78
|
const t = raw;
|
|
60
79
|
const runId = t["run_id"] ?? null;
|
|
@@ -86,6 +105,14 @@ export function projectTurn(raw, cards) {
|
|
|
86
105
|
// Legacy records (pre-retryable) default to true — they came from
|
|
87
106
|
// the runner-hook path, where a job exists to replay.
|
|
88
107
|
retryable: enqueueError.retryable !== false,
|
|
108
|
+
requiredActions: Array.isArray(enqueueError.required_actions)
|
|
109
|
+
? enqueueError.required_actions
|
|
110
|
+
: [],
|
|
111
|
+
context: enqueueError.context &&
|
|
112
|
+
typeof enqueueError.context === "object" &&
|
|
113
|
+
!Array.isArray(enqueueError.context)
|
|
114
|
+
? enqueueError.context
|
|
115
|
+
: {},
|
|
89
116
|
failedAt: String(enqueueError.failed_at ?? ""),
|
|
90
117
|
}
|
|
91
118
|
: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-projection.js","sourceRoot":"","sources":["../src/thread-projection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"thread-projection.js","sourceRoot":"","sources":["../src/thread-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ResourceAttachmentRef } from "@claudexor/schema";
|
|
2
|
+
import type { DaemonFacadeClient, DaemonRunRecord } from "./daemon-server.js";
|
|
3
|
+
export interface ThreadTurnIdempotency {
|
|
4
|
+
key: string;
|
|
5
|
+
client: string;
|
|
6
|
+
request: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface ThreadRecoveryTurnCreateOptions {
|
|
9
|
+
kind?: unknown;
|
|
10
|
+
parentRunId?: string | null;
|
|
11
|
+
planRunId?: string | null;
|
|
12
|
+
planHash?: string | null;
|
|
13
|
+
planOverridden?: boolean;
|
|
14
|
+
attachments?: ResourceAttachmentRef[];
|
|
15
|
+
}
|
|
16
|
+
export type FindThreadTurnByIdempotency = (id: string, idempotency: ThreadTurnIdempotency) => Promise<{
|
|
17
|
+
id: string;
|
|
18
|
+
} | null>;
|
|
19
|
+
export interface ThreadRecoveryServices {
|
|
20
|
+
createThreadTurn?: (id: string, prompt: string, options: ThreadRecoveryTurnCreateOptions & {
|
|
21
|
+
idempotency?: ThreadTurnIdempotency;
|
|
22
|
+
}) => Promise<unknown>;
|
|
23
|
+
findThreadTurnByIdempotency?: FindThreadTurnByIdempotency;
|
|
24
|
+
threadDetail?: (id: string) => Promise<{
|
|
25
|
+
thread: unknown;
|
|
26
|
+
sessions: unknown[];
|
|
27
|
+
turns: unknown[];
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
interface ThreadTurnCreateReplayServices {
|
|
31
|
+
threadDetail(id: string): Promise<{
|
|
32
|
+
thread: unknown;
|
|
33
|
+
sessions: unknown[];
|
|
34
|
+
turns: unknown[];
|
|
35
|
+
}>;
|
|
36
|
+
findThreadTurnByIdempotency?: FindThreadTurnByIdempotency;
|
|
37
|
+
}
|
|
38
|
+
export declare function assertLatestThreadTurn(turns: unknown[], turnId: string): void;
|
|
39
|
+
/** Read-only admission for ordinary turn create: accepted handle or tail orphan. */
|
|
40
|
+
export declare function inspectThreadTurnCreateReplay(daemon: Pick<DaemonFacadeClient, "findAccepted">, services: ThreadTurnCreateReplayServices, threadId: string, idempotency: ThreadTurnIdempotency): Promise<{
|
|
41
|
+
detail: {
|
|
42
|
+
thread: unknown;
|
|
43
|
+
sessions: unknown[];
|
|
44
|
+
turns: unknown[];
|
|
45
|
+
};
|
|
46
|
+
existingId: string | null;
|
|
47
|
+
accepted: DaemonRunRecord | null;
|
|
48
|
+
}>;
|
|
49
|
+
/** Durable command replay, orphan tail fence, idle fence, then create. */
|
|
50
|
+
export declare function resolveThreadRecoveryTurn(daemon: Pick<DaemonFacadeClient, "list">, services: ThreadRecoveryServices | undefined, source: DaemonRunRecord, threadId: string, prompt: string, options: ThreadRecoveryTurnCreateOptions, idempotency: ThreadTurnIdempotency, findAccepted?: (turnId: string) => Promise<unknown | null | undefined>): Promise<{
|
|
51
|
+
id: string;
|
|
52
|
+
}>;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=thread-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-recovery.d.ts","sourceRoot":"","sources":["../src/thread-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG9E,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACvC;AAED,MAAM,MAAM,2BAA2B,GAAG,CACxC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,qBAAqB,KAC/B,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAEpC,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,CACjB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,+BAA+B,GAAG;QAAE,WAAW,CAAC,EAAE,qBAAqB,CAAA;KAAE,KAC/E,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,YAAY,CAAC,EAAE,CACb,EAAE,EAAE,MAAM,KACP,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;CAC1E;AAED,UAAU,8BAA8B;IACtC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IAC9F,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;CAC3D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAkB7E;AAkBD,oFAAoF;AACpF,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAChD,QAAQ,EAAE,8BAA8B,EACxC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,qBAAqB,GACjC,OAAO,CAAC;IACT,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAClC,CAAC,CAsBD;AAED,0EAA0E;AAC1E,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,EACxC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,EAC5C,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,+BAA+B,EACxC,WAAW,EAAE,qBAAqB,EAClC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GACrE,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCzB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { assertThreadIdle } from "./thread-mutation.js";
|
|
2
|
+
export function assertLatestThreadTurn(turns, turnId) {
|
|
3
|
+
const latest = [...turns]
|
|
4
|
+
.reverse()
|
|
5
|
+
.find((turn) => turn !== null &&
|
|
6
|
+
typeof turn === "object" &&
|
|
7
|
+
!Array.isArray(turn) &&
|
|
8
|
+
typeof turn.id === "string");
|
|
9
|
+
if (latest?.id !== turnId) {
|
|
10
|
+
throw Object.assign(new Error(`turn ${turnId} is not the latest turn of this thread; the conversation moved on — send a new message instead`), { code: "thread_turn_not_latest", status: 409, retryable: false });
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function assertExistingTurnIsRunless(turn, turnId) {
|
|
14
|
+
if (turn !== null &&
|
|
15
|
+
typeof turn === "object" &&
|
|
16
|
+
!Array.isArray(turn) &&
|
|
17
|
+
typeof turn.run_id === "string") {
|
|
18
|
+
throw Object.assign(new Error(`turn ${turnId} already has a run; its original command is no longer retained — open that run or send a new message instead`), { code: "thread_turn_already_bound", status: 409, retryable: false });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** Read-only admission for ordinary turn create: accepted handle or tail orphan. */
|
|
22
|
+
export async function inspectThreadTurnCreateReplay(daemon, services, threadId, idempotency) {
|
|
23
|
+
const existing = await services.findThreadTurnByIdempotency?.(threadId, idempotency);
|
|
24
|
+
const detail = await services.threadDetail(threadId);
|
|
25
|
+
if (!existing)
|
|
26
|
+
return { detail, existingId: null, accepted: null };
|
|
27
|
+
const accepted = await daemon.findAccepted?.({ threadId }, {
|
|
28
|
+
idempotencyKey: idempotency.key,
|
|
29
|
+
clientId: idempotency.client,
|
|
30
|
+
operation: "thread.turn.create",
|
|
31
|
+
idempotencyRequest: idempotency.request,
|
|
32
|
+
});
|
|
33
|
+
if (accepted)
|
|
34
|
+
return { detail, existingId: existing.id, accepted };
|
|
35
|
+
const turn = detail.turns.find((candidate) => candidate["id"] === existing.id);
|
|
36
|
+
assertExistingTurnIsRunless(turn, existing.id);
|
|
37
|
+
assertLatestThreadTurn(detail.turns, existing.id);
|
|
38
|
+
return { detail, existingId: existing.id, accepted: null };
|
|
39
|
+
}
|
|
40
|
+
/** Durable command replay, orphan tail fence, idle fence, then create. */
|
|
41
|
+
export async function resolveThreadRecoveryTurn(daemon, services, source, threadId, prompt, options, idempotency, findAccepted) {
|
|
42
|
+
if (!services?.createThreadTurn || !services.findThreadTurnByIdempotency) {
|
|
43
|
+
throw Object.assign(new Error("thread recovery requires the durable thread idempotency service"), { status: 501, code: "thread_recovery_unavailable" });
|
|
44
|
+
}
|
|
45
|
+
const existing = await services.findThreadTurnByIdempotency(threadId, idempotency);
|
|
46
|
+
if (existing) {
|
|
47
|
+
// Once the daemon accepted this exact command, its original handle wins
|
|
48
|
+
// even if the conversation later advanced. Only a RUNLESS/no-command
|
|
49
|
+
// orphan is eligible for fresh admission, and only while it remains tail.
|
|
50
|
+
if (await findAccepted?.(existing.id))
|
|
51
|
+
return existing;
|
|
52
|
+
if (!services.threadDetail) {
|
|
53
|
+
throw Object.assign(new Error("thread recovery requires the durable thread detail service"), {
|
|
54
|
+
status: 501,
|
|
55
|
+
code: "thread_recovery_unavailable",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const detail = await services.threadDetail(threadId);
|
|
59
|
+
const turn = detail.turns.find((candidate) => candidate !== null &&
|
|
60
|
+
typeof candidate === "object" &&
|
|
61
|
+
!Array.isArray(candidate) &&
|
|
62
|
+
candidate.id === existing.id);
|
|
63
|
+
assertExistingTurnIsRunless(turn, existing.id);
|
|
64
|
+
assertLatestThreadTurn(detail.turns, existing.id);
|
|
65
|
+
}
|
|
66
|
+
await assertThreadIdle(source, () => daemon.list());
|
|
67
|
+
if (existing)
|
|
68
|
+
return existing;
|
|
69
|
+
return (await services.createThreadTurn(threadId, prompt, { ...options, idempotency }));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=thread-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-recovery.js","sourceRoot":"","sources":["../src/thread-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ServerResponse } from "node:http";
|
|
2
2
|
import { ControlRunStartRequest } from "@claudexor/schema";
|
|
3
|
-
import type { ResourceAttachmentRef } from "@claudexor/schema";
|
|
3
|
+
import type { ResourceAttachmentRef, TurnEnqueueProblem } from "@claudexor/schema";
|
|
4
4
|
import type { DaemonFacadeClient, DaemonRunRecord } from "./daemon-server.js";
|
|
5
5
|
export interface ThreadTurnRouteCtx {
|
|
6
6
|
json(res: ServerResponse, status: number, body: unknown): void;
|
|
@@ -10,6 +10,8 @@ export interface ThreadTurnRouteCtx {
|
|
|
10
10
|
/** The server's single run-start normalizer (scope/prompt/policy validation). */
|
|
11
11
|
normalizeStart(parsed: ControlRunStartRequest): ControlRunStartRequest;
|
|
12
12
|
preflightRunRequirements?: (request: ControlRunStartRequest) => Promise<void>;
|
|
13
|
+
/** Non-durable request checks for a thread turn; Git runs inside its daemon job. */
|
|
14
|
+
preflightThreadRunRequirements?: (request: ControlRunStartRequest) => Promise<void>;
|
|
13
15
|
/** True for terminal job states (the server's TERMINAL_STATES set). */
|
|
14
16
|
isTerminalState(state: string): boolean;
|
|
15
17
|
daemon: DaemonFacadeClient;
|
|
@@ -30,15 +32,17 @@ export interface ThreadTurnRouteCtx {
|
|
|
30
32
|
request: unknown;
|
|
31
33
|
};
|
|
32
34
|
}): Promise<unknown>;
|
|
33
|
-
|
|
35
|
+
findThreadTurnByIdempotency?: (id: string, idempotency: {
|
|
36
|
+
key: string;
|
|
37
|
+
client: string;
|
|
38
|
+
request: unknown;
|
|
39
|
+
}) => Promise<{
|
|
40
|
+
id: string;
|
|
41
|
+
} | null>;
|
|
42
|
+
setTurnEnqueueError?: (turnId: string, problem: TurnEnqueueProblem) => void;
|
|
34
43
|
/** Per-thread promise chain (owned by the server; shared with turn creation). */
|
|
35
44
|
threadTurnChains: Map<string, Promise<void>>;
|
|
36
45
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Chain `work` onto the thread's serialization chain and drop the entry once
|
|
39
|
-
* settled so the Map cannot grow unbounded across a thread's lifetime.
|
|
40
|
-
*/
|
|
41
|
-
export declare function chainThreadMutation<T>(ctx: Pick<ThreadTurnRouteCtx, "threadTurnChains">, threadId: string, work: () => Promise<T>): Promise<T>;
|
|
42
46
|
/** A typed throw's machine code (e.g. the trust gate's), null when absent or
|
|
43
47
|
* non-string (a numeric errno-style `code` must not leak into the typed
|
|
44
48
|
* refusal contract). ONE owner — daemon-server's refusal recorder reuses it. */
|
|
@@ -52,7 +56,17 @@ export declare function errCode(err: unknown): string | null;
|
|
|
52
56
|
* contract: recording must never mask the original error (callers always
|
|
53
57
|
* return it), and errCode yields null for absent/non-string codes.
|
|
54
58
|
*/
|
|
55
|
-
export declare function recordTurnEnqueueFailure(setTurnEnqueueError: ((turnId: string,
|
|
59
|
+
export declare function recordTurnEnqueueFailure(setTurnEnqueueError: ((turnId: string, problem: TurnEnqueueProblem) => void) | undefined, turnId: string | undefined, err: unknown): TurnEnqueueProblem;
|
|
60
|
+
/**
|
|
61
|
+
* Project the same typed refusal used by durable thread storage onto the HTTP
|
|
62
|
+
* problem boundary. Durable storage uses snake_case while ControlProblem uses
|
|
63
|
+
* camelCase; keeping this conversion here prevents one surface from silently
|
|
64
|
+
* dropping remediation or recovery context.
|
|
65
|
+
*/
|
|
66
|
+
export declare function turnEnqueueProblemResponse(problem: TurnEnqueueProblem, identifiers: {
|
|
67
|
+
threadId?: string;
|
|
68
|
+
turnId?: string;
|
|
69
|
+
}): Record<string, unknown>;
|
|
56
70
|
/**
|
|
57
71
|
* POST /threads/:id/turns — create the turn record FIRST (single-writer), then
|
|
58
72
|
* enqueue its run. Per-thread serialization: concurrent turns on one thread
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-turn-routes.d.ts","sourceRoot":"","sources":["../src/thread-turn-routes.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAEL,sBAAsB,EAGvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"thread-turn-routes.d.ts","sourceRoot":"","sources":["../src/thread-turn-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,22 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { createHash } from "node:crypto";
|
|
10
10
|
import { ControlRunStartInfo, ControlRunStartRequest, ControlThreadTurnResponse, TRUST_FULL_ACCESS_CODE, } from "@claudexor/schema";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*/
|
|
15
|
-
export function chainThreadMutation(ctx, threadId, work) {
|
|
16
|
-
const previous = ctx.threadTurnChains.get(threadId) ?? Promise.resolve();
|
|
17
|
-
const chained = previous.catch(() => undefined).then(work);
|
|
18
|
-
const entry = chained
|
|
19
|
-
.then(() => undefined, () => undefined)
|
|
20
|
-
.finally(() => {
|
|
21
|
-
if (ctx.threadTurnChains.get(threadId) === entry)
|
|
22
|
-
ctx.threadTurnChains.delete(threadId);
|
|
23
|
-
});
|
|
24
|
-
ctx.threadTurnChains.set(threadId, entry);
|
|
25
|
-
return chained;
|
|
26
|
-
}
|
|
11
|
+
import { safeProblemContext, safeProblemMessage, safeProblemRequiredActions, } from "@claudexor/util";
|
|
12
|
+
import { assertLatestThreadTurn, inspectThreadTurnCreateReplay } from "./thread-recovery.js";
|
|
13
|
+
import { chainThreadMutation } from "./thread-mutation.js";
|
|
27
14
|
function errStatus(err, fallback = 400) {
|
|
28
15
|
return err && typeof err === "object" && "status" in err
|
|
29
16
|
? Number(err.status)
|
|
@@ -64,14 +51,47 @@ export function errCode(err) {
|
|
|
64
51
|
* return it), and errCode yields null for absent/non-string codes.
|
|
65
52
|
*/
|
|
66
53
|
export function recordTurnEnqueueFailure(setTurnEnqueueError, turnId, err) {
|
|
54
|
+
const problem = problemFromError(err, false);
|
|
67
55
|
if (!turnId || !setTurnEnqueueError)
|
|
68
|
-
return;
|
|
56
|
+
return problem;
|
|
69
57
|
try {
|
|
70
|
-
setTurnEnqueueError(turnId,
|
|
58
|
+
setTurnEnqueueError(turnId, problem);
|
|
71
59
|
}
|
|
72
60
|
catch {
|
|
73
61
|
/* recording the refusal must not mask the original error */
|
|
74
62
|
}
|
|
63
|
+
return problem;
|
|
64
|
+
}
|
|
65
|
+
function problemFromError(err, retryable) {
|
|
66
|
+
const source = err && typeof err === "object" ? err : {};
|
|
67
|
+
return {
|
|
68
|
+
// This exact object feeds BOTH setTurnEnqueueError and the HTTP response.
|
|
69
|
+
// Sanitize once here so the durable and wire views cannot diverge.
|
|
70
|
+
message: safeProblemMessage(err),
|
|
71
|
+
code: errCode(err),
|
|
72
|
+
retryable,
|
|
73
|
+
required_actions: safeProblemRequiredActions(source["requiredActions"]),
|
|
74
|
+
context: safeProblemContext(source["context"]),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Project the same typed refusal used by durable thread storage onto the HTTP
|
|
79
|
+
* problem boundary. Durable storage uses snake_case while ControlProblem uses
|
|
80
|
+
* camelCase; keeping this conversion here prevents one surface from silently
|
|
81
|
+
* dropping remediation or recovery context.
|
|
82
|
+
*/
|
|
83
|
+
export function turnEnqueueProblemResponse(problem, identifiers) {
|
|
84
|
+
return {
|
|
85
|
+
error: problem.message,
|
|
86
|
+
...(problem.code ? { code: problem.code } : {}),
|
|
87
|
+
retryable: problem.retryable,
|
|
88
|
+
requiredActions: problem.required_actions,
|
|
89
|
+
context: {
|
|
90
|
+
...problem.context,
|
|
91
|
+
...(identifiers.threadId ? { threadId: identifiers.threadId } : {}),
|
|
92
|
+
...(identifiers.turnId ? { turnId: identifiers.turnId } : {}),
|
|
93
|
+
},
|
|
94
|
+
};
|
|
75
95
|
}
|
|
76
96
|
async function respondToTurnJob(ctx, res, jobId, threadId, turnId) {
|
|
77
97
|
let rec;
|
|
@@ -111,6 +131,14 @@ async function respondToTurnJob(ctx, res, jobId, threadId, turnId) {
|
|
|
111
131
|
state: rec.state,
|
|
112
132
|
error: rec.error ?? `run ended pre-start: ${rec.state}`,
|
|
113
133
|
...(rec.errorCode ? { code: rec.errorCode } : {}),
|
|
134
|
+
retryable: rec.errorRetryable ?? true,
|
|
135
|
+
requiredActions: rec.errorRequiredActions ?? [],
|
|
136
|
+
context: {
|
|
137
|
+
...(rec.errorContext ?? {}),
|
|
138
|
+
jobId: rec.id,
|
|
139
|
+
turnId,
|
|
140
|
+
threadId,
|
|
141
|
+
},
|
|
114
142
|
});
|
|
115
143
|
}
|
|
116
144
|
return ctx.json(res, 202, ControlThreadTurnResponse.parse({ jobId: rec.id, turnId, threadId, state: rec.state }));
|
|
@@ -121,13 +149,22 @@ async function respondToTurnJob(ctx, res, jobId, threadId, turnId) {
|
|
|
121
149
|
* would race the head_run_id lineage (check-then-act across awaits).
|
|
122
150
|
*/
|
|
123
151
|
export function handleThreadTurnCreate(ctx, res, threadId, body, idempotencyKey) {
|
|
124
|
-
return chainThreadMutation(ctx, threadId, async () => {
|
|
152
|
+
return chainThreadMutation(ctx.threadTurnChains, threadId, async () => {
|
|
125
153
|
// Once the turn record exists, any later failure in this handler must
|
|
126
154
|
// land ON the turn (honest inline refusal) — not only in one HTTP
|
|
127
155
|
// response that a reloading client never sees.
|
|
128
156
|
let createdTurnId = null;
|
|
129
157
|
try {
|
|
130
|
-
const
|
|
158
|
+
const idempotency = {
|
|
159
|
+
key: idempotencyKey,
|
|
160
|
+
client: "control-api",
|
|
161
|
+
request: { threadId, body },
|
|
162
|
+
};
|
|
163
|
+
const replay = await inspectThreadTurnCreateReplay(ctx.daemon, ctx, threadId, idempotency);
|
|
164
|
+
const detail = replay.detail;
|
|
165
|
+
if (replay.accepted && replay.existingId) {
|
|
166
|
+
return respondToTurnJob(ctx, res, replay.accepted.id, threadId, replay.existingId);
|
|
167
|
+
}
|
|
131
168
|
const thread = detail.thread;
|
|
132
169
|
let prompt = String(body["prompt"] ?? "");
|
|
133
170
|
let mode = typeof body["mode"] === "string" ? body["mode"] : thread.mode;
|
|
@@ -247,18 +284,14 @@ export function handleThreadTurnCreate(ctx, res, threadId, body, idempotencyKey)
|
|
|
247
284
|
planOverridden,
|
|
248
285
|
planRunId,
|
|
249
286
|
attachments: params.attachments,
|
|
250
|
-
idempotency
|
|
251
|
-
key: idempotencyKey,
|
|
252
|
-
client: "control-api",
|
|
253
|
-
request: { threadId, body },
|
|
254
|
-
},
|
|
287
|
+
idempotency,
|
|
255
288
|
}));
|
|
256
289
|
createdTurnId = turn.id;
|
|
257
290
|
// Preflight AFTER the turn exists (W19/INV-093): a browser/requirements
|
|
258
291
|
// refusal now has a turnId to land on, so the outer catch persists it via
|
|
259
292
|
// setTurnEnqueueError and the app renders an inline refusal card instead
|
|
260
293
|
// of raw JSON with no turn to attach to.
|
|
261
|
-
await ctx.preflightRunRequirements?.(params);
|
|
294
|
+
await (ctx.preflightThreadRunRequirements ?? ctx.preflightRunRequirements)?.(params);
|
|
262
295
|
// The turn stores resolved immutable resources; enqueue carries no duplicate refs.
|
|
263
296
|
const { attachments: _att, ...enqueueParams } = params;
|
|
264
297
|
// ENQUEUE phase: a throw here means NO job was recorded — persist the
|
|
@@ -273,34 +306,29 @@ export function handleThreadTurnCreate(ctx, res, threadId, body, idempotencyKey)
|
|
|
273
306
|
});
|
|
274
307
|
}
|
|
275
308
|
catch (err) {
|
|
276
|
-
const
|
|
309
|
+
const problem = problemFromError(err, false);
|
|
277
310
|
try {
|
|
278
|
-
ctx.setTurnEnqueueError?.(turn.id,
|
|
311
|
+
ctx.setTurnEnqueueError?.(turn.id, problem);
|
|
279
312
|
}
|
|
280
313
|
catch {
|
|
281
314
|
/* recording the refusal must not mask the original error */
|
|
282
315
|
}
|
|
283
316
|
// Untyped enqueue throws are INFRA failures (daemon socket down) —
|
|
284
317
|
// 500, matching POST /runs; typed statuses pass through.
|
|
285
|
-
return ctx.json(res, errStatus(err, 500), {
|
|
286
|
-
error: message,
|
|
287
|
-
turnId: turn.id,
|
|
288
|
-
retryable: false,
|
|
289
|
-
});
|
|
318
|
+
return ctx.json(res, errStatus(err, 500), turnEnqueueProblemResponse(problem, { threadId, turnId: turn.id }));
|
|
290
319
|
}
|
|
291
320
|
return respondToTurnJob(ctx, res, job.id, threadId, turn.id);
|
|
292
321
|
}
|
|
293
322
|
catch (err) {
|
|
294
|
-
const message = err instanceof Error ? err.message : "bad request";
|
|
295
323
|
// PRE-ENQUEUE failures only reach here (plan read, param validation,
|
|
296
324
|
// turn creation) — the enqueue and status-wait phases return from
|
|
297
325
|
// their own catches above. When the turn was already recorded, persist
|
|
298
326
|
// the refusal so a thread reload still shows it (no silent orphan);
|
|
299
327
|
// no job exists -> retryable:false.
|
|
300
|
-
const
|
|
328
|
+
const problem = problemFromError(err, false);
|
|
301
329
|
if (createdTurnId) {
|
|
302
330
|
try {
|
|
303
|
-
ctx.setTurnEnqueueError?.(createdTurnId,
|
|
331
|
+
ctx.setTurnEnqueueError?.(createdTurnId, problem);
|
|
304
332
|
}
|
|
305
333
|
catch {
|
|
306
334
|
/* recording the refusal must not mask the original error */
|
|
@@ -309,11 +337,10 @@ export function handleThreadTurnCreate(ctx, res, threadId, body, idempotencyKey)
|
|
|
309
337
|
// Pre-enqueue failures are client errors (validation, preflight refusal) —
|
|
310
338
|
// errStatus keeps its 400 default; the inline card keys its remedy on the
|
|
311
339
|
// typed `code` when one is present.
|
|
312
|
-
return ctx.json(res, errStatus(err), {
|
|
313
|
-
|
|
314
|
-
...(createdTurnId ? { turnId: createdTurnId
|
|
315
|
-
|
|
316
|
-
});
|
|
340
|
+
return ctx.json(res, errStatus(err), turnEnqueueProblemResponse(problem, {
|
|
341
|
+
threadId,
|
|
342
|
+
...(createdTurnId ? { turnId: createdTurnId } : {}),
|
|
343
|
+
}));
|
|
317
344
|
}
|
|
318
345
|
});
|
|
319
346
|
}
|
|
@@ -326,7 +353,7 @@ export function handleThreadTurnCreate(ctx, res, threadId, body, idempotencyKey)
|
|
|
326
353
|
export function handleThreadTurnRetry(ctx, res, threadId, turnId, idempotencyKey) {
|
|
327
354
|
// Same per-thread serialization as turn creation: a retry racing a new
|
|
328
355
|
// turn would otherwise interleave lineage bookkeeping.
|
|
329
|
-
return chainThreadMutation(ctx, threadId, async () => {
|
|
356
|
+
return chainThreadMutation(ctx.threadTurnChains, threadId, async () => {
|
|
330
357
|
try {
|
|
331
358
|
const detail = await ctx.threadDetail(threadId);
|
|
332
359
|
const turns = detail.turns;
|
|
@@ -363,10 +390,7 @@ export function handleThreadTurnRetry(ctx, res, threadId, turnId, idempotencyKey
|
|
|
363
390
|
// refused turn would bind its run as the thread's new head (bindTurnRun
|
|
364
391
|
// advances head_run_id unconditionally) and silently reorder lineage
|
|
365
392
|
// that later turns already advanced — refuse loudly instead.
|
|
366
|
-
|
|
367
|
-
if (lastTurn && lastTurn["id"] !== turnId) {
|
|
368
|
-
throw Object.assign(new Error(`turn ${turnId} is not the latest turn of this thread; the conversation moved on — send a new message instead`), { status: 409 });
|
|
369
|
-
}
|
|
393
|
+
assertLatestThreadTurn(turns, turnId);
|
|
370
394
|
if (!last) {
|
|
371
395
|
// The refusal happened before any job existed (enqueue itself threw):
|
|
372
396
|
// there are no recorded params to replay faithfully — honest refusal.
|
|
@@ -397,14 +421,14 @@ export function handleThreadTurnRetry(ctx, res, threadId, turnId, idempotencyKey
|
|
|
397
421
|
// A failed replay ENQUEUE is a fresh refusal — but the ORIGINAL job
|
|
398
422
|
// params remain in the registry, so the turn STAYS replayable.
|
|
399
423
|
// Untyped throws are infra failures — 500 (matching POST /runs).
|
|
400
|
-
const
|
|
424
|
+
const problem = problemFromError(err, true);
|
|
401
425
|
try {
|
|
402
|
-
ctx.setTurnEnqueueError?.(turnId,
|
|
426
|
+
ctx.setTurnEnqueueError?.(turnId, problem);
|
|
403
427
|
}
|
|
404
428
|
catch {
|
|
405
429
|
/* recording the refusal must not mask the original error */
|
|
406
430
|
}
|
|
407
|
-
return ctx.json(res, errStatus(err, 500), {
|
|
431
|
+
return ctx.json(res, errStatus(err, 500), turnEnqueueProblemResponse(problem, { threadId, turnId }));
|
|
408
432
|
}
|
|
409
433
|
return respondToTurnJob(ctx, res, job.id, threadId, turnId);
|
|
410
434
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-turn-routes.js","sourceRoot":"","sources":["../src/thread-turn-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread-turn-routes.js","sourceRoot":"","sources":["../src/thread-turn-routes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudexor/control-api",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Loopback HTTP+SSE control surface for GUI/service clients: token-auth, Host/Origin guard, live run event stream with Last-Event-ID replay. Runner injected (no second scheduler).",
|
|
6
6
|
"type": "module",
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"yaml": "^2.6.1",
|
|
20
|
-
"@claudexor/
|
|
21
|
-
"@claudexor/
|
|
22
|
-
"@claudexor/
|
|
23
|
-
"@claudexor/
|
|
24
|
-
"@claudexor/
|
|
20
|
+
"@claudexor/event-log": "3.2.0",
|
|
21
|
+
"@claudexor/delivery": "3.2.0",
|
|
22
|
+
"@claudexor/schema": "3.2.0",
|
|
23
|
+
"@claudexor/secrets": "3.2.0",
|
|
24
|
+
"@claudexor/util": "3.2.0"
|
|
25
25
|
},
|
|
26
26
|
"repository": {
|
|
27
27
|
"type": "git",
|