@interf/compiler 0.33.0 → 0.50.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/README.md +122 -226
- package/dist/cli/commands/agents.js +1 -32
- package/dist/cli/commands/benchmark.d.ts +2 -3
- package/dist/cli/commands/benchmark.js +1 -31
- package/dist/cli/commands/build-plan.js +26 -50
- package/dist/cli/commands/build.d.ts +2 -3
- package/dist/cli/commands/build.js +1 -31
- package/dist/cli/commands/graphs.js +177 -32
- package/dist/cli/commands/mcp.d.ts +1 -0
- package/dist/cli/commands/mcp.js +223 -126
- package/dist/cli/commands/project.js +10 -36
- package/dist/cli/commands/reset.d.ts +2 -3
- package/dist/cli/commands/reset.js +1 -22
- package/dist/cli/commands/runs.js +86 -33
- package/dist/cli/commands/status.js +3 -24
- package/dist/cli/commands/traces.js +1 -29
- package/dist/cli/commands/wizard.js +17 -29
- package/dist/cli/lib/http-client.d.ts +39 -0
- package/dist/cli/lib/http-client.js +73 -0
- package/dist/packages/build-plans/authoring/brief.d.ts +25 -4
- package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +42 -1
- package/dist/packages/build-plans/authoring/build-plan-authoring.js +470 -63
- package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +9 -0
- package/dist/packages/build-plans/authoring/build-plan-edit-session.js +27 -10
- package/dist/packages/build-plans/authoring/build-plan-improvement.js +62 -8
- package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.d.ts +1 -0
- package/dist/packages/build-plans/package/build-plan-definitions.d.ts +0 -1
- package/dist/packages/build-plans/package/build-plan-definitions.js +5 -3
- package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +1 -0
- package/dist/packages/build-plans/package/build-plan-stage-runner.js +2 -1
- package/dist/packages/build-plans/package/builtin-build-plan.d.ts +2 -2
- package/dist/packages/build-plans/package/builtin-build-plan.js +3 -3
- package/dist/packages/build-plans/package/context-interface.d.ts +3 -0
- package/dist/packages/build-plans/package/context-interface.js +5 -5
- package/dist/packages/build-plans/package/interf-build-plan-package.js +22 -22
- package/dist/packages/build-plans/package/local-build-plans.d.ts +10 -5
- package/dist/packages/build-plans/package/local-build-plans.js +57 -32
- package/dist/packages/contracts/index.d.ts +4 -3
- package/dist/packages/contracts/index.js +2 -1
- package/dist/packages/contracts/lib/context-graph-layer.d.ts +161 -0
- package/dist/packages/contracts/lib/context-graph-layer.js +216 -0
- package/dist/packages/contracts/lib/project-paths.d.ts +7 -0
- package/dist/packages/contracts/lib/project-paths.js +9 -0
- package/dist/packages/contracts/lib/project-schema.d.ts +264 -1
- package/dist/packages/contracts/lib/project-schema.js +38 -13
- package/dist/packages/contracts/lib/schema.d.ts +556 -23
- package/dist/packages/contracts/lib/schema.js +279 -18
- package/dist/packages/contracts/utils/filesystem.d.ts +1 -0
- package/dist/packages/contracts/utils/filesystem.js +29 -1
- package/dist/packages/projects/lib/schema.d.ts +6 -8
- package/dist/packages/projects/lib/schema.js +3 -1
- package/dist/packages/projects/source-config.d.ts +0 -5
- package/dist/packages/projects/source-config.js +9 -22
- package/dist/packages/runtime/actions/fields.d.ts +4 -0
- package/dist/packages/runtime/actions/form-builders.js +79 -31
- package/dist/packages/runtime/actions/form-validators.js +9 -3
- package/dist/packages/runtime/actions/helpers.js +3 -3
- package/dist/packages/runtime/actions/registry.d.ts +1 -1
- package/dist/packages/runtime/actions/registry.js +1 -1
- package/dist/packages/runtime/actions/requests.d.ts +1 -1
- package/dist/packages/runtime/actions/requests.js +12 -6
- package/dist/packages/runtime/actions/schemas.d.ts +7 -0
- package/dist/packages/runtime/actions/schemas.js +1 -0
- package/dist/packages/runtime/agent-handoff.js +8 -7
- package/dist/packages/runtime/agents/lib/execution-profile.d.ts +14 -0
- package/dist/packages/runtime/agents/lib/execution-profile.js +23 -0
- package/dist/packages/runtime/agents/lib/execution.js +14 -8
- package/dist/packages/runtime/agents/lib/executors.d.ts +1 -0
- package/dist/packages/runtime/agents/lib/executors.js +11 -2
- package/dist/packages/runtime/agents/lib/logs.d.ts +10 -0
- package/dist/packages/runtime/agents/lib/logs.js +32 -8
- package/dist/packages/runtime/agents/lib/preflight.js +4 -1
- package/dist/packages/runtime/agents/lib/render.d.ts +18 -0
- package/dist/packages/runtime/agents/lib/render.js +44 -18
- package/dist/packages/runtime/agents/lib/shell-templates.js +105 -63
- package/dist/packages/runtime/agents/lib/shells.d.ts +29 -0
- package/dist/packages/runtime/agents/lib/shells.js +158 -32
- package/dist/packages/runtime/agents/lib/source-context-scan.d.ts +10 -0
- package/dist/packages/runtime/agents/lib/source-context-scan.js +388 -0
- package/dist/packages/runtime/agents/lib/status.js +1 -14
- package/dist/packages/runtime/agents/lib/string-utils.d.ts +16 -0
- package/dist/packages/runtime/agents/lib/string-utils.js +36 -0
- package/dist/packages/runtime/agents/lib/types.d.ts +1 -0
- package/dist/packages/runtime/agents/providers/codex.js +2 -0
- package/dist/packages/runtime/agents/role-executors.js +2 -1
- package/dist/packages/runtime/auth/session-store.js +11 -3
- package/dist/packages/runtime/benchmark-question-draft.d.ts +3 -0
- package/dist/packages/runtime/benchmark-question-draft.js +57 -28
- package/dist/packages/runtime/build/artifact-status.d.ts +1 -1
- package/dist/packages/runtime/build/artifact-status.js +1 -1
- package/dist/packages/runtime/build/build-evidence.d.ts +2 -1
- package/dist/packages/runtime/build/build-evidence.js +11 -5
- package/dist/packages/runtime/build/build-pipeline.js +89 -5
- package/dist/packages/runtime/build/build-stage-plan.js +3 -1
- package/dist/packages/runtime/build/build-stage-runner.js +169 -32
- package/dist/packages/runtime/build/build-target.d.ts +3 -0
- package/dist/packages/runtime/build/build-target.js +25 -1
- package/dist/packages/runtime/build/check-evaluator.d.ts +1 -1
- package/dist/packages/runtime/build/check-evaluator.js +655 -4
- package/dist/packages/runtime/build/context-graph-paths.d.ts +13 -0
- package/dist/packages/runtime/build/context-graph-paths.js +27 -0
- package/dist/packages/runtime/build/index.d.ts +2 -2
- package/dist/packages/runtime/build/index.js +2 -2
- package/dist/packages/runtime/build/inspect-map.d.ts +10 -0
- package/dist/packages/runtime/build/inspect-map.js +270 -0
- package/dist/packages/runtime/build/lib/schema.d.ts +246 -53
- package/dist/packages/runtime/build/lib/schema.js +173 -15
- package/dist/packages/runtime/build/native-entrypoint.d.ts +2 -0
- package/dist/packages/runtime/build/native-entrypoint.js +286 -0
- package/dist/packages/runtime/build/runtime-contracts.js +9 -3
- package/dist/packages/runtime/build/runtime-log-paths.d.ts +3 -0
- package/dist/packages/runtime/build/runtime-log-paths.js +16 -0
- package/dist/packages/runtime/build/runtime-prompt.js +6 -4
- package/dist/packages/runtime/build/runtime-runs.js +63 -10
- package/dist/packages/runtime/build/runtime-types.d.ts +4 -1
- package/dist/packages/runtime/build/runtime.d.ts +3 -1
- package/dist/packages/runtime/build/runtime.js +3 -1
- package/dist/packages/runtime/build/source-files.js +11 -2
- package/dist/packages/runtime/build/source-inventory.d.ts +1 -0
- package/dist/packages/runtime/build/source-inventory.js +246 -7
- package/dist/packages/runtime/build/source-manifest.d.ts +11 -0
- package/dist/packages/runtime/build/source-manifest.js +30 -2
- package/dist/packages/runtime/build/stage-evidence.js +80 -11
- package/dist/packages/runtime/build/stage-manifest.d.ts +45 -0
- package/dist/packages/runtime/build/stage-manifest.js +1125 -0
- package/dist/packages/runtime/build/stage-reuse.js +12 -0
- package/dist/packages/runtime/build/stage-session.d.ts +81 -0
- package/dist/packages/runtime/build/stage-session.js +308 -0
- package/dist/packages/runtime/build/state-io.js +10 -11
- package/dist/packages/runtime/build/state-view.js +1 -1
- package/dist/packages/runtime/build/state.d.ts +1 -1
- package/dist/packages/runtime/build/state.js +1 -1
- package/dist/packages/runtime/build/summary-coverage-index.d.ts +21 -0
- package/dist/packages/runtime/build/summary-coverage-index.js +189 -0
- package/dist/packages/runtime/build/traces.js +3 -3
- package/dist/packages/runtime/build/validate-context-graph.d.ts +1 -1
- package/dist/packages/runtime/build/validate-context-graph.js +5 -5
- package/dist/packages/runtime/build/validate.d.ts +1 -1
- package/dist/packages/runtime/build/validate.js +1 -1
- package/dist/packages/runtime/client.d.ts +3 -3
- package/dist/packages/runtime/client.js +8 -13
- package/dist/packages/runtime/context-checks.js +13 -0
- package/dist/packages/runtime/context-graph-scaffold.js +2 -1
- package/dist/packages/runtime/context-graph-semantic-graph.d.ts +9 -0
- package/dist/packages/runtime/context-graph-semantic-graph.js +416 -0
- package/dist/packages/runtime/execution/lib/schema.d.ts +34 -31
- package/dist/packages/runtime/index.d.ts +2 -2
- package/dist/packages/runtime/index.js +1 -1
- package/dist/packages/runtime/native-run-handlers.d.ts +38 -0
- package/dist/packages/runtime/native-run-handlers.js +52 -33
- package/dist/packages/runtime/plan-artifact-contract.js +1 -1
- package/dist/packages/runtime/project-source-state.d.ts +4 -4
- package/dist/packages/runtime/project-source-state.js +5 -2
- package/dist/packages/runtime/project-store.d.ts +5 -0
- package/dist/packages/runtime/project-store.js +30 -3
- package/dist/packages/runtime/requested-artifacts.js +1 -1
- package/dist/packages/runtime/run-observability.js +9 -4
- package/dist/packages/runtime/runtime-action-proposals.js +3 -3
- package/dist/packages/runtime/runtime-build-plans.js +47 -3
- package/dist/packages/runtime/runtime-build-runs.js +9 -16
- package/dist/packages/runtime/runtime-caches.d.ts +26 -0
- package/dist/packages/runtime/runtime-caches.js +47 -0
- package/dist/packages/runtime/runtime-jobs.js +6 -6
- package/dist/packages/runtime/runtime-project-mutations.js +1 -0
- package/dist/packages/runtime/runtime-project-reads.d.ts +4 -1
- package/dist/packages/runtime/runtime-project-reads.js +229 -36
- package/dist/packages/runtime/runtime-proposal-helpers.js +6 -6
- package/dist/packages/runtime/runtime-resource-builders.d.ts +4 -2
- package/dist/packages/runtime/runtime-resource-builders.js +16 -14
- package/dist/packages/runtime/runtime-status.d.ts +14 -0
- package/dist/packages/runtime/runtime-status.js +15 -0
- package/dist/packages/runtime/runtime-verify-runs.js +6 -5
- package/dist/packages/runtime/runtime.d.ts +439 -22
- package/dist/packages/runtime/runtime.js +16 -2
- package/dist/packages/runtime/schemas/actions.d.ts +24 -0
- package/dist/packages/runtime/schemas/agents.d.ts +28 -0
- package/dist/packages/runtime/schemas/agents.js +33 -0
- package/dist/packages/runtime/schemas/build-plans.d.ts +181 -8
- package/dist/packages/runtime/schemas/build-plans.js +36 -2
- package/dist/packages/runtime/schemas/context-graphs.d.ts +1522 -0
- package/dist/packages/runtime/schemas/context-graphs.js +110 -0
- package/dist/packages/runtime/schemas/files.d.ts +7 -347
- package/dist/packages/runtime/schemas/files.js +1 -24
- package/dist/packages/runtime/schemas/index.d.ts +1 -0
- package/dist/packages/runtime/schemas/index.js +1 -0
- package/dist/packages/runtime/schemas/jobs.js +4 -0
- package/dist/packages/runtime/schemas/projects.d.ts +48 -21
- package/dist/packages/runtime/schemas/projects.js +34 -10
- package/dist/packages/runtime/schemas/runs.d.ts +1009 -240
- package/dist/packages/runtime/schemas/runs.js +17 -0
- package/dist/packages/runtime/service/openapi.js +1 -0
- package/dist/packages/runtime/service/operations.d.ts +1666 -145
- package/dist/packages/runtime/service/operations.js +147 -17
- package/dist/packages/runtime/service/routes.d.ts +11 -3
- package/dist/packages/runtime/service/routes.js +11 -3
- package/dist/packages/runtime/service/server-app-boot.js +2 -2
- package/dist/packages/runtime/service/server-helpers.d.ts +11 -0
- package/dist/packages/runtime/service/server-helpers.js +19 -0
- package/dist/packages/runtime/service/server-routes-action-proposals.js +4 -2
- package/dist/packages/runtime/service/server-routes-agents.js +19 -85
- package/dist/packages/runtime/service/server-routes-build-plans.js +14 -11
- package/dist/packages/runtime/service/server-routes-project-context.js +102 -7
- package/dist/packages/runtime/service/server-routes-project-jobs.js +19 -12
- package/dist/packages/runtime/service/server-routes-project-runs.js +5 -2
- package/dist/packages/runtime/service/server-routes-projects.js +6 -2
- package/dist/packages/runtime/service/server-routes-runs.js +11 -4
- package/dist/packages/runtime/verify/lib/schema.js +12 -0
- package/dist/packages/runtime/verify/test-file-guard.d.ts +2 -0
- package/dist/packages/runtime/verify/test-file-guard.js +29 -0
- package/dist/packages/runtime/verify/verify-execution.d.ts +7 -0
- package/dist/packages/runtime/verify/verify-execution.js +109 -35
- package/dist/packages/runtime/verify/verify-paths.d.ts +1 -0
- package/dist/packages/runtime/verify/verify-paths.js +4 -0
- package/dist/packages/runtime/verify/verify-specs.js +49 -39
- package/dist/packages/runtime/wire-schemas.d.ts +1 -1
- package/dist/packages/runtime/wire-schemas.js +1 -1
- package/package.json +2 -8
- package/public-repo/CONTRIBUTING.md +10 -3
- package/public-repo/README.md +122 -226
- package/public-repo/build-plans/interf-default/README.md +15 -12
- package/public-repo/build-plans/interf-default/build/stages/entrypoint/SKILL.md +74 -0
- package/public-repo/build-plans/interf-default/build/stages/knowledge/SKILL.md +95 -0
- package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +38 -5
- package/public-repo/build-plans/interf-default/build-plan.json +27 -23
- package/public-repo/build-plans/interf-default/build-plan.schema.json +24 -20
- package/public-repo/build-plans/interf-default/use/query/SKILL.md +8 -7
- package/public-repo/openapi/local-service.openapi.json +11637 -4213
- package/public-repo/skills/interf/SKILL.md +174 -134
- package/dist/packages/runtime/build/runtime-paths.d.ts +0 -8
- package/dist/packages/runtime/build/runtime-paths.js +0 -26
- package/dist/packages/runtime/build/state-paths.d.ts +0 -7
- package/dist/packages/runtime/build/state-paths.js +0 -22
- package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +0 -34
- package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +0 -28
|
@@ -109,8 +109,8 @@ const BUILD_PLAN_AUTHORING_INTERNAL_INSTRUCTION = /Use the attached values as th
|
|
|
109
109
|
const BUILD_PLAN_AUTHORING_LABELS = [
|
|
110
110
|
"Intent",
|
|
111
111
|
"Context Graph output",
|
|
112
|
-
"
|
|
113
|
-
"
|
|
112
|
+
"Coverage",
|
|
113
|
+
"Ready When",
|
|
114
114
|
"CLI preview",
|
|
115
115
|
];
|
|
116
116
|
function normalizeBuildPlanAuthoringText(value) {
|
|
@@ -144,19 +144,19 @@ export function buildPlanAuthoringPromptFallback(message, buildPlanId) {
|
|
|
144
144
|
.trim();
|
|
145
145
|
const agentWork = extractBuildPlanAuthoringSection(cleaned, "Intent");
|
|
146
146
|
const portableOutput = extractBuildPlanAuthoringSection(cleaned, "Context Graph output");
|
|
147
|
-
const
|
|
148
|
-
extractBuildPlanAuthoringSection(cleaned, "
|
|
147
|
+
const coverageNotes = extractBuildPlanAuthoringSection(cleaned, "Coverage") ??
|
|
148
|
+
extractBuildPlanAuthoringSection(cleaned, "Ready When");
|
|
149
149
|
const lines = [
|
|
150
150
|
agentWork ? `Intent: ${stripBuildPlanCommandPrefix(agentWork, buildPlanId)}` : null,
|
|
151
151
|
portableOutput ? `Context Graph output: ${portableOutput}` : null,
|
|
152
|
-
|
|
152
|
+
coverageNotes ? `Coverage: ${coverageNotes}` : null,
|
|
153
153
|
].filter((line) => Boolean(line));
|
|
154
154
|
if (lines.length > 0)
|
|
155
155
|
return lines.join("\n");
|
|
156
156
|
return stripBuildPlanCommandPrefix(cleaned, buildPlanId);
|
|
157
157
|
}
|
|
158
158
|
export function buildPlanAuthoringHintFromPrompt(prompt) {
|
|
159
|
-
const plain = normalizeBuildPlanAuthoringText(prompt.replace(/\b(?:Intent|Context Graph output|
|
|
159
|
+
const plain = normalizeBuildPlanAuthoringText(prompt.replace(/\b(?:Intent|Context Graph output|Coverage|Ready When)\s*:/gi, " "));
|
|
160
160
|
if (plain.length <= 180)
|
|
161
161
|
return plain || "Custom Build Plan";
|
|
162
162
|
const clipped = plain.slice(0, 177).replace(/\s+\S*$/, "").trim();
|
|
@@ -37,12 +37,11 @@ export declare function logsForExecutionStageLedger(run: ExecutionStageLedger |
|
|
|
37
37
|
} | undefined;
|
|
38
38
|
export declare function readinessTargetResult(summary: TestRunTargetSummary | null | undefined, currentFingerprint: string | null, benchmarkRunFingerprint: string | null | undefined): VerifyTargetResult | null;
|
|
39
39
|
export declare function readinessSummaryForStatus(status: Readiness["status"]): string;
|
|
40
|
-
export declare function readinessStateToProjectReadiness(readiness: Readiness): Readiness;
|
|
41
40
|
export declare function buildProjectResource(project: ProjectConfig, readiness: Readiness, latestRunIds: {
|
|
42
41
|
latestBuildRunId: string | null;
|
|
43
42
|
latestContextGraphBuildRunId: string | null;
|
|
44
43
|
latestTestRunId: string | null;
|
|
45
|
-
}, sourcePath: string, configPath: string, artifacts?: ProjectResource["artifacts"]): ProjectResource;
|
|
44
|
+
}, sourcePath: string, configPath: string, artifacts?: ProjectResource["artifacts"], updatedAt?: string | null): ProjectResource;
|
|
46
45
|
export declare function buildBuildPlanResource(resource: {
|
|
47
46
|
id: string;
|
|
48
47
|
path: string;
|
|
@@ -56,6 +55,9 @@ export declare function buildBuildPlanResource(resource: {
|
|
|
56
55
|
inputs?: BuildPlanResource["inputs"];
|
|
57
56
|
source_kind: "builtin" | "local";
|
|
58
57
|
built_in: boolean;
|
|
58
|
+
scope: "builtin" | "user" | "local";
|
|
59
|
+
created_at?: string | null;
|
|
60
|
+
updated_at?: string | null;
|
|
59
61
|
active_for_projects: string[];
|
|
60
62
|
artifacts: Artifact[];
|
|
61
63
|
stages: BuildPlanResource["stages"];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ReadinessSchema, } from "../contracts/lib/schema.js";
|
|
2
1
|
import { buildPlanIdForProjectConfig, } from "../projects/source-config.js";
|
|
3
|
-
import { BuildPlanResourceSchema,
|
|
2
|
+
import { BuildPlanResourceSchema, } from "./schemas/index.js";
|
|
4
3
|
import { buildPlanContextChecks, } from "./context-checks.js";
|
|
5
4
|
export function createRunId(prefix) {
|
|
6
5
|
return `${prefix}_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
|
|
@@ -87,7 +86,7 @@ export function readinessSummaryForStatus(status) {
|
|
|
87
86
|
if (status === "ready")
|
|
88
87
|
return "Ready for agent task.";
|
|
89
88
|
if (status === "not-ready")
|
|
90
|
-
return "
|
|
89
|
+
return "Context Graph is missing required coverage for the agent task.";
|
|
91
90
|
if (status === "stale")
|
|
92
91
|
return "Benchmark result is stale — saved checks have changed since.";
|
|
93
92
|
if (status === "checking")
|
|
@@ -99,39 +98,39 @@ export function readinessSummaryForStatus(status) {
|
|
|
99
98
|
if (status === "not-built")
|
|
100
99
|
return "Context Graph has not been built yet.";
|
|
101
100
|
if (status === "not-configured")
|
|
102
|
-
return "
|
|
101
|
+
return "Context Graph preparation is not configured.";
|
|
103
102
|
return "Latest Build failed.";
|
|
104
103
|
}
|
|
105
|
-
export function
|
|
106
|
-
return ReadinessSchema.parse({
|
|
107
|
-
...readiness,
|
|
108
|
-
checks: readiness.checks.map((check) => ({ ...check })),
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
export function buildProjectResource(project, readiness, latestRunIds, sourcePath, configPath, artifacts = []) {
|
|
104
|
+
export function buildProjectResource(project, readiness, latestRunIds, sourcePath, configPath, artifacts = [], updatedAt = null) {
|
|
112
105
|
const buildPlanId = buildPlanIdForProjectConfig(project);
|
|
113
106
|
const { latestBuildRunId, latestContextGraphBuildRunId, latestTestRunId, } = latestRunIds;
|
|
114
|
-
|
|
107
|
+
// Inputs are already contract-typed (ProjectConfig, Readiness, ArtifactStatus[]),
|
|
108
|
+
// so re-parsing the assembled object through ProjectResourceSchema can't catch
|
|
109
|
+
// any error the type checker doesn't already catch. Return a typed literal.
|
|
110
|
+
return {
|
|
115
111
|
id: project.name,
|
|
116
112
|
name: project.name,
|
|
117
113
|
source: {
|
|
118
114
|
kind: "local-folder",
|
|
119
115
|
locator: sourcePath,
|
|
120
116
|
},
|
|
117
|
+
intent: project.intent ?? "",
|
|
121
118
|
config: project,
|
|
122
119
|
config_path: configPath,
|
|
123
120
|
source_path: sourcePath,
|
|
121
|
+
updated_at: updatedAt,
|
|
124
122
|
build_plan_id: buildPlanId,
|
|
125
123
|
context_graph: {
|
|
126
124
|
project: project.name,
|
|
127
125
|
path: readiness.context_graph_path,
|
|
128
126
|
exists: readiness.context_graph_path !== null,
|
|
127
|
+
intent: project.intent ?? "",
|
|
129
128
|
build_plan_id: buildPlanId,
|
|
130
129
|
latest_build_run_id: latestContextGraphBuildRunId,
|
|
131
130
|
latest_benchmark_run_id: latestTestRunId,
|
|
132
131
|
},
|
|
133
132
|
context_graph_path: readiness.context_graph_path,
|
|
134
|
-
readiness
|
|
133
|
+
readiness,
|
|
135
134
|
runs: {
|
|
136
135
|
latest_build_run_id: latestBuildRunId,
|
|
137
136
|
latest_benchmark_run_id: latestTestRunId,
|
|
@@ -139,13 +138,16 @@ export function buildProjectResource(project, readiness, latestRunIds, sourcePat
|
|
|
139
138
|
latest_build_run_id: latestBuildRunId,
|
|
140
139
|
latest_benchmark_run_id: latestTestRunId,
|
|
141
140
|
artifacts,
|
|
142
|
-
}
|
|
141
|
+
};
|
|
143
142
|
}
|
|
144
143
|
export function buildBuildPlanResource(resource) {
|
|
145
144
|
return BuildPlanResourceSchema.parse({
|
|
146
145
|
id: resource.id,
|
|
147
146
|
build_plan_id: resource.id,
|
|
148
147
|
path: resource.path,
|
|
148
|
+
scope: resource.scope,
|
|
149
|
+
created_at: resource.created_at ?? null,
|
|
150
|
+
updated_at: resource.updated_at ?? null,
|
|
149
151
|
...(resource.label ? { label: resource.label } : {}),
|
|
150
152
|
...(resource.hint ? { hint: resource.hint } : {}),
|
|
151
153
|
...(resource.purpose
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LocalJobStatus } from "./schemas/jobs.js";
|
|
2
|
+
/**
|
|
3
|
+
* Single source of truth for the terminal-status three-state check.
|
|
4
|
+
*
|
|
5
|
+
* A Run/Job is terminal when it has reached `succeeded`, `failed`, or
|
|
6
|
+
* `cancelled` — the same set across every record model (LocalJobRun,
|
|
7
|
+
* BuildRun, VerifyRun), all of which share the canonical run-status enum
|
|
8
|
+
* (`RunStatusSchema` in `schemas/jobs.ts`, re-aliased as
|
|
9
|
+
* `BuildRunStatusSchema`/`VerifyRunStatusSchema`).
|
|
10
|
+
*
|
|
11
|
+
* Accepts a plain `string` so callers that only have a wire-level status
|
|
12
|
+
* string can reuse the same predicate without re-implementing it.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isTerminalStatus(status: LocalJobStatus | string): boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the terminal-status three-state check.
|
|
3
|
+
*
|
|
4
|
+
* A Run/Job is terminal when it has reached `succeeded`, `failed`, or
|
|
5
|
+
* `cancelled` — the same set across every record model (LocalJobRun,
|
|
6
|
+
* BuildRun, VerifyRun), all of which share the canonical run-status enum
|
|
7
|
+
* (`RunStatusSchema` in `schemas/jobs.ts`, re-aliased as
|
|
8
|
+
* `BuildRunStatusSchema`/`VerifyRunStatusSchema`).
|
|
9
|
+
*
|
|
10
|
+
* Accepts a plain `string` so callers that only have a wire-level status
|
|
11
|
+
* string can reuse the same predicate without re-implementing it.
|
|
12
|
+
*/
|
|
13
|
+
export function isTerminalStatus(status) {
|
|
14
|
+
return status === "succeeded" || status === "failed" || status === "cancelled";
|
|
15
|
+
}
|
|
@@ -8,6 +8,7 @@ import { createRunId } from "./runtime-resource-builders.js";
|
|
|
8
8
|
import { LocalRunHandlerResultSchema, VerifyRunCreateRequestSchema, VerifyRunResourceSchema, } from "./schemas/index.js";
|
|
9
9
|
import { readSavedBenchmarkRun } from "./verify/benchmark-run.js";
|
|
10
10
|
import { createContextGraphTestTarget } from "./verify/verify-targets.js";
|
|
11
|
+
import { isTerminalStatus } from "./runtime-status.js";
|
|
11
12
|
function requestedAgentExecutorInfo(agentName, registry = loadAgentsRegistry()) {
|
|
12
13
|
const requested = agentName?.trim();
|
|
13
14
|
if (!requested)
|
|
@@ -30,9 +31,6 @@ export function benchmarkFanoutAgentNames(registry) {
|
|
|
30
31
|
.filter((agent) => agent.available !== false)
|
|
31
32
|
.map((agent) => agent.name))];
|
|
32
33
|
}
|
|
33
|
-
function isTerminalVerifyStatus(status) {
|
|
34
|
-
return status === "succeeded" || status === "failed" || status === "cancelled";
|
|
35
|
-
}
|
|
36
34
|
export function latestTopLevelVerifyRun(runs) {
|
|
37
35
|
return runs.find((run) => !run.parent_run_id) ?? runs[0] ?? null;
|
|
38
36
|
}
|
|
@@ -40,7 +38,7 @@ export function summarizeVerifyBatch(childRunIds, children) {
|
|
|
40
38
|
return {
|
|
41
39
|
child_run_ids: childRunIds,
|
|
42
40
|
total_agents: childRunIds.length,
|
|
43
|
-
completed_agents: children.filter((run) =>
|
|
41
|
+
completed_agents: children.filter((run) => isTerminalStatus(run.status)).length,
|
|
44
42
|
succeeded_agents: children.filter((run) => run.status === "succeeded").length,
|
|
45
43
|
failed_agents: children.filter((run) => run.status === "failed" || run.status === "cancelled").length,
|
|
46
44
|
};
|
|
@@ -237,7 +235,7 @@ function updateVerifyBatchRun(runtime, projectDataDir, contextGraphPath, parentR
|
|
|
237
235
|
.filter((run) => run !== null);
|
|
238
236
|
const batch = summarizeVerifyBatch(childRunIds, children);
|
|
239
237
|
const status = statusForBatch(batch);
|
|
240
|
-
const terminal =
|
|
238
|
+
const terminal = isTerminalStatus(status);
|
|
241
239
|
const nextWithoutReadiness = VerifyRunResourceSchema.parse({
|
|
242
240
|
...parent,
|
|
243
241
|
status,
|
|
@@ -267,6 +265,9 @@ export function writeVerifyRun(runtime, projectDataDir, contextGraphPath, run) {
|
|
|
267
265
|
writeJsonFile(verifyRunPath(contextGraphPath, run.run_id), VerifyRunResourceSchema.parse(run));
|
|
268
266
|
runtime.verifyRunCache.invalidateProject(projectDataDir, run.project);
|
|
269
267
|
runtime.readinessCache.invalidateProject(projectDataDir, run.project);
|
|
268
|
+
// The Context Graph resource embeds the joined readiness verdict and latest
|
|
269
|
+
// benchmark run id, so bust it whenever a benchmark run is written.
|
|
270
|
+
runtime.contextGraphResourceCache.invalidateProject(projectDataDir);
|
|
270
271
|
}
|
|
271
272
|
export function readLatestBenchmarkRun(projectDataDir, projectName) {
|
|
272
273
|
return readSavedBenchmarkRun(projectDataDir, projectName);
|