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.
Files changed (268) hide show
  1. package/README.md +146 -60
  2. package/dist/agent/harness-agent-capabilities.d.ts +4 -0
  3. package/dist/agent/harness-agent-capabilities.d.ts.map +1 -0
  4. package/dist/agent/harness-agent-capabilities.js +4 -0
  5. package/dist/agent/harness-agent-capabilities.js.map +1 -0
  6. package/dist/agent/harness-agent-capability-builders.d.ts +11 -0
  7. package/dist/agent/harness-agent-capability-builders.d.ts.map +1 -0
  8. package/dist/agent/harness-agent-capability-builders.js +57 -0
  9. package/dist/agent/harness-agent-capability-builders.js.map +1 -0
  10. package/dist/agent/harness-agent-capability-data.d.ts +3 -0
  11. package/dist/agent/harness-agent-capability-data.d.ts.map +1 -0
  12. package/dist/agent/harness-agent-capability-data.js +23 -0
  13. package/dist/agent/harness-agent-capability-data.js.map +1 -0
  14. package/dist/agent/harness-agent-capability-types.d.ts +50 -0
  15. package/dist/agent/harness-agent-capability-types.d.ts.map +1 -0
  16. package/dist/agent/harness-agent-capability-types.js +3 -0
  17. package/dist/agent/harness-agent-capability-types.js.map +1 -0
  18. package/dist/agent/harness-role-capability-directory-data.d.ts +3 -0
  19. package/dist/agent/harness-role-capability-directory-data.d.ts.map +1 -0
  20. package/dist/agent/harness-role-capability-directory-data.js +208 -0
  21. package/dist/agent/harness-role-capability-directory-data.js.map +1 -0
  22. package/dist/agent/harness-role-capability-directory.d.ts +43 -0
  23. package/dist/agent/harness-role-capability-directory.d.ts.map +1 -0
  24. package/dist/agent/harness-role-capability-directory.js +57 -0
  25. package/dist/agent/harness-role-capability-directory.js.map +1 -0
  26. package/dist/agent/index.d.ts +7 -0
  27. package/dist/agent/index.d.ts.map +1 -0
  28. package/dist/agent/index.js +6 -0
  29. package/dist/agent/index.js.map +1 -0
  30. package/dist/config/config-defaults.d.ts +22 -0
  31. package/dist/config/config-defaults.d.ts.map +1 -1
  32. package/dist/config/config-defaults.js +22 -0
  33. package/dist/config/config-defaults.js.map +1 -1
  34. package/dist/config/config-merge.d.ts.map +1 -1
  35. package/dist/config/config-merge.js +30 -0
  36. package/dist/config/config-merge.js.map +1 -1
  37. package/dist/config/config-schema.d.ts +59 -0
  38. package/dist/config/config-schema.d.ts.map +1 -1
  39. package/dist/config/config-schema.js +18 -1
  40. package/dist/config/config-schema.js.map +1 -1
  41. package/dist/config/config-types.d.ts +5 -1
  42. package/dist/config/config-types.d.ts.map +1 -1
  43. package/dist/config/harness-config.d.ts +2 -1
  44. package/dist/config/harness-config.d.ts.map +1 -1
  45. package/dist/config/harness-config.js +1 -0
  46. package/dist/config/harness-config.js.map +1 -1
  47. package/dist/config/index.d.ts +1 -1
  48. package/dist/config/index.d.ts.map +1 -1
  49. package/dist/config/index.js.map +1 -1
  50. package/dist/config/opencode-compatibility.d.ts +37 -0
  51. package/dist/config/opencode-compatibility.d.ts.map +1 -0
  52. package/dist/config/opencode-compatibility.js +99 -0
  53. package/dist/config/opencode-compatibility.js.map +1 -0
  54. package/dist/controller/agent-output.d.ts +1 -1
  55. package/dist/controller/agent-output.d.ts.map +1 -1
  56. package/dist/controller/agent-output.js +18 -1
  57. package/dist/controller/agent-output.js.map +1 -1
  58. package/dist/controller/agent-session-types.d.ts +56 -0
  59. package/dist/controller/agent-session-types.d.ts.map +1 -0
  60. package/dist/controller/agent-session-types.js +2 -0
  61. package/dist/controller/agent-session-types.js.map +1 -0
  62. package/dist/controller/agent-session-utils.d.ts +52 -0
  63. package/dist/controller/agent-session-utils.d.ts.map +1 -0
  64. package/dist/controller/agent-session-utils.js +118 -0
  65. package/dist/controller/agent-session-utils.js.map +1 -0
  66. package/dist/controller/agent-session.d.ts +2 -55
  67. package/dist/controller/agent-session.d.ts.map +1 -1
  68. package/dist/controller/agent-session.js +82 -129
  69. package/dist/controller/agent-session.js.map +1 -1
  70. package/dist/controller/contracts.d.ts +3 -2
  71. package/dist/controller/contracts.d.ts.map +1 -1
  72. package/dist/controller/contracts.js.map +1 -1
  73. package/dist/controller/evidence-factory.js +7 -1
  74. package/dist/controller/evidence-factory.js.map +1 -1
  75. package/dist/controller/failure-analysis.d.ts +12 -0
  76. package/dist/controller/failure-analysis.d.ts.map +1 -1
  77. package/dist/controller/failure-analysis.js +41 -0
  78. package/dist/controller/failure-analysis.js.map +1 -1
  79. package/dist/controller/failure-analyzer-schemas.d.ts +87 -0
  80. package/dist/controller/failure-analyzer-schemas.d.ts.map +1 -0
  81. package/dist/controller/failure-analyzer-schemas.js +117 -0
  82. package/dist/controller/failure-analyzer-schemas.js.map +1 -0
  83. package/dist/controller/graph-validator.js +18 -4
  84. package/dist/controller/graph-validator.js.map +1 -1
  85. package/dist/controller/index.d.ts +7 -2
  86. package/dist/controller/index.d.ts.map +1 -1
  87. package/dist/controller/index.js +4 -1
  88. package/dist/controller/index.js.map +1 -1
  89. package/dist/controller/repair-loop.d.ts +1 -1
  90. package/dist/controller/repair-loop.d.ts.map +1 -1
  91. package/dist/controller/repair-loop.js +28 -0
  92. package/dist/controller/repair-loop.js.map +1 -1
  93. package/dist/controller/report-factory.d.ts.map +1 -1
  94. package/dist/controller/report-factory.js +49 -21
  95. package/dist/controller/report-factory.js.map +1 -1
  96. package/dist/controller/role-prompts.d.ts +2 -1
  97. package/dist/controller/role-prompts.d.ts.map +1 -1
  98. package/dist/controller/role-prompts.js +3 -9
  99. package/dist/controller/role-prompts.js.map +1 -1
  100. package/dist/controller/run-acceptance.d.ts +17 -0
  101. package/dist/controller/run-acceptance.d.ts.map +1 -0
  102. package/dist/controller/run-acceptance.js +179 -0
  103. package/dist/controller/run-acceptance.js.map +1 -0
  104. package/dist/controller/run-controller.d.ts.map +1 -1
  105. package/dist/controller/run-controller.js +244 -22
  106. package/dist/controller/run-controller.js.map +1 -1
  107. package/dist/controller/session-tool-authorization.d.ts +14 -0
  108. package/dist/controller/session-tool-authorization.d.ts.map +1 -0
  109. package/dist/controller/session-tool-authorization.js +88 -0
  110. package/dist/controller/session-tool-authorization.js.map +1 -0
  111. package/dist/controller/task-agent-output.d.ts +13 -2
  112. package/dist/controller/task-agent-output.d.ts.map +1 -1
  113. package/dist/controller/task-agent-output.js +58 -1
  114. package/dist/controller/task-agent-output.js.map +1 -1
  115. package/dist/controller/task-agent-schemas.d.ts +745 -26
  116. package/dist/controller/task-agent-schemas.d.ts.map +1 -1
  117. package/dist/controller/task-agent-schemas.js +70 -21
  118. package/dist/controller/task-agent-schemas.js.map +1 -1
  119. package/dist/controller/task-executor.d.ts +1 -1
  120. package/dist/controller/task-executor.d.ts.map +1 -1
  121. package/dist/controller/task-executor.js +269 -105
  122. package/dist/controller/task-executor.js.map +1 -1
  123. package/dist/doctor/cli.d.ts +3 -0
  124. package/dist/doctor/cli.d.ts.map +1 -0
  125. package/dist/doctor/cli.js +10 -0
  126. package/dist/doctor/cli.js.map +1 -0
  127. package/dist/doctor/index.d.ts +7 -0
  128. package/dist/doctor/index.d.ts.map +1 -0
  129. package/dist/doctor/index.js +16 -0
  130. package/dist/doctor/index.js.map +1 -0
  131. package/dist/doctor/local-mcp-probe.d.ts +3 -0
  132. package/dist/doctor/local-mcp-probe.d.ts.map +1 -0
  133. package/dist/doctor/local-mcp-probe.js +151 -0
  134. package/dist/doctor/local-mcp-probe.js.map +1 -0
  135. package/dist/doctor/opencode-config.d.ts +43 -0
  136. package/dist/doctor/opencode-config.d.ts.map +1 -0
  137. package/dist/doctor/opencode-config.js +103 -0
  138. package/dist/doctor/opencode-config.js.map +1 -0
  139. package/dist/doctor/run-harness-doctor.d.ts +23 -0
  140. package/dist/doctor/run-harness-doctor.d.ts.map +1 -0
  141. package/dist/doctor/run-harness-doctor.js +176 -0
  142. package/dist/doctor/run-harness-doctor.js.map +1 -0
  143. package/dist/doctor/types.d.ts +69 -0
  144. package/dist/doctor/types.d.ts.map +1 -0
  145. package/dist/doctor/types.js +8 -0
  146. package/dist/doctor/types.js.map +1 -0
  147. package/dist/domain/acceptance-criteria.d.ts +9 -0
  148. package/dist/domain/acceptance-criteria.d.ts.map +1 -0
  149. package/dist/domain/acceptance-criteria.js +38 -0
  150. package/dist/domain/acceptance-criteria.js.map +1 -0
  151. package/dist/domain/context-package.d.ts +43 -0
  152. package/dist/domain/context-package.d.ts.map +1 -0
  153. package/dist/domain/context-package.js +54 -0
  154. package/dist/domain/context-package.js.map +1 -0
  155. package/dist/domain/evidence.d.ts +1 -0
  156. package/dist/domain/evidence.d.ts.map +1 -1
  157. package/dist/domain/evidence.js +1 -2
  158. package/dist/domain/evidence.js.map +1 -1
  159. package/dist/domain/index.d.ts +14 -4
  160. package/dist/domain/index.d.ts.map +1 -1
  161. package/dist/domain/index.js +7 -2
  162. package/dist/domain/index.js.map +1 -1
  163. package/dist/domain/plan-artifacts.d.ts +170 -0
  164. package/dist/domain/plan-artifacts.d.ts.map +1 -0
  165. package/dist/domain/plan-artifacts.js +187 -0
  166. package/dist/domain/plan-artifacts.js.map +1 -0
  167. package/dist/domain/project-context.d.ts +10 -0
  168. package/dist/domain/project-context.d.ts.map +1 -0
  169. package/dist/domain/project-context.js +11 -0
  170. package/dist/domain/project-context.js.map +1 -0
  171. package/dist/domain/report.d.ts +608 -11
  172. package/dist/domain/report.d.ts.map +1 -1
  173. package/dist/domain/report.js +6 -4
  174. package/dist/domain/report.js.map +1 -1
  175. package/dist/domain/requirement.d.ts +22 -2
  176. package/dist/domain/requirement.d.ts.map +1 -1
  177. package/dist/domain/requirement.js +26 -3
  178. package/dist/domain/requirement.js.map +1 -1
  179. package/dist/domain/run-acceptance.d.ts +33 -0
  180. package/dist/domain/run-acceptance.d.ts.map +1 -0
  181. package/dist/domain/run-acceptance.js +29 -0
  182. package/dist/domain/run-acceptance.js.map +1 -0
  183. package/dist/domain/run.d.ts +596 -7
  184. package/dist/domain/run.d.ts.map +1 -1
  185. package/dist/domain/run.js +58 -0
  186. package/dist/domain/run.js.map +1 -1
  187. package/dist/domain/shared.d.ts +40 -2
  188. package/dist/domain/shared.d.ts.map +1 -1
  189. package/dist/domain/shared.js +26 -0
  190. package/dist/domain/shared.js.map +1 -1
  191. package/dist/domain/task-review.d.ts +57 -0
  192. package/dist/domain/task-review.d.ts.map +1 -0
  193. package/dist/domain/task-review.js +63 -0
  194. package/dist/domain/task-review.js.map +1 -0
  195. package/dist/domain/task.d.ts +24 -2
  196. package/dist/domain/task.d.ts.map +1 -1
  197. package/dist/domain/task.js +20 -12
  198. package/dist/domain/task.js.map +1 -1
  199. package/dist/index.d.ts +5 -0
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +5 -0
  202. package/dist/index.js.map +1 -1
  203. package/dist/plugin/create-harness-plugin.d.ts +4 -28
  204. package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
  205. package/dist/plugin/create-harness-plugin.js +33 -166
  206. package/dist/plugin/create-harness-plugin.js.map +1 -1
  207. package/dist/plugin/harness-agent-config.d.ts +7 -0
  208. package/dist/plugin/harness-agent-config.d.ts.map +1 -1
  209. package/dist/plugin/harness-agent-config.js +72 -118
  210. package/dist/plugin/harness-agent-config.js.map +1 -1
  211. package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
  212. package/dist/plugin/harness-chat-protocol.js +29 -6
  213. package/dist/plugin/harness-chat-protocol.js.map +1 -1
  214. package/dist/plugin/harness-plugin-identifiers.d.ts +5 -0
  215. package/dist/plugin/harness-plugin-identifiers.d.ts.map +1 -0
  216. package/dist/plugin/harness-plugin-identifiers.js +24 -0
  217. package/dist/plugin/harness-plugin-identifiers.js.map +1 -0
  218. package/dist/plugin/harness-plugin-runtime.d.ts +64 -0
  219. package/dist/plugin/harness-plugin-runtime.d.ts.map +1 -0
  220. package/dist/plugin/harness-plugin-runtime.js +125 -0
  221. package/dist/plugin/harness-plugin-runtime.js.map +1 -0
  222. package/dist/plugin/harness-plugin-scheduler.d.ts +16 -0
  223. package/dist/plugin/harness-plugin-scheduler.d.ts.map +1 -0
  224. package/dist/plugin/harness-plugin-scheduler.js +51 -0
  225. package/dist/plugin/harness-plugin-scheduler.js.map +1 -0
  226. package/dist/plugin/harness-requirement.d.ts +1 -1
  227. package/dist/plugin/harness-requirement.d.ts.map +1 -1
  228. package/dist/plugin/harness-requirement.js +2 -3
  229. package/dist/plugin/harness-requirement.js.map +1 -1
  230. package/dist/session/contracts.d.ts +9 -0
  231. package/dist/session/contracts.d.ts.map +1 -1
  232. package/dist/session/contracts.js.map +1 -1
  233. package/dist/session/fake-session-adapter.d.ts.map +1 -1
  234. package/dist/session/fake-session-adapter.js +1 -0
  235. package/dist/session/fake-session-adapter.js.map +1 -1
  236. package/dist/session/index.d.ts +1 -1
  237. package/dist/session/index.d.ts.map +1 -1
  238. package/dist/session/index.js.map +1 -1
  239. package/dist/session/opencode-session-adapter.d.ts +2 -1
  240. package/dist/session/opencode-session-adapter.d.ts.map +1 -1
  241. package/dist/session/opencode-session-adapter.js +7 -2
  242. package/dist/session/opencode-session-adapter.js.map +1 -1
  243. package/dist/session/opencode-session-prompts.d.ts +2 -10
  244. package/dist/session/opencode-session-prompts.d.ts.map +1 -1
  245. package/dist/session/opencode-session-prompts.js +7 -9
  246. package/dist/session/opencode-session-prompts.js.map +1 -1
  247. package/dist/store/run-event.d.ts +596 -7
  248. package/dist/store/run-event.d.ts.map +1 -1
  249. package/dist/tools/harness-research-tools.d.ts +22 -0
  250. package/dist/tools/harness-research-tools.d.ts.map +1 -1
  251. package/dist/tools/harness-research-tools.js +173 -64
  252. package/dist/tools/harness-research-tools.js.map +1 -1
  253. package/dist/tools/harness-tool-capabilities.d.ts +342 -0
  254. package/dist/tools/harness-tool-capabilities.d.ts.map +1 -0
  255. package/dist/tools/harness-tool-capabilities.js +170 -0
  256. package/dist/tools/harness-tool-capabilities.js.map +1 -0
  257. package/dist/verification/command-policy.d.ts.map +1 -1
  258. package/dist/verification/command-policy.js +2 -2
  259. package/dist/verification/command-policy.js.map +1 -1
  260. package/dist/workspace/collect-project-context.d.ts +3 -0
  261. package/dist/workspace/collect-project-context.d.ts.map +1 -0
  262. package/dist/workspace/collect-project-context.js +92 -0
  263. package/dist/workspace/collect-project-context.js.map +1 -0
  264. package/dist/workspace/index.d.ts +1 -0
  265. package/dist/workspace/index.d.ts.map +1 -1
  266. package/dist/workspace/index.js +1 -0
  267. package/dist/workspace/index.js.map +1 -1
  268. package/package.json +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/controller/contracts.ts"],"names":[],"mappings":"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"}
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":"AAqBA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAA"}
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: input.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,EAAE,KAAK,CAAC,sBAAsB,IAAI,EAAE;KAC3D,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"}
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,yBAuLF,CAAA"}
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":"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"}
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
- // MVP mapping: every acceptance criterion belongs to the single Requirement object.
65
- // A graph covers each criterion when at least one task references that requirementId.
66
- const covered = tasks.some((task) => task.requirementIds.includes(requirement.requirementId));
67
- return covered ? [] : [`Requirement ${requirement.requirementId} is not covered by any task`];
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":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAIlD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAgB,EAChB,WAAwB,EACxB,KAAY,EACN,EAAE;IACR,MAAM,MAAM,GAAG;QACb,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;QAC/B,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;QACtC,GAAG,2BAA2B,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;QACxD,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;KAChC,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAE,KAAY,EAAqB,EAAE;IAC3E,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,KAAK,iCAAiC,KAAK,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CACT,QAAQ,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,KAAK,+BAA+B,KAAK,CAAC,KAAK,EAAE,CACpF,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAmB,EAAE;IAC9D,MAAM,OAAO,GAAW,EAAE,CAAA;IAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAEjE,OAAO,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAC5B,CAAC,IAAI,EAAE,EAAE,CACP,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CACtE,CAAA;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,oBAAoB,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAA;QAC5E,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAqB,EAAE;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,KAAsB,EAAqB,EAAE;IAC3E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACrD,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAClC,KAAsB,EACtB,WAAwB,EACL,EAAE;IACrB,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CACzE,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,4CAA4C,WAAW,EAAE,CAAC,CAAA;YAC3F,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACvD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAChC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CACnC,CAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,yBAAyB,SAAS,CAAC,WAAW,6BAA6B,CAAC,CAAA;QAC1F,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAqB,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAChB,IAAU,EACV,QAAmC,EACnC,MAA+B,EACX,EAAE;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,kCAAkC,IAAI,CAAC,MAAM,EAAE,CAAA;IACxD,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACnC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAClC,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -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 { type AbandonSessionInput, type AgentSessionRuntime, createAgentSessionRuntime, type OrphanSession, type RebindSessionInput, type SendAgentInput, } from "./agent-session.js";
4
- export type { AnswerRunInput, ControllerClock, ControllerIdSource, CreateRunControllerOptions, PauseRunInput, RequirementInput, RunBudgetKind, RunController, WaiveRunInput, } from "./contracts.js";
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,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,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,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChF,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"}
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"}
@@ -1,11 +1,14 @@
1
1
  export { createGitWorkspaceAdapter, createGitWorktreeAdapter } from "../workspace/index.js";
2
- export { createAgentSessionRuntime, } from "./agent-session.js";
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,EAGL,yBAAyB,GAI1B,MAAM,oBAAoB,CAAA;AAY3B,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,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAA;AAKhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAOtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA"}
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,oBAAoB,CAAA;AAC7D,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,CAmO3B,CAAA"}
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",