harness-engineering-agent 0.1.1 → 0.1.3

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 (338) hide show
  1. package/README.md +21 -7
  2. package/dist/config/config-defaults.d.ts +0 -0
  3. package/dist/config/config-defaults.d.ts.map +0 -0
  4. package/dist/config/config-defaults.js +0 -0
  5. package/dist/config/config-defaults.js.map +0 -0
  6. package/dist/config/config-errors.d.ts +0 -0
  7. package/dist/config/config-errors.d.ts.map +0 -0
  8. package/dist/config/config-errors.js +0 -0
  9. package/dist/config/config-errors.js.map +0 -0
  10. package/dist/config/config-file.d.ts +0 -0
  11. package/dist/config/config-file.d.ts.map +0 -0
  12. package/dist/config/config-file.js +0 -0
  13. package/dist/config/config-file.js.map +0 -0
  14. package/dist/config/config-merge.d.ts +0 -0
  15. package/dist/config/config-merge.d.ts.map +0 -0
  16. package/dist/config/config-merge.js +0 -0
  17. package/dist/config/config-merge.js.map +0 -0
  18. package/dist/config/config-schema.d.ts +0 -0
  19. package/dist/config/config-schema.d.ts.map +0 -0
  20. package/dist/config/config-schema.js +0 -0
  21. package/dist/config/config-schema.js.map +0 -0
  22. package/dist/config/config-types.d.ts +0 -0
  23. package/dist/config/config-types.d.ts.map +0 -0
  24. package/dist/config/config-types.js +0 -0
  25. package/dist/config/config-types.js.map +0 -0
  26. package/dist/config/harness-config.d.ts +0 -0
  27. package/dist/config/harness-config.d.ts.map +0 -0
  28. package/dist/config/harness-config.js +0 -0
  29. package/dist/config/harness-config.js.map +0 -0
  30. package/dist/config/index.d.ts +0 -0
  31. package/dist/config/index.d.ts.map +0 -0
  32. package/dist/config/index.js +0 -0
  33. package/dist/config/index.js.map +0 -0
  34. package/dist/config/load-harness-config.d.ts +0 -0
  35. package/dist/config/load-harness-config.d.ts.map +0 -0
  36. package/dist/config/load-harness-config.js +0 -0
  37. package/dist/config/load-harness-config.js.map +0 -0
  38. package/dist/controller/agent-output.d.ts +0 -0
  39. package/dist/controller/agent-output.d.ts.map +0 -0
  40. package/dist/controller/agent-output.js +0 -0
  41. package/dist/controller/agent-output.js.map +0 -0
  42. package/dist/controller/agent-session.d.ts +0 -0
  43. package/dist/controller/agent-session.d.ts.map +0 -0
  44. package/dist/controller/agent-session.js +0 -0
  45. package/dist/controller/agent-session.js.map +0 -0
  46. package/dist/controller/contracts.d.ts +0 -0
  47. package/dist/controller/contracts.d.ts.map +0 -0
  48. package/dist/controller/contracts.js +0 -0
  49. package/dist/controller/contracts.js.map +0 -0
  50. package/dist/controller/errors.d.ts +0 -0
  51. package/dist/controller/errors.d.ts.map +0 -0
  52. package/dist/controller/errors.js +0 -0
  53. package/dist/controller/errors.js.map +0 -0
  54. package/dist/controller/evidence-factory.d.ts +0 -0
  55. package/dist/controller/evidence-factory.d.ts.map +0 -0
  56. package/dist/controller/evidence-factory.js +0 -0
  57. package/dist/controller/evidence-factory.js.map +0 -0
  58. package/dist/controller/failure-analysis.d.ts +0 -0
  59. package/dist/controller/failure-analysis.d.ts.map +0 -0
  60. package/dist/controller/failure-analysis.js +0 -0
  61. package/dist/controller/failure-analysis.js.map +0 -0
  62. package/dist/controller/failure-factory.d.ts +0 -0
  63. package/dist/controller/failure-factory.d.ts.map +0 -0
  64. package/dist/controller/failure-factory.js +0 -0
  65. package/dist/controller/failure-factory.js.map +0 -0
  66. package/dist/controller/graph-validator.d.ts +0 -0
  67. package/dist/controller/graph-validator.d.ts.map +0 -0
  68. package/dist/controller/graph-validator.js +0 -0
  69. package/dist/controller/graph-validator.js.map +0 -0
  70. package/dist/controller/index.d.ts +0 -0
  71. package/dist/controller/index.d.ts.map +0 -0
  72. package/dist/controller/index.js +0 -0
  73. package/dist/controller/index.js.map +0 -0
  74. package/dist/controller/repair-loop.d.ts +0 -0
  75. package/dist/controller/repair-loop.d.ts.map +0 -0
  76. package/dist/controller/repair-loop.js +0 -0
  77. package/dist/controller/repair-loop.js.map +0 -0
  78. package/dist/controller/report-factory.d.ts +0 -0
  79. package/dist/controller/report-factory.d.ts.map +0 -0
  80. package/dist/controller/report-factory.js +0 -0
  81. package/dist/controller/report-factory.js.map +0 -0
  82. package/dist/controller/role-prompts.d.ts +0 -0
  83. package/dist/controller/role-prompts.d.ts.map +0 -0
  84. package/dist/controller/role-prompts.js +0 -0
  85. package/dist/controller/role-prompts.js.map +0 -0
  86. package/dist/controller/run-controller.d.ts +0 -0
  87. package/dist/controller/run-controller.d.ts.map +0 -0
  88. package/dist/controller/run-controller.js +0 -0
  89. package/dist/controller/run-controller.js.map +0 -0
  90. package/dist/controller/run-persistence.d.ts +0 -0
  91. package/dist/controller/run-persistence.d.ts.map +0 -0
  92. package/dist/controller/run-persistence.js +0 -0
  93. package/dist/controller/run-persistence.js.map +0 -0
  94. package/dist/controller/run-state.d.ts +0 -0
  95. package/dist/controller/run-state.d.ts.map +0 -0
  96. package/dist/controller/run-state.js +0 -0
  97. package/dist/controller/run-state.js.map +0 -0
  98. package/dist/controller/task-agent-output.d.ts +0 -0
  99. package/dist/controller/task-agent-output.d.ts.map +0 -0
  100. package/dist/controller/task-agent-output.js +0 -0
  101. package/dist/controller/task-agent-output.js.map +0 -0
  102. package/dist/controller/task-agent-schemas.d.ts +0 -0
  103. package/dist/controller/task-agent-schemas.d.ts.map +0 -0
  104. package/dist/controller/task-agent-schemas.js +0 -0
  105. package/dist/controller/task-agent-schemas.js.map +0 -0
  106. package/dist/controller/task-executor.d.ts +0 -0
  107. package/dist/controller/task-executor.d.ts.map +0 -0
  108. package/dist/controller/task-executor.js +0 -0
  109. package/dist/controller/task-executor.js.map +0 -0
  110. package/dist/controller/task-paths.d.ts +0 -0
  111. package/dist/controller/task-paths.d.ts.map +0 -0
  112. package/dist/controller/task-paths.js +0 -0
  113. package/dist/controller/task-paths.js.map +0 -0
  114. package/dist/controller/task-retry.d.ts +0 -0
  115. package/dist/controller/task-retry.d.ts.map +0 -0
  116. package/dist/controller/task-retry.js +0 -0
  117. package/dist/controller/task-retry.js.map +0 -0
  118. package/dist/controller/worktree-eligibility.d.ts +0 -0
  119. package/dist/controller/worktree-eligibility.d.ts.map +0 -0
  120. package/dist/controller/worktree-eligibility.js +0 -0
  121. package/dist/controller/worktree-eligibility.js.map +0 -0
  122. package/dist/controller/worktree-scheduler.d.ts +0 -0
  123. package/dist/controller/worktree-scheduler.d.ts.map +0 -0
  124. package/dist/controller/worktree-scheduler.js +0 -0
  125. package/dist/controller/worktree-scheduler.js.map +0 -0
  126. package/dist/domain/agent-result.d.ts +0 -0
  127. package/dist/domain/agent-result.d.ts.map +0 -0
  128. package/dist/domain/agent-result.js +0 -0
  129. package/dist/domain/agent-result.js.map +0 -0
  130. package/dist/domain/evidence.d.ts +0 -0
  131. package/dist/domain/evidence.d.ts.map +0 -0
  132. package/dist/domain/evidence.js +0 -0
  133. package/dist/domain/evidence.js.map +0 -0
  134. package/dist/domain/failure.d.ts +0 -0
  135. package/dist/domain/failure.d.ts.map +0 -0
  136. package/dist/domain/failure.js +0 -0
  137. package/dist/domain/failure.js.map +0 -0
  138. package/dist/domain/index.d.ts +0 -0
  139. package/dist/domain/index.d.ts.map +0 -0
  140. package/dist/domain/index.js +0 -0
  141. package/dist/domain/index.js.map +0 -0
  142. package/dist/domain/report.d.ts +0 -0
  143. package/dist/domain/report.d.ts.map +0 -0
  144. package/dist/domain/report.js +0 -0
  145. package/dist/domain/report.js.map +0 -0
  146. package/dist/domain/requirement.d.ts +0 -0
  147. package/dist/domain/requirement.d.ts.map +0 -0
  148. package/dist/domain/requirement.js +0 -0
  149. package/dist/domain/requirement.js.map +0 -0
  150. package/dist/domain/run.d.ts +0 -0
  151. package/dist/domain/run.d.ts.map +0 -0
  152. package/dist/domain/run.js +0 -0
  153. package/dist/domain/run.js.map +0 -0
  154. package/dist/domain/shared.d.ts +0 -0
  155. package/dist/domain/shared.d.ts.map +0 -0
  156. package/dist/domain/shared.js +0 -0
  157. package/dist/domain/shared.js.map +0 -0
  158. package/dist/domain/task.d.ts +0 -0
  159. package/dist/domain/task.d.ts.map +0 -0
  160. package/dist/domain/task.js +0 -0
  161. package/dist/domain/task.js.map +0 -0
  162. package/dist/index.d.ts +0 -0
  163. package/dist/index.d.ts.map +0 -0
  164. package/dist/index.js +0 -0
  165. package/dist/index.js.map +0 -0
  166. package/dist/mcp/cli.d.ts +3 -0
  167. package/dist/mcp/cli.d.ts.map +1 -0
  168. package/dist/mcp/cli.js +17 -0
  169. package/dist/mcp/cli.js.map +1 -0
  170. package/dist/mcp/server.d.ts +6 -0
  171. package/dist/mcp/server.d.ts.map +1 -0
  172. package/dist/mcp/server.js +24 -0
  173. package/dist/mcp/server.js.map +1 -0
  174. package/dist/path/workspace-path.d.ts +0 -0
  175. package/dist/path/workspace-path.d.ts.map +0 -0
  176. package/dist/path/workspace-path.js +0 -0
  177. package/dist/path/workspace-path.js.map +0 -0
  178. package/dist/plugin/create-harness-plugin.d.ts +0 -0
  179. package/dist/plugin/create-harness-plugin.d.ts.map +1 -1
  180. package/dist/plugin/create-harness-plugin.js +1 -16
  181. package/dist/plugin/create-harness-plugin.js.map +1 -1
  182. package/dist/plugin/harness-agent-config.d.ts +0 -0
  183. package/dist/plugin/harness-agent-config.d.ts.map +0 -0
  184. package/dist/plugin/harness-agent-config.js +2 -2
  185. package/dist/plugin/harness-agent-config.js.map +1 -1
  186. package/dist/plugin/harness-chat-hook.d.ts +0 -0
  187. package/dist/plugin/harness-chat-hook.d.ts.map +0 -0
  188. package/dist/plugin/harness-chat-hook.js +0 -0
  189. package/dist/plugin/harness-chat-hook.js.map +0 -0
  190. package/dist/plugin/harness-chat-parts.d.ts +0 -0
  191. package/dist/plugin/harness-chat-parts.d.ts.map +0 -0
  192. package/dist/plugin/harness-chat-parts.js +0 -0
  193. package/dist/plugin/harness-chat-parts.js.map +0 -0
  194. package/dist/plugin/harness-chat-protocol.d.ts +0 -0
  195. package/dist/plugin/harness-chat-protocol.d.ts.map +0 -0
  196. package/dist/plugin/harness-chat-protocol.js +0 -0
  197. package/dist/plugin/harness-chat-protocol.js.map +0 -0
  198. package/dist/plugin/harness-coordinator.d.ts +0 -0
  199. package/dist/plugin/harness-coordinator.d.ts.map +0 -0
  200. package/dist/plugin/harness-coordinator.js +0 -0
  201. package/dist/plugin/harness-coordinator.js.map +0 -0
  202. package/dist/plugin/harness-intake-prompt.d.ts +0 -0
  203. package/dist/plugin/harness-intake-prompt.d.ts.map +0 -0
  204. package/dist/plugin/harness-intake-prompt.js +0 -0
  205. package/dist/plugin/harness-intake-prompt.js.map +0 -0
  206. package/dist/plugin/harness-intent.d.ts +0 -0
  207. package/dist/plugin/harness-intent.d.ts.map +0 -0
  208. package/dist/plugin/harness-intent.js +0 -0
  209. package/dist/plugin/harness-intent.js.map +0 -0
  210. package/dist/plugin/harness-parent-session-dispatcher.d.ts +0 -0
  211. package/dist/plugin/harness-parent-session-dispatcher.d.ts.map +0 -0
  212. package/dist/plugin/harness-parent-session-dispatcher.js +0 -0
  213. package/dist/plugin/harness-parent-session-dispatcher.js.map +0 -0
  214. package/dist/plugin/harness-requirement.d.ts +0 -0
  215. package/dist/plugin/harness-requirement.d.ts.map +0 -0
  216. package/dist/plugin/harness-requirement.js +0 -0
  217. package/dist/plugin/harness-requirement.js.map +0 -0
  218. package/dist/server.d.ts +7 -0
  219. package/dist/server.d.ts.map +1 -0
  220. package/dist/server.js +9 -0
  221. package/dist/server.js.map +1 -0
  222. package/dist/session/contracts.d.ts +0 -0
  223. package/dist/session/contracts.d.ts.map +0 -0
  224. package/dist/session/contracts.js +0 -0
  225. package/dist/session/contracts.js.map +0 -0
  226. package/dist/session/fake-session-adapter.d.ts +0 -0
  227. package/dist/session/fake-session-adapter.d.ts.map +0 -0
  228. package/dist/session/fake-session-adapter.js +0 -0
  229. package/dist/session/fake-session-adapter.js.map +0 -0
  230. package/dist/session/fake-session-errors.d.ts +0 -0
  231. package/dist/session/fake-session-errors.d.ts.map +0 -0
  232. package/dist/session/fake-session-errors.js +0 -0
  233. package/dist/session/fake-session-errors.js.map +0 -0
  234. package/dist/session/harness-agent-names.d.ts +0 -0
  235. package/dist/session/harness-agent-names.d.ts.map +0 -0
  236. package/dist/session/harness-agent-names.js +0 -0
  237. package/dist/session/harness-agent-names.js.map +0 -0
  238. package/dist/session/index.d.ts +0 -0
  239. package/dist/session/index.d.ts.map +0 -0
  240. package/dist/session/index.js +0 -0
  241. package/dist/session/index.js.map +0 -0
  242. package/dist/session/opencode-session-adapter.d.ts +0 -0
  243. package/dist/session/opencode-session-adapter.d.ts.map +0 -0
  244. package/dist/session/opencode-session-adapter.js +0 -0
  245. package/dist/session/opencode-session-adapter.js.map +0 -0
  246. package/dist/session/opencode-session-client.d.ts +0 -0
  247. package/dist/session/opencode-session-client.d.ts.map +0 -0
  248. package/dist/session/opencode-session-client.js +0 -0
  249. package/dist/session/opencode-session-client.js.map +0 -0
  250. package/dist/session/opencode-session-errors.d.ts +0 -0
  251. package/dist/session/opencode-session-errors.d.ts.map +0 -0
  252. package/dist/session/opencode-session-errors.js +0 -0
  253. package/dist/session/opencode-session-errors.js.map +0 -0
  254. package/dist/session/opencode-session-prompts.d.ts +0 -0
  255. package/dist/session/opencode-session-prompts.d.ts.map +0 -0
  256. package/dist/session/opencode-session-prompts.js +0 -0
  257. package/dist/session/opencode-session-prompts.js.map +0 -0
  258. package/dist/store/filesystem-run-store-io.d.ts +0 -0
  259. package/dist/store/filesystem-run-store-io.d.ts.map +0 -0
  260. package/dist/store/filesystem-run-store-io.js +0 -0
  261. package/dist/store/filesystem-run-store-io.js.map +0 -0
  262. package/dist/store/filesystem-run-store.d.ts +0 -0
  263. package/dist/store/filesystem-run-store.d.ts.map +0 -0
  264. package/dist/store/filesystem-run-store.js +0 -0
  265. package/dist/store/filesystem-run-store.js.map +0 -0
  266. package/dist/store/index.d.ts +0 -0
  267. package/dist/store/index.d.ts.map +0 -0
  268. package/dist/store/index.js +0 -0
  269. package/dist/store/index.js.map +0 -0
  270. package/dist/store/run-event.d.ts +0 -0
  271. package/dist/store/run-event.d.ts.map +0 -0
  272. package/dist/store/run-event.js +0 -0
  273. package/dist/store/run-event.js.map +0 -0
  274. package/dist/store/run-store-errors.d.ts +0 -0
  275. package/dist/store/run-store-errors.d.ts.map +0 -0
  276. package/dist/store/run-store-errors.js +0 -0
  277. package/dist/store/run-store-errors.js.map +0 -0
  278. package/dist/tools/context7-client.d.ts +0 -0
  279. package/dist/tools/context7-client.d.ts.map +0 -0
  280. package/dist/tools/context7-client.js +0 -0
  281. package/dist/tools/context7-client.js.map +0 -0
  282. package/dist/tools/grep-app-client.d.ts +0 -0
  283. package/dist/tools/grep-app-client.d.ts.map +0 -0
  284. package/dist/tools/grep-app-client.js +0 -0
  285. package/dist/tools/grep-app-client.js.map +0 -0
  286. package/dist/tools/harness-research-tools.d.ts +3 -13
  287. package/dist/tools/harness-research-tools.d.ts.map +1 -1
  288. package/dist/tools/harness-research-tools.js +75 -80
  289. package/dist/tools/harness-research-tools.js.map +1 -1
  290. package/dist/tools/lsp-client.d.ts +0 -0
  291. package/dist/tools/lsp-client.d.ts.map +0 -0
  292. package/dist/tools/lsp-client.js +0 -0
  293. package/dist/tools/lsp-client.js.map +0 -0
  294. package/dist/tools/lsp-json-rpc.d.ts +0 -0
  295. package/dist/tools/lsp-json-rpc.d.ts.map +0 -0
  296. package/dist/tools/lsp-json-rpc.js +0 -0
  297. package/dist/tools/lsp-json-rpc.js.map +0 -0
  298. package/dist/verification/command-policy.d.ts +0 -0
  299. package/dist/verification/command-policy.d.ts.map +0 -0
  300. package/dist/verification/command-policy.js +0 -0
  301. package/dist/verification/command-policy.js.map +0 -0
  302. package/dist/verification/contracts.d.ts +0 -0
  303. package/dist/verification/contracts.d.ts.map +0 -0
  304. package/dist/verification/contracts.js +0 -0
  305. package/dist/verification/contracts.js.map +0 -0
  306. package/dist/verification/fake-process-runner.d.ts +0 -0
  307. package/dist/verification/fake-process-runner.d.ts.map +0 -0
  308. package/dist/verification/fake-process-runner.js +0 -0
  309. package/dist/verification/fake-process-runner.js.map +0 -0
  310. package/dist/verification/index.d.ts +0 -0
  311. package/dist/verification/index.d.ts.map +0 -0
  312. package/dist/verification/index.js +0 -0
  313. package/dist/verification/index.js.map +0 -0
  314. package/dist/verification/node-process-runner.d.ts +0 -0
  315. package/dist/verification/node-process-runner.d.ts.map +0 -0
  316. package/dist/verification/node-process-runner.js +0 -0
  317. package/dist/verification/node-process-runner.js.map +0 -0
  318. package/dist/verification/verification-runner.d.ts +0 -0
  319. package/dist/verification/verification-runner.d.ts.map +0 -0
  320. package/dist/verification/verification-runner.js +0 -0
  321. package/dist/verification/verification-runner.js.map +0 -0
  322. package/dist/workspace/git-baseline.d.ts +0 -0
  323. package/dist/workspace/git-baseline.d.ts.map +0 -0
  324. package/dist/workspace/git-baseline.js +0 -0
  325. package/dist/workspace/git-baseline.js.map +0 -0
  326. package/dist/workspace/git-workspace-adapter.d.ts +0 -0
  327. package/dist/workspace/git-workspace-adapter.d.ts.map +0 -0
  328. package/dist/workspace/git-workspace-adapter.js +0 -0
  329. package/dist/workspace/git-workspace-adapter.js.map +0 -0
  330. package/dist/workspace/git-worktree-adapter.d.ts +0 -0
  331. package/dist/workspace/git-worktree-adapter.d.ts.map +0 -0
  332. package/dist/workspace/git-worktree-adapter.js +0 -0
  333. package/dist/workspace/git-worktree-adapter.js.map +0 -0
  334. package/dist/workspace/index.d.ts +0 -0
  335. package/dist/workspace/index.d.ts.map +0 -0
  336. package/dist/workspace/index.js +0 -0
  337. package/dist/workspace/index.js.map +0 -0
  338. package/package.json +13 -1
@@ -1,101 +1,96 @@
1
- import { tool } from "@opencode-ai/plugin";
1
+ import { z } from "zod";
2
2
  import { sanitizeResearchToolOutput } from "../verification/command-policy.js";
3
- const RESEARCH_ROLES = new Set([
4
- "harness-planner",
5
- "harness-worker",
6
- "harness-verifier",
7
- "harness-failure-analyzer",
8
- ]);
9
- const GREP_ROLES = new Set([...RESEARCH_ROLES, "harness-acceptance"]);
10
- const LSP_ROLES = new Set([...RESEARCH_ROLES, "harness-acceptance"]);
11
- export const createHarnessResearchTools = (clients) => ({
12
- harness_context7_resolve: tool({
3
+ export const registerHarnessResearchTools = (server, clients, workspaceRoot) => {
4
+ server.registerTool("context7_resolve", {
13
5
  description: "Search Context7 for a library documentation source.",
14
- args: {
15
- libraryName: tool.schema.string().trim().min(1),
16
- query: tool.schema.string().trim().min(1),
6
+ inputSchema: {
7
+ libraryName: z.string().trim().min(1),
8
+ query: z.string().trim().min(1),
17
9
  },
18
- execute: (args, context) => executeResearch(context, RESEARCH_ROLES, () => clients.context7.resolveLibrary(args)),
19
- }),
20
- harness_context7_query: tool({
10
+ annotations: { readOnlyHint: true },
11
+ }, async ({ libraryName, query }) => researchResult(clients.context7.resolveLibrary({ libraryName, query })));
12
+ server.registerTool("context7_query", {
21
13
  description: "Query official Context7 documentation snippets.",
22
- args: {
23
- libraryId: tool.schema
14
+ inputSchema: {
15
+ libraryId: z
24
16
  .string()
25
17
  .trim()
26
18
  .regex(/^\/[^/]+\/[^/]+/),
27
- query: tool.schema.string().trim().min(1),
19
+ query: z.string().trim().min(1),
28
20
  },
29
- execute: (args, context) => executeResearch(context, RESEARCH_ROLES, () => clients.context7.queryDocs(args)),
30
- }),
31
- harness_grep_app_search: tool({
21
+ annotations: { readOnlyHint: true },
22
+ }, async ({ libraryId, query }) => researchResult(clients.context7.queryDocs({ libraryId, query })));
23
+ server.registerTool("grep_app_search", {
32
24
  description: "Search public GitHub code through the official grep.app MCP service.",
33
- args: {
34
- query: tool.schema.string().trim().min(1),
35
- language: tool.schema.array(tool.schema.string().trim().min(1)).optional(),
36
- repo: tool.schema.string().trim().min(1).optional(),
37
- path: tool.schema.string().trim().min(1).optional(),
38
- useRegexp: tool.schema.boolean().optional(),
39
- matchCase: tool.schema.boolean().optional(),
40
- matchWholeWords: tool.schema.boolean().optional(),
25
+ inputSchema: {
26
+ query: z.string().trim().min(1),
27
+ language: z.array(z.string().trim().min(1)).optional(),
28
+ repo: z.string().trim().min(1).optional(),
29
+ path: z.string().trim().min(1).optional(),
30
+ useRegexp: z.boolean().optional(),
31
+ matchCase: z.boolean().optional(),
32
+ matchWholeWords: z.boolean().optional(),
41
33
  },
42
- execute: (args, context) => executeResearch(context, GREP_ROLES, () => clients.grepApp.search({
43
- query: args.query,
44
- ...(args.language === undefined ? {} : { language: args.language }),
45
- ...(args.repo === undefined ? {} : { repo: args.repo }),
46
- ...(args.path === undefined ? {} : { path: args.path }),
47
- ...(args.useRegexp === undefined ? {} : { useRegexp: args.useRegexp }),
48
- ...(args.matchCase === undefined ? {} : { matchCase: args.matchCase }),
49
- ...(args.matchWholeWords === undefined ? {} : { matchWholeWords: args.matchWholeWords }),
50
- })),
51
- }),
52
- harness_lsp_status: tool({
34
+ annotations: { readOnlyHint: true },
35
+ }, async (args) => researchResult(clients.grepApp.search({
36
+ query: args.query,
37
+ ...(args.language === undefined ? {} : { language: args.language }),
38
+ ...(args.repo === undefined ? {} : { repo: args.repo }),
39
+ ...(args.path === undefined ? {} : { path: args.path }),
40
+ ...(args.useRegexp === undefined ? {} : { useRegexp: args.useRegexp }),
41
+ ...(args.matchCase === undefined ? {} : { matchCase: args.matchCase }),
42
+ ...(args.matchWholeWords === undefined ? {} : { matchWholeWords: args.matchWholeWords }),
43
+ })));
44
+ server.registerTool("lsp_status", {
53
45
  description: "Report available Harness LSP servers.",
54
- args: {},
55
- execute: (_args, context) => executeResearch(context, LSP_ROLES, () => clients.lsp.status()),
56
- }),
57
- harness_lsp_diagnostics: tool({
46
+ inputSchema: {},
47
+ annotations: { readOnlyHint: true },
48
+ }, async () => researchResult(clients.lsp.status()));
49
+ server.registerTool("lsp_diagnostics", {
58
50
  description: "Read diagnostics for a JavaScript, TypeScript, or Java file.",
59
- args: lspArgs(),
60
- execute: (args, context) => executeResearch(context, LSP_ROLES, () => clients.lsp.diagnostics({ ...args, workspaceRoot: context.worktree })),
61
- }),
62
- harness_lsp_definition: tool({
51
+ inputSchema: lspInputSchema(),
52
+ annotations: { readOnlyHint: true },
53
+ }, async (args) => researchResult(clients.lsp.diagnostics({ ...args, workspaceRoot })));
54
+ server.registerTool("lsp_definition", {
63
55
  description: "Resolve the definition at a source position.",
64
- args: lspArgs(),
65
- execute: (args, context) => executeResearch(context, LSP_ROLES, () => clients.lsp.definition({ ...args, workspaceRoot: context.worktree })),
66
- }),
67
- harness_lsp_references: tool({
56
+ inputSchema: lspInputSchema(),
57
+ annotations: { readOnlyHint: true },
58
+ }, async (args) => researchResult(clients.lsp.definition({ ...args, workspaceRoot })));
59
+ server.registerTool("lsp_references", {
68
60
  description: "Find references at a source position.",
69
- args: lspArgs(),
70
- execute: (args, context) => executeResearch(context, LSP_ROLES, () => clients.lsp.references({ ...args, workspaceRoot: context.worktree })),
71
- }),
72
- });
73
- const lspArgs = () => ({
74
- filePath: tool.schema.string().trim().min(1),
75
- line: tool.schema.number().int().positive(),
76
- column: tool.schema.number().int().positive(),
61
+ inputSchema: lspInputSchema(),
62
+ annotations: { readOnlyHint: true },
63
+ }, async (args) => researchResult(clients.lsp.references({ ...args, workspaceRoot })));
64
+ };
65
+ const lspInputSchema = () => ({
66
+ filePath: z.string().trim().min(1),
67
+ line: z.number().int().positive(),
68
+ column: z.number().int().positive(),
77
69
  });
78
- const executeResearch = async (context, allowedRoles, operation) => {
79
- if (!context.agent.startsWith("harness-")) {
80
- return JSON.stringify({
81
- status: "denied",
82
- reason: "tool is restricted to Harness internal agents",
83
- });
84
- }
85
- if (!allowedRoles.has(context.agent)) {
86
- return JSON.stringify({
87
- status: "denied",
88
- reason: "tool is restricted to Harness internal agents",
89
- });
90
- }
70
+ const researchResult = async (operation) => {
91
71
  try {
92
- return JSON.stringify({ status: "ok", data: sanitizeResearchToolOutput(await operation()) });
72
+ return {
73
+ content: [
74
+ {
75
+ type: "text",
76
+ text: JSON.stringify({ status: "ok", data: sanitizeResearchToolOutput(await operation) }),
77
+ },
78
+ ],
79
+ };
93
80
  }
94
81
  catch (error) {
95
- return JSON.stringify({
96
- status: "error",
97
- error: error instanceof Error ? error.message : "Harness research tool failed",
98
- });
82
+ return {
83
+ content: [
84
+ {
85
+ type: "text",
86
+ text: JSON.stringify({
87
+ status: "error",
88
+ error: error instanceof Error ? error.message : "Harness research tool failed",
89
+ }),
90
+ },
91
+ ],
92
+ isError: true,
93
+ };
99
94
  }
100
95
  };
101
96
  //# sourceMappingURL=harness-research-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-research-tools.js","sourceRoot":"","sources":["../../src/tools/harness-research-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-research-tools.js","sourceRoot":"","sources":["../../src/tools/harness-research-tools.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-engineering-agent",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Minimal OpenCode harness plugin package.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,8 +10,19 @@
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
12
  "import": "./dist/index.js"
13
+ },
14
+ "./server": {
15
+ "types": "./dist/server.d.ts",
16
+ "import": "./dist/server.js"
17
+ },
18
+ "./mcp": {
19
+ "types": "./dist/mcp/server.d.ts",
20
+ "import": "./dist/mcp/server.js"
13
21
  }
14
22
  },
23
+ "bin": {
24
+ "harness-engineering-agent-mcp": "./dist/mcp/cli.js"
25
+ },
15
26
  "files": [
16
27
  "dist"
17
28
  ],
@@ -29,6 +40,7 @@
29
40
  "typecheck": "tsc --noEmit"
30
41
  },
31
42
  "dependencies": {
43
+ "@modelcontextprotocol/sdk": "1.29.0",
32
44
  "@opencode-ai/plugin": "1.17.11",
33
45
  "@opencode-ai/sdk": "1.17.11",
34
46
  "typescript-language-server": "5.3.0",