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
@@ -0,0 +1,170 @@
1
+ import { z } from "zod";
2
+ export declare const PlanReviewSchema: z.ZodReadonly<z.ZodObject<{
3
+ schemaVersion: z.ZodLiteral<"1.0.0">;
4
+ reviewId: z.ZodString;
5
+ runId: z.core.$ZodBranded<z.ZodString, "RunId">;
6
+ graphId: z.ZodString;
7
+ requirementId: z.ZodString;
8
+ status: z.ZodEnum<{
9
+ approved: "approved";
10
+ rejected: "rejected";
11
+ }>;
12
+ summary: z.ZodString;
13
+ requirement: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodReadonly<z.ZodObject<{
14
+ schemaVersion: z.ZodLiteral<"1.0.0">;
15
+ requirementId: z.ZodString;
16
+ title: z.ZodString;
17
+ summary: z.ZodString;
18
+ acceptanceCriteria: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
19
+ criterionId: z.ZodString;
20
+ text: z.ZodString;
21
+ }, z.core.$strip>>>>;
22
+ }, z.core.$strip>>>;
23
+ taskGraph: z.ZodReadonly<z.ZodObject<{
24
+ schemaVersion: z.ZodLiteral<"1.0.0">;
25
+ graphId: z.ZodString;
26
+ runId: z.core.$ZodBranded<z.ZodString, "RunId">;
27
+ version: z.ZodNumber;
28
+ tasks: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
29
+ schemaVersion: z.ZodLiteral<"1.0.0">;
30
+ taskId: z.core.$ZodBranded<z.ZodString, "TaskId">;
31
+ runId: z.core.$ZodBranded<z.ZodString, "RunId">;
32
+ requirementIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
33
+ title: z.ZodString;
34
+ summary: z.ZodString;
35
+ status: z.ZodEnum<{
36
+ paused: "paused";
37
+ failed: "failed";
38
+ blocked: "blocked";
39
+ completed: "completed";
40
+ planned: "planned";
41
+ ready: "ready";
42
+ in_progress: "in_progress";
43
+ }>;
44
+ allowedPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
45
+ acceptanceCriterionIds: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
46
+ executionCategory: z.ZodDefault<z.ZodEnum<{
47
+ quick: "quick";
48
+ deep: "deep";
49
+ "visual-engineering": "visual-engineering";
50
+ ultrabrain: "ultrabrain";
51
+ }>>;
52
+ verificationPlan: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
53
+ name: z.ZodString;
54
+ command: z.ZodString;
55
+ args: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
56
+ workingDirectory: z.ZodString;
57
+ scope: z.ZodEnum<{
58
+ task: "task";
59
+ project: "project";
60
+ integration: "integration";
61
+ }>;
62
+ sideEffectLevel: z.ZodEnum<{
63
+ read_only: "read_only";
64
+ workspace_write: "workspace_write";
65
+ external_side_effect: "external_side_effect";
66
+ }>;
67
+ timeoutMs: z.ZodNumber;
68
+ origin: z.ZodOptional<z.ZodEnum<{
69
+ config: "config";
70
+ planner: "planner";
71
+ worker: "worker";
72
+ "failure-analyzer": "failure-analyzer";
73
+ repair: "repair";
74
+ }>>;
75
+ requiresConfirmation: z.ZodOptional<z.ZodBoolean>;
76
+ confirmation: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
77
+ approvedBy: z.ZodString;
78
+ reason: z.ZodString;
79
+ }, z.core.$strip>>>;
80
+ allowedEnv: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodString>>>;
81
+ }, z.core.$strip>>>>;
82
+ retryBudget: z.ZodReadonly<z.ZodObject<{
83
+ maxAttempts: z.ZodNumber;
84
+ maxRepairAttempts: z.ZodNumber;
85
+ }, z.core.$strip>>;
86
+ dependencies: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "TaskId">>>;
87
+ evidenceRefs: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "EvidenceId">>>;
88
+ repairEnabled: z.ZodDefault<z.ZodBoolean>;
89
+ assignedAgentRole: z.ZodEnum<{
90
+ intake: "intake";
91
+ planner: "planner";
92
+ worker: "worker";
93
+ verifier: "verifier";
94
+ "failure-analyzer": "failure-analyzer";
95
+ "repair-worker": "repair-worker";
96
+ acceptance: "acceptance";
97
+ }>;
98
+ }, z.core.$strip>>>>;
99
+ edges: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
100
+ fromTaskId: z.core.$ZodBranded<z.ZodString, "TaskId">;
101
+ toTaskId: z.core.$ZodBranded<z.ZodString, "TaskId">;
102
+ }, z.core.$strip>>>>;
103
+ }, z.core.$strip>>;
104
+ contextPackage: z.ZodReadonly<z.ZodObject<{
105
+ schemaVersion: z.ZodLiteral<"1.0.0">;
106
+ contextPackageId: z.ZodString;
107
+ runId: z.core.$ZodBranded<z.ZodString, "RunId">;
108
+ requirementId: z.ZodString;
109
+ summary: z.ZodString;
110
+ repositoryReferences: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
111
+ path: z.ZodString;
112
+ reason: z.ZodString;
113
+ kind: z.ZodLiteral<"file">;
114
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
115
+ symbol: z.ZodString;
116
+ path: z.ZodString;
117
+ reason: z.ZodString;
118
+ kind: z.ZodLiteral<"symbol">;
119
+ }, z.core.$strip>>]>>>;
120
+ externalReferences: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
121
+ title: z.ZodString;
122
+ sourceType: z.ZodEnum<{
123
+ spec: "spec";
124
+ doc: "doc";
125
+ repo: "repo";
126
+ issue: "issue";
127
+ }>;
128
+ locator: z.ZodString;
129
+ reason: z.ZodString;
130
+ }, z.core.$strip>>>>;
131
+ unresolvedQuestions: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
132
+ questionId: z.ZodString;
133
+ question: z.ZodString;
134
+ impact: z.ZodString;
135
+ }, z.core.$strip>>>>;
136
+ constraints: z.ZodReadonly<z.ZodArray<z.ZodString>>;
137
+ }, z.core.$strip>>;
138
+ coverage: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
139
+ criterionId: z.ZodString;
140
+ criterion: z.ZodString;
141
+ coveredByTaskIds: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "TaskId">>>;
142
+ verificationCommandNames: z.ZodReadonly<z.ZodArray<z.ZodString>>;
143
+ }, z.core.$strip>>>>;
144
+ findings: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
145
+ severity: z.ZodEnum<{
146
+ critical: "critical";
147
+ important: "important";
148
+ advisory: "advisory";
149
+ }>;
150
+ message: z.ZodString;
151
+ taskId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "TaskId">>;
152
+ criterionId: z.ZodOptional<z.ZodString>;
153
+ }, z.core.$strip>>>>;
154
+ reviewedTasks: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
155
+ taskId: z.core.$ZodBranded<z.ZodString, "TaskId">;
156
+ executionCategory: z.ZodEnum<{
157
+ quick: "quick";
158
+ deep: "deep";
159
+ "visual-engineering": "visual-engineering";
160
+ ultrabrain: "ultrabrain";
161
+ }>;
162
+ requirementIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
163
+ acceptanceCriterionIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
164
+ allowedPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
165
+ dependencies: z.ZodReadonly<z.ZodArray<z.core.$ZodBranded<z.ZodString, "TaskId">>>;
166
+ verificationCommandNames: z.ZodReadonly<z.ZodArray<z.ZodString>>;
167
+ }, z.core.$strip>>>>;
168
+ }, z.core.$strip>>;
169
+ export type PlanReview = z.infer<typeof PlanReviewSchema>;
170
+ //# sourceMappingURL=plan-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-artifacts.d.ts","sourceRoot":"","sources":["../../src/domain/plan-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAoDvB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0KhB,CAAA;AAEb,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,187 @@
1
+ import { z } from "zod";
2
+ import { WorkspaceRelativePathSchema } from "../path/workspace-path.js";
3
+ import { ContextPackageSchema } from "./context-package.js";
4
+ import { RequirementSchema } from "./requirement.js";
5
+ import { AcceptanceCriterionIdSchema, ExecutionCategorySchema, GraphIdSchema, RequirementIdSchema, RunIdSchema, SchemaVersionSchema, TaskIdSchema, } from "./shared.js";
6
+ import { TaskGraphSchema } from "./task.js";
7
+ const PlanReviewStatusSchema = z.enum(["approved", "rejected"]);
8
+ const PlanReviewSeveritySchema = z.enum(["critical", "important", "advisory"]);
9
+ const PlanReviewCoverageSchema = z
10
+ .object({
11
+ criterionId: AcceptanceCriterionIdSchema,
12
+ criterion: z.string().trim().min(1),
13
+ coveredByTaskIds: z.array(TaskIdSchema).min(1).readonly(),
14
+ verificationCommandNames: z.array(z.string().trim().min(1)).min(1).readonly(),
15
+ })
16
+ .readonly();
17
+ const PlanReviewFindingSchema = z
18
+ .object({
19
+ severity: PlanReviewSeveritySchema,
20
+ message: z.string().trim().min(1),
21
+ taskId: TaskIdSchema.optional(),
22
+ criterionId: AcceptanceCriterionIdSchema.optional(),
23
+ })
24
+ .readonly();
25
+ const ReviewedTaskSchema = z
26
+ .object({
27
+ taskId: TaskIdSchema,
28
+ executionCategory: ExecutionCategorySchema,
29
+ requirementIds: z.array(RequirementIdSchema).min(1).readonly(),
30
+ acceptanceCriterionIds: z.array(AcceptanceCriterionIdSchema).min(1).readonly(),
31
+ allowedPaths: z.array(WorkspaceRelativePathSchema).min(1).readonly(),
32
+ dependencies: z.array(TaskIdSchema).readonly(),
33
+ verificationCommandNames: z.array(z.string().trim().min(1)).min(1).readonly(),
34
+ })
35
+ .readonly();
36
+ const arraysMatch = (left, right) => left.length === right.length && left.every((value, index) => value === right[index]);
37
+ export const PlanReviewSchema = z
38
+ .object({
39
+ schemaVersion: SchemaVersionSchema,
40
+ reviewId: GraphIdSchema,
41
+ runId: RunIdSchema,
42
+ graphId: GraphIdSchema,
43
+ requirementId: RequirementIdSchema,
44
+ status: PlanReviewStatusSchema,
45
+ summary: z.string().trim().min(1),
46
+ requirement: RequirementSchema,
47
+ taskGraph: TaskGraphSchema,
48
+ contextPackage: ContextPackageSchema,
49
+ coverage: z.array(PlanReviewCoverageSchema).min(1).readonly(),
50
+ findings: z.array(PlanReviewFindingSchema).readonly(),
51
+ reviewedTasks: z.array(ReviewedTaskSchema).min(1).readonly(),
52
+ })
53
+ .superRefine((review, context) => {
54
+ const coverageByCriterionId = new Map(review.coverage.map((criterion) => [criterion.criterionId, criterion]));
55
+ const taskById = new Map(review.taskGraph.tasks.map((task) => [task.taskId, task]));
56
+ const coverageByTaskId = new Map();
57
+ const requirementCriterionById = new Map(review.requirement.acceptanceCriteria.map((criterion) => [criterion.criterionId, criterion]));
58
+ for (const task of review.taskGraph.tasks) {
59
+ coverageByTaskId.set(task.taskId, new Set());
60
+ }
61
+ for (const coverage of review.coverage) {
62
+ const requirementCriterion = requirementCriterionById.get(coverage.criterionId);
63
+ if (requirementCriterion === undefined) {
64
+ context.addIssue({
65
+ code: z.ZodIssueCode.custom,
66
+ message: `Coverage criterion text is not present in requirement: ${coverage.criterionId}`,
67
+ });
68
+ }
69
+ else if (coverage.criterion !== requirementCriterion.text) {
70
+ context.addIssue({
71
+ code: z.ZodIssueCode.custom,
72
+ message: `Coverage criterion text mismatch for ${coverage.criterionId}`,
73
+ });
74
+ }
75
+ for (const taskId of coverage.coveredByTaskIds) {
76
+ const task = taskById.get(taskId);
77
+ if (task === undefined) {
78
+ context.addIssue({
79
+ code: z.ZodIssueCode.custom,
80
+ message: `Unknown task in coverage: ${taskId}`,
81
+ });
82
+ continue;
83
+ }
84
+ if (!task.acceptanceCriterionIds.includes(coverage.criterionId)) {
85
+ context.addIssue({
86
+ code: z.ZodIssueCode.custom,
87
+ message: `Task ${taskId} does not cover acceptance criterion ${coverage.criterionId}`,
88
+ });
89
+ }
90
+ coverageByTaskId.get(taskId)?.add(coverage.criterionId);
91
+ }
92
+ }
93
+ for (const criterion of review.requirement.acceptanceCriteria) {
94
+ const coverage = coverageByCriterionId.get(criterion.criterionId);
95
+ if (coverage === undefined) {
96
+ context.addIssue({
97
+ code: z.ZodIssueCode.custom,
98
+ message: `Requirement criterion is missing coverage: ${criterion.criterionId}`,
99
+ });
100
+ continue;
101
+ }
102
+ const hasTaskWithVerificationPlan = coverage.coveredByTaskIds.some((taskId) => {
103
+ const task = taskById.get(taskId);
104
+ return task !== undefined && task.verificationPlan.length > 0;
105
+ });
106
+ if (!hasTaskWithVerificationPlan) {
107
+ context.addIssue({
108
+ code: z.ZodIssueCode.custom,
109
+ message: `Requirement criterion lacks a task with a verification plan: ${criterion.criterionId}`,
110
+ });
111
+ }
112
+ }
113
+ for (const reviewedTask of review.reviewedTasks) {
114
+ const task = taskById.get(reviewedTask.taskId);
115
+ if (task === undefined) {
116
+ context.addIssue({
117
+ code: z.ZodIssueCode.custom,
118
+ message: `Reviewed task not found in task graph: ${reviewedTask.taskId}`,
119
+ });
120
+ continue;
121
+ }
122
+ if (reviewedTask.executionCategory !== task.executionCategory) {
123
+ context.addIssue({
124
+ code: z.ZodIssueCode.custom,
125
+ message: `Execution category mismatch for reviewed task ${reviewedTask.taskId}`,
126
+ });
127
+ }
128
+ if (!arraysMatch(reviewedTask.requirementIds, task.requirementIds)) {
129
+ context.addIssue({
130
+ code: z.ZodIssueCode.custom,
131
+ message: `Requirement ids mismatch for reviewed task ${reviewedTask.taskId}`,
132
+ });
133
+ }
134
+ if (!arraysMatch(reviewedTask.acceptanceCriterionIds, task.acceptanceCriterionIds)) {
135
+ context.addIssue({
136
+ code: z.ZodIssueCode.custom,
137
+ message: `Acceptance criteria mismatch for reviewed task ${reviewedTask.taskId}`,
138
+ });
139
+ }
140
+ if (!arraysMatch(reviewedTask.allowedPaths, task.allowedPaths)) {
141
+ context.addIssue({
142
+ code: z.ZodIssueCode.custom,
143
+ message: `Allowed paths mismatch for reviewed task ${reviewedTask.taskId}`,
144
+ });
145
+ }
146
+ if (!arraysMatch(reviewedTask.dependencies, task.dependencies)) {
147
+ context.addIssue({
148
+ code: z.ZodIssueCode.custom,
149
+ message: `Dependencies mismatch for reviewed task ${reviewedTask.taskId}`,
150
+ });
151
+ }
152
+ const coveredCriterionIds = coverageByTaskId.get(reviewedTask.taskId) ?? new Set();
153
+ for (const criterionId of reviewedTask.acceptanceCriterionIds) {
154
+ if (!coverageByCriterionId.has(criterionId)) {
155
+ context.addIssue({
156
+ code: z.ZodIssueCode.custom,
157
+ message: `Unknown acceptance criterion for task ${reviewedTask.taskId}: ${criterionId}`,
158
+ });
159
+ }
160
+ if (!coveredCriterionIds.has(criterionId)) {
161
+ context.addIssue({
162
+ code: z.ZodIssueCode.custom,
163
+ message: `Acceptance criterion ${criterionId} is not covered by task ${reviewedTask.taskId}`,
164
+ });
165
+ }
166
+ }
167
+ for (const dependency of reviewedTask.dependencies) {
168
+ if (!taskById.has(dependency)) {
169
+ context.addIssue({
170
+ code: z.ZodIssueCode.custom,
171
+ message: `Unknown dependency ${dependency} for reviewed task ${reviewedTask.taskId}`,
172
+ });
173
+ }
174
+ }
175
+ const verificationCommandNames = new Set(task.verificationPlan.map((command) => command.name));
176
+ for (const commandName of reviewedTask.verificationCommandNames) {
177
+ if (!verificationCommandNames.has(commandName)) {
178
+ context.addIssue({
179
+ code: z.ZodIssueCode.custom,
180
+ message: `Unverifiable command ${commandName} for reviewed task ${reviewedTask.taskId}`,
181
+ });
182
+ }
183
+ }
184
+ }
185
+ })
186
+ .readonly();
187
+ //# sourceMappingURL=plan-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-artifacts.js","sourceRoot":"","sources":["../../src/domain/plan-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export declare const ProjectContextSchema: z.ZodReadonly<z.ZodObject<{
3
+ projectRoot: z.ZodString;
4
+ agentsMd: z.ZodOptional<z.ZodString>;
5
+ readmeMd: z.ZodOptional<z.ZodString>;
6
+ directoryTree: z.ZodReadonly<z.ZodArray<z.ZodString>>;
7
+ truncated: z.ZodDefault<z.ZodBoolean>;
8
+ }, z.core.$strip>>;
9
+ export type ProjectContext = z.infer<typeof ProjectContextSchema>;
10
+ //# sourceMappingURL=project-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/domain/project-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,oBAAoB;;;;;;kBAQpB,CAAA;AAEb,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ export const ProjectContextSchema = z
3
+ .object({
4
+ projectRoot: z.string().trim().min(1),
5
+ agentsMd: z.string().trim().min(1).optional(),
6
+ readmeMd: z.string().trim().min(1).optional(),
7
+ directoryTree: z.array(z.string().trim().min(1)).max(500).readonly(),
8
+ truncated: z.boolean().default(false),
9
+ })
10
+ .readonly();
11
+ //# sourceMappingURL=project-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.js","sourceRoot":"","sources":["../../src/domain/project-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,CAAC;KACD,QAAQ,EAAE,CAAA"}