harness-engineering-agent 0.1.8 → 0.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/README.md +146 -60
- package/dist/agent/harness-agent-capabilities.d.ts +4 -0
- package/dist/agent/harness-agent-capabilities.d.ts.map +1 -0
- package/dist/agent/harness-agent-capabilities.js +4 -0
- package/dist/agent/harness-agent-capabilities.js.map +1 -0
- package/dist/agent/harness-agent-capability-builders.d.ts +11 -0
- package/dist/agent/harness-agent-capability-builders.d.ts.map +1 -0
- package/dist/agent/harness-agent-capability-builders.js +57 -0
- package/dist/agent/harness-agent-capability-builders.js.map +1 -0
- package/dist/agent/harness-agent-capability-data.d.ts +3 -0
- package/dist/agent/harness-agent-capability-data.d.ts.map +1 -0
- package/dist/agent/harness-agent-capability-data.js +23 -0
- package/dist/agent/harness-agent-capability-data.js.map +1 -0
- package/dist/agent/harness-agent-capability-types.d.ts +50 -0
- package/dist/agent/harness-agent-capability-types.d.ts.map +1 -0
- package/dist/agent/harness-agent-capability-types.js +3 -0
- package/dist/agent/harness-agent-capability-types.js.map +1 -0
- package/dist/agent/harness-role-capability-directory-data.d.ts +3 -0
- package/dist/agent/harness-role-capability-directory-data.d.ts.map +1 -0
- package/dist/agent/harness-role-capability-directory-data.js +208 -0
- package/dist/agent/harness-role-capability-directory-data.js.map +1 -0
- package/dist/agent/harness-role-capability-directory.d.ts +43 -0
- package/dist/agent/harness-role-capability-directory.d.ts.map +1 -0
- package/dist/agent/harness-role-capability-directory.js +57 -0
- package/dist/agent/harness-role-capability-directory.js.map +1 -0
- package/dist/agent/index.d.ts +7 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/config/config-defaults.d.ts +22 -0
- package/dist/config/config-defaults.d.ts.map +1 -1
- package/dist/config/config-defaults.js +22 -0
- package/dist/config/config-defaults.js.map +1 -1
- package/dist/config/config-merge.d.ts.map +1 -1
- package/dist/config/config-merge.js +30 -0
- package/dist/config/config-merge.js.map +1 -1
- package/dist/config/config-schema.d.ts +59 -0
- package/dist/config/config-schema.d.ts.map +1 -1
- package/dist/config/config-schema.js +18 -1
- package/dist/config/config-schema.js.map +1 -1
- package/dist/config/config-types.d.ts +5 -1
- package/dist/config/config-types.d.ts.map +1 -1
- package/dist/config/harness-config.d.ts +2 -1
- package/dist/config/harness-config.d.ts.map +1 -1
- package/dist/config/harness-config.js +1 -0
- package/dist/config/harness-config.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/opencode-compatibility.d.ts +37 -0
- package/dist/config/opencode-compatibility.d.ts.map +1 -0
- package/dist/config/opencode-compatibility.js +99 -0
- package/dist/config/opencode-compatibility.js.map +1 -0
- package/dist/controller/agent-output.d.ts +1 -1
- package/dist/controller/agent-output.d.ts.map +1 -1
- package/dist/controller/agent-output.js +18 -1
- package/dist/controller/agent-output.js.map +1 -1
- package/dist/controller/agent-session-types.d.ts +56 -0
- package/dist/controller/agent-session-types.d.ts.map +1 -0
- package/dist/controller/agent-session-types.js +2 -0
- package/dist/controller/agent-session-types.js.map +1 -0
- package/dist/controller/agent-session-utils.d.ts +52 -0
- package/dist/controller/agent-session-utils.d.ts.map +1 -0
- package/dist/controller/agent-session-utils.js +118 -0
- package/dist/controller/agent-session-utils.js.map +1 -0
- package/dist/controller/agent-session.d.ts +2 -55
- package/dist/controller/agent-session.d.ts.map +1 -1
- package/dist/controller/agent-session.js +82 -129
- package/dist/controller/agent-session.js.map +1 -1
- package/dist/controller/contracts.d.ts +3 -2
- package/dist/controller/contracts.d.ts.map +1 -1
- package/dist/controller/contracts.js.map +1 -1
- package/dist/controller/evidence-factory.js +7 -1
- package/dist/controller/evidence-factory.js.map +1 -1
- package/dist/controller/failure-analysis.d.ts +12 -0
- package/dist/controller/failure-analysis.d.ts.map +1 -1
- package/dist/controller/failure-analysis.js +41 -0
- package/dist/controller/failure-analysis.js.map +1 -1
- package/dist/controller/failure-analyzer-schemas.d.ts +87 -0
- package/dist/controller/failure-analyzer-schemas.d.ts.map +1 -0
- package/dist/controller/failure-analyzer-schemas.js +117 -0
- package/dist/controller/failure-analyzer-schemas.js.map +1 -0
- package/dist/controller/graph-validator.js +18 -4
- package/dist/controller/graph-validator.js.map +1 -1
- package/dist/controller/index.d.ts +7 -2
- package/dist/controller/index.d.ts.map +1 -1
- package/dist/controller/index.js +4 -1
- package/dist/controller/index.js.map +1 -1
- package/dist/controller/repair-loop.d.ts +1 -1
- package/dist/controller/repair-loop.d.ts.map +1 -1
- package/dist/controller/repair-loop.js +28 -0
- package/dist/controller/repair-loop.js.map +1 -1
- package/dist/controller/report-factory.d.ts.map +1 -1
- package/dist/controller/report-factory.js +49 -21
- package/dist/controller/report-factory.js.map +1 -1
- package/dist/controller/role-prompts.d.ts +2 -1
- package/dist/controller/role-prompts.d.ts.map +1 -1
- package/dist/controller/role-prompts.js +3 -9
- package/dist/controller/role-prompts.js.map +1 -1
- package/dist/controller/run-acceptance.d.ts +17 -0
- package/dist/controller/run-acceptance.d.ts.map +1 -0
- package/dist/controller/run-acceptance.js +179 -0
- package/dist/controller/run-acceptance.js.map +1 -0
- package/dist/controller/run-controller.d.ts.map +1 -1
- package/dist/controller/run-controller.js +244 -22
- package/dist/controller/run-controller.js.map +1 -1
- package/dist/controller/session-tool-authorization.d.ts +14 -0
- package/dist/controller/session-tool-authorization.d.ts.map +1 -0
- package/dist/controller/session-tool-authorization.js +88 -0
- package/dist/controller/session-tool-authorization.js.map +1 -0
- package/dist/controller/task-agent-output.d.ts +13 -2
- package/dist/controller/task-agent-output.d.ts.map +1 -1
- package/dist/controller/task-agent-output.js +58 -1
- package/dist/controller/task-agent-output.js.map +1 -1
- package/dist/controller/task-agent-schemas.d.ts +745 -26
- package/dist/controller/task-agent-schemas.d.ts.map +1 -1
- package/dist/controller/task-agent-schemas.js +70 -21
- package/dist/controller/task-agent-schemas.js.map +1 -1
- package/dist/controller/task-executor.d.ts +1 -1
- package/dist/controller/task-executor.d.ts.map +1 -1
- package/dist/controller/task-executor.js +269 -105
- package/dist/controller/task-executor.js.map +1 -1
- package/dist/doctor/cli.d.ts +3 -0
- package/dist/doctor/cli.d.ts.map +1 -0
- package/dist/doctor/cli.js +10 -0
- package/dist/doctor/cli.js.map +1 -0
- package/dist/doctor/index.d.ts +7 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +16 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/local-mcp-probe.d.ts +3 -0
- package/dist/doctor/local-mcp-probe.d.ts.map +1 -0
- package/dist/doctor/local-mcp-probe.js +151 -0
- package/dist/doctor/local-mcp-probe.js.map +1 -0
- package/dist/doctor/opencode-config.d.ts +43 -0
- package/dist/doctor/opencode-config.d.ts.map +1 -0
- package/dist/doctor/opencode-config.js +103 -0
- package/dist/doctor/opencode-config.js.map +1 -0
- package/dist/doctor/run-harness-doctor.d.ts +23 -0
- package/dist/doctor/run-harness-doctor.d.ts.map +1 -0
- package/dist/doctor/run-harness-doctor.js +176 -0
- package/dist/doctor/run-harness-doctor.js.map +1 -0
- package/dist/doctor/types.d.ts +69 -0
- package/dist/doctor/types.d.ts.map +1 -0
- package/dist/doctor/types.js +8 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/domain/acceptance-criteria.d.ts +9 -0
- package/dist/domain/acceptance-criteria.d.ts.map +1 -0
- package/dist/domain/acceptance-criteria.js +38 -0
- package/dist/domain/acceptance-criteria.js.map +1 -0
- package/dist/domain/context-package.d.ts +43 -0
- package/dist/domain/context-package.d.ts.map +1 -0
- package/dist/domain/context-package.js +54 -0
- package/dist/domain/context-package.js.map +1 -0
- package/dist/domain/evidence.d.ts +1 -0
- package/dist/domain/evidence.d.ts.map +1 -1
- package/dist/domain/evidence.js +1 -2
- package/dist/domain/evidence.js.map +1 -1
- package/dist/domain/index.d.ts +14 -4
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +7 -2
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/plan-artifacts.d.ts +170 -0
- package/dist/domain/plan-artifacts.d.ts.map +1 -0
- package/dist/domain/plan-artifacts.js +187 -0
- package/dist/domain/plan-artifacts.js.map +1 -0
- package/dist/domain/project-context.d.ts +10 -0
- package/dist/domain/project-context.d.ts.map +1 -0
- package/dist/domain/project-context.js +11 -0
- package/dist/domain/project-context.js.map +1 -0
- package/dist/domain/report.d.ts +608 -11
- package/dist/domain/report.d.ts.map +1 -1
- package/dist/domain/report.js +6 -4
- package/dist/domain/report.js.map +1 -1
- package/dist/domain/requirement.d.ts +22 -2
- package/dist/domain/requirement.d.ts.map +1 -1
- package/dist/domain/requirement.js +26 -3
- package/dist/domain/requirement.js.map +1 -1
- package/dist/domain/run-acceptance.d.ts +33 -0
- package/dist/domain/run-acceptance.d.ts.map +1 -0
- package/dist/domain/run-acceptance.js +29 -0
- package/dist/domain/run-acceptance.js.map +1 -0
- package/dist/domain/run.d.ts +596 -7
- package/dist/domain/run.d.ts.map +1 -1
- package/dist/domain/run.js +58 -0
- package/dist/domain/run.js.map +1 -1
- package/dist/domain/shared.d.ts +40 -2
- package/dist/domain/shared.d.ts.map +1 -1
- package/dist/domain/shared.js +26 -0
- package/dist/domain/shared.js.map +1 -1
- package/dist/domain/task-review.d.ts +57 -0
- package/dist/domain/task-review.d.ts.map +1 -0
- package/dist/domain/task-review.js +63 -0
- package/dist/domain/task-review.js.map +1 -0
- package/dist/domain/task.d.ts +24 -2
- package/dist/domain/task.d.ts.map +1 -1
- package/dist/domain/task.js +20 -12
- package/dist/domain/task.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/create-harness-plugin.d.ts +4 -28
- package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
- package/dist/plugin/create-harness-plugin.js +33 -166
- package/dist/plugin/create-harness-plugin.js.map +1 -1
- package/dist/plugin/harness-agent-config.d.ts +7 -0
- package/dist/plugin/harness-agent-config.d.ts.map +1 -1
- package/dist/plugin/harness-agent-config.js +72 -118
- package/dist/plugin/harness-agent-config.js.map +1 -1
- package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
- package/dist/plugin/harness-chat-protocol.js +29 -6
- package/dist/plugin/harness-chat-protocol.js.map +1 -1
- package/dist/plugin/harness-plugin-identifiers.d.ts +5 -0
- package/dist/plugin/harness-plugin-identifiers.d.ts.map +1 -0
- package/dist/plugin/harness-plugin-identifiers.js +24 -0
- package/dist/plugin/harness-plugin-identifiers.js.map +1 -0
- package/dist/plugin/harness-plugin-runtime.d.ts +64 -0
- package/dist/plugin/harness-plugin-runtime.d.ts.map +1 -0
- package/dist/plugin/harness-plugin-runtime.js +125 -0
- package/dist/plugin/harness-plugin-runtime.js.map +1 -0
- package/dist/plugin/harness-plugin-scheduler.d.ts +16 -0
- package/dist/plugin/harness-plugin-scheduler.d.ts.map +1 -0
- package/dist/plugin/harness-plugin-scheduler.js +51 -0
- package/dist/plugin/harness-plugin-scheduler.js.map +1 -0
- package/dist/plugin/harness-requirement.d.ts +1 -1
- package/dist/plugin/harness-requirement.d.ts.map +1 -1
- package/dist/plugin/harness-requirement.js +2 -3
- package/dist/plugin/harness-requirement.js.map +1 -1
- package/dist/session/contracts.d.ts +9 -0
- package/dist/session/contracts.d.ts.map +1 -1
- package/dist/session/contracts.js.map +1 -1
- package/dist/session/fake-session-adapter.d.ts.map +1 -1
- package/dist/session/fake-session-adapter.js +1 -0
- package/dist/session/fake-session-adapter.js.map +1 -1
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/opencode-session-adapter.d.ts +2 -1
- package/dist/session/opencode-session-adapter.d.ts.map +1 -1
- package/dist/session/opencode-session-adapter.js +7 -2
- package/dist/session/opencode-session-adapter.js.map +1 -1
- package/dist/session/opencode-session-prompts.d.ts +2 -10
- package/dist/session/opencode-session-prompts.d.ts.map +1 -1
- package/dist/session/opencode-session-prompts.js +7 -9
- package/dist/session/opencode-session-prompts.js.map +1 -1
- package/dist/store/run-event.d.ts +596 -7
- package/dist/store/run-event.d.ts.map +1 -1
- package/dist/tools/harness-research-tools.d.ts +22 -0
- package/dist/tools/harness-research-tools.d.ts.map +1 -1
- package/dist/tools/harness-research-tools.js +173 -64
- package/dist/tools/harness-research-tools.js.map +1 -1
- package/dist/tools/harness-tool-capabilities.d.ts +342 -0
- package/dist/tools/harness-tool-capabilities.d.ts.map +1 -0
- package/dist/tools/harness-tool-capabilities.js +170 -0
- package/dist/tools/harness-tool-capabilities.js.map +1 -0
- package/dist/verification/command-policy.d.ts.map +1 -1
- package/dist/verification/command-policy.js +2 -2
- package/dist/verification/command-policy.js.map +1 -1
- package/dist/workspace/collect-project-context.d.ts +3 -0
- package/dist/workspace/collect-project-context.d.ts.map +1 -0
- package/dist/workspace/collect-project-context.js +92 -0
- package/dist/workspace/collect-project-context.js.map +1 -0
- package/dist/workspace/index.d.ts +1 -0
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -0
- package/dist/workspace/index.js.map +1 -1
- package/package.json +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/controller/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/controller/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/controller/contracts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/controller/contracts.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAA"}
|
|
@@ -2,6 +2,12 @@ import { EvidenceSchema, redactEvidenceSummary, } from "../domain/index.js";
|
|
|
2
2
|
import { VerificationExecutionStatus } from "../verification/index.js";
|
|
3
3
|
export const createEvidence = (input) => createEvidenceFromSummary(input, input.summary ?? input.record.output.stdout.summary);
|
|
4
4
|
const createEvidenceFromSummary = (input, rawSummary) => {
|
|
5
|
+
const acceptanceCriterionIds = input.acceptanceCriterionIds ?? [];
|
|
6
|
+
for (const criterionId of acceptanceCriterionIds) {
|
|
7
|
+
if (!input.task.acceptanceCriterionIds.includes(String(criterionId))) {
|
|
8
|
+
throw new TypeError(`criterion ${criterionId} is not declared by task ${input.task.taskId}`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
5
11
|
const sanitized = redactEvidenceSummary(rawSummary);
|
|
6
12
|
return EvidenceSchema.parse({
|
|
7
13
|
schemaVersion: "1.0.0",
|
|
@@ -23,7 +29,7 @@ const createEvidenceFromSummary = (input, rawSummary) => {
|
|
|
23
29
|
},
|
|
24
30
|
relatedRequirementIds: input.task.requirementIds,
|
|
25
31
|
relatedTaskIds: [input.task.taskId],
|
|
26
|
-
acceptanceCriterionIds
|
|
32
|
+
acceptanceCriterionIds,
|
|
27
33
|
});
|
|
28
34
|
};
|
|
29
35
|
const createOutcomeStatus = (record) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-factory.js","sourceRoot":"","sources":["../../src/controller/evidence-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEd,qBAAqB,GAEtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,2BAA2B,EAA8B,MAAM,0BAA0B,CAAA;AAGlG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAU9B,EAAY,EAAE,CACb,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAEvF,MAAM,yBAAyB,GAAG,CAChC,KAA2C,EAC3C,UAAkB,EACR,EAAE;IACZ,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IACnD,OAAO,cAAc,CAAC,KAAK,CAAC;QAC1B,aAAa,EAAE,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,cAAc;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QACzC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,OAAO,EAAE;YACP,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;YAC/B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YACnC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;YAC/C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;SAChD;QACD,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;QAChD,cAAc,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,sBAAsB
|
|
1
|
+
{"version":3,"file":"evidence-factory.js","sourceRoot":"","sources":["../../src/controller/evidence-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEd,qBAAqB,GAEtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,2BAA2B,EAA8B,MAAM,0BAA0B,CAAA;AAGlG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAU9B,EAAY,EAAE,CACb,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAEvF,MAAM,yBAAyB,GAAG,CAChC,KAA2C,EAC3C,UAAkB,EACR,EAAE;IACZ,MAAM,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAA;IACjE,KAAK,MAAM,WAAW,IAAI,sBAAsB,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CAAC,aAAa,WAAW,4BAA4B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IACnD,OAAO,cAAc,CAAC,KAAK,CAAC;QAC1B,aAAa,EAAE,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,cAAc;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QACzC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,OAAO,EAAE;YACP,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;YAC/B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YACnC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;YAC/C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;SAChD;QACD,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;QAChD,cAAc,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,sBAAsB;KACvB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,MAA6B,EAAuB,EAAE;IACjF,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,2BAA2B,CAAC,MAAM;YACrC,OAAO,QAAQ,CAAA;QACjB,KAAK,2BAA2B,CAAC,MAAM,CAAC;QACxC,KAAK,2BAA2B,CAAC,QAAQ;YACvC,OAAO,QAAQ,CAAA;IACnB,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -12,6 +12,18 @@ type FailureAnalysisContext = {
|
|
|
12
12
|
readonly analysis: FailureAnalyzerOutput;
|
|
13
13
|
};
|
|
14
14
|
export type FailureAnalysisResolution = {
|
|
15
|
+
readonly nextStatus: "executing";
|
|
16
|
+
readonly taskStatus: "failed";
|
|
17
|
+
readonly failure: Failure;
|
|
18
|
+
readonly result: ReturnType<typeof AgentResultSchema.parse>;
|
|
19
|
+
readonly eventType: "task.diagnostic.probe.required";
|
|
20
|
+
readonly eventPayload: {
|
|
21
|
+
readonly taskId: Task["taskId"];
|
|
22
|
+
readonly attempt: number;
|
|
23
|
+
readonly action: "probe";
|
|
24
|
+
readonly category: Failure["category"];
|
|
25
|
+
};
|
|
26
|
+
} | {
|
|
15
27
|
readonly nextStatus: "executing";
|
|
16
28
|
readonly taskStatus: "failed";
|
|
17
29
|
readonly failure: Failure;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure-analysis.d.ts","sourceRoot":"","sources":["../../src/controller/failure-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAC9F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAOhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEpE,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAA;IAC5C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;QACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;KACzC,CAAA;CACF,GACD;IACE,QAAQ,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACpF,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,6BAA6B,GAAG,cAAc,GAAG,aAAa,CAAA;IAClF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAA;CAC3E,CAAA;AAEL,eAAO,MAAM,sBAAsB,GACjC,SAAS,sBAAsB,KAC9B,
|
|
1
|
+
{"version":3,"file":"failure-analysis.d.ts","sourceRoot":"","sources":["../../src/controller/failure-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAC9F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAOhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEpE,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAA;IAC5C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAA;IACpD,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;QACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;KACvC,CAAA;CACF,GACD;IACE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;QACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;KACzC,CAAA;CACF,GACD;IACE,QAAQ,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACpF,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,6BAA6B,GAAG,cAAc,GAAG,aAAa,CAAA;IAClF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAA;CAC3E,CAAA;AAEL,eAAO,MAAM,sBAAsB,GACjC,SAAS,sBAAsB,KAC9B,yBA+NF,CAAA"}
|
|
@@ -4,6 +4,41 @@ export const resolveFailureAnalysis = (context) => {
|
|
|
4
4
|
const evidenceIds = context.evidence.map((item) => item.evidenceId);
|
|
5
5
|
const resultId = context.options.ids.createAgentResultId(`failure-analyzer-${context.task.taskId}-${context.attempt}`);
|
|
6
6
|
switch (context.analysis.action) {
|
|
7
|
+
case "probe": {
|
|
8
|
+
const failure = createImplementationFailure({
|
|
9
|
+
failureId: context.options.ids.createFailureId(`${context.task.taskId}-${context.attempt}-diagnostic-probe`),
|
|
10
|
+
runId: context.run.runId,
|
|
11
|
+
taskId: context.task.taskId,
|
|
12
|
+
summary: context.analysis.summary,
|
|
13
|
+
detail: context.analysis.diagnosticProbe.summary,
|
|
14
|
+
recoveryPlan: "Run the approved read-only diagnostic probe before authorizing repair.",
|
|
15
|
+
...(evidenceIds[0] === undefined ? {} : { failingEvidenceId: evidenceIds[0] }),
|
|
16
|
+
});
|
|
17
|
+
const result = AgentResultSchema.parse({
|
|
18
|
+
schemaVersion: "1.0.0",
|
|
19
|
+
resultId,
|
|
20
|
+
runId: context.run.runId,
|
|
21
|
+
taskId: context.task.taskId,
|
|
22
|
+
role: "failure-analyzer",
|
|
23
|
+
status: "failed",
|
|
24
|
+
summary: context.analysis.summary,
|
|
25
|
+
evidenceIds,
|
|
26
|
+
failureId: failure.failureId,
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
nextStatus: "executing",
|
|
30
|
+
taskStatus: "failed",
|
|
31
|
+
failure,
|
|
32
|
+
result,
|
|
33
|
+
eventType: "task.diagnostic.probe.required",
|
|
34
|
+
eventPayload: {
|
|
35
|
+
taskId: context.task.taskId,
|
|
36
|
+
attempt: context.attempt,
|
|
37
|
+
action: "probe",
|
|
38
|
+
category: context.analysis.category,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
7
42
|
case "repair": {
|
|
8
43
|
const failure = createImplementationFailure({
|
|
9
44
|
failureId: context.options.ids.createFailureId(`${context.task.taskId}-${context.attempt}-repair`),
|
|
@@ -170,6 +205,12 @@ export const resolveFailureAnalysis = (context) => {
|
|
|
170
205
|
},
|
|
171
206
|
};
|
|
172
207
|
}
|
|
208
|
+
default: {
|
|
209
|
+
return assertNever(context.analysis);
|
|
210
|
+
}
|
|
173
211
|
}
|
|
174
212
|
};
|
|
213
|
+
const assertNever = (value) => {
|
|
214
|
+
throw new TypeError(`unexpected failure analysis action: ${String(value)}`);
|
|
215
|
+
};
|
|
175
216
|
//# sourceMappingURL=failure-analysis.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure-analysis.js","sourceRoot":"","sources":["../../src/controller/failure-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA0C,MAAM,oBAAoB,CAAA;AAE9F,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"failure-analysis.js","sourceRoot":"","sources":["../../src/controller/failure-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const DiagnosticProbeSchema: z.ZodReadonly<z.ZodObject<{
|
|
3
|
+
summary: z.ZodString;
|
|
4
|
+
verificationCommand: z.ZodReadonly<z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
command: z.ZodString;
|
|
7
|
+
args: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
8
|
+
workingDirectory: z.ZodString;
|
|
9
|
+
scope: z.ZodLiteral<"task">;
|
|
10
|
+
sideEffectLevel: z.ZodLiteral<"read_only">;
|
|
11
|
+
timeoutMs: z.ZodNumber;
|
|
12
|
+
origin: z.ZodOptional<z.ZodLiteral<"failure-analyzer">>;
|
|
13
|
+
requiresConfirmation: z.ZodOptional<z.ZodLiteral<false>>;
|
|
14
|
+
confirmation: z.ZodOptional<z.ZodUndefined>;
|
|
15
|
+
allowedEnv: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
16
|
+
}, z.core.$strict>>;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
export type DiagnosticProbe = z.infer<typeof DiagnosticProbeSchema>;
|
|
19
|
+
export declare const normalizeFailureAnalyzerOutput: (input: unknown) => unknown;
|
|
20
|
+
export declare const FailureAnalyzerOutputSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
21
|
+
schemaVersion: z.ZodLiteral<"1.0.0">;
|
|
22
|
+
role: z.ZodLiteral<"failure-analyzer">;
|
|
23
|
+
action: z.ZodLiteral<"repair">;
|
|
24
|
+
summary: z.ZodString;
|
|
25
|
+
evidenceIds: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "EvidenceId">>>;
|
|
26
|
+
category: z.ZodLiteral<"implementation-defect">;
|
|
27
|
+
confirmedRootCause: z.ZodLiteral<true>;
|
|
28
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
29
|
+
schemaVersion: z.ZodLiteral<"1.0.0">;
|
|
30
|
+
role: z.ZodLiteral<"failure-analyzer">;
|
|
31
|
+
action: z.ZodLiteral<"probe">;
|
|
32
|
+
summary: z.ZodString;
|
|
33
|
+
evidenceIds: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "EvidenceId">>>;
|
|
34
|
+
category: z.ZodEnum<{
|
|
35
|
+
"context-gap": "context-gap";
|
|
36
|
+
"implementation-defect": "implementation-defect";
|
|
37
|
+
"verification-environment": "verification-environment";
|
|
38
|
+
}>;
|
|
39
|
+
diagnosticProbe: z.ZodReadonly<z.ZodObject<{
|
|
40
|
+
summary: z.ZodString;
|
|
41
|
+
verificationCommand: z.ZodReadonly<z.ZodObject<{
|
|
42
|
+
name: z.ZodString;
|
|
43
|
+
command: z.ZodString;
|
|
44
|
+
args: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
45
|
+
workingDirectory: z.ZodString;
|
|
46
|
+
scope: z.ZodLiteral<"task">;
|
|
47
|
+
sideEffectLevel: z.ZodLiteral<"read_only">;
|
|
48
|
+
timeoutMs: z.ZodNumber;
|
|
49
|
+
origin: z.ZodOptional<z.ZodLiteral<"failure-analyzer">>;
|
|
50
|
+
requiresConfirmation: z.ZodOptional<z.ZodLiteral<false>>;
|
|
51
|
+
confirmation: z.ZodOptional<z.ZodUndefined>;
|
|
52
|
+
allowedEnv: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
53
|
+
}, z.core.$strict>>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
56
|
+
schemaVersion: z.ZodLiteral<"1.0.0">;
|
|
57
|
+
role: z.ZodLiteral<"failure-analyzer">;
|
|
58
|
+
action: z.ZodLiteral<"clarify">;
|
|
59
|
+
summary: z.ZodString;
|
|
60
|
+
evidenceIds: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "EvidenceId">>>;
|
|
61
|
+
category: z.ZodEnum<{
|
|
62
|
+
"context-gap": "context-gap";
|
|
63
|
+
"requirement-ambiguity": "requirement-ambiguity";
|
|
64
|
+
}>;
|
|
65
|
+
missingContext: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
66
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
67
|
+
schemaVersion: z.ZodLiteral<"1.0.0">;
|
|
68
|
+
role: z.ZodLiteral<"failure-analyzer">;
|
|
69
|
+
action: z.ZodLiteral<"wait">;
|
|
70
|
+
summary: z.ZodString;
|
|
71
|
+
evidenceIds: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "EvidenceId">>>;
|
|
72
|
+
category: z.ZodLiteral<"dependency-blocked">;
|
|
73
|
+
blockedDependency: z.ZodString;
|
|
74
|
+
}, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
|
|
75
|
+
schemaVersion: z.ZodLiteral<"1.0.0">;
|
|
76
|
+
role: z.ZodLiteral<"failure-analyzer">;
|
|
77
|
+
action: z.ZodLiteral<"terminate">;
|
|
78
|
+
summary: z.ZodString;
|
|
79
|
+
evidenceIds: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "EvidenceId">>>;
|
|
80
|
+
category: z.ZodEnum<{
|
|
81
|
+
"verification-environment": "verification-environment";
|
|
82
|
+
"model-failure": "model-failure";
|
|
83
|
+
}>;
|
|
84
|
+
}, z.core.$strict>>]>>;
|
|
85
|
+
export type FailureAnalyzerOutput = z.infer<typeof FailureAnalyzerOutputSchema>;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=failure-analyzer-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-analyzer-schemas.d.ts","sourceRoot":"","sources":["../../src/controller/failure-analyzer-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;kBAoBd,CAAA;AAEb,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,8BAA8B,GAAI,OAAO,OAAO,KAAG,OA+B/D,CAAA;AAkED,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBASvC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EvidenceIdSchema, SchemaVersionSchema } from "../domain/index.js";
|
|
3
|
+
const DiagnosticProbeSchema = z
|
|
4
|
+
.object({
|
|
5
|
+
summary: z.string().trim().min(1),
|
|
6
|
+
verificationCommand: z
|
|
7
|
+
.object({
|
|
8
|
+
name: z.string().trim().min(1),
|
|
9
|
+
command: z.string().trim().min(1),
|
|
10
|
+
args: z.array(z.string()).readonly().optional(),
|
|
11
|
+
workingDirectory: z.string().trim().min(1),
|
|
12
|
+
scope: z.literal("task"),
|
|
13
|
+
sideEffectLevel: z.literal("read_only"),
|
|
14
|
+
timeoutMs: z.number().int().positive(),
|
|
15
|
+
origin: z.literal("failure-analyzer").optional(),
|
|
16
|
+
requiresConfirmation: z.literal(false).optional(),
|
|
17
|
+
confirmation: z.undefined().optional(),
|
|
18
|
+
allowedEnv: z.record(z.string(), z.string()).readonly().optional(),
|
|
19
|
+
})
|
|
20
|
+
.strict()
|
|
21
|
+
.readonly(),
|
|
22
|
+
})
|
|
23
|
+
.readonly();
|
|
24
|
+
export const normalizeFailureAnalyzerOutput = (input) => {
|
|
25
|
+
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
26
|
+
return input;
|
|
27
|
+
}
|
|
28
|
+
const normalized = { ...input };
|
|
29
|
+
const diagnosticProbe = Reflect.get(normalized, "diagnosticProbe");
|
|
30
|
+
const diagnosticProbeRequest = Reflect.get(normalized, "diagnosticProbeRequest");
|
|
31
|
+
if (diagnosticProbe === undefined && diagnosticProbeRequest !== undefined) {
|
|
32
|
+
Reflect.set(normalized, "diagnosticProbe", diagnosticProbeRequest);
|
|
33
|
+
}
|
|
34
|
+
Reflect.deleteProperty(normalized, "diagnosticProbeRequest");
|
|
35
|
+
const missingContext = Reflect.get(normalized, "missingContext");
|
|
36
|
+
const contextRequest = Reflect.get(normalized, "contextRequest");
|
|
37
|
+
if (missingContext === undefined && contextRequest !== undefined) {
|
|
38
|
+
const requestedMissingContext = Reflect.get(contextRequest, "missingContext");
|
|
39
|
+
if (requestedMissingContext !== undefined) {
|
|
40
|
+
Reflect.set(normalized, "missingContext", requestedMissingContext);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
Reflect.deleteProperty(normalized, "contextRequest");
|
|
44
|
+
const confirmedRootCause = Reflect.get(normalized, "confirmedRootCause");
|
|
45
|
+
if (confirmedRootCause === undefined && Reflect.get(normalized, "confirmed") !== undefined) {
|
|
46
|
+
Reflect.set(normalized, "confirmedRootCause", Reflect.get(normalized, "confirmed"));
|
|
47
|
+
}
|
|
48
|
+
Reflect.deleteProperty(normalized, "confirmed");
|
|
49
|
+
return normalized;
|
|
50
|
+
};
|
|
51
|
+
const FailureAnalyzerRepairSchema = z
|
|
52
|
+
.object({
|
|
53
|
+
schemaVersion: SchemaVersionSchema,
|
|
54
|
+
role: z.literal("failure-analyzer"),
|
|
55
|
+
action: z.literal("repair"),
|
|
56
|
+
summary: z.string().trim().min(1),
|
|
57
|
+
evidenceIds: z.array(EvidenceIdSchema).readonly(),
|
|
58
|
+
category: z.literal("implementation-defect"),
|
|
59
|
+
confirmedRootCause: z.literal(true),
|
|
60
|
+
})
|
|
61
|
+
.strict()
|
|
62
|
+
.readonly();
|
|
63
|
+
const FailureAnalyzerProbeSchema = z
|
|
64
|
+
.object({
|
|
65
|
+
schemaVersion: SchemaVersionSchema,
|
|
66
|
+
role: z.literal("failure-analyzer"),
|
|
67
|
+
action: z.literal("probe"),
|
|
68
|
+
summary: z.string().trim().min(1),
|
|
69
|
+
evidenceIds: z.array(EvidenceIdSchema).readonly(),
|
|
70
|
+
category: z.enum(["implementation-defect", "verification-environment", "context-gap"]),
|
|
71
|
+
diagnosticProbe: DiagnosticProbeSchema,
|
|
72
|
+
})
|
|
73
|
+
.strict()
|
|
74
|
+
.readonly();
|
|
75
|
+
const FailureAnalyzerClarifySchema = z
|
|
76
|
+
.object({
|
|
77
|
+
schemaVersion: SchemaVersionSchema,
|
|
78
|
+
role: z.literal("failure-analyzer"),
|
|
79
|
+
action: z.literal("clarify"),
|
|
80
|
+
summary: z.string().trim().min(1),
|
|
81
|
+
evidenceIds: z.array(EvidenceIdSchema).readonly(),
|
|
82
|
+
category: z.enum(["context-gap", "requirement-ambiguity"]),
|
|
83
|
+
missingContext: z.array(z.string().trim().min(1)).min(1).readonly(),
|
|
84
|
+
})
|
|
85
|
+
.strict()
|
|
86
|
+
.readonly();
|
|
87
|
+
const FailureAnalyzerWaitSchema = z
|
|
88
|
+
.object({
|
|
89
|
+
schemaVersion: SchemaVersionSchema,
|
|
90
|
+
role: z.literal("failure-analyzer"),
|
|
91
|
+
action: z.literal("wait"),
|
|
92
|
+
summary: z.string().trim().min(1),
|
|
93
|
+
evidenceIds: z.array(EvidenceIdSchema).readonly(),
|
|
94
|
+
category: z.literal("dependency-blocked"),
|
|
95
|
+
blockedDependency: z.string().trim().min(1),
|
|
96
|
+
})
|
|
97
|
+
.strict()
|
|
98
|
+
.readonly();
|
|
99
|
+
const FailureAnalyzerTerminateSchema = z
|
|
100
|
+
.object({
|
|
101
|
+
schemaVersion: SchemaVersionSchema,
|
|
102
|
+
role: z.literal("failure-analyzer"),
|
|
103
|
+
action: z.literal("terminate"),
|
|
104
|
+
summary: z.string().trim().min(1),
|
|
105
|
+
evidenceIds: z.array(EvidenceIdSchema).readonly(),
|
|
106
|
+
category: z.enum(["verification-environment", "model-failure"]),
|
|
107
|
+
})
|
|
108
|
+
.strict()
|
|
109
|
+
.readonly();
|
|
110
|
+
export const FailureAnalyzerOutputSchema = z.preprocess(normalizeFailureAnalyzerOutput, z.discriminatedUnion("action", [
|
|
111
|
+
FailureAnalyzerRepairSchema,
|
|
112
|
+
FailureAnalyzerProbeSchema,
|
|
113
|
+
FailureAnalyzerClarifySchema,
|
|
114
|
+
FailureAnalyzerWaitSchema,
|
|
115
|
+
FailureAnalyzerTerminateSchema,
|
|
116
|
+
]));
|
|
117
|
+
//# sourceMappingURL=failure-analyzer-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-analyzer-schemas.js","sourceRoot":"","sources":["../../src/controller/failure-analyzer-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,10 +61,24 @@ const validateTaskReferences = (tasks) => {
|
|
|
61
61
|
return issues;
|
|
62
62
|
};
|
|
63
63
|
const validateRequirementCoverage = (tasks, requirement) => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
64
|
+
const issues = [];
|
|
65
|
+
const declaredCriterionIds = new Set(requirement.acceptanceCriteria.map((criterion) => criterion.criterionId));
|
|
66
|
+
for (const task of tasks) {
|
|
67
|
+
for (const criterionId of task.acceptanceCriterionIds) {
|
|
68
|
+
if (!declaredCriterionIds.has(criterionId)) {
|
|
69
|
+
issues.push(`Task ${task.taskId} references unknown acceptance criterion ${criterionId}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
for (const criterion of requirement.acceptanceCriteria) {
|
|
74
|
+
const hasCoveringTask = tasks.some((task) => task.requirementIds.includes(requirement.requirementId) &&
|
|
75
|
+
task.acceptanceCriterionIds.includes(criterion.criterionId) &&
|
|
76
|
+
task.verificationPlan.length > 0);
|
|
77
|
+
if (!hasCoveringTask) {
|
|
78
|
+
issues.push(`Requirement criterion ${criterion.criterionId} is not covered by any task`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return issues;
|
|
68
82
|
};
|
|
69
83
|
const validateAcyclic = (tasks) => {
|
|
70
84
|
const taskById = new Map(tasks.map((task) => [task.taskId, task]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-validator.js","sourceRoot":"","sources":["../../src/controller/graph-validator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"graph-validator.js","sourceRoot":"","sources":["../../src/controller/graph-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
export type { WorkspaceAdapter, WorkspaceChangeAssessment, WorkspacePolicy, } from "../workspace/index.js";
|
|
2
2
|
export { createGitWorkspaceAdapter, createGitWorktreeAdapter } from "../workspace/index.js";
|
|
3
|
-
export {
|
|
4
|
-
export type {
|
|
3
|
+
export { createAgentSessionRuntime } from "./agent-session.js";
|
|
4
|
+
export type { AbandonSessionInput, AgentSessionRuntime, RebindSessionInput, SendAgentInput, } from "./agent-session-types.js";
|
|
5
|
+
export type { OrphanSession } from "./agent-session-utils.js";
|
|
6
|
+
export type { AnswerRunInput, ControllerClock, ControllerIdSource, CreateRunControllerOptions, PauseRunInput, RunBudgetKind, RunController, WaiveRunInput, } from "./contracts.js";
|
|
5
7
|
export { AgentOutputParseError, AgentRunFailedError, GraphValidationError } from "./errors.js";
|
|
6
8
|
export { createEvidence } from "./evidence-factory.js";
|
|
7
9
|
export { orderTasks, validateTaskGraph } from "./graph-validator.js";
|
|
8
10
|
export { createReport } from "./report-factory.js";
|
|
11
|
+
export { plannerTaskPrompt, roleSystemPrompt } from "./role-prompts.js";
|
|
12
|
+
export { finalizeRunAcceptance } from "./run-acceptance.js";
|
|
9
13
|
export { createRunController } from "./run-controller.js";
|
|
10
14
|
export { createRunPersistence, type RunPersistence } from "./run-persistence.js";
|
|
15
|
+
export { authorizeSessionToolExecution } from "./session-tool-authorization.js";
|
|
11
16
|
export type { WorktreeEligibilityDecision, WorktreeEligibilityReason, } from "./worktree-eligibility.js";
|
|
12
17
|
export { analyzeWorktreeEligibility } from "./worktree-eligibility.js";
|
|
13
18
|
export type { WorktreeScheduler, WorktreeSchedulerInput, WorktreeSchedulerResult, WorktreeTaskResult, } from "./worktree-scheduler.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controller/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAC3F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controller/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AACtE,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/controller/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export { createGitWorkspaceAdapter, createGitWorktreeAdapter } from "../workspace/index.js";
|
|
2
|
-
export { createAgentSessionRuntime
|
|
2
|
+
export { createAgentSessionRuntime } from "./agent-session.js";
|
|
3
3
|
export { AgentOutputParseError, AgentRunFailedError, GraphValidationError } from "./errors.js";
|
|
4
4
|
export { createEvidence } from "./evidence-factory.js";
|
|
5
5
|
export { orderTasks, validateTaskGraph } from "./graph-validator.js";
|
|
6
6
|
export { createReport } from "./report-factory.js";
|
|
7
|
+
export { plannerTaskPrompt, roleSystemPrompt } from "./role-prompts.js";
|
|
8
|
+
export { finalizeRunAcceptance } from "./run-acceptance.js";
|
|
7
9
|
export { createRunController } from "./run-controller.js";
|
|
8
10
|
export { createRunPersistence } from "./run-persistence.js";
|
|
11
|
+
export { authorizeSessionToolExecution } from "./session-tool-authorization.js";
|
|
9
12
|
export { analyzeWorktreeEligibility } from "./worktree-eligibility.js";
|
|
10
13
|
export { createWorktreeScheduler } from "./worktree-scheduler.js";
|
|
11
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controller/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAC3F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controller/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAkB9D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAK/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAOtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Evidence, type Failure, type Task } from "../domain/index.js";
|
|
2
|
-
import type { AgentSessionRuntime } from "./agent-session.js";
|
|
2
|
+
import type { AgentSessionRuntime } from "./agent-session-types.js";
|
|
3
3
|
import type { CreateRunControllerOptions } from "./contracts.js";
|
|
4
4
|
import type { RunPersistence } from "./run-persistence.js";
|
|
5
5
|
import type { PlannedRun } from "./run-state.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-loop.d.ts","sourceRoot":"","sources":["../../src/controller/repair-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,OAAO,EAEZ,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"repair-loop.d.ts","sourceRoot":"","sources":["../../src/controller/repair-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,OAAO,EAEZ,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAOhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAMhD,KAAK,cAAc,GAAG,CAAC,KAAK,EAAE;IAC5B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;CACvC,KAAK,OAAO,CAAC;IACZ,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF,KAAK,gBAAgB,GACjB;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;CACzB,CAAA;AAEL,eAAO,MAAM,aAAa,GAAU,OAAO;IACzC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAA;QAC5C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;QACrC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;KAChC,CAAA;IACD,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,yBAAyB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACvD,KAAG,OAAO,CAAC,gBAAgB,CAoO3B,CAAA"}
|
|
@@ -112,6 +112,7 @@ export const runRepairLoop = async (input) => {
|
|
|
112
112
|
const repairScopedTask = {
|
|
113
113
|
...input.task,
|
|
114
114
|
allowedPaths: repairTask.allowedPaths,
|
|
115
|
+
acceptanceCriterionIds: repairTask.acceptanceCriterionIds,
|
|
115
116
|
evidenceRefs: [...input.task.evidenceRefs, ...repairTask.failureEvidenceIds],
|
|
116
117
|
};
|
|
117
118
|
const workerOutput = await readWorkerOutput({
|
|
@@ -300,6 +301,33 @@ const validateRepairTask = (input) => {
|
|
|
300
301
|
}),
|
|
301
302
|
};
|
|
302
303
|
}
|
|
304
|
+
const sourceEvidenceIds = new Set(input.failure.relatedEvidenceIds);
|
|
305
|
+
if (!input.repairTask.failureEvidenceIds.every((evidenceId) => sourceEvidenceIds.has(evidenceId))) {
|
|
306
|
+
return {
|
|
307
|
+
kind: "failed",
|
|
308
|
+
failure: createImplementationFailure({
|
|
309
|
+
failureId: input.options.ids.createFailureId(`${input.task.taskId}-repair-failure-evidence`),
|
|
310
|
+
runId: input.run.runId,
|
|
311
|
+
taskId: input.task.taskId,
|
|
312
|
+
summary: "Repair task widened failure evidence beyond the analyzed failure.",
|
|
313
|
+
detail: input.repairTask.failureEvidenceIds.join(", "),
|
|
314
|
+
recoveryPlan: "Reject the repair task until every failure evidence reference is a subset of the confirmed failure evidence.",
|
|
315
|
+
}),
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
if (!input.repairTask.acceptanceCriterionIds.every((criterionId) => input.task.acceptanceCriterionIds.includes(criterionId))) {
|
|
319
|
+
return {
|
|
320
|
+
kind: "failed",
|
|
321
|
+
failure: createImplementationFailure({
|
|
322
|
+
failureId: input.options.ids.createFailureId(`${input.task.taskId}-repair-criterion-scope`),
|
|
323
|
+
runId: input.run.runId,
|
|
324
|
+
taskId: input.task.taskId,
|
|
325
|
+
summary: "Repair task widened acceptance criterion scope beyond the source task.",
|
|
326
|
+
detail: input.repairTask.acceptanceCriterionIds.join(", "),
|
|
327
|
+
recoveryPlan: "Reject the repair task until its criterion set is equal to or narrower than the source task.",
|
|
328
|
+
}),
|
|
329
|
+
};
|
|
330
|
+
}
|
|
303
331
|
if (input.seenRootCauseFingerprints.includes(input.repairTask.rootCauseFingerprint)) {
|
|
304
332
|
return {
|
|
305
333
|
kind: "paused",
|