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
@@ -3,6 +3,7 @@ import type { AvailableModelRegistry, MergedHarnessConfig } from "./config-types
3
3
  declare const HarnessProfileInputSchema: z.ZodReadonly<z.ZodObject<{
4
4
  provider: z.ZodOptional<z.ZodString>;
5
5
  model: z.ZodOptional<z.ZodString>;
6
+ skill: z.ZodOptional<z.ZodString>;
6
7
  }, z.core.$strict>>;
7
8
  export declare const HarnessConfigInputSchema: z.ZodReadonly<z.ZodObject<{
8
9
  schemaVersion: z.ZodOptional<z.ZodLiteral<"1.0.0">>;
@@ -10,26 +11,54 @@ export declare const HarnessConfigInputSchema: z.ZodReadonly<z.ZodObject<{
10
11
  harness: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
11
12
  provider: z.ZodOptional<z.ZodString>;
12
13
  model: z.ZodOptional<z.ZodString>;
14
+ skill: z.ZodOptional<z.ZodString>;
13
15
  }, z.core.$strict>>>;
14
16
  planner: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
15
17
  provider: z.ZodOptional<z.ZodString>;
16
18
  model: z.ZodOptional<z.ZodString>;
19
+ skill: z.ZodOptional<z.ZodString>;
17
20
  }, z.core.$strict>>>;
18
21
  worker: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
19
22
  provider: z.ZodOptional<z.ZodString>;
20
23
  model: z.ZodOptional<z.ZodString>;
24
+ skill: z.ZodOptional<z.ZodString>;
21
25
  }, z.core.$strict>>>;
22
26
  verifier: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
23
27
  provider: z.ZodOptional<z.ZodString>;
24
28
  model: z.ZodOptional<z.ZodString>;
29
+ skill: z.ZodOptional<z.ZodString>;
25
30
  }, z.core.$strict>>>;
26
31
  acceptance: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
27
32
  provider: z.ZodOptional<z.ZodString>;
28
33
  model: z.ZodOptional<z.ZodString>;
34
+ skill: z.ZodOptional<z.ZodString>;
29
35
  }, z.core.$strict>>>;
30
36
  failureAnalyzer: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
31
37
  provider: z.ZodOptional<z.ZodString>;
32
38
  model: z.ZodOptional<z.ZodString>;
39
+ skill: z.ZodOptional<z.ZodString>;
40
+ }, z.core.$strict>>>;
41
+ executionCategories: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
42
+ quick: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
43
+ provider: z.ZodOptional<z.ZodString>;
44
+ model: z.ZodOptional<z.ZodString>;
45
+ skill: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strict>>>;
47
+ deep: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
48
+ provider: z.ZodOptional<z.ZodString>;
49
+ model: z.ZodOptional<z.ZodString>;
50
+ skill: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strict>>>;
52
+ "visual-engineering": z.ZodOptional<z.ZodReadonly<z.ZodObject<{
53
+ provider: z.ZodOptional<z.ZodString>;
54
+ model: z.ZodOptional<z.ZodString>;
55
+ skill: z.ZodOptional<z.ZodString>;
56
+ }, z.core.$strict>>>;
57
+ ultrabrain: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
58
+ provider: z.ZodOptional<z.ZodString>;
59
+ model: z.ZodOptional<z.ZodString>;
60
+ skill: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$strict>>>;
33
62
  }, z.core.$strict>>>;
34
63
  verificationCommands: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
35
64
  name: z.ZodString;
@@ -51,6 +80,7 @@ export declare const HarnessConfigInputSchema: z.ZodReadonly<z.ZodObject<{
51
80
  config: "config";
52
81
  planner: "planner";
53
82
  worker: "worker";
83
+ "failure-analyzer": "failure-analyzer";
54
84
  repair: "repair";
55
85
  }>>;
56
86
  requiresConfirmation: z.ZodOptional<z.ZodBoolean>;
@@ -66,34 +96,61 @@ export declare const HarnessConfigInputSchema: z.ZodReadonly<z.ZodObject<{
66
96
  export declare const HarnessProfileSchema: z.ZodReadonly<z.ZodObject<{
67
97
  provider: z.ZodString;
68
98
  model: z.ZodString;
99
+ skill: z.ZodOptional<z.ZodString>;
69
100
  }, z.core.$strip>>;
101
+ export declare const ExecutionCategoryProfilesSchema: z.ZodReadonly<z.ZodRecord<z.ZodEnum<{
102
+ quick: "quick";
103
+ deep: "deep";
104
+ "visual-engineering": "visual-engineering";
105
+ ultrabrain: "ultrabrain";
106
+ }>, z.ZodReadonly<z.ZodObject<{
107
+ provider: z.ZodString;
108
+ model: z.ZodString;
109
+ skill: z.ZodOptional<z.ZodString>;
110
+ }, z.core.$strip>>>>;
70
111
  export declare const HarnessConfigSchema: z.ZodReadonly<z.ZodObject<{
71
112
  schemaVersion: z.ZodLiteral<"1.0.0">;
72
113
  enabled: z.ZodBoolean;
73
114
  harness: z.ZodReadonly<z.ZodObject<{
74
115
  provider: z.ZodString;
75
116
  model: z.ZodString;
117
+ skill: z.ZodOptional<z.ZodString>;
76
118
  }, z.core.$strip>>;
77
119
  planner: z.ZodReadonly<z.ZodObject<{
78
120
  provider: z.ZodString;
79
121
  model: z.ZodString;
122
+ skill: z.ZodOptional<z.ZodString>;
80
123
  }, z.core.$strip>>;
81
124
  worker: z.ZodReadonly<z.ZodObject<{
82
125
  provider: z.ZodString;
83
126
  model: z.ZodString;
127
+ skill: z.ZodOptional<z.ZodString>;
84
128
  }, z.core.$strip>>;
85
129
  verifier: z.ZodReadonly<z.ZodObject<{
86
130
  provider: z.ZodString;
87
131
  model: z.ZodString;
132
+ skill: z.ZodOptional<z.ZodString>;
88
133
  }, z.core.$strip>>;
89
134
  acceptance: z.ZodReadonly<z.ZodObject<{
90
135
  provider: z.ZodString;
91
136
  model: z.ZodString;
137
+ skill: z.ZodOptional<z.ZodString>;
92
138
  }, z.core.$strip>>;
93
139
  failureAnalyzer: z.ZodReadonly<z.ZodObject<{
94
140
  provider: z.ZodString;
95
141
  model: z.ZodString;
142
+ skill: z.ZodOptional<z.ZodString>;
96
143
  }, z.core.$strip>>;
144
+ executionCategories: z.ZodReadonly<z.ZodRecord<z.ZodEnum<{
145
+ quick: "quick";
146
+ deep: "deep";
147
+ "visual-engineering": "visual-engineering";
148
+ ultrabrain: "ultrabrain";
149
+ }>, z.ZodReadonly<z.ZodObject<{
150
+ provider: z.ZodString;
151
+ model: z.ZodString;
152
+ skill: z.ZodOptional<z.ZodString>;
153
+ }, z.core.$strip>>>>;
97
154
  verificationCommands: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
98
155
  name: z.ZodString;
99
156
  command: z.ZodString;
@@ -114,6 +171,7 @@ export declare const HarnessConfigSchema: z.ZodReadonly<z.ZodObject<{
114
171
  config: "config";
115
172
  planner: "planner";
116
173
  worker: "worker";
174
+ "failure-analyzer": "failure-analyzer";
117
175
  repair: "repair";
118
176
  }>>;
119
177
  requiresConfirmation: z.ZodOptional<z.ZodBoolean>;
@@ -127,6 +185,7 @@ export declare const HarnessConfigSchema: z.ZodReadonly<z.ZodObject<{
127
185
  stateDirectory: z.ZodString;
128
186
  }, z.core.$strict>>;
129
187
  export type HarnessAgentProfile = z.infer<typeof HarnessProfileSchema>;
188
+ export type ExecutionCategoryProfiles = z.infer<typeof ExecutionCategoryProfilesSchema>;
130
189
  export type HarnessConfig = z.infer<typeof HarnessConfigSchema>;
131
190
  export type HarnessConfigInput = z.infer<typeof HarnessConfigInputSchema>;
132
191
  export type HarnessProfileInput = z.infer<typeof HarnessProfileInputSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEpF,QAAA,MAAM,yBAAyB;;;mBAMlB,CAAA;AAEb,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAexB,CAAA;AAEb,eAAO,MAAM,oBAAoB;;;kBAKpB,CAAA;AAEb,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAenB,CAAA;AAEb,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACzE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,mBAAmB,EAC3B,kBAAkB,sBAAsB,KACvC,aAIF,CAAA"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEpF,QAAA,MAAM,yBAAyB;;;;mBAOlB,CAAA;AAcb,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAgBxB,CAAA;AAEb,eAAO,MAAM,oBAAoB;;;;kBAMpB,CAAA;AAEb,eAAO,MAAM,+BAA+B;;;;;;;;;oBAE/B,CAAA;AAEb,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAgBnB,CAAA;AAEb,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACtE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACvF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACzE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,mBAAmB,EAC3B,kBAAkB,sBAAsB,KACvC,aAIF,CAAA"}
@@ -1,10 +1,21 @@
1
1
  import { z } from "zod";
2
- import { SchemaVersionSchema, VerificationCommandSchema } from "../domain/index.js";
2
+ import { ExecutionCategorySchema, SchemaVersionSchema, VerificationCommandSchema, } from "../domain/index.js";
3
3
  import { WorkspaceRelativePathSchema } from "../path/workspace-path.js";
4
4
  const HarnessProfileInputSchema = z
5
5
  .object({
6
6
  provider: z.string().trim().min(1).optional(),
7
7
  model: z.string().trim().min(1).optional(),
8
+ skill: z.string().trim().min(1).optional(),
9
+ })
10
+ .strict()
11
+ .readonly();
12
+ const ExecutionCategoryProfileInputSchema = HarnessProfileInputSchema;
13
+ const ExecutionCategoryProfilesInputSchema = z
14
+ .object({
15
+ quick: ExecutionCategoryProfileInputSchema.optional(),
16
+ deep: ExecutionCategoryProfileInputSchema.optional(),
17
+ "visual-engineering": ExecutionCategoryProfileInputSchema.optional(),
18
+ ultrabrain: ExecutionCategoryProfileInputSchema.optional(),
8
19
  })
9
20
  .strict()
10
21
  .readonly();
@@ -18,6 +29,7 @@ export const HarnessConfigInputSchema = z
18
29
  verifier: HarnessProfileInputSchema.optional(),
19
30
  acceptance: HarnessProfileInputSchema.optional(),
20
31
  failureAnalyzer: HarnessProfileInputSchema.optional(),
32
+ executionCategories: ExecutionCategoryProfilesInputSchema.optional(),
21
33
  verificationCommands: z.array(VerificationCommandSchema).readonly().optional(),
22
34
  maxRunAttempts: z.number().int().positive().optional(),
23
35
  stateDirectory: WorkspaceRelativePathSchema.optional(),
@@ -28,8 +40,12 @@ export const HarnessProfileSchema = z
28
40
  .object({
29
41
  provider: z.string().trim().min(1),
30
42
  model: z.string().trim().min(1),
43
+ skill: z.string().trim().min(1).optional(),
31
44
  })
32
45
  .readonly();
46
+ export const ExecutionCategoryProfilesSchema = z
47
+ .record(ExecutionCategorySchema, HarnessProfileSchema)
48
+ .readonly();
33
49
  export const HarnessConfigSchema = z
34
50
  .object({
35
51
  schemaVersion: SchemaVersionSchema,
@@ -40,6 +56,7 @@ export const HarnessConfigSchema = z
40
56
  verifier: HarnessProfileSchema,
41
57
  acceptance: HarnessProfileSchema,
42
58
  failureAnalyzer: HarnessProfileSchema,
59
+ executionCategories: ExecutionCategoryProfilesSchema,
43
60
  verificationCommands: z.array(VerificationCommandSchema).readonly(),
44
61
  maxRunAttempts: z.number().int().positive(),
45
62
  stateDirectory: WorkspaceRelativePathSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/config/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/config/config-schema.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import type { z } from "zod";
2
- import type { VerificationCommandSchema } from "../domain/index.js";
2
+ import type { ExecutionCategorySchema, VerificationCommandSchema } from "../domain/index.js";
3
3
  export type AvailableModelRegistry = Readonly<Record<string, readonly string[]>>;
4
4
  export type MergedHarnessProfile = {
5
5
  readonly provider: string;
6
6
  readonly model: string;
7
+ readonly skill?: string | undefined;
7
8
  };
9
+ export type MergedExecutionCategoryProfile = MergedHarnessProfile;
10
+ export type MergedExecutionCategoryProfiles = Readonly<Record<z.infer<typeof ExecutionCategorySchema>, MergedExecutionCategoryProfile>>;
8
11
  export type MergedHarnessConfig = {
9
12
  readonly schemaVersion: string;
10
13
  readonly enabled: boolean;
@@ -14,6 +17,7 @@ export type MergedHarnessConfig = {
14
17
  readonly verifier: MergedHarnessProfile;
15
18
  readonly acceptance: MergedHarnessProfile;
16
19
  readonly failureAnalyzer: MergedHarnessProfile;
20
+ readonly executionCategories: MergedExecutionCategoryProfiles;
17
21
  readonly verificationCommands: readonly z.infer<typeof VerificationCommandSchema>[];
18
22
  readonly maxRunAttempts: number;
19
23
  readonly stateDirectory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../../src/config/config-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAEnE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;AAEhF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAA;IACzC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAA;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAAE,CAAA;IACnF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC,CAAA"}
1
+ {"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../../src/config/config-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE5F,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;AAEhF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,oBAAoB,CAAA;AAEjE,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CACpD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,EAAE,8BAA8B,CAAC,CAChF,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAA;IACzC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAA;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,+BAA+B,CAAA;IAC7D,QAAQ,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAAE,CAAA;IACnF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC,CAAA"}
@@ -1,6 +1,7 @@
1
1
  export { HARNESS_CONFIG_DEFAULTS } from "./config-defaults.js";
2
2
  export { ConfigLoadError } from "./config-errors.js";
3
- export type { HarnessAgentProfile, HarnessConfig, HarnessConfigInput, HarnessProfileInput, } from "./config-schema.js";
3
+ export type { ExecutionCategoryProfiles, HarnessAgentProfile, HarnessConfig, HarnessConfigInput, HarnessProfileInput, } from "./config-schema.js";
4
4
  export type { AvailableModelRegistry } from "./config-types.js";
5
5
  export { type LoadHarnessConfigOptions, loadHarnessConfig, } from "./load-harness-config.js";
6
+ export { assessHarnessVersionCompatibility, HARNESS_COMPATIBILITY, type HarnessCompatibilityAssessment, type VersionCompatibilityIssue, type VersionCompatibilityStatus, } from "./opencode-compatibility.js";
6
7
  //# sourceMappingURL=harness-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-config.d.ts","sourceRoot":"","sources":["../../src/config/harness-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAC7B,iBAAiB,GAClB,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"harness-config.d.ts","sourceRoot":"","sources":["../../src/config/harness-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,YAAY,EACV,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAC7B,iBAAiB,GAClB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { HARNESS_CONFIG_DEFAULTS } from "./config-defaults.js";
2
2
  export { ConfigLoadError } from "./config-errors.js";
3
3
  export { loadHarnessConfig, } from "./load-harness-config.js";
4
+ export { assessHarnessVersionCompatibility, HARNESS_COMPATIBILITY, } from "./opencode-compatibility.js";
4
5
  //# sourceMappingURL=harness-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-config.js","sourceRoot":"","sources":["../../src/config/harness-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAQpD,OAAO,EAEL,iBAAiB,GAClB,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"harness-config.js","sourceRoot":"","sources":["../../src/config/harness-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AASpD,OAAO,EAEL,iBAAiB,GAClB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,iCAAiC,EACjC,qBAAqB,GAItB,MAAM,6BAA6B,CAAA"}
@@ -1,2 +1,2 @@
1
- export { type AvailableModelRegistry, ConfigLoadError, HARNESS_CONFIG_DEFAULTS, type HarnessAgentProfile, type HarnessConfig, type HarnessConfigInput, type HarnessProfileInput, type LoadHarnessConfigOptions, loadHarnessConfig, } from "./harness-config.js";
1
+ export { type AvailableModelRegistry, ConfigLoadError, type ExecutionCategoryProfiles, HARNESS_CONFIG_DEFAULTS, type HarnessAgentProfile, type HarnessConfig, type HarnessConfigInput, type HarnessProfileInput, type LoadHarnessConfigOptions, loadHarnessConfig, } from "./harness-config.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,eAAe,EACf,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,iBAAiB,GAClB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,eAAe,EACf,KAAK,yBAAyB,EAC9B,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,iBAAiB,GAClB,MAAM,qBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,uBAAuB,EAMvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,uBAAuB,EAMvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,37 @@
1
+ export declare const HARNESS_COMPATIBILITY: Readonly<{
2
+ opencode: Readonly<{
3
+ supported: string;
4
+ minimumCompatible: string;
5
+ maximumValidated: string;
6
+ }>;
7
+ pluginSdk: Readonly<{
8
+ supported: string;
9
+ minimumCompatible: string;
10
+ maximumValidated: string;
11
+ }>;
12
+ persistedSchema: Readonly<{
13
+ supported: string;
14
+ minimumCompatible: string;
15
+ maximumValidated: string;
16
+ }>;
17
+ }>;
18
+ export type VersionCompatibilityStatus = "supported" | "unknown" | "incompatible";
19
+ export type VersionCompatibilityIssue = {
20
+ readonly component: "opencode" | "pluginSdk" | "persistedSchema";
21
+ readonly status: Exclude<VersionCompatibilityStatus, "supported">;
22
+ readonly actualVersion: string;
23
+ readonly supportedVersion: string;
24
+ readonly minimumCompatibleVersion: string;
25
+ readonly maximumValidatedVersion: string;
26
+ };
27
+ export type HarnessCompatibilityAssessment = {
28
+ readonly status: VersionCompatibilityStatus;
29
+ readonly supportedVersions: typeof HARNESS_COMPATIBILITY;
30
+ readonly issues: readonly VersionCompatibilityIssue[];
31
+ };
32
+ export declare const assessHarnessVersionCompatibility: (input: {
33
+ readonly opencodeVersion: string;
34
+ readonly pluginSdkVersion: string;
35
+ readonly persistedSchemaVersion: string;
36
+ }) => HarnessCompatibilityAssessment;
37
+ //# sourceMappingURL=opencode-compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-compatibility.d.ts","sourceRoot":"","sources":["../../src/config/opencode-compatibility.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;EAgBhC,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,CAAA;AAEjF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,WAAW,GAAG,iBAAiB,CAAA;IAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAA;IACjE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAA;IACzC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAA;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,qBAAqB,CAAA;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,iCAAiC,GAAI,OAAO;IACvD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;CACxC,KAAG,8BAoBH,CAAA"}
@@ -0,0 +1,99 @@
1
+ import { z } from "zod";
2
+ const SemVerSchema = z
3
+ .string()
4
+ .regex(/^\d+\.\d+\.\d+$/)
5
+ .transform((value) => {
6
+ const [majorText = "0", minorText = "0", patchText = "0"] = value.split(".");
7
+ const major = Number.parseInt(majorText, 10);
8
+ const minor = Number.parseInt(minorText, 10);
9
+ const patch = Number.parseInt(patchText, 10);
10
+ return { raw: value, major, minor, patch };
11
+ });
12
+ const VersionSupportWindowSchema = z
13
+ .object({
14
+ supported: z.string().regex(/^\d+\.\d+\.\d+$/),
15
+ minimumCompatible: z.string().regex(/^\d+\.\d+\.\d+$/),
16
+ maximumValidated: z.string().regex(/^\d+\.\d+\.\d+$/),
17
+ })
18
+ .readonly();
19
+ const HarnessCompatibilitySchema = z
20
+ .object({
21
+ opencode: VersionSupportWindowSchema,
22
+ pluginSdk: VersionSupportWindowSchema,
23
+ persistedSchema: VersionSupportWindowSchema,
24
+ })
25
+ .readonly();
26
+ export const HARNESS_COMPATIBILITY = HarnessCompatibilitySchema.parse({
27
+ opencode: {
28
+ supported: "1.18.12",
29
+ minimumCompatible: "1.17.11",
30
+ maximumValidated: "1.18.12",
31
+ },
32
+ pluginSdk: {
33
+ supported: "1.17.11",
34
+ minimumCompatible: "1.17.11",
35
+ maximumValidated: "1.17.11",
36
+ },
37
+ persistedSchema: {
38
+ supported: "1.0.0",
39
+ minimumCompatible: "1.0.0",
40
+ maximumValidated: "1.0.0",
41
+ },
42
+ });
43
+ export const assessHarnessVersionCompatibility = (input) => {
44
+ const issues = [
45
+ assessWindow("opencode", input.opencodeVersion, HARNESS_COMPATIBILITY.opencode),
46
+ assessWindow("pluginSdk", input.pluginSdkVersion, HARNESS_COMPATIBILITY.pluginSdk),
47
+ assessWindow("persistedSchema", input.persistedSchemaVersion, HARNESS_COMPATIBILITY.persistedSchema),
48
+ ].flatMap((issue) => (issue === undefined ? [] : [issue]));
49
+ return {
50
+ status: issues.some((issue) => issue.status === "incompatible")
51
+ ? "incompatible"
52
+ : issues.some((issue) => issue.status === "unknown")
53
+ ? "unknown"
54
+ : "supported",
55
+ supportedVersions: HARNESS_COMPATIBILITY,
56
+ issues,
57
+ };
58
+ };
59
+ const assessWindow = (component, actualVersion, window) => {
60
+ const actual = parseSemVer(actualVersion);
61
+ const minimumCompatible = SemVerSchema.parse(window.minimumCompatible);
62
+ const maximumValidated = SemVerSchema.parse(window.maximumValidated);
63
+ if (actual.kind === "invalid") {
64
+ return createIssue(component, "incompatible", actual.raw, window);
65
+ }
66
+ if (compareSemVer(actual.value, minimumCompatible) < 0 ||
67
+ actual.value.major !== minimumCompatible.major) {
68
+ return createIssue(component, "incompatible", actual.value.raw, window);
69
+ }
70
+ if (compareSemVer(actual.value, maximumValidated) > 0) {
71
+ return createIssue(component, "unknown", actual.value.raw, window);
72
+ }
73
+ return undefined;
74
+ };
75
+ const createIssue = (component, status, actualVersion, window) => ({
76
+ component,
77
+ status,
78
+ actualVersion,
79
+ supportedVersion: window.supported,
80
+ minimumCompatibleVersion: window.minimumCompatible,
81
+ maximumValidatedVersion: window.maximumValidated,
82
+ });
83
+ const compareSemVer = (left, right) => {
84
+ if (left.major !== right.major) {
85
+ return left.major - right.major;
86
+ }
87
+ if (left.minor !== right.minor) {
88
+ return left.minor - right.minor;
89
+ }
90
+ return left.patch - right.patch;
91
+ };
92
+ const parseSemVer = (raw) => {
93
+ const parsed = SemVerSchema.safeParse(raw);
94
+ if (!parsed.success) {
95
+ return { kind: "invalid", raw };
96
+ }
97
+ return { kind: "parsed", value: parsed.data };
98
+ };
99
+ //# sourceMappingURL=opencode-compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-compatibility.js","sourceRoot":"","sources":["../../src/config/opencode-compatibility.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type ZodType } from "zod";
2
2
  import type { SessionRunResult } from "../session/index.js";
3
- type StructuredAgentOutputErrorCode = "agent-status-transition-denied" | "unsupported-schema-version";
3
+ type StructuredAgentOutputErrorCode = "agent-status-transition-denied" | "agent-unauthorized-action" | "unsupported-schema-version";
4
4
  type StructuredAgentOutputErrorDetails = {
5
5
  readonly role: string;
6
6
  readonly suggestedStatus?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-output.d.ts","sourceRoot":"","sources":["../../src/controller/agent-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,KAAK,CAAA;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAK3D,KAAK,8BAA8B,GAC/B,gCAAgC,GAChC,4BAA4B,CAAA;AAEhC,KAAK,iCAAiC,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;CACxC,CAAA;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAIjD,QAAQ,CAAC,IAAI,EAAE,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,iCAAiC;IAJrD,QAAQ,CAAC,IAAI,gCAA+B;gBAGjC,IAAI,EAAE,8BAA8B,EACpC,OAAO,EAAE,iCAAiC;CAItD;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,gBAAgB,KAAG,MAS1D,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,MAAM,MAAM,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,KAAG,CAclF,CAAA;AAED,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,EACZ,iBAAiB,MAAM,EACvB,iBAAiB,SAAS,MAAM,EAAE,KACjC,IASF,CAAA"}
1
+ {"version":3,"file":"agent-output.d.ts","sourceRoot":"","sources":["../../src/controller/agent-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,KAAK,CAAA;AAG5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAM3D,KAAK,8BAA8B,GAC/B,gCAAgC,GAChC,2BAA2B,GAC3B,4BAA4B,CAAA;AAEhC,KAAK,iCAAiC,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;CACxC,CAAA;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAIjD,QAAQ,CAAC,IAAI,EAAE,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,iCAAiC;IAJrD,QAAQ,CAAC,IAAI,gCAA+B;gBAGjC,IAAI,EAAE,8BAA8B,EACpC,OAAO,EAAE,iCAAiC;CAItD;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,gBAAgB,KAAG,MAS1D,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,MAAM,MAAM,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,KAAG,CAelF,CAAA;AAiBD,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,EACZ,iBAAiB,MAAM,EACvB,iBAAiB,SAAS,MAAM,EAAE,KACjC,IASF,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import { ZodError } from "zod";
2
+ import { findUnauthorizedSuggestedSignal } from "../agent/index.js";
2
3
  import { AgentOutputParseError, AgentRunFailedError, RunCancellationError } from "./errors.js";
4
+ import { normalizeFailureAnalyzerOutput } from "./failure-analyzer-schemas.js";
3
5
  const SUPPORTED_SCHEMA_MAJOR_VERSION = 1;
4
6
  export class StructuredAgentOutputError extends Error {
5
7
  code;
@@ -23,8 +25,9 @@ export const readAgentOutput = (result) => {
23
25
  };
24
26
  export const parseAgentJson = (text, schema, role) => {
25
27
  try {
26
- const parsed = JSON.parse(text);
28
+ const parsed = normalizeRoleSpecificOutput(JSON.parse(text), role);
27
29
  assertSupportedSchemaVersion(parsed, role);
30
+ assertRoleAuthorizedSignals(parsed, role);
28
31
  return schema.parse(parsed);
29
32
  }
30
33
  catch (error) {
@@ -37,6 +40,18 @@ export const parseAgentJson = (text, schema, role) => {
37
40
  throw error;
38
41
  }
39
42
  };
43
+ const normalizeRoleSpecificOutput = (value, role) => role === "failure-analyzer" ? normalizeFailureAnalyzerOutput(value) : value;
44
+ const assertRoleAuthorizedSignals = (value, role) => {
45
+ const issue = findUnauthorizedSuggestedSignal(role, value);
46
+ if (issue === undefined) {
47
+ return;
48
+ }
49
+ throw new StructuredAgentOutputError("agent-unauthorized-action", {
50
+ role,
51
+ suggestedStatus: issue.value,
52
+ allowedStatuses: issue.allowedValues,
53
+ });
54
+ };
40
55
  export const assertAgentSuggestedStatus = (role, suggestedStatus, allowedStatuses) => {
41
56
  if (allowedStatuses.includes(suggestedStatus)) {
42
57
  return;
@@ -70,6 +85,8 @@ const createStructuredErrorMessage = (code, details) => {
70
85
  return `${details.role} suggested unsupported status ${details.suggestedStatus}; allowed: ${details.allowedStatuses?.join(", ") ?? "none"}`;
71
86
  case "unsupported-schema-version":
72
87
  return `${details.role} returned unsupported schemaVersion ${details.schemaVersion}; supported major is ${details.supportedMajorVersion}`;
88
+ case "agent-unauthorized-action":
89
+ return `${details.role} suggested unauthorized signal ${details.suggestedStatus}; allowed: ${details.allowedStatuses?.join(", ") ?? "none"}`;
73
90
  }
74
91
  };
75
92
  //# sourceMappingURL=agent-output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-output.js","sourceRoot":"","sources":["../../src/controller/agent-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-output.js","sourceRoot":"","sources":["../../src/controller/agent-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { HarnessAgentProfile } from "../config/index.js";
2
+ import type { ExecutionCategory, RunId } from "../domain/index.js";
3
+ import type { HarnessSessionRole } from "../session/contracts.js";
4
+ import type { SessionEvidenceReference, SessionOutputContract } from "../session/index.js";
5
+ import type { OrphanSession } from "./agent-session-utils.js";
6
+ export type SendAgentInput = {
7
+ readonly runId: RunId;
8
+ readonly role: HarnessSessionRole;
9
+ readonly title: string;
10
+ readonly brief: string;
11
+ readonly constraints: readonly string[];
12
+ readonly evidence: readonly SessionEvidenceReference[];
13
+ readonly outputContract: SessionOutputContract;
14
+ readonly messageLabel: string;
15
+ readonly systemPrompt?: string;
16
+ readonly timeoutMs?: number;
17
+ readonly parentSessionId?: string;
18
+ readonly workingDirectory?: string;
19
+ readonly allowedPaths?: readonly string[];
20
+ readonly executionCategory?: ExecutionCategory;
21
+ readonly profileOverride?: HarnessAgentProfile;
22
+ };
23
+ export type AgentSessionRuntime = {
24
+ readonly sendAgent: (input: SendAgentInput) => Promise<string>;
25
+ readonly abortActiveSession: (runId: RunId) => Promise<void>;
26
+ readonly hasActiveSession: (runId: RunId) => boolean;
27
+ readonly isCancelled: (runId: RunId) => boolean;
28
+ readonly markCancelled: (runId: RunId) => void;
29
+ readonly markPaused: (runId: RunId) => void;
30
+ readonly clearInterruption: (runId: RunId) => void;
31
+ readonly listOrphanSessions: () => Promise<readonly OrphanSession[]>;
32
+ readonly rebindSession: (input: RebindSessionInput) => Promise<void>;
33
+ readonly safeAbandonSession: (input: AbandonSessionInput) => Promise<void>;
34
+ readonly reconcileOrphanSessions: (input: {
35
+ readonly runId: RunId;
36
+ readonly actorId: string;
37
+ }) => Promise<OrphanReconciliation>;
38
+ };
39
+ export type OrphanReconciliation = {
40
+ readonly kind: "none";
41
+ } | {
42
+ readonly kind: "rebound";
43
+ readonly sessionIds: readonly string[];
44
+ } | {
45
+ readonly kind: "abandoned";
46
+ readonly sessionIds: readonly string[];
47
+ };
48
+ export type RebindSessionInput = {
49
+ readonly runId: RunId;
50
+ readonly sessionId: string;
51
+ readonly actorId: string;
52
+ };
53
+ export type AbandonSessionInput = RebindSessionInput & {
54
+ readonly reason: string;
55
+ };
56
+ //# sourceMappingURL=agent-session-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session-types.d.ts","sourceRoot":"","sources":["../../src/controller/agent-session-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agent-session-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session-types.js","sourceRoot":"","sources":["../../src/controller/agent-session-types.ts"],"names":[],"mappings":""}