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,92 @@
1
+ import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ const MAX_DIRECTORY_TREE_ENTRIES = 500;
4
+ const MAX_DEPTH = 2;
5
+ const IGNORED_DIRECTORIES = new Set([
6
+ "node_modules",
7
+ ".git",
8
+ "dist",
9
+ "build",
10
+ "coverage",
11
+ ".harness",
12
+ "target",
13
+ ".next",
14
+ ".nuxt",
15
+ ".cache",
16
+ ]);
17
+ export const collectProjectContext = (projectRoot) => {
18
+ const agentsMdPath = join(projectRoot, "AGENTS.md");
19
+ const readmeMdPath = join(projectRoot, "README.md");
20
+ const agentsMd = readFileIfExists(agentsMdPath);
21
+ const readmeMd = readFileIfExists(readmeMdPath);
22
+ const { entries, truncated } = collectDirectoryTree(projectRoot, MAX_DEPTH);
23
+ return {
24
+ projectRoot,
25
+ ...(agentsMd === undefined ? {} : { agentsMd }),
26
+ ...(readmeMd === undefined ? {} : { readmeMd }),
27
+ directoryTree: entries,
28
+ truncated,
29
+ };
30
+ };
31
+ const readFileIfExists = (filePath) => {
32
+ if (!existsSync(filePath)) {
33
+ return undefined;
34
+ }
35
+ try {
36
+ return readFileSync(filePath, "utf-8");
37
+ }
38
+ catch {
39
+ return undefined;
40
+ }
41
+ };
42
+ const collectDirectoryTree = (root, maxDepth) => {
43
+ const entries = [];
44
+ let truncated = false;
45
+ const walk = (dir, relativePath, depth) => {
46
+ if (truncated || depth > maxDepth) {
47
+ return;
48
+ }
49
+ let dirEntries;
50
+ try {
51
+ dirEntries = readdirSync(dir).sort();
52
+ }
53
+ catch {
54
+ return;
55
+ }
56
+ for (const entry of dirEntries) {
57
+ if (truncated) {
58
+ return;
59
+ }
60
+ const fullPath = join(dir, entry);
61
+ const entryRelativePath = relativePath.length === 0 ? entry : `${relativePath}/${entry}`;
62
+ let isDirectory = false;
63
+ try {
64
+ isDirectory = statSync(fullPath).isDirectory();
65
+ }
66
+ catch {
67
+ continue;
68
+ }
69
+ if (isDirectory) {
70
+ if (IGNORED_DIRECTORIES.has(entry)) {
71
+ continue;
72
+ }
73
+ if (entries.length >= MAX_DIRECTORY_TREE_ENTRIES) {
74
+ truncated = true;
75
+ return;
76
+ }
77
+ entries.push(`${entryRelativePath}/`);
78
+ walk(fullPath, entryRelativePath, depth + 1);
79
+ }
80
+ else {
81
+ if (entries.length >= MAX_DIRECTORY_TREE_ENTRIES) {
82
+ truncated = true;
83
+ return;
84
+ }
85
+ entries.push(entryRelativePath);
86
+ }
87
+ }
88
+ };
89
+ walk(root, "", 0);
90
+ return { entries, truncated };
91
+ };
92
+ //# sourceMappingURL=collect-project-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect-project-context.js","sourceRoot":"","sources":["../../src/workspace/collect-project-context.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { collectProjectContext } from "./collect-project-context.js";
1
2
  export type { GitWorkspaceState, NonGitWorkspaceState, RunWorkspace, WorkspaceGitState, } from "./git-baseline.js";
2
3
  export { createBufferDigest, createDefaultRunWorkspace, createWorkspaceDigest, GitWorkspaceStateSchema, NonGitWorkspaceStateSchema, RunWorkspaceSchema, WorkspaceGitStateSchema, } from "./git-baseline.js";
3
4
  export type { WorkspaceAdapter, WorkspaceChangeAssessment, WorkspacePolicy, } from "./git-workspace-adapter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,GAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACtE,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,GAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACtE,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1,3 +1,4 @@
1
+ export { collectProjectContext } from "./collect-project-context.js";
1
2
  export { createBufferDigest, createDefaultRunWorkspace, createWorkspaceDigest, GitWorkspaceStateSchema, NonGitWorkspaceStateSchema, RunWorkspaceSchema, WorkspaceGitStateSchema, } from "./git-baseline.js";
2
3
  export { createGitWorkspaceAdapter } from "./git-workspace-adapter.js";
3
4
  export { createGitWorktreeAdapter, GitWorktreeCommandError } from "./git-worktree-adapter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAM1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAQtE,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAOpE,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAM1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAQtE,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-engineering-agent",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "description": "Minimal OpenCode harness plugin package.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -11,6 +11,10 @@
11
11
  "types": "./dist/index.d.ts",
12
12
  "import": "./dist/index.js"
13
13
  },
14
+ "./doctor": {
15
+ "types": "./dist/doctor/index.d.ts",
16
+ "import": "./dist/doctor/index.js"
17
+ },
14
18
  "./server": {
15
19
  "types": "./dist/server.d.ts",
16
20
  "import": "./dist/server.js"
@@ -21,6 +25,7 @@
21
25
  }
22
26
  },
23
27
  "bin": {
28
+ "harness-engineering-agent-doctor": "./dist/doctor/cli.js",
24
29
  "harness-engineering-agent-mcp": "./dist/mcp/cli.js"
25
30
  },
26
31
  "files": [