clinkx 1.1.1 → 1.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/CHANGELOG.md +60 -0
- package/README.md +97 -13
- package/clinkx-workflows/dist/allowed-roots.js +2 -0
- package/clinkx-workflows/dist/allowed-roots.js.map +1 -1
- package/clinkx-workflows/dist/architecture-comparison/admission.d.ts +5 -0
- package/clinkx-workflows/dist/architecture-comparison/admission.js +50 -0
- package/clinkx-workflows/dist/architecture-comparison/admission.js.map +1 -0
- package/clinkx-workflows/dist/architecture-comparison/contract.d.ts +995 -0
- package/clinkx-workflows/dist/architecture-comparison/contract.js +149 -0
- package/clinkx-workflows/dist/architecture-comparison/contract.js.map +1 -0
- package/clinkx-workflows/dist/architecture-comparison/runtime.d.ts +29 -0
- package/clinkx-workflows/dist/architecture-comparison/runtime.js +387 -0
- package/clinkx-workflows/dist/architecture-comparison/runtime.js.map +1 -0
- package/clinkx-workflows/dist/child-env.d.ts +3 -1
- package/clinkx-workflows/dist/child-env.js +6 -2
- package/clinkx-workflows/dist/child-env.js.map +1 -1
- package/clinkx-workflows/dist/config.d.ts +28 -5
- package/clinkx-workflows/dist/config.js +137 -20
- package/clinkx-workflows/dist/config.js.map +1 -1
- package/clinkx-workflows/dist/contained-file.js +10 -1
- package/clinkx-workflows/dist/contained-file.js.map +1 -1
- package/clinkx-workflows/dist/council-execution-policy.d.ts +4 -2
- package/clinkx-workflows/dist/council-execution-policy.js +5 -1
- package/clinkx-workflows/dist/council-execution-policy.js.map +1 -1
- package/clinkx-workflows/dist/dashboard/activity-contract.d.ts +72 -72
- package/clinkx-workflows/dist/dashboard/contracts.d.ts +1564 -122
- package/clinkx-workflows/dist/dashboard/contracts.js +4 -0
- package/clinkx-workflows/dist/dashboard/contracts.js.map +1 -1
- package/clinkx-workflows/dist/dashboard/progress-report-contract.d.ts +12 -12
- package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.d.ts +8 -8
- package/clinkx-workflows/dist/dashboard/scanner.d.ts +3 -0
- package/clinkx-workflows/dist/dashboard/scanner.js +27 -0
- package/clinkx-workflows/dist/dashboard/scanner.js.map +1 -1
- package/clinkx-workflows/dist/dashboard/session-log-contract.d.ts +48 -48
- package/clinkx-workflows/dist/dashboard/session-log-identity.js +2 -1
- package/clinkx-workflows/dist/dashboard/session-log-identity.js.map +1 -1
- package/clinkx-workflows/dist/dashboard/session-log-redaction.d.ts +2 -0
- package/clinkx-workflows/dist/dashboard/session-log-redaction.js +4 -0
- package/clinkx-workflows/dist/dashboard/session-log-redaction.js.map +1 -1
- package/clinkx-workflows/dist/dashboard/verified-repair-contract.d.ts +191 -0
- package/clinkx-workflows/dist/dashboard/verified-repair-contract.js +28 -0
- package/clinkx-workflows/dist/dashboard/verified-repair-contract.js.map +1 -0
- package/clinkx-workflows/dist/dashboard-ui/assets/index-BdpmbPps.js +115 -0
- package/clinkx-workflows/dist/dashboard-ui/assets/style-Im5i1iAs.css +1 -0
- package/clinkx-workflows/dist/dashboard-ui/index.html +2 -2
- package/clinkx-workflows/dist/engine.d.ts +6 -0
- package/clinkx-workflows/dist/engine.js +78 -7
- package/clinkx-workflows/dist/engine.js.map +1 -1
- package/clinkx-workflows/dist/index.d.ts +3 -0
- package/clinkx-workflows/dist/index.js +3 -2
- package/clinkx-workflows/dist/index.js.map +1 -1
- package/clinkx-workflows/dist/reducers/index.d.ts +9 -1
- package/clinkx-workflows/dist/reducers/index.js +22 -0
- package/clinkx-workflows/dist/reducers/index.js.map +1 -1
- package/clinkx-workflows/dist/root-path-validation.d.ts +12 -0
- package/clinkx-workflows/dist/root-path-validation.js +63 -0
- package/clinkx-workflows/dist/root-path-validation.js.map +1 -0
- package/clinkx-workflows/dist/rosters.d.ts +1 -0
- package/clinkx-workflows/dist/rosters.js +16 -6
- package/clinkx-workflows/dist/rosters.js.map +1 -1
- package/clinkx-workflows/dist/server.js +5 -2
- package/clinkx-workflows/dist/server.js.map +1 -1
- package/clinkx-workflows/dist/state-schema.d.ts +13 -0
- package/clinkx-workflows/dist/state.d.ts +7 -1
- package/clinkx-workflows/dist/state.js +90 -19
- package/clinkx-workflows/dist/state.js.map +1 -1
- package/clinkx-workflows/dist/validators/architecture-comparison.d.ts +2 -0
- package/clinkx-workflows/dist/validators/architecture-comparison.js +12 -0
- package/clinkx-workflows/dist/validators/architecture-comparison.js.map +1 -0
- package/clinkx-workflows/dist/validators/index.js +4 -0
- package/clinkx-workflows/dist/validators/index.js.map +1 -1
- package/clinkx-workflows/dist/validators/verified-repair.d.ts +2 -0
- package/clinkx-workflows/dist/validators/verified-repair.js +12 -0
- package/clinkx-workflows/dist/validators/verified-repair.js.map +1 -0
- package/clinkx-workflows/dist/verification-proof.d.ts +254 -0
- package/clinkx-workflows/dist/verification-proof.js +195 -0
- package/clinkx-workflows/dist/verification-proof.js.map +1 -0
- package/clinkx-workflows/dist/verified-repair/admission.d.ts +72 -0
- package/clinkx-workflows/dist/verified-repair/admission.js +63 -0
- package/clinkx-workflows/dist/verified-repair/admission.js.map +1 -0
- package/clinkx-workflows/dist/verified-repair/contract.d.ts +1910 -0
- package/clinkx-workflows/dist/verified-repair/contract.js +127 -0
- package/clinkx-workflows/dist/verified-repair/contract.js.map +1 -0
- package/clinkx-workflows/dist/verified-repair/host.d.ts +32 -0
- package/clinkx-workflows/dist/verified-repair/host.js +2 -0
- package/clinkx-workflows/dist/verified-repair/host.js.map +1 -0
- package/clinkx-workflows/dist/verified-repair/prompts.d.ts +12 -0
- package/clinkx-workflows/dist/verified-repair/prompts.js +58 -0
- package/clinkx-workflows/dist/verified-repair/prompts.js.map +1 -0
- package/clinkx-workflows/dist/verified-repair/result.d.ts +16 -0
- package/clinkx-workflows/dist/verified-repair/result.js +102 -0
- package/clinkx-workflows/dist/verified-repair/result.js.map +1 -0
- package/clinkx-workflows/dist/verified-repair/runtime.d.ts +28 -0
- package/clinkx-workflows/dist/verified-repair/runtime.js +186 -0
- package/clinkx-workflows/dist/verified-repair/runtime.js.map +1 -0
- package/clinkx-workflows/dist/workflow-completion.d.ts +83 -0
- package/clinkx-workflows/dist/workflow-completion.js +250 -0
- package/clinkx-workflows/dist/workflow-completion.js.map +1 -0
- package/clinkx-workflows/dist/workflow-tools.d.ts +7 -3
- package/clinkx-workflows/dist/workflow-tools.js +487 -46
- package/clinkx-workflows/dist/workflow-tools.js.map +1 -1
- package/clinkx-workflows/dist/workflow-verification-contract.d.ts +539 -0
- package/clinkx-workflows/dist/workflow-verification-contract.js +52 -0
- package/clinkx-workflows/dist/workflow-verification-contract.js.map +1 -0
- package/clinkx-workflows/dist/workflow-verification.d.ts +15 -0
- package/clinkx-workflows/dist/workflow-verification.js +218 -0
- package/clinkx-workflows/dist/workflow-verification.js.map +1 -0
- package/clinkx-workflows/templates/architecture-comparison/candidate.txt +29 -0
- package/clinkx-workflows/templates/architecture-comparison/judge.txt +31 -0
- package/clinkx-workflows/templates/verified-repair/investigate.txt +20 -0
- package/clinkx-workflows/templates/verified-repair/repair.txt +11 -0
- package/clinkx-workflows/templates/verified-repair/review.txt +18 -0
- package/clinkx-workflows/workflows/architecture-comparison.yaml +133 -0
- package/clinkx-workflows/workflows/verified-repair.yaml +104 -0
- package/dist/allowed-roots.d.ts +1 -1
- package/dist/allowed-roots.js +128 -15
- package/dist/allowed-roots.js.map +1 -1
- package/dist/codex/app-server-client.d.ts +1 -0
- package/dist/codex/app-server-client.js +3 -2
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/context-builder/config.d.ts +1 -0
- package/dist/context-builder/config.js +21 -9
- package/dist/context-builder/config.js.map +1 -1
- package/dist/context-builder/diagnostics.d.ts +1 -0
- package/dist/context-builder/diagnostics.js +1 -1
- package/dist/context-builder/diagnostics.js.map +1 -1
- package/dist/context-builder/discovery.d.ts +18 -1
- package/dist/context-builder/discovery.js +69 -1
- package/dist/context-builder/discovery.js.map +1 -1
- package/dist/context-builder/handler.js +8 -1
- package/dist/context-builder/handler.js.map +1 -1
- package/dist/context-builder/lifecycle-contract.d.ts +24 -24
- package/dist/context-builder/mutation-lock.d.ts +4 -0
- package/dist/context-builder/mutation-lock.js +7 -1
- package/dist/context-builder/mutation-lock.js.map +1 -1
- package/dist/context-builder/refine-handler.js +16 -1
- package/dist/context-builder/refine-handler.js.map +1 -1
- package/dist/context-builder/secrets.d.ts +11 -0
- package/dist/context-builder/secrets.js +75 -0
- package/dist/context-builder/secrets.js.map +1 -1
- package/dist/context-builder/storage.d.ts +10 -2
- package/dist/context-builder/storage.js +213 -16
- package/dist/context-builder/storage.js.map +1 -1
- package/dist/context-builder/versions.d.ts +5 -2
- package/dist/context-builder/versions.js +5 -2
- package/dist/context-builder/versions.js.map +1 -1
- package/dist/dashboard-cli.d.ts +6 -0
- package/dist/dashboard-cli.js +18 -32
- package/dist/dashboard-cli.js.map +1 -1
- package/dist/dashboard-gateway/main.js +8 -3
- package/dist/dashboard-gateway/main.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/project-verification/contract.d.ts +537 -0
- package/dist/project-verification/contract.js +40 -0
- package/dist/project-verification/contract.js.map +1 -0
- package/dist/project-verification/files.d.ts +23 -0
- package/dist/project-verification/files.js +80 -0
- package/dist/project-verification/files.js.map +1 -0
- package/dist/project-verification/process.d.ts +7 -0
- package/dist/project-verification/process.js +115 -0
- package/dist/project-verification/process.js.map +1 -0
- package/dist/project-verification/runner.d.ts +35 -0
- package/dist/project-verification/runner.js +185 -0
- package/dist/project-verification/runner.js.map +1 -0
- package/dist/project-verification/service.d.ts +37 -0
- package/dist/project-verification/service.js +151 -0
- package/dist/project-verification/service.js.map +1 -0
- package/dist/provider-doctor.d.ts +22 -0
- package/dist/provider-doctor.js +22 -0
- package/dist/provider-doctor.js.map +1 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.js +5 -1
- package/dist/registry.js.map +1 -1
- package/dist/server.js +41 -6
- package/dist/server.js.map +1 -1
- package/dist/verification-tools.d.ts +90 -0
- package/dist/verification-tools.js +120 -0
- package/dist/verification-tools.js.map +1 -0
- package/dist/verified-repair/files.d.ts +22 -0
- package/dist/verified-repair/files.js +114 -0
- package/dist/verified-repair/files.js.map +1 -0
- package/dist/verified-repair/host.d.ts +14 -0
- package/dist/verified-repair/host.js +612 -0
- package/dist/verified-repair/host.js.map +1 -0
- package/docs/configuration.md +224 -12
- package/docs/engineering-recipes.md +415 -0
- package/docs/security.md +3 -0
- package/docs/verification/README.md +59 -0
- package/docs/verification/dashboard-real-disk.md +436 -0
- package/docs/verification/project-checks.example.json +14 -0
- package/docs/verification/project-checks.md +444 -0
- package/docs/verification/workflow-handoff.md +113 -0
- package/package.json +10 -2
- package/scripts/provider-doctor-core.mjs +380 -0
- package/scripts/provider-doctor-probe.mjs +34 -0
- package/clinkx-workflows/dist/dashboard-ui/assets/index-JPHQVtn9.js +0 -106
- package/clinkx-workflows/dist/dashboard-ui/assets/style-DOMHk-j6.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,13 @@
|
|
|
4
4
|
* Reducers run in place of LLM calls when a call specifies a `reducer` ID.
|
|
5
5
|
*/
|
|
6
6
|
import type { ArtifactRecord } from "../artifacts.js";
|
|
7
|
-
|
|
7
|
+
import type { ArchitectureComparisonRuntime } from "../architecture-comparison/runtime.js";
|
|
8
|
+
import type { VerifiedRepairRuntime } from "../verified-repair/runtime.js";
|
|
9
|
+
export interface ReducerContext {
|
|
10
|
+
readonly variables: Readonly<Record<string, unknown>>;
|
|
11
|
+
readonly architectureComparison?: ArchitectureComparisonRuntime | undefined;
|
|
12
|
+
readonly verifiedRepair?: VerifiedRepairRuntime | undefined;
|
|
13
|
+
readonly signal?: AbortSignal | undefined;
|
|
14
|
+
}
|
|
15
|
+
export type ReducerFn = (artifacts: readonly ArtifactRecord[], context?: ReducerContext) => string | Promise<string>;
|
|
8
16
|
export declare function getReducer(id: string): ReducerFn | undefined;
|
|
@@ -8,6 +8,28 @@ import { councilRankingReducer } from "../ranking-reducer.js";
|
|
|
8
8
|
const registry = new Map();
|
|
9
9
|
registry.set("council_ranking_v1", councilRankingReducer);
|
|
10
10
|
registry.set("plan_review_ranking_v1", planReviewRankingReducer);
|
|
11
|
+
registry.set("architecture_freeze_v1", (_artifacts, context) => {
|
|
12
|
+
if (context?.architectureComparison === undefined)
|
|
13
|
+
throw new Error("architecture freeze reducer requires its workflow contract");
|
|
14
|
+
return context.architectureComparison.freeze(context.variables);
|
|
15
|
+
});
|
|
16
|
+
registry.set("architecture_view_v1", (artifacts, context) => {
|
|
17
|
+
if (context?.architectureComparison === undefined)
|
|
18
|
+
throw new Error("architecture judge view reducer requires its workflow contract");
|
|
19
|
+
return context.architectureComparison.makeJudgeView(artifacts);
|
|
20
|
+
});
|
|
21
|
+
registry.set("architecture_record_v1", (artifacts, context) => {
|
|
22
|
+
if (context?.architectureComparison === undefined)
|
|
23
|
+
throw new Error("architecture record reducer requires its workflow contract");
|
|
24
|
+
return context.architectureComparison.comparison(artifacts);
|
|
25
|
+
});
|
|
26
|
+
for (const operation of ["capture", "reproduce", "fixed", "independent", "record"]) {
|
|
27
|
+
registry.set(`repair_${operation}_v1`, (artifacts, context) => {
|
|
28
|
+
if (context?.verifiedRepair === undefined)
|
|
29
|
+
throw new Error("verified repair reducer requires a prepared root host");
|
|
30
|
+
return context.verifiedRepair.reduce(operation, artifacts, context.signal);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
11
33
|
export function getReducer(id) {
|
|
12
34
|
return registry.get(id);
|
|
13
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reducers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reducers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;AAC9C,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AAC1D,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;AACjE,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE;IAC7D,IAAI,OAAO,EAAE,sBAAsB,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACjI,OAAO,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;IAC1D,IAAI,OAAO,EAAE,sBAAsB,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACrI,OAAO,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;IAC5D,IAAI,OAAO,EAAE,sBAAsB,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACjI,OAAO,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,KAAK,MAAM,SAAS,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAU,EAAE,CAAC;IAC5F,QAAQ,CAAC,GAAG,CAAC,UAAU,SAAS,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;QAC5D,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACpH,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type DirectoryIdentity = {
|
|
2
|
+
lexical: string;
|
|
3
|
+
canonical: string;
|
|
4
|
+
exists: boolean;
|
|
5
|
+
};
|
|
6
|
+
/** Resolve missing suffixes against the nearest existing directory without creating them. */
|
|
7
|
+
export declare function directoryIdentity(root: string, label: string): DirectoryIdentity;
|
|
8
|
+
export declare function isFilesystemRootIdentity(identity: DirectoryIdentity): boolean;
|
|
9
|
+
/** Component-aware: `/a/b` is an ancestor of `/a/b/c` but not of `/a/bc`. */
|
|
10
|
+
export declare function isStrictAncestorPath(ancestor: string, descendant: string): boolean;
|
|
11
|
+
export declare function assertNoRootDelimiter(root: string, label: string): void;
|
|
12
|
+
export declare function assertRootRepresentable(root: string, label: string): DirectoryIdentity;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { lstatSync, realpathSync, statSync } from "node:fs";
|
|
2
|
+
import { basename, dirname, join, parse, resolve, sep } from "node:path";
|
|
3
|
+
/** Resolve missing suffixes against the nearest existing directory without creating them. */
|
|
4
|
+
export function directoryIdentity(root, label) {
|
|
5
|
+
const lexical = resolve(root);
|
|
6
|
+
let ancestor = lexical;
|
|
7
|
+
const suffix = [];
|
|
8
|
+
while (true) {
|
|
9
|
+
try {
|
|
10
|
+
lstatSync(ancestor);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
if (error.code === "ENOENT" && dirname(ancestor) !== ancestor) {
|
|
14
|
+
suffix.unshift(basename(ancestor));
|
|
15
|
+
ancestor = dirname(ancestor);
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
throw directoryError(label, root, error);
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
if (!statSync(ancestor).isDirectory()) {
|
|
22
|
+
throw new Error("not a directory");
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
lexical,
|
|
26
|
+
canonical: join(realpathSync(ancestor), ...suffix),
|
|
27
|
+
exists: suffix.length === 0,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw directoryError(label, root, error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function isFilesystemRootIdentity(identity) {
|
|
36
|
+
return identity.lexical === parse(identity.lexical).root || identity.canonical === parse(identity.canonical).root;
|
|
37
|
+
}
|
|
38
|
+
/** Component-aware: `/a/b` is an ancestor of `/a/b/c` but not of `/a/bc`. */
|
|
39
|
+
export function isStrictAncestorPath(ancestor, descendant) {
|
|
40
|
+
if (ancestor === descendant)
|
|
41
|
+
return false;
|
|
42
|
+
const prefix = ancestor.endsWith(sep) ? ancestor : `${ancestor}${sep}`;
|
|
43
|
+
return descendant.startsWith(prefix);
|
|
44
|
+
}
|
|
45
|
+
export function assertNoRootDelimiter(root, label) {
|
|
46
|
+
if (root.includes(",")) {
|
|
47
|
+
throw new Error(`${label} must not contain a comma: CLINKX_ALLOWED_ROOTS uses comma-separated paths; choose a comma-free directory`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function assertRootRepresentable(root, label) {
|
|
51
|
+
assertNoRootDelimiter(root, label);
|
|
52
|
+
const identity = directoryIdentity(root, label);
|
|
53
|
+
if (identity.canonical.includes(",")) {
|
|
54
|
+
throw new Error(`${label} resolves to a path containing a comma: CLINKX_ALLOWED_ROOTS uses comma-separated paths; choose a comma-free directory`);
|
|
55
|
+
}
|
|
56
|
+
return identity;
|
|
57
|
+
}
|
|
58
|
+
function directoryError(label, root, error) {
|
|
59
|
+
const code = error.code;
|
|
60
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
61
|
+
return new Error(`${label} must resolve to an accessible directory or a missing path beneath one; got ${JSON.stringify(root)} (${code ?? detail})`, { cause: error });
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=root-path-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-path-validation.js","sourceRoot":"","sources":["../src/root-path-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAQzE,6FAA6F;AAC7F,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAa;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,QAAQ,GAAG,OAAO,CAAC;IACvB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACzF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YACD,OAAO;gBACL,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC;gBAClD,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;aAC5B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAA2B;IAClE,OAAO,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AACpH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,UAAkB;IACvE,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;IACvE,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,KAAa;IAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,2GAA2G,CAAC,CAAC;IACvI,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,KAAa;IACjE,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wHAAwH,CAAC,CAAC;IACpJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,IAAY,EAAE,KAAc;IACjE,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;IACnD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,+EAA+E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxK,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { logger as defaultLogger } from "./logger.js";
|
|
|
2
2
|
import { type AvailableRoster, type RosterPreset } from "./roster-contract.js";
|
|
3
3
|
export interface RosterLoaderOptions {
|
|
4
4
|
envPath?: string | undefined;
|
|
5
|
+
clinkxHomeDir?: string | undefined;
|
|
5
6
|
userDir?: string | undefined;
|
|
6
7
|
builtinDir?: string | undefined;
|
|
7
8
|
logger?: typeof defaultLogger | undefined;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Roster preset discovery. Mirrors adapter-registry discipline in the root
|
|
3
3
|
* package (`src/registry.ts`): env path (file or directory) replaces the
|
|
4
|
-
* default locations; otherwise user
|
|
5
|
-
* First-wins by name. Synchronous. No cache:
|
|
6
|
-
* filesystem each call. Presets are tiny.
|
|
4
|
+
* default locations; otherwise user `~/.clinkx/rosters`, then user XDG, then
|
|
5
|
+
* an injected builtin directory. First-wins by name. Synchronous. No cache:
|
|
6
|
+
* list() and load() re-read the filesystem each call. Presets are tiny.
|
|
7
7
|
*/
|
|
8
8
|
import { lstatSync, readdirSync, readFileSync } from "node:fs";
|
|
9
9
|
import { homedir } from "node:os";
|
|
10
10
|
import { basename, join } from "node:path";
|
|
11
|
+
import { getClinkxHome } from "./config.js";
|
|
11
12
|
import { logger as defaultLogger } from "./logger.js";
|
|
12
13
|
import { ROSTER_NAME_PATTERN, RosterPresetSchema, } from "./roster-contract.js";
|
|
13
14
|
function defaultUserDir(env = process.env) {
|
|
@@ -17,8 +18,14 @@ function defaultUserDir(env = process.env) {
|
|
|
17
18
|
}
|
|
18
19
|
export function resolveRosterLoaderOptionsFromEnv(env = process.env) {
|
|
19
20
|
const envPath = env["CLINKX_ROSTERS_PATH"];
|
|
21
|
+
if (envPath != null && envPath !== "") {
|
|
22
|
+
return {
|
|
23
|
+
envPath,
|
|
24
|
+
userDir: defaultUserDir(env),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
20
27
|
return {
|
|
21
|
-
|
|
28
|
+
clinkxHomeDir: join(getClinkxHome(env), "rosters"),
|
|
22
29
|
userDir: defaultUserDir(env),
|
|
23
30
|
};
|
|
24
31
|
}
|
|
@@ -27,7 +34,7 @@ export function createRosterLoader(options = {}) {
|
|
|
27
34
|
const userDir = options.userDir ?? defaultUserDir();
|
|
28
35
|
const discover = () => {
|
|
29
36
|
const claims = new Map();
|
|
30
|
-
for (const spec of sourceSpecs(options.envPath, userDir, options.builtinDir)) {
|
|
37
|
+
for (const spec of sourceSpecs(options.envPath, options.clinkxHomeDir, userDir, options.builtinDir)) {
|
|
31
38
|
ingestPath(spec, claims, log);
|
|
32
39
|
}
|
|
33
40
|
return claims;
|
|
@@ -52,11 +59,14 @@ export function createRosterLoader(options = {}) {
|
|
|
52
59
|
},
|
|
53
60
|
};
|
|
54
61
|
}
|
|
55
|
-
function sourceSpecs(envPath, userDir, builtinDir) {
|
|
62
|
+
function sourceSpecs(envPath, clinkxHomeDir, userDir, builtinDir) {
|
|
56
63
|
if (envPath != null && envPath !== "") {
|
|
57
64
|
return [{ source: "env", path: envPath, allowFile: true }];
|
|
58
65
|
}
|
|
59
66
|
const specs = [];
|
|
67
|
+
if (clinkxHomeDir != null && clinkxHomeDir !== "") {
|
|
68
|
+
specs.push({ source: "user", path: clinkxHomeDir, allowFile: false });
|
|
69
|
+
}
|
|
60
70
|
if (userDir !== "") {
|
|
61
71
|
specs.push({ source: "user", path: userDir, allowFile: false });
|
|
62
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rosters.js","sourceRoot":"","sources":["../src/rosters.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GAInB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rosters.js","sourceRoot":"","sources":["../src/rosters.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
9
9
|
import { join, extname } from "node:path";
|
|
10
10
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
11
|
-
import { getChildConfigPath, getRunsDir, hasExplicitWorkspaceRoot, resolveWorkspaceRoot, } from "./config.js";
|
|
11
|
+
import { getChildConfigPath, getRunsDir, hasExplicitWorkspaceRoot, homeTreeStorageRootWarnings, resolveWorkspaceRoot, } from "./config.js";
|
|
12
12
|
import { logger } from "./logger.js";
|
|
13
13
|
import { reconcileStaleRunDirectories } from "./state.js";
|
|
14
14
|
import { ClinkSession, resolveClinkChildRuntime } from "./transport.js";
|
|
@@ -111,6 +111,10 @@ export function createWorkflowServer(options) {
|
|
|
111
111
|
"This root governs plan_file containment and the workflow child process cwd, so workflow behavior " +
|
|
112
112
|
"depends on the cwd the MCP client spawned this server with. Set CLINKX_WORKFLOWS_WORKSPACE_ROOT explicitly.");
|
|
113
113
|
}
|
|
114
|
+
const childRuntime = resolveClinkChildRuntime();
|
|
115
|
+
for (const warning of homeTreeStorageRootWarnings()) {
|
|
116
|
+
logger.warn({ env_var: warning.envVar, value: warning.value, relation: warning.relation }, warning.message);
|
|
117
|
+
}
|
|
114
118
|
// One-time startup reconcile of runs frozen as running/pending with no live
|
|
115
119
|
// worker (fire-and-forget: bounded, idempotent, never blocks startup).
|
|
116
120
|
try {
|
|
@@ -121,7 +125,6 @@ export function createWorkflowServer(options) {
|
|
|
121
125
|
catch (err) {
|
|
122
126
|
logger.warn({ err: err instanceof Error ? err.message : String(err) }, "startup stale workflow run reconcile could not be scheduled");
|
|
123
127
|
}
|
|
124
|
-
const childRuntime = resolveClinkChildRuntime();
|
|
125
128
|
// Normalize empty arrays to undefined — an empty list would suppress schema
|
|
126
129
|
// hints while still enabling validation (rejecting all adapter names).
|
|
127
130
|
const explicit = options?.availableCliNames;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -199,4 +199,17 @@ export interface RunState {
|
|
|
199
199
|
* runs that did not use a roster.
|
|
200
200
|
*/
|
|
201
201
|
readonly rosterName?: string | undefined;
|
|
202
|
+
/**
|
|
203
|
+
* Opaque identity of the execution that last bound this state (create or
|
|
204
|
+
* resume), stamped right after bind and carried by every later publication.
|
|
205
|
+
* Lets a pinned wait/status resolve a terminal run after a restart or
|
|
206
|
+
* registry eviction. Omitted on older state and before the first bind.
|
|
207
|
+
*/
|
|
208
|
+
readonly executionId?: string | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* completedAt of the terminal envelope this build published for executionId.
|
|
211
|
+
* An older build resuming the run carries executionId forward but not a
|
|
212
|
+
* matching witness, so a pinned read cannot settle on its outcome.
|
|
213
|
+
*/
|
|
214
|
+
readonly executionCompletedAt?: string | undefined;
|
|
202
215
|
}
|
|
@@ -109,6 +109,11 @@ export declare class WorkflowStateStore {
|
|
|
109
109
|
* deliberately left unchanged here.
|
|
110
110
|
*/
|
|
111
111
|
beginResumeAttempt(): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Persist the bound execution identity. Every later write clones this.state,
|
|
114
|
+
* so the id rides each subsequent publication; a resume overwrites it.
|
|
115
|
+
*/
|
|
116
|
+
bindExecution(executionId: string): Promise<void>;
|
|
112
117
|
markCancelled(reason?: string): Promise<void>;
|
|
113
118
|
/**
|
|
114
119
|
* Idempotently mark the run failed. Only applies when the current status is
|
|
@@ -167,9 +172,10 @@ export declare class WorkflowStateStore {
|
|
|
167
172
|
private enqueueWrite;
|
|
168
173
|
private writeState;
|
|
169
174
|
}
|
|
170
|
-
export declare function readRunStateForStatus(runId: string): Promise<{
|
|
175
|
+
export declare function readRunStateForStatus(runId: string, containedRead?: boolean): Promise<{
|
|
171
176
|
state: RunState;
|
|
172
177
|
lock: RunLockStatus;
|
|
178
|
+
stateDigest?: string;
|
|
173
179
|
} | null>;
|
|
174
180
|
/**
|
|
175
181
|
* Reap a run that has no live worker (orphaned/stale/prior-process) by writing a
|
|
@@ -5,6 +5,8 @@ import { lstat, mkdir, open, readFile, readdir, realpath, rename, rm, stat, unli
|
|
|
5
5
|
import { dirname, basename, isAbsolute, join, relative, resolve } from "node:path";
|
|
6
6
|
import { hostname } from "node:os";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
|
+
import { ContainedFileChangedError, readContainedRelativeFile } from "./contained-file.js";
|
|
9
|
+
import { ARCHITECTURE_WORKFLOW, MAX_RECORD_BYTES } from "./architecture-comparison/contract.js";
|
|
8
10
|
import { WorkflowError } from "./errors.js";
|
|
9
11
|
import { computeRunHealth } from "./run-health.js";
|
|
10
12
|
import { buildFidelityMetadata, } from "./fidelity.js";
|
|
@@ -19,7 +21,7 @@ import { isPlanReviewPublicationEligible, projectPlanReviewRun, } from "./plan-r
|
|
|
19
21
|
import { isPlanReviewRunState } from "./plan-review/admission.js";
|
|
20
22
|
import { restorePlanReviewRun } from "./plan-review/resume.js";
|
|
21
23
|
import { PlanReviewStageError } from "./plan-review/stage-error.js";
|
|
22
|
-
import { DEFAULT_RETAIN_ASYNC_DAYS, DEFAULT_RETAIN_CANCELLED_DAYS, DEFAULT_RETAIN_DEBUG_DAYS, DEFAULT_RETAIN_FAILED_DAYS, DEFAULT_RETAIN_SUCCEEDED_DAYS, deriveAllowedRoots, getArtifactsDir, getChildConfigPath, getChildMaxConcurrent, getChildMaxOutputBytes, getChildMaxPromptBytes, getChildMaxResponseChars, getLogLevel, getRetentionConfig, getRunsDir, getRunStateDir, getStateDir, invocationAuditV2PersistenceEnabled, observedInvocationPersistenceEnabled, resolveWorkspaceRoot, } from "./config.js";
|
|
24
|
+
import { DEFAULT_DASHBOARD_MAX_STATE_BYTES, DEFAULT_RETAIN_ASYNC_DAYS, DEFAULT_RETAIN_CANCELLED_DAYS, DEFAULT_RETAIN_DEBUG_DAYS, DEFAULT_RETAIN_FAILED_DAYS, DEFAULT_RETAIN_SUCCEEDED_DAYS, deriveAllowedRoots, getArtifactsDir, getChildConfigPath, getChildMaxConcurrent, getChildMaxOutputBytes, getChildMaxPromptBytes, getChildMaxResponseChars, getLogLevel, getRetentionConfig, getRunsDir, getRunStateDir, getStateDir, invocationAuditV2PersistenceEnabled, observedInvocationPersistenceEnabled, resolveWorkspaceRoot, } from "./config.js";
|
|
23
25
|
import { logger } from "./logger.js";
|
|
24
26
|
import { resolveOpenedDescriptorPath } from "./contained-file.js";
|
|
25
27
|
import { deriveWorkflowRunGeneration } from "./dashboard/generation.js";
|
|
@@ -149,7 +151,7 @@ const finalizePlanReviewTerminalState = async ({ runDir, previousState, intended
|
|
|
149
151
|
// yet been committed.
|
|
150
152
|
const intermediate = withPlanReviewPublication(previousState, marker);
|
|
151
153
|
validateStrictStateSubtrees(intermediate, join(runDir, STATE_FILENAME));
|
|
152
|
-
await
|
|
154
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), intermediate);
|
|
153
155
|
return { state: withPlanReviewPublication(intendedState, marker) };
|
|
154
156
|
}
|
|
155
157
|
catch (err) {
|
|
@@ -610,7 +612,7 @@ export class WorkflowStateStore {
|
|
|
610
612
|
...(resolvedRoster !== undefined ? { resolvedRoster } : {}),
|
|
611
613
|
...(rosterName !== undefined ? { rosterName } : {}),
|
|
612
614
|
};
|
|
613
|
-
await
|
|
615
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), state);
|
|
614
616
|
if (recycled.recycled) {
|
|
615
617
|
await rm(`${runDir}.recycled`, { recursive: true, force: true }).catch(() => { });
|
|
616
618
|
if (recycled.retiredSessionLogGeneration !== undefined) {
|
|
@@ -731,7 +733,7 @@ export class WorkflowStateStore {
|
|
|
731
733
|
stage.completedAt = deriveStageCompletedAt(stage.calls);
|
|
732
734
|
}
|
|
733
735
|
if (mutated) {
|
|
734
|
-
await
|
|
736
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), recovered);
|
|
735
737
|
}
|
|
736
738
|
const resume = await buildResumeState(definition, recovered, runDir);
|
|
737
739
|
return new WorkflowStateStore({
|
|
@@ -785,6 +787,23 @@ export class WorkflowStateStore {
|
|
|
785
787
|
nextState.completedAt = undefined;
|
|
786
788
|
nextState.error = undefined;
|
|
787
789
|
nextState.failureClass = undefined;
|
|
790
|
+
// The reopened record belongs to no execution until bind stamps the new
|
|
791
|
+
// id; a crash in between must not let reconcile/reap settle the old pin.
|
|
792
|
+
nextState.executionId = undefined;
|
|
793
|
+
this.state = nextState;
|
|
794
|
+
await this.writeState();
|
|
795
|
+
});
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Persist the bound execution identity. Every later write clones this.state,
|
|
799
|
+
* so the id rides each subsequent publication; a resume overwrites it.
|
|
800
|
+
*/
|
|
801
|
+
async bindExecution(executionId) {
|
|
802
|
+
await this.enqueueWrite(async () => {
|
|
803
|
+
if (this.state.executionId === executionId)
|
|
804
|
+
return;
|
|
805
|
+
const nextState = structuredClone(this.state);
|
|
806
|
+
nextState.executionId = executionId;
|
|
788
807
|
this.state = nextState;
|
|
789
808
|
await this.writeState();
|
|
790
809
|
});
|
|
@@ -1159,7 +1178,7 @@ export class WorkflowStateStore {
|
|
|
1159
1178
|
await next;
|
|
1160
1179
|
}
|
|
1161
1180
|
async writeState() {
|
|
1162
|
-
await
|
|
1181
|
+
await writeRunStateAtomic(join(this.runDir, STATE_FILENAME), this.state);
|
|
1163
1182
|
}
|
|
1164
1183
|
}
|
|
1165
1184
|
async function prepareRunDirForCreate(runDir, runId) {
|
|
@@ -1507,11 +1526,13 @@ function classifyRunLockSync(lockPath) {
|
|
|
1507
1526
|
return code === "ENOENT" ? "stale_or_absent" : "unknown";
|
|
1508
1527
|
}
|
|
1509
1528
|
}
|
|
1510
|
-
export async function readRunStateForStatus(runId) {
|
|
1529
|
+
export async function readRunStateForStatus(runId, containedRead = false) {
|
|
1511
1530
|
const runDir = getRunStateDir(runId);
|
|
1512
|
-
let
|
|
1531
|
+
let read;
|
|
1513
1532
|
try {
|
|
1514
|
-
|
|
1533
|
+
read = containedRead
|
|
1534
|
+
? await readContainedRunState(runDir)
|
|
1535
|
+
: { state: await readRunState(runDir) };
|
|
1515
1536
|
}
|
|
1516
1537
|
catch (error) {
|
|
1517
1538
|
const code = error.code;
|
|
@@ -1522,8 +1543,10 @@ export async function readRunStateForStatus(runId) {
|
|
|
1522
1543
|
}
|
|
1523
1544
|
const lockStatus = classifyRunLockSync(join(runDir, RUN_LOCK_FILENAME));
|
|
1524
1545
|
return {
|
|
1525
|
-
state,
|
|
1546
|
+
state: read.state,
|
|
1526
1547
|
lock: lockStatus,
|
|
1548
|
+
// Internal execution-fence input only; never projected onto the wire.
|
|
1549
|
+
...(read.digest !== undefined ? { stateDigest: read.digest } : {}),
|
|
1527
1550
|
};
|
|
1528
1551
|
}
|
|
1529
1552
|
/**
|
|
@@ -1597,7 +1620,7 @@ export async function reapRunCancelled(runId) {
|
|
|
1597
1620
|
nextState.completedAt = new Date().toISOString();
|
|
1598
1621
|
nextState.error = "Reaped: no live worker process";
|
|
1599
1622
|
}
|
|
1600
|
-
await
|
|
1623
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), nextState);
|
|
1601
1624
|
await safeUnlink(lockPath);
|
|
1602
1625
|
lockHeld = false;
|
|
1603
1626
|
return "cancelled";
|
|
@@ -1756,7 +1779,7 @@ async function reconcileStaleRun(runDir) {
|
|
|
1756
1779
|
nextState.error = STALE_RUN_RECONCILE_ERROR;
|
|
1757
1780
|
nextState.failureClass = "transient";
|
|
1758
1781
|
}
|
|
1759
|
-
await
|
|
1782
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), nextState);
|
|
1760
1783
|
logger.info({ run_dir: runDir, run_id: state.runId }, "reconciled stale running workflow run to terminal failed");
|
|
1761
1784
|
return "reconciled";
|
|
1762
1785
|
}
|
|
@@ -1935,7 +1958,7 @@ async function buildResumeState(definition, state, runDir) {
|
|
|
1935
1958
|
for (const call of stage.calls) {
|
|
1936
1959
|
const entry = persistedStage.calls.find((candidate) => candidate.callId === call.id);
|
|
1937
1960
|
if (entry?.state === "succeeded") {
|
|
1938
|
-
completedCalls.set(`${stage.id}.${call.id}`, await rehydrateExecutedCall(runDir, entry));
|
|
1961
|
+
completedCalls.set(`${stage.id}.${call.id}`, await rehydrateExecutedCall(runDir, entry, definition.name === ARCHITECTURE_WORKFLOW));
|
|
1939
1962
|
}
|
|
1940
1963
|
else if (entry?.state === "failed" && entry.errorMessage != null) {
|
|
1941
1964
|
failedCalls.set(`${stage.id}.${call.id}`, {
|
|
@@ -1952,7 +1975,7 @@ async function buildResumeState(definition, state, runDir) {
|
|
|
1952
1975
|
for (const call of stage.calls) {
|
|
1953
1976
|
const entry = persistedStage.calls.find((candidate) => candidate.callId === call.id);
|
|
1954
1977
|
if (entry?.state === "succeeded") {
|
|
1955
|
-
completedCalls.set(`${stage.id}.${call.id}`, await rehydrateExecutedCall(runDir, entry));
|
|
1978
|
+
completedCalls.set(`${stage.id}.${call.id}`, await rehydrateExecutedCall(runDir, entry, definition.name === ARCHITECTURE_WORKFLOW));
|
|
1956
1979
|
continue;
|
|
1957
1980
|
}
|
|
1958
1981
|
if (entry?.state === "failed" && entry.errorMessage != null) {
|
|
@@ -1967,7 +1990,9 @@ async function buildResumeState(definition, state, runDir) {
|
|
|
1967
1990
|
});
|
|
1968
1991
|
}
|
|
1969
1992
|
if (entry?.materializedInputPath != null) {
|
|
1970
|
-
preparedInputs.set(`${stage.id}.${call.id}`,
|
|
1993
|
+
preparedInputs.set(`${stage.id}.${call.id}`, definition.name === ARCHITECTURE_WORKFLOW
|
|
1994
|
+
? JSON.parse((await readContainedRelativeFile(runDir, entry.materializedInputPath, { wantContent: true, requireRegular: true, requireExactRequestedPath: true, maxBytes: MAX_RECORD_BYTES })).content)
|
|
1995
|
+
: await readJsonFile(join(runDir, entry.materializedInputPath)));
|
|
1971
1996
|
nextRetryCounts.set(`${stage.id}.${call.id}`, entry.attemptsConsumed ??
|
|
1972
1997
|
(entry.state === "running" ? entry.retryCount + 1 : entry.retryCount));
|
|
1973
1998
|
}
|
|
@@ -1981,10 +2006,12 @@ async function buildResumeState(definition, state, runDir) {
|
|
|
1981
2006
|
nextRetryCounts,
|
|
1982
2007
|
};
|
|
1983
2008
|
}
|
|
1984
|
-
async function rehydrateExecutedCall(runDir, entry) {
|
|
1985
|
-
const outputText =
|
|
2009
|
+
async function rehydrateExecutedCall(runDir, entry, architecture = false) {
|
|
2010
|
+
const outputText = architecture && entry.outputPath !== undefined
|
|
2011
|
+
? (await readContainedRelativeFile(runDir, entry.outputPath, { wantContent: true, requireRegular: true, requireExactRequestedPath: true, maxBytes: MAX_RECORD_BYTES })).content
|
|
2012
|
+
: await readPersistedOutput(runDir, entry);
|
|
1986
2013
|
const artifact = entry.artifactPath != null
|
|
1987
|
-
? await rehydrateArtifact(runDir, entry.stageId, entry.callId, entry.artifactPath)
|
|
2014
|
+
? await rehydrateArtifact(runDir, entry.stageId, entry.callId, entry.artifactPath, architecture)
|
|
1988
2015
|
: undefined;
|
|
1989
2016
|
const fidelity = entry.fidelity != null ? rehydrateFidelity(entry.fidelity) : undefined;
|
|
1990
2017
|
return {
|
|
@@ -2005,8 +2032,12 @@ async function readPersistedOutput(runDir, entry) {
|
|
|
2005
2032
|
}
|
|
2006
2033
|
throw new Error(`Succeeded call ${entry.stageId}.${entry.callId} is missing persisted output`);
|
|
2007
2034
|
}
|
|
2008
|
-
async function rehydrateArtifact(runDir, stageId, callId, artifactPath) {
|
|
2035
|
+
async function rehydrateArtifact(runDir, stageId, callId, artifactPath, architecture = false) {
|
|
2009
2036
|
const filePath = join(runDir, artifactPath);
|
|
2037
|
+
if (architecture) {
|
|
2038
|
+
const read = await readContainedRelativeFile(runDir, artifactPath, { wantContent: true, requireRegular: true, requireExactRequestedPath: true, maxBytes: MAX_RECORD_BYTES });
|
|
2039
|
+
return { stageId, callId, reference: `${stageId}.${callId}`, filePath, filename: basename(filePath), sizeBytes: read.size, parsed: JSON.parse(read.content) };
|
|
2040
|
+
}
|
|
2010
2041
|
const serialized = await readFile(filePath, "utf-8");
|
|
2011
2042
|
const parsed = JSON.parse(serialized);
|
|
2012
2043
|
const stats = await stat(filePath);
|
|
@@ -2200,7 +2231,40 @@ async function listConfigFiles(configPath) {
|
|
|
2200
2231
|
}
|
|
2201
2232
|
async function readRunState(runDir) {
|
|
2202
2233
|
const statePath = join(runDir, STATE_FILENAME);
|
|
2203
|
-
|
|
2234
|
+
return validateRunState(await readJsonFile(statePath), statePath);
|
|
2235
|
+
}
|
|
2236
|
+
/**
|
|
2237
|
+
* One contained read: the digest covers exactly the raw bytes that were parsed,
|
|
2238
|
+
* so a guarded projection is fenced on the state it actually rendered.
|
|
2239
|
+
*/
|
|
2240
|
+
async function readContainedRunState(runDir) {
|
|
2241
|
+
// Atomic publication can retire an opened inode while a status read is in
|
|
2242
|
+
// flight. Retry only the reader's known change discriminator, with a fixed
|
|
2243
|
+
// immediate bound; policy, permission and malformed-state errors propagate.
|
|
2244
|
+
for (let attempt = 0;; attempt += 1) {
|
|
2245
|
+
let bytes;
|
|
2246
|
+
try {
|
|
2247
|
+
const file = await readContainedRelativeFile(runDir, STATE_FILENAME, {
|
|
2248
|
+
wantBytes: true,
|
|
2249
|
+
requireRegular: true,
|
|
2250
|
+
requireExactRequestedPath: true,
|
|
2251
|
+
maxBytes: DEFAULT_DASHBOARD_MAX_STATE_BYTES,
|
|
2252
|
+
});
|
|
2253
|
+
bytes = file.bytes;
|
|
2254
|
+
}
|
|
2255
|
+
catch (error) {
|
|
2256
|
+
if (!(error instanceof ContainedFileChangedError) || attempt >= 2)
|
|
2257
|
+
throw error;
|
|
2258
|
+
continue;
|
|
2259
|
+
}
|
|
2260
|
+
const state = JSON.parse(bytes.toString("utf-8"));
|
|
2261
|
+
return {
|
|
2262
|
+
state: validateRunState(state, join(runDir, STATE_FILENAME)),
|
|
2263
|
+
digest: createHash("sha256").update(bytes).digest("hex"),
|
|
2264
|
+
};
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
function validateRunState(state, statePath) {
|
|
2204
2268
|
if (state.state_version !== 1) {
|
|
2205
2269
|
throw new Error(`Unsupported state_version ${String(state.state_version)} in ${statePath}`);
|
|
2206
2270
|
}
|
|
@@ -2222,6 +2286,13 @@ async function writeJsonSnapshot(filePath, value) {
|
|
|
2222
2286
|
await writeTextAtomic(filePath, serialized);
|
|
2223
2287
|
return hashContent(serialized);
|
|
2224
2288
|
}
|
|
2289
|
+
async function writeRunStateAtomic(filePath, state) {
|
|
2290
|
+
const { executionCompletedAt: _stale, ...rest } = state;
|
|
2291
|
+
const witnessed = rest.executionId !== undefined && isTerminalRunStatus(rest.status) && rest.completedAt !== undefined
|
|
2292
|
+
? { ...rest, executionCompletedAt: rest.completedAt }
|
|
2293
|
+
: rest;
|
|
2294
|
+
await writeJsonAtomic(filePath, witnessed);
|
|
2295
|
+
}
|
|
2225
2296
|
async function writeJsonAtomic(filePath, value) {
|
|
2226
2297
|
await writeTextAtomic(filePath, serializeJson(value));
|
|
2227
2298
|
}
|