@stoneforge/smithy 0.1.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 (497) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +114 -0
  3. package/dist/api/index.d.ts +7 -0
  4. package/dist/api/index.d.ts.map +1 -0
  5. package/dist/api/index.js +7 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/orchestrator-api.d.ts +153 -0
  8. package/dist/api/orchestrator-api.d.ts.map +1 -0
  9. package/dist/api/orchestrator-api.js +374 -0
  10. package/dist/api/orchestrator-api.js.map +1 -0
  11. package/dist/bin/sf.d.ts +3 -0
  12. package/dist/bin/sf.d.ts.map +1 -0
  13. package/dist/bin/sf.js +10 -0
  14. package/dist/bin/sf.js.map +1 -0
  15. package/dist/cli/commands/agent.d.ts +20 -0
  16. package/dist/cli/commands/agent.d.ts.map +1 -0
  17. package/dist/cli/commands/agent.js +861 -0
  18. package/dist/cli/commands/agent.js.map +1 -0
  19. package/dist/cli/commands/daemon.d.ts +14 -0
  20. package/dist/cli/commands/daemon.d.ts.map +1 -0
  21. package/dist/cli/commands/daemon.js +272 -0
  22. package/dist/cli/commands/daemon.js.map +1 -0
  23. package/dist/cli/commands/dispatch.d.ts +9 -0
  24. package/dist/cli/commands/dispatch.d.ts.map +1 -0
  25. package/dist/cli/commands/dispatch.js +128 -0
  26. package/dist/cli/commands/dispatch.js.map +1 -0
  27. package/dist/cli/commands/merge.d.ts +11 -0
  28. package/dist/cli/commands/merge.d.ts.map +1 -0
  29. package/dist/cli/commands/merge.js +246 -0
  30. package/dist/cli/commands/merge.js.map +1 -0
  31. package/dist/cli/commands/pool.d.ts +21 -0
  32. package/dist/cli/commands/pool.d.ts.map +1 -0
  33. package/dist/cli/commands/pool.js +762 -0
  34. package/dist/cli/commands/pool.js.map +1 -0
  35. package/dist/cli/commands/serve.d.ts +54 -0
  36. package/dist/cli/commands/serve.d.ts.map +1 -0
  37. package/dist/cli/commands/serve.js +57 -0
  38. package/dist/cli/commands/serve.js.map +1 -0
  39. package/dist/cli/commands/task.d.ts +36 -0
  40. package/dist/cli/commands/task.d.ts.map +1 -0
  41. package/dist/cli/commands/task.js +889 -0
  42. package/dist/cli/commands/task.js.map +1 -0
  43. package/dist/cli/commands/test-orchestration.d.ts +32 -0
  44. package/dist/cli/commands/test-orchestration.d.ts.map +1 -0
  45. package/dist/cli/commands/test-orchestration.js +392 -0
  46. package/dist/cli/commands/test-orchestration.js.map +1 -0
  47. package/dist/cli/index.d.ts +13 -0
  48. package/dist/cli/index.d.ts.map +1 -0
  49. package/dist/cli/index.js +15 -0
  50. package/dist/cli/index.js.map +1 -0
  51. package/dist/cli/plugin.d.ts +23 -0
  52. package/dist/cli/plugin.d.ts.map +1 -0
  53. package/dist/cli/plugin.js +36 -0
  54. package/dist/cli/plugin.js.map +1 -0
  55. package/dist/git/index.d.ts +10 -0
  56. package/dist/git/index.d.ts.map +1 -0
  57. package/dist/git/index.js +12 -0
  58. package/dist/git/index.js.map +1 -0
  59. package/dist/git/merge.d.ts +79 -0
  60. package/dist/git/merge.d.ts.map +1 -0
  61. package/dist/git/merge.js +254 -0
  62. package/dist/git/merge.js.map +1 -0
  63. package/dist/git/worktree-manager.d.ts +299 -0
  64. package/dist/git/worktree-manager.d.ts.map +1 -0
  65. package/dist/git/worktree-manager.js +744 -0
  66. package/dist/git/worktree-manager.js.map +1 -0
  67. package/dist/index.d.ts +24 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +31 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/prompts/director.md +272 -0
  72. package/dist/prompts/index.d.ts +100 -0
  73. package/dist/prompts/index.d.ts.map +1 -0
  74. package/dist/prompts/index.js +294 -0
  75. package/dist/prompts/index.js.map +1 -0
  76. package/dist/prompts/message-triage.md +50 -0
  77. package/dist/prompts/persistent-worker.md +240 -0
  78. package/dist/prompts/steward-base.md +64 -0
  79. package/dist/prompts/steward-docs.md +118 -0
  80. package/dist/prompts/steward-health.md +39 -0
  81. package/dist/prompts/steward-merge.md +168 -0
  82. package/dist/prompts/steward-ops.md +28 -0
  83. package/dist/prompts/steward-reminder.md +26 -0
  84. package/dist/prompts/worker.md +282 -0
  85. package/dist/providers/claude/headless.d.ts +18 -0
  86. package/dist/providers/claude/headless.d.ts.map +1 -0
  87. package/dist/providers/claude/headless.js +307 -0
  88. package/dist/providers/claude/headless.js.map +1 -0
  89. package/dist/providers/claude/index.d.ts +24 -0
  90. package/dist/providers/claude/index.d.ts.map +1 -0
  91. package/dist/providers/claude/index.js +80 -0
  92. package/dist/providers/claude/index.js.map +1 -0
  93. package/dist/providers/claude/interactive.d.ts +21 -0
  94. package/dist/providers/claude/interactive.d.ts.map +1 -0
  95. package/dist/providers/claude/interactive.js +142 -0
  96. package/dist/providers/claude/interactive.js.map +1 -0
  97. package/dist/providers/codex/event-mapper.d.ts +91 -0
  98. package/dist/providers/codex/event-mapper.d.ts.map +1 -0
  99. package/dist/providers/codex/event-mapper.js +299 -0
  100. package/dist/providers/codex/event-mapper.js.map +1 -0
  101. package/dist/providers/codex/headless.d.ts +20 -0
  102. package/dist/providers/codex/headless.d.ts.map +1 -0
  103. package/dist/providers/codex/headless.js +174 -0
  104. package/dist/providers/codex/headless.js.map +1 -0
  105. package/dist/providers/codex/index.d.ts +30 -0
  106. package/dist/providers/codex/index.d.ts.map +1 -0
  107. package/dist/providers/codex/index.js +55 -0
  108. package/dist/providers/codex/index.js.map +1 -0
  109. package/dist/providers/codex/interactive.d.ts +21 -0
  110. package/dist/providers/codex/interactive.d.ts.map +1 -0
  111. package/dist/providers/codex/interactive.js +141 -0
  112. package/dist/providers/codex/interactive.js.map +1 -0
  113. package/dist/providers/codex/jsonrpc-client.d.ts +52 -0
  114. package/dist/providers/codex/jsonrpc-client.d.ts.map +1 -0
  115. package/dist/providers/codex/jsonrpc-client.js +141 -0
  116. package/dist/providers/codex/jsonrpc-client.js.map +1 -0
  117. package/dist/providers/codex/server-manager.d.ts +100 -0
  118. package/dist/providers/codex/server-manager.d.ts.map +1 -0
  119. package/dist/providers/codex/server-manager.js +153 -0
  120. package/dist/providers/codex/server-manager.js.map +1 -0
  121. package/dist/providers/index.d.ts +15 -0
  122. package/dist/providers/index.d.ts.map +1 -0
  123. package/dist/providers/index.js +19 -0
  124. package/dist/providers/index.js.map +1 -0
  125. package/dist/providers/opencode/async-queue.d.ts +21 -0
  126. package/dist/providers/opencode/async-queue.d.ts.map +1 -0
  127. package/dist/providers/opencode/async-queue.js +51 -0
  128. package/dist/providers/opencode/async-queue.js.map +1 -0
  129. package/dist/providers/opencode/event-mapper.d.ts +132 -0
  130. package/dist/providers/opencode/event-mapper.d.ts.map +1 -0
  131. package/dist/providers/opencode/event-mapper.js +204 -0
  132. package/dist/providers/opencode/event-mapper.js.map +1 -0
  133. package/dist/providers/opencode/headless.d.ts +25 -0
  134. package/dist/providers/opencode/headless.d.ts.map +1 -0
  135. package/dist/providers/opencode/headless.js +190 -0
  136. package/dist/providers/opencode/headless.js.map +1 -0
  137. package/dist/providers/opencode/index.d.ts +33 -0
  138. package/dist/providers/opencode/index.d.ts.map +1 -0
  139. package/dist/providers/opencode/index.js +42 -0
  140. package/dist/providers/opencode/index.js.map +1 -0
  141. package/dist/providers/opencode/interactive.d.ts +21 -0
  142. package/dist/providers/opencode/interactive.d.ts.map +1 -0
  143. package/dist/providers/opencode/interactive.js +135 -0
  144. package/dist/providers/opencode/interactive.js.map +1 -0
  145. package/dist/providers/opencode/server-manager.d.ts +145 -0
  146. package/dist/providers/opencode/server-manager.d.ts.map +1 -0
  147. package/dist/providers/opencode/server-manager.js +163 -0
  148. package/dist/providers/opencode/server-manager.js.map +1 -0
  149. package/dist/providers/registry.d.ts +38 -0
  150. package/dist/providers/registry.d.ts.map +1 -0
  151. package/dist/providers/registry.js +82 -0
  152. package/dist/providers/registry.js.map +1 -0
  153. package/dist/providers/types.d.ts +144 -0
  154. package/dist/providers/types.d.ts.map +1 -0
  155. package/dist/providers/types.js +25 -0
  156. package/dist/providers/types.js.map +1 -0
  157. package/dist/runtime/event-utils.d.ts +8 -0
  158. package/dist/runtime/event-utils.d.ts.map +1 -0
  159. package/dist/runtime/event-utils.js +23 -0
  160. package/dist/runtime/event-utils.js.map +1 -0
  161. package/dist/runtime/handoff.d.ts +195 -0
  162. package/dist/runtime/handoff.d.ts.map +1 -0
  163. package/dist/runtime/handoff.js +332 -0
  164. package/dist/runtime/handoff.js.map +1 -0
  165. package/dist/runtime/index.d.ts +17 -0
  166. package/dist/runtime/index.d.ts.map +1 -0
  167. package/dist/runtime/index.js +60 -0
  168. package/dist/runtime/index.js.map +1 -0
  169. package/dist/runtime/message-mapper.d.ts +99 -0
  170. package/dist/runtime/message-mapper.d.ts.map +1 -0
  171. package/dist/runtime/message-mapper.js +202 -0
  172. package/dist/runtime/message-mapper.js.map +1 -0
  173. package/dist/runtime/predecessor-query.d.ts +212 -0
  174. package/dist/runtime/predecessor-query.d.ts.map +1 -0
  175. package/dist/runtime/predecessor-query.js +283 -0
  176. package/dist/runtime/predecessor-query.js.map +1 -0
  177. package/dist/runtime/session-manager.d.ts +466 -0
  178. package/dist/runtime/session-manager.d.ts.map +1 -0
  179. package/dist/runtime/session-manager.js +986 -0
  180. package/dist/runtime/session-manager.js.map +1 -0
  181. package/dist/runtime/spawner.d.ts +407 -0
  182. package/dist/runtime/spawner.d.ts.map +1 -0
  183. package/dist/runtime/spawner.js +781 -0
  184. package/dist/runtime/spawner.js.map +1 -0
  185. package/dist/server/config.d.ts +22 -0
  186. package/dist/server/config.d.ts.map +1 -0
  187. package/dist/server/config.js +59 -0
  188. package/dist/server/config.js.map +1 -0
  189. package/dist/server/daemon-state.d.ts +50 -0
  190. package/dist/server/daemon-state.d.ts.map +1 -0
  191. package/dist/server/daemon-state.js +100 -0
  192. package/dist/server/daemon-state.js.map +1 -0
  193. package/dist/server/events-websocket.d.ts +32 -0
  194. package/dist/server/events-websocket.d.ts.map +1 -0
  195. package/dist/server/events-websocket.js +96 -0
  196. package/dist/server/events-websocket.js.map +1 -0
  197. package/dist/server/formatters.d.ts +94 -0
  198. package/dist/server/formatters.d.ts.map +1 -0
  199. package/dist/server/formatters.js +142 -0
  200. package/dist/server/formatters.js.map +1 -0
  201. package/dist/server/index.d.ts +17 -0
  202. package/dist/server/index.d.ts.map +1 -0
  203. package/dist/server/index.js +153 -0
  204. package/dist/server/index.js.map +1 -0
  205. package/dist/server/lsp-websocket.d.ts +33 -0
  206. package/dist/server/lsp-websocket.d.ts.map +1 -0
  207. package/dist/server/lsp-websocket.js +161 -0
  208. package/dist/server/lsp-websocket.js.map +1 -0
  209. package/dist/server/routes/agents.d.ts +9 -0
  210. package/dist/server/routes/agents.d.ts.map +1 -0
  211. package/dist/server/routes/agents.js +369 -0
  212. package/dist/server/routes/agents.js.map +1 -0
  213. package/dist/server/routes/daemon.d.ts +13 -0
  214. package/dist/server/routes/daemon.d.ts.map +1 -0
  215. package/dist/server/routes/daemon.js +187 -0
  216. package/dist/server/routes/daemon.js.map +1 -0
  217. package/dist/server/routes/events.d.ts +23 -0
  218. package/dist/server/routes/events.d.ts.map +1 -0
  219. package/dist/server/routes/events.js +282 -0
  220. package/dist/server/routes/events.js.map +1 -0
  221. package/dist/server/routes/extensions.d.ts +9 -0
  222. package/dist/server/routes/extensions.d.ts.map +1 -0
  223. package/dist/server/routes/extensions.js +202 -0
  224. package/dist/server/routes/extensions.js.map +1 -0
  225. package/dist/server/routes/health.d.ts +7 -0
  226. package/dist/server/routes/health.d.ts.map +1 -0
  227. package/dist/server/routes/health.js +33 -0
  228. package/dist/server/routes/health.js.map +1 -0
  229. package/dist/server/routes/index.d.ts +21 -0
  230. package/dist/server/routes/index.d.ts.map +1 -0
  231. package/dist/server/routes/index.js +21 -0
  232. package/dist/server/routes/index.js.map +1 -0
  233. package/dist/server/routes/lsp.d.ts +9 -0
  234. package/dist/server/routes/lsp.d.ts.map +1 -0
  235. package/dist/server/routes/lsp.js +50 -0
  236. package/dist/server/routes/lsp.js.map +1 -0
  237. package/dist/server/routes/plugins.d.ts +9 -0
  238. package/dist/server/routes/plugins.d.ts.map +1 -0
  239. package/dist/server/routes/plugins.js +109 -0
  240. package/dist/server/routes/plugins.js.map +1 -0
  241. package/dist/server/routes/pools.d.ts +9 -0
  242. package/dist/server/routes/pools.d.ts.map +1 -0
  243. package/dist/server/routes/pools.js +189 -0
  244. package/dist/server/routes/pools.js.map +1 -0
  245. package/dist/server/routes/scheduler.d.ts +9 -0
  246. package/dist/server/routes/scheduler.d.ts.map +1 -0
  247. package/dist/server/routes/scheduler.js +162 -0
  248. package/dist/server/routes/scheduler.js.map +1 -0
  249. package/dist/server/routes/sessions.d.ts +27 -0
  250. package/dist/server/routes/sessions.d.ts.map +1 -0
  251. package/dist/server/routes/sessions.js +773 -0
  252. package/dist/server/routes/sessions.js.map +1 -0
  253. package/dist/server/routes/tasks.d.ts +9 -0
  254. package/dist/server/routes/tasks.d.ts.map +1 -0
  255. package/dist/server/routes/tasks.js +954 -0
  256. package/dist/server/routes/tasks.js.map +1 -0
  257. package/dist/server/routes/upload.d.ts +8 -0
  258. package/dist/server/routes/upload.d.ts.map +1 -0
  259. package/dist/server/routes/upload.js +40 -0
  260. package/dist/server/routes/upload.js.map +1 -0
  261. package/dist/server/routes/workflows.d.ts +9 -0
  262. package/dist/server/routes/workflows.d.ts.map +1 -0
  263. package/dist/server/routes/workflows.js +532 -0
  264. package/dist/server/routes/workflows.js.map +1 -0
  265. package/dist/server/routes/workspace-files.d.ts +12 -0
  266. package/dist/server/routes/workspace-files.d.ts.map +1 -0
  267. package/dist/server/routes/workspace-files.js +520 -0
  268. package/dist/server/routes/workspace-files.js.map +1 -0
  269. package/dist/server/routes/worktrees.d.ts +9 -0
  270. package/dist/server/routes/worktrees.d.ts.map +1 -0
  271. package/dist/server/routes/worktrees.js +94 -0
  272. package/dist/server/routes/worktrees.js.map +1 -0
  273. package/dist/server/server.d.ts +14 -0
  274. package/dist/server/server.d.ts.map +1 -0
  275. package/dist/server/server.js +258 -0
  276. package/dist/server/server.js.map +1 -0
  277. package/dist/server/services/lsp-manager.d.ts +93 -0
  278. package/dist/server/services/lsp-manager.d.ts.map +1 -0
  279. package/dist/server/services/lsp-manager.js +291 -0
  280. package/dist/server/services/lsp-manager.js.map +1 -0
  281. package/dist/server/services/session-messages.d.ts +61 -0
  282. package/dist/server/services/session-messages.d.ts.map +1 -0
  283. package/dist/server/services/session-messages.js +101 -0
  284. package/dist/server/services/session-messages.js.map +1 -0
  285. package/dist/server/services.d.ts +35 -0
  286. package/dist/server/services.d.ts.map +1 -0
  287. package/dist/server/services.js +159 -0
  288. package/dist/server/services.js.map +1 -0
  289. package/dist/server/static.d.ts +18 -0
  290. package/dist/server/static.d.ts.map +1 -0
  291. package/dist/server/static.js +71 -0
  292. package/dist/server/static.js.map +1 -0
  293. package/dist/server/types.d.ts +20 -0
  294. package/dist/server/types.d.ts.map +1 -0
  295. package/dist/server/types.js +7 -0
  296. package/dist/server/types.js.map +1 -0
  297. package/dist/server/websocket.d.ts +16 -0
  298. package/dist/server/websocket.d.ts.map +1 -0
  299. package/dist/server/websocket.js +143 -0
  300. package/dist/server/websocket.js.map +1 -0
  301. package/dist/services/agent-pool-service.d.ts +181 -0
  302. package/dist/services/agent-pool-service.d.ts.map +1 -0
  303. package/dist/services/agent-pool-service.js +590 -0
  304. package/dist/services/agent-pool-service.js.map +1 -0
  305. package/dist/services/agent-registry.d.ts +185 -0
  306. package/dist/services/agent-registry.d.ts.map +1 -0
  307. package/dist/services/agent-registry.js +432 -0
  308. package/dist/services/agent-registry.js.map +1 -0
  309. package/dist/services/dispatch-daemon.d.ts +429 -0
  310. package/dist/services/dispatch-daemon.d.ts.map +1 -0
  311. package/dist/services/dispatch-daemon.js +1833 -0
  312. package/dist/services/dispatch-daemon.js.map +1 -0
  313. package/dist/services/dispatch-service.d.ts +148 -0
  314. package/dist/services/dispatch-service.d.ts.map +1 -0
  315. package/dist/services/dispatch-service.js +170 -0
  316. package/dist/services/dispatch-service.js.map +1 -0
  317. package/dist/services/docs-steward-service.d.ts +199 -0
  318. package/dist/services/docs-steward-service.d.ts.map +1 -0
  319. package/dist/services/docs-steward-service.js +599 -0
  320. package/dist/services/docs-steward-service.js.map +1 -0
  321. package/dist/services/health-steward-service.d.ts +446 -0
  322. package/dist/services/health-steward-service.d.ts.map +1 -0
  323. package/dist/services/health-steward-service.js +866 -0
  324. package/dist/services/health-steward-service.js.map +1 -0
  325. package/dist/services/index.d.ts +26 -0
  326. package/dist/services/index.d.ts.map +1 -0
  327. package/dist/services/index.js +111 -0
  328. package/dist/services/index.js.map +1 -0
  329. package/dist/services/merge-request-provider.d.ts +59 -0
  330. package/dist/services/merge-request-provider.d.ts.map +1 -0
  331. package/dist/services/merge-request-provider.js +89 -0
  332. package/dist/services/merge-request-provider.js.map +1 -0
  333. package/dist/services/merge-steward-service.d.ts +268 -0
  334. package/dist/services/merge-steward-service.d.ts.map +1 -0
  335. package/dist/services/merge-steward-service.js +568 -0
  336. package/dist/services/merge-steward-service.js.map +1 -0
  337. package/dist/services/plugin-executor.d.ts +247 -0
  338. package/dist/services/plugin-executor.d.ts.map +1 -0
  339. package/dist/services/plugin-executor.js +451 -0
  340. package/dist/services/plugin-executor.js.map +1 -0
  341. package/dist/services/role-definition-service.d.ts +117 -0
  342. package/dist/services/role-definition-service.d.ts.map +1 -0
  343. package/dist/services/role-definition-service.js +289 -0
  344. package/dist/services/role-definition-service.js.map +1 -0
  345. package/dist/services/steward-scheduler.d.ts +336 -0
  346. package/dist/services/steward-scheduler.d.ts.map +1 -0
  347. package/dist/services/steward-scheduler.js +732 -0
  348. package/dist/services/steward-scheduler.js.map +1 -0
  349. package/dist/services/task-assignment-service.d.ts +291 -0
  350. package/dist/services/task-assignment-service.d.ts.map +1 -0
  351. package/dist/services/task-assignment-service.js +454 -0
  352. package/dist/services/task-assignment-service.js.map +1 -0
  353. package/dist/services/worker-task-service.d.ts +202 -0
  354. package/dist/services/worker-task-service.d.ts.map +1 -0
  355. package/dist/services/worker-task-service.js +228 -0
  356. package/dist/services/worker-task-service.js.map +1 -0
  357. package/dist/testing/index.d.ts +13 -0
  358. package/dist/testing/index.d.ts.map +1 -0
  359. package/dist/testing/index.js +17 -0
  360. package/dist/testing/index.js.map +1 -0
  361. package/dist/testing/orchestration-tests.d.ts +62 -0
  362. package/dist/testing/orchestration-tests.d.ts.map +1 -0
  363. package/dist/testing/orchestration-tests.js +1115 -0
  364. package/dist/testing/orchestration-tests.js.map +1 -0
  365. package/dist/testing/test-context.d.ts +171 -0
  366. package/dist/testing/test-context.d.ts.map +1 -0
  367. package/dist/testing/test-context.js +665 -0
  368. package/dist/testing/test-context.js.map +1 -0
  369. package/dist/testing/test-prompts.d.ts +46 -0
  370. package/dist/testing/test-prompts.d.ts.map +1 -0
  371. package/dist/testing/test-prompts.js +140 -0
  372. package/dist/testing/test-prompts.js.map +1 -0
  373. package/dist/testing/test-utils.d.ts +200 -0
  374. package/dist/testing/test-utils.d.ts.map +1 -0
  375. package/dist/testing/test-utils.js +378 -0
  376. package/dist/testing/test-utils.js.map +1 -0
  377. package/dist/types/agent-pool.d.ts +215 -0
  378. package/dist/types/agent-pool.d.ts.map +1 -0
  379. package/dist/types/agent-pool.js +143 -0
  380. package/dist/types/agent-pool.js.map +1 -0
  381. package/dist/types/agent.d.ts +265 -0
  382. package/dist/types/agent.d.ts.map +1 -0
  383. package/dist/types/agent.js +127 -0
  384. package/dist/types/agent.js.map +1 -0
  385. package/dist/types/index.d.ts +11 -0
  386. package/dist/types/index.d.ts.map +1 -0
  387. package/dist/types/index.js +40 -0
  388. package/dist/types/index.js.map +1 -0
  389. package/dist/types/message-types.d.ts +294 -0
  390. package/dist/types/message-types.d.ts.map +1 -0
  391. package/dist/types/message-types.js +354 -0
  392. package/dist/types/message-types.js.map +1 -0
  393. package/dist/types/role-definition.d.ts +272 -0
  394. package/dist/types/role-definition.d.ts.map +1 -0
  395. package/dist/types/role-definition.js +144 -0
  396. package/dist/types/role-definition.js.map +1 -0
  397. package/dist/types/task-meta.d.ts +248 -0
  398. package/dist/types/task-meta.d.ts.map +1 -0
  399. package/dist/types/task-meta.js +213 -0
  400. package/dist/types/task-meta.js.map +1 -0
  401. package/package.json +120 -0
  402. package/web/assets/abap-BrgZPUOV.js +6 -0
  403. package/web/assets/apex-DyP6w7ZV.js +6 -0
  404. package/web/assets/azcli-BaLxmfj-.js +6 -0
  405. package/web/assets/bat-CFOPXBzS.js +6 -0
  406. package/web/assets/bicep-BfEKNvv3.js +7 -0
  407. package/web/assets/cameligo-BFG1Mk7z.js +6 -0
  408. package/web/assets/clojure-DTECt2xU.js +6 -0
  409. package/web/assets/codicon-DCmgc-ay.ttf +0 -0
  410. package/web/assets/coffee-CDGzqUPQ.js +6 -0
  411. package/web/assets/cpp-CLLBncYj.js +6 -0
  412. package/web/assets/csharp-dUCx_-0o.js +6 -0
  413. package/web/assets/csp-5Rap-vPy.js +6 -0
  414. package/web/assets/css-D3h14YRZ.js +8 -0
  415. package/web/assets/cssMode-DMo-5YLA.js +9 -0
  416. package/web/assets/cypher-DrQuvNYM.js +6 -0
  417. package/web/assets/dart-CFKIUWau.js +6 -0
  418. package/web/assets/dockerfile-Zznr-cwX.js +6 -0
  419. package/web/assets/ecl-Ce3n6wWz.js +6 -0
  420. package/web/assets/elixir-deUWdS0T.js +6 -0
  421. package/web/assets/flow9-i9-g7ZhI.js +6 -0
  422. package/web/assets/freemarker2-D4qgkQzN.js +8 -0
  423. package/web/assets/fsharp-CzKuDChf.js +6 -0
  424. package/web/assets/go-Cphgjts3.js +6 -0
  425. package/web/assets/graphql-Cg7bfA9N.js +6 -0
  426. package/web/assets/handlebars-CXFvNjQC.js +6 -0
  427. package/web/assets/hcl-0cvrggvQ.js +6 -0
  428. package/web/assets/html-oyuB_D-B.js +6 -0
  429. package/web/assets/htmlMode-iWuZ24-r.js +9 -0
  430. package/web/assets/index-DqP-_E4F.css +32 -0
  431. package/web/assets/index-R1cylSgw.js +1665 -0
  432. package/web/assets/ini-Drc7WvVn.js +6 -0
  433. package/web/assets/java-B_fMsGYe.js +6 -0
  434. package/web/assets/javascript-CRIkN2Pg.js +6 -0
  435. package/web/assets/jsonMode-DVDkDgex.js +15 -0
  436. package/web/assets/julia-Bqgm2twL.js +6 -0
  437. package/web/assets/kotlin-BSkB5QuD.js +6 -0
  438. package/web/assets/less-BsTHnhdd.js +7 -0
  439. package/web/assets/lexon-YWi4-JPR.js +6 -0
  440. package/web/assets/liquid-CSfldbB5.js +6 -0
  441. package/web/assets/lua-nf6ki56Z.js +6 -0
  442. package/web/assets/m3-Cpb6xl2v.js +6 -0
  443. package/web/assets/markdown-DSZPf7rp.js +6 -0
  444. package/web/assets/mdx-Dd58iymR.js +6 -0
  445. package/web/assets/mips-B_c3zf-v.js +6 -0
  446. package/web/assets/monaco-editor-B4lwqA13.js +751 -0
  447. package/web/assets/monaco-editor-CQpyCxOA.css +1 -0
  448. package/web/assets/msdax-rUNN04Wq.js +6 -0
  449. package/web/assets/mysql-DDwshQtU.js +6 -0
  450. package/web/assets/objective-c-B5zXfXm9.js +6 -0
  451. package/web/assets/pascal-CXOwvkN_.js +6 -0
  452. package/web/assets/pascaligo-Bc-ZgV77.js +6 -0
  453. package/web/assets/perl-CwNk8-XU.js +6 -0
  454. package/web/assets/pgsql-tGk8EFnU.js +6 -0
  455. package/web/assets/php-CpIb_Oan.js +6 -0
  456. package/web/assets/pla-B03wrqEc.js +6 -0
  457. package/web/assets/postiats-BKlk5iyT.js +6 -0
  458. package/web/assets/powerquery-Bhzvs7bI.js +6 -0
  459. package/web/assets/powershell-Dd3NCNK9.js +6 -0
  460. package/web/assets/protobuf-COyEY5Pt.js +7 -0
  461. package/web/assets/pug-BaJupSGV.js +6 -0
  462. package/web/assets/python-XWrMqdhO.js +6 -0
  463. package/web/assets/qsharp-DXyYeYxl.js +6 -0
  464. package/web/assets/r-CdQndTaG.js +6 -0
  465. package/web/assets/razor-DPlhCpIs.js +6 -0
  466. package/web/assets/redis-CVwtpugi.js +6 -0
  467. package/web/assets/redshift-25W9uPmb.js +6 -0
  468. package/web/assets/restructuredtext-DfzH4Xui.js +6 -0
  469. package/web/assets/router-vendor-DHlGizSU.js +41 -0
  470. package/web/assets/ruby-Cp1zYvxS.js +6 -0
  471. package/web/assets/rust-D5C2fndG.js +6 -0
  472. package/web/assets/sb-CDntyWJ8.js +6 -0
  473. package/web/assets/scala-BoFRg7Ot.js +6 -0
  474. package/web/assets/scheme-Bio4gycK.js +6 -0
  475. package/web/assets/scss-4Ik7cdeQ.js +8 -0
  476. package/web/assets/shell-CX-rkNHf.js +6 -0
  477. package/web/assets/solidity-Tw7wswEv.js +6 -0
  478. package/web/assets/sophia-C5WLch3f.js +6 -0
  479. package/web/assets/sparql-DHaeiCBh.js +6 -0
  480. package/web/assets/sql-CCSDG5nI.js +6 -0
  481. package/web/assets/st-pnP8ivHi.js +6 -0
  482. package/web/assets/swift-DwJ7jVG9.js +8 -0
  483. package/web/assets/systemverilog-B9Xyijhd.js +6 -0
  484. package/web/assets/tcl-DnHyzjbg.js +6 -0
  485. package/web/assets/tsMode-BbA1Jbf3.js +16 -0
  486. package/web/assets/twig-CPajHgWi.js +6 -0
  487. package/web/assets/typescript-DcLHYzvH.js +6 -0
  488. package/web/assets/typespec-D-MeaMDU.js +6 -0
  489. package/web/assets/ui-vendor-BSco96uv.js +51 -0
  490. package/web/assets/utils-vendor-DaJ2Dubl.js +911 -0
  491. package/web/assets/vb-DgyLZaXg.js +6 -0
  492. package/web/assets/wgsl-DYQUnd45.js +303 -0
  493. package/web/assets/xml-xKYS3dO6.js +6 -0
  494. package/web/assets/yaml-CNmlXqzH.js +6 -0
  495. package/web/favicon.ico +0 -0
  496. package/web/index.html +22 -0
  497. package/web/logo.png +0 -0
@@ -0,0 +1,272 @@
1
+ /**
2
+ * Agent Role Definition Types
3
+ *
4
+ * This module defines the types for agent role definitions, which store
5
+ * system prompts and behavioral configurations for agents.
6
+ *
7
+ * Role definitions allow agents to be configured with:
8
+ * - System prompts stored as Documents
9
+ * - Behavioral hooks for startup, task assignment, and stuck scenarios
10
+ *
11
+ * The system prompt is stored as a Document element, allowing versioning
12
+ * and easy editing. The role definition references this document via its ID.
13
+ */
14
+ import type { DocumentId, EntityId, Timestamp, ElementId } from '@stoneforge/core';
15
+ import type { AgentRole, WorkerMode, StewardFocus } from './agent.js';
16
+ /**
17
+ * Behavioral hooks for agents - scripts or prompts to execute on specific events
18
+ */
19
+ export interface AgentBehaviors {
20
+ /**
21
+ * Instruction/prompt fragment appended to the agent's context on startup.
22
+ * This can include workspace-specific context, conventions, or guidelines.
23
+ */
24
+ readonly onStartup?: string;
25
+ /**
26
+ * Instruction/prompt fragment appended when a task is assigned to the agent.
27
+ * Can include task-specific guidelines or workflow requirements.
28
+ */
29
+ readonly onTaskAssigned?: string;
30
+ /**
31
+ * Instruction/prompt fragment appended when the agent appears stuck
32
+ * (detected by Health Steward). Can include debugging hints or escalation paths.
33
+ */
34
+ readonly onStuck?: string;
35
+ /**
36
+ * Instruction/prompt fragment appended before the agent creates a handoff.
37
+ * Can include guidelines for context preservation.
38
+ */
39
+ readonly onHandoff?: string;
40
+ /**
41
+ * Instruction/prompt fragment for handling errors or failures.
42
+ */
43
+ readonly onError?: string;
44
+ }
45
+ /**
46
+ * Base interface for all role definitions
47
+ */
48
+ export interface BaseRoleDefinition {
49
+ /**
50
+ * The role type this definition applies to
51
+ */
52
+ readonly role: AgentRole;
53
+ /**
54
+ * Human-readable name for this role definition (e.g., "Default Director", "Frontend Worker")
55
+ */
56
+ readonly name: string;
57
+ /**
58
+ * Optional description of this role definition
59
+ */
60
+ readonly description?: string;
61
+ /**
62
+ * Reference to the Document containing the system prompt for this role.
63
+ * The document should contain the full system prompt text.
64
+ */
65
+ readonly systemPromptRef: DocumentId;
66
+ /**
67
+ * Maximum number of concurrent tasks for agents using this role.
68
+ * Default is 1.
69
+ */
70
+ readonly maxConcurrentTasks?: number;
71
+ /**
72
+ * Behavioral hooks - prompts/instructions for specific events
73
+ */
74
+ readonly behaviors?: AgentBehaviors;
75
+ /**
76
+ * Optional tags for categorization
77
+ */
78
+ readonly tags?: readonly string[];
79
+ /**
80
+ * When this role definition was created
81
+ */
82
+ readonly createdAt: Timestamp;
83
+ /**
84
+ * Who created this role definition
85
+ */
86
+ readonly createdBy: EntityId;
87
+ /**
88
+ * When this role definition was last updated
89
+ */
90
+ readonly updatedAt: Timestamp;
91
+ }
92
+ /**
93
+ * Director-specific role definition
94
+ */
95
+ export interface DirectorRoleDefinition extends BaseRoleDefinition {
96
+ readonly role: 'director';
97
+ }
98
+ /**
99
+ * Worker-specific role definition
100
+ */
101
+ export interface WorkerRoleDefinition extends BaseRoleDefinition {
102
+ readonly role: 'worker';
103
+ /**
104
+ * The worker mode this definition is designed for.
105
+ * If not specified, applies to both ephemeral and persistent workers.
106
+ */
107
+ readonly workerMode?: WorkerMode;
108
+ }
109
+ /**
110
+ * Steward-specific role definition
111
+ */
112
+ export interface StewardRoleDefinition extends BaseRoleDefinition {
113
+ readonly role: 'steward';
114
+ /**
115
+ * The steward focus area this definition is designed for.
116
+ * If not specified, applies to all steward types.
117
+ */
118
+ readonly stewardFocus?: StewardFocus;
119
+ }
120
+ /**
121
+ * Union type for all role definitions
122
+ */
123
+ export type AgentRoleDefinition = DirectorRoleDefinition | WorkerRoleDefinition | StewardRoleDefinition;
124
+ /**
125
+ * Input for creating a role definition
126
+ */
127
+ export interface CreateRoleDefinitionInput {
128
+ /**
129
+ * The role type this definition applies to
130
+ */
131
+ readonly role: AgentRole;
132
+ /**
133
+ * Human-readable name for this role definition
134
+ */
135
+ readonly name: string;
136
+ /**
137
+ * Optional description
138
+ */
139
+ readonly description?: string;
140
+ /**
141
+ * The system prompt content (will be stored as a Document)
142
+ */
143
+ readonly systemPrompt: string;
144
+ /**
145
+ * Maximum number of concurrent tasks (default: 1)
146
+ */
147
+ readonly maxConcurrentTasks?: number;
148
+ /**
149
+ * Behavioral hooks
150
+ */
151
+ readonly behaviors?: AgentBehaviors;
152
+ /**
153
+ * Optional tags
154
+ */
155
+ readonly tags?: string[];
156
+ /**
157
+ * Who is creating this definition
158
+ */
159
+ readonly createdBy: EntityId;
160
+ /**
161
+ * For workers: the specific worker mode this applies to
162
+ */
163
+ readonly workerMode?: WorkerMode;
164
+ /**
165
+ * For stewards: the specific steward focus this applies to
166
+ */
167
+ readonly stewardFocus?: StewardFocus;
168
+ }
169
+ /**
170
+ * Input for updating a role definition
171
+ */
172
+ export interface UpdateRoleDefinitionInput {
173
+ /**
174
+ * New name
175
+ */
176
+ readonly name?: string;
177
+ /**
178
+ * New description
179
+ */
180
+ readonly description?: string;
181
+ /**
182
+ * New system prompt content (will create new Document version)
183
+ */
184
+ readonly systemPrompt?: string;
185
+ /**
186
+ * Updated max concurrent tasks
187
+ */
188
+ readonly maxConcurrentTasks?: number;
189
+ /**
190
+ * Updated behaviors (merged with existing)
191
+ */
192
+ readonly behaviors?: Partial<AgentBehaviors>;
193
+ /**
194
+ * New tags (replaces existing)
195
+ */
196
+ readonly tags?: string[];
197
+ }
198
+ /**
199
+ * A role definition as stored in the database.
200
+ * Role definitions are stored as Documents with JSON content type.
201
+ */
202
+ export interface StoredRoleDefinition {
203
+ /**
204
+ * The element ID of the Document storing this role definition
205
+ */
206
+ readonly id: ElementId;
207
+ /**
208
+ * The role definition data
209
+ */
210
+ readonly definition: AgentRoleDefinition;
211
+ }
212
+ /**
213
+ * Type guard for AgentBehaviors
214
+ */
215
+ export declare function isAgentBehaviors(value: unknown): value is AgentBehaviors;
216
+ /**
217
+ * Type guard for DirectorRoleDefinition
218
+ */
219
+ export declare function isDirectorRoleDefinition(value: unknown): value is DirectorRoleDefinition;
220
+ /**
221
+ * Type guard for WorkerRoleDefinition
222
+ */
223
+ export declare function isWorkerRoleDefinition(value: unknown): value is WorkerRoleDefinition;
224
+ /**
225
+ * Type guard for StewardRoleDefinition
226
+ */
227
+ export declare function isStewardRoleDefinition(value: unknown): value is StewardRoleDefinition;
228
+ /**
229
+ * Type guard for any AgentRoleDefinition
230
+ */
231
+ export declare function isAgentRoleDefinition(value: unknown): value is AgentRoleDefinition;
232
+ /**
233
+ * Filter options for querying role definitions
234
+ */
235
+ export interface RoleDefinitionFilter {
236
+ /**
237
+ * Filter by role type
238
+ */
239
+ readonly role?: AgentRole;
240
+ /**
241
+ * Filter by worker mode (only applies when role is 'worker')
242
+ */
243
+ readonly workerMode?: WorkerMode;
244
+ /**
245
+ * Filter by steward focus (only applies when role is 'steward')
246
+ */
247
+ readonly stewardFocus?: StewardFocus;
248
+ /**
249
+ * Filter by tags (must have ALL specified tags)
250
+ */
251
+ readonly tags?: readonly string[];
252
+ /**
253
+ * Filter by name (partial match, case-insensitive)
254
+ */
255
+ readonly nameContains?: string;
256
+ }
257
+ /**
258
+ * Tags used to identify role definition documents
259
+ */
260
+ export declare const ROLE_DEFINITION_TAGS: {
261
+ /** Main tag for all role definition documents */
262
+ readonly ROLE_DEFINITION: "role-definition";
263
+ /** Tag prefix for role type (e.g., 'role:director') */
264
+ readonly ROLE_PREFIX: "role:";
265
+ /** Tag prefix for agent prompt documents */
266
+ readonly AGENT_PROMPT: "agent-prompt";
267
+ };
268
+ /**
269
+ * Generates tags for a role definition document
270
+ */
271
+ export declare function generateRoleDefinitionTags(role: AgentRole, additionalTags?: string[]): string[];
272
+ //# sourceMappingURL=role-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-definition.d.ts","sourceRoot":"","sources":["../../src/types/role-definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Agent Role Definition Types
3
+ *
4
+ * This module defines the types for agent role definitions, which store
5
+ * system prompts and behavioral configurations for agents.
6
+ *
7
+ * Role definitions allow agents to be configured with:
8
+ * - System prompts stored as Documents
9
+ * - Behavioral hooks for startup, task assignment, and stuck scenarios
10
+ *
11
+ * The system prompt is stored as a Document element, allowing versioning
12
+ * and easy editing. The role definition references this document via its ID.
13
+ */
14
+ // ============================================================================
15
+ // Type Guards
16
+ // ============================================================================
17
+ /**
18
+ * Type guard for AgentBehaviors
19
+ */
20
+ export function isAgentBehaviors(value) {
21
+ if (typeof value !== 'object' || value === null) {
22
+ return false;
23
+ }
24
+ const obj = value;
25
+ // All fields are optional strings
26
+ const optionalStringFields = ['onStartup', 'onTaskAssigned', 'onStuck', 'onHandoff', 'onError'];
27
+ for (const field of optionalStringFields) {
28
+ if (obj[field] !== undefined && typeof obj[field] !== 'string') {
29
+ return false;
30
+ }
31
+ }
32
+ return true;
33
+ }
34
+ /**
35
+ * Type guard for DirectorRoleDefinition
36
+ */
37
+ export function isDirectorRoleDefinition(value) {
38
+ if (!isBaseRoleDefinition(value)) {
39
+ return false;
40
+ }
41
+ return value.role === 'director';
42
+ }
43
+ /**
44
+ * Type guard for WorkerRoleDefinition
45
+ */
46
+ export function isWorkerRoleDefinition(value) {
47
+ if (!isBaseRoleDefinition(value)) {
48
+ return false;
49
+ }
50
+ const def = value;
51
+ if (def.role !== 'worker') {
52
+ return false;
53
+ }
54
+ // workerMode is optional, but if present must be valid
55
+ if (def.workerMode !== undefined && def.workerMode !== 'ephemeral' && def.workerMode !== 'persistent') {
56
+ return false;
57
+ }
58
+ return true;
59
+ }
60
+ /**
61
+ * Type guard for StewardRoleDefinition
62
+ */
63
+ export function isStewardRoleDefinition(value) {
64
+ if (!isBaseRoleDefinition(value)) {
65
+ return false;
66
+ }
67
+ const def = value;
68
+ if (def.role !== 'steward') {
69
+ return false;
70
+ }
71
+ // stewardFocus is optional, but if present must be valid
72
+ const validFoci = ['merge', 'health', 'reminder', 'ops', 'docs'];
73
+ if (def.stewardFocus !== undefined && !validFoci.includes(def.stewardFocus)) {
74
+ return false;
75
+ }
76
+ return true;
77
+ }
78
+ /**
79
+ * Type guard for any AgentRoleDefinition
80
+ */
81
+ export function isAgentRoleDefinition(value) {
82
+ return isDirectorRoleDefinition(value) || isWorkerRoleDefinition(value) || isStewardRoleDefinition(value);
83
+ }
84
+ /**
85
+ * Type guard for base role definition structure
86
+ */
87
+ function isBaseRoleDefinition(value) {
88
+ if (typeof value !== 'object' || value === null) {
89
+ return false;
90
+ }
91
+ const obj = value;
92
+ // Required fields
93
+ if (typeof obj.role !== 'string')
94
+ return false;
95
+ if (typeof obj.name !== 'string')
96
+ return false;
97
+ if (typeof obj.systemPromptRef !== 'string')
98
+ return false;
99
+ if (typeof obj.createdAt !== 'string')
100
+ return false;
101
+ if (typeof obj.createdBy !== 'string')
102
+ return false;
103
+ if (typeof obj.updatedAt !== 'string')
104
+ return false;
105
+ // Optional fields
106
+ if (obj.maxConcurrentTasks !== undefined && typeof obj.maxConcurrentTasks !== 'number')
107
+ return false;
108
+ if (obj.description !== undefined && typeof obj.description !== 'string')
109
+ return false;
110
+ if (obj.behaviors !== undefined && !isAgentBehaviors(obj.behaviors))
111
+ return false;
112
+ if (obj.tags !== undefined && !Array.isArray(obj.tags))
113
+ return false;
114
+ return true;
115
+ }
116
+ // ============================================================================
117
+ // Constants
118
+ // ============================================================================
119
+ /**
120
+ * Tags used to identify role definition documents
121
+ */
122
+ export const ROLE_DEFINITION_TAGS = {
123
+ /** Main tag for all role definition documents */
124
+ ROLE_DEFINITION: 'role-definition',
125
+ /** Tag prefix for role type (e.g., 'role:director') */
126
+ ROLE_PREFIX: 'role:',
127
+ /** Tag prefix for agent prompt documents */
128
+ AGENT_PROMPT: 'agent-prompt',
129
+ };
130
+ /**
131
+ * Generates tags for a role definition document
132
+ */
133
+ export function generateRoleDefinitionTags(role, additionalTags) {
134
+ const tags = [
135
+ ROLE_DEFINITION_TAGS.ROLE_DEFINITION,
136
+ ROLE_DEFINITION_TAGS.AGENT_PROMPT,
137
+ `${ROLE_DEFINITION_TAGS.ROLE_PREFIX}${role}`,
138
+ ];
139
+ if (additionalTags) {
140
+ tags.push(...additionalTags);
141
+ }
142
+ return tags;
143
+ }
144
+ //# sourceMappingURL=role-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-definition.js","sourceRoot":"","sources":["../../src/types/role-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4PH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,kCAAkC;IAClC,MAAM,oBAAoB,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAChG,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,KAA6B,CAAC;IAC1C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,uDAAuD;IACvD,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;QACtG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,KAA8B,CAAC;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,yDAAyD;IACzD,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,wBAAwB,CAAC,KAAK,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC5G,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,kBAAkB;IAClB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEpD,kBAAkB;IAClB,IAAI,GAAG,CAAC,kBAAkB,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrG,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAErE,OAAO,IAAI,CAAC;AACd,CAAC;AAoCD,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,iDAAiD;IACjD,eAAe,EAAE,iBAAiB;IAClC,uDAAuD;IACvD,WAAW,EAAE,OAAO;IACpB,4CAA4C;IAC5C,YAAY,EAAE,cAAc;CACpB,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAe,EAAE,cAAyB;IACnF,MAAM,IAAI,GAAG;QACX,oBAAoB,CAAC,eAAe;QACpC,oBAAoB,CAAC,YAAY;QACjC,GAAG,oBAAoB,CAAC,WAAW,GAAG,IAAI,EAAE;KAC7C,CAAC;IACF,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * Orchestrator Task Metadata Types
3
+ *
4
+ * This module defines the metadata structure for tasks in the orchestration system.
5
+ * Tasks gain additional metadata when managed by the orchestrator to track:
6
+ * - Git branch association
7
+ * - Worktree location
8
+ * - Claude Code session ID for resumption
9
+ *
10
+ * This metadata is stored in the task's `metadata` field alongside any existing
11
+ * task metadata.
12
+ */
13
+ import type { EntityId, ElementId, Timestamp } from '@stoneforge/core';
14
+ /**
15
+ * Orchestrator-specific metadata attached to tasks managed by the orchestration system.
16
+ *
17
+ * This is stored in the task's `metadata` field under the `orchestrator` key:
18
+ * ```typescript
19
+ * task.metadata = {
20
+ * ...existingMetadata,
21
+ * orchestrator: OrchestratorTaskMeta
22
+ * }
23
+ * ```
24
+ */
25
+ export interface OrchestratorTaskMeta {
26
+ /** Git branch created for this task (e.g., "agent/alice/task-123-implement-feature") */
27
+ readonly branch?: string;
28
+ /** Path to the worktree where the agent is working (e.g., ".stoneforge/.worktrees/alice-implement-feature/") */
29
+ readonly worktree?: string;
30
+ /** Claude Code session ID for this task, enabling session resumption */
31
+ readonly sessionId?: string;
32
+ /** Entity ID of the agent assigned to this task */
33
+ readonly assignedAgent?: EntityId;
34
+ /** When the agent started working on this task */
35
+ readonly startedAt?: Timestamp;
36
+ /** When the agent completed this task (before merge) */
37
+ readonly completedAt?: Timestamp;
38
+ /** When the branch was merged */
39
+ readonly mergedAt?: Timestamp;
40
+ /** Merge status tracking */
41
+ readonly mergeStatus?: MergeStatus;
42
+ /** If merge failed, the reason */
43
+ readonly mergeFailureReason?: string;
44
+ /** Number of times tests have been run on this branch */
45
+ readonly testRunCount?: number;
46
+ /** Last test result */
47
+ readonly lastTestResult?: TestResult;
48
+ /** Number of times this task has been reconciled from a closed-but-unmerged state */
49
+ readonly reconciliationCount?: number;
50
+ /** Number of times this task has been recovered from a stuck merging/testing state */
51
+ readonly stuckMergeRecoveryCount?: number;
52
+ /**
53
+ * Set of issue types that have been reported for this task.
54
+ * Prevents duplicate messages/fix tasks for the same type of issue.
55
+ * Format: "test_failure", "merge_conflict", etc.
56
+ */
57
+ readonly reportedIssues?: readonly string[];
58
+ /** Branch preserved from handoff (may differ from current branch if not yet continued) */
59
+ readonly handoffBranch?: string;
60
+ /** Worktree path preserved from handoff */
61
+ readonly handoffWorktree?: string;
62
+ /** Session ID of the last agent that worked on this task before handoff */
63
+ readonly lastSessionId?: string;
64
+ /** Timestamp when the task was handed off */
65
+ readonly handoffAt?: Timestamp;
66
+ /** Entity ID of the agent who handed off the task */
67
+ readonly handoffFrom?: EntityId;
68
+ /** URL of the merge request created for this task */
69
+ readonly mergeRequestUrl?: string;
70
+ /** Merge request identifier (e.g. PR number) */
71
+ readonly mergeRequestId?: number;
72
+ /** Which provider created the merge request (e.g. 'github', 'local') */
73
+ readonly mergeRequestProvider?: string;
74
+ /** Completion summary provided by the agent */
75
+ readonly completionSummary?: string;
76
+ /** Last commit hash before completion */
77
+ readonly lastCommitHash?: string;
78
+ /** History of all handoffs for this task */
79
+ readonly handoffHistory?: HandoffHistoryEntry[];
80
+ /** History of all sessions (worker and steward) that worked on this task */
81
+ readonly sessionHistory?: readonly TaskSessionHistoryEntry[];
82
+ /** Result of the most recent branch sync with master */
83
+ readonly lastSyncResult?: SyncResultMeta;
84
+ }
85
+ /**
86
+ * Metadata about a branch sync operation result
87
+ */
88
+ export interface SyncResultMeta {
89
+ /** Whether the sync succeeded without conflicts */
90
+ readonly success: boolean;
91
+ /** List of conflicted file paths (if any) */
92
+ readonly conflicts?: string[];
93
+ /** Error message (if sync failed for non-conflict reasons) */
94
+ readonly error?: string;
95
+ /** Human-readable message */
96
+ readonly message: string;
97
+ /** When the sync was performed */
98
+ readonly syncedAt: Timestamp;
99
+ }
100
+ /**
101
+ * An entry in the handoff history for a task
102
+ */
103
+ export interface HandoffHistoryEntry {
104
+ /** Session ID of the agent that handed off */
105
+ readonly sessionId: string;
106
+ /** Message explaining why the handoff occurred */
107
+ readonly message?: string;
108
+ /** Branch at time of handoff */
109
+ readonly branch?: string;
110
+ /** Worktree at time of handoff */
111
+ readonly worktree?: string;
112
+ /** When the handoff occurred */
113
+ readonly handoffAt: Timestamp;
114
+ }
115
+ /**
116
+ * An entry in the session history for a task, tracking all sessions (worker and steward)
117
+ * that have worked on this task.
118
+ */
119
+ export interface TaskSessionHistoryEntry {
120
+ /** Internal session ID (used to fetch messages via GET /api/sessions/:id/messages) */
121
+ readonly sessionId: string;
122
+ /** Provider session ID (for resume) */
123
+ readonly providerSessionId?: string;
124
+ /** Entity ID of the agent */
125
+ readonly agentId: EntityId;
126
+ /** Display name of the agent */
127
+ readonly agentName: string;
128
+ /** Role of the agent */
129
+ readonly agentRole: 'worker' | 'steward';
130
+ /** Timestamp when the session started */
131
+ readonly startedAt: Timestamp;
132
+ /** Timestamp when the session ended (undefined if still running) */
133
+ readonly endedAt?: Timestamp;
134
+ }
135
+ /**
136
+ * Status of the merge process for a completed task's branch
137
+ */
138
+ export type MergeStatus = 'pending' | 'testing' | 'merging' | 'merged' | 'conflict' | 'test_failed' | 'failed' | 'not_applicable';
139
+ /**
140
+ * All valid merge status values
141
+ */
142
+ export declare const MergeStatusValues: readonly ["pending", "testing", "merging", "merged", "conflict", "test_failed", "failed", "not_applicable"];
143
+ /**
144
+ * Type guard to check if a value is a valid MergeStatus
145
+ */
146
+ export declare function isMergeStatus(value: unknown): value is MergeStatus;
147
+ /**
148
+ * Result of running tests on a task's branch
149
+ */
150
+ export interface TestResult {
151
+ /** Whether tests passed */
152
+ readonly passed: boolean;
153
+ /** Total number of tests run */
154
+ readonly totalTests?: number;
155
+ /** Number of tests that passed */
156
+ readonly passedTests?: number;
157
+ /** Number of tests that failed */
158
+ readonly failedTests?: number;
159
+ /** Number of tests that were skipped */
160
+ readonly skippedTests?: number;
161
+ /** When the test run completed */
162
+ readonly completedAt: Timestamp;
163
+ /** Duration of the test run in milliseconds */
164
+ readonly durationMs?: number;
165
+ /** Error message if tests failed to run */
166
+ readonly errorMessage?: string;
167
+ }
168
+ /**
169
+ * Type guard to check if a value is a valid TestResult
170
+ */
171
+ export declare function isTestResult(value: unknown): value is TestResult;
172
+ /**
173
+ * Extracts orchestrator metadata from a task's metadata field
174
+ */
175
+ export declare function getOrchestratorTaskMeta(taskMetadata: Record<string, unknown> | undefined): OrchestratorTaskMeta | undefined;
176
+ /**
177
+ * Sets orchestrator metadata on a task's metadata field
178
+ */
179
+ export declare function setOrchestratorTaskMeta(existingMetadata: Record<string, unknown> | undefined, orchestratorMeta: OrchestratorTaskMeta): Record<string, unknown>;
180
+ /**
181
+ * Updates orchestrator metadata on a task's metadata field
182
+ */
183
+ export declare function updateOrchestratorTaskMeta(existingMetadata: Record<string, unknown> | undefined, updates: Partial<OrchestratorTaskMeta>): Record<string, unknown>;
184
+ /**
185
+ * Type guard to validate OrchestratorTaskMeta structure
186
+ */
187
+ export declare function isOrchestratorTaskMeta(value: unknown): value is OrchestratorTaskMeta;
188
+ /**
189
+ * Appends a session history entry to the task's orchestrator metadata.
190
+ * Caps the history at MAX_SESSION_HISTORY_ENTRIES entries.
191
+ *
192
+ * @param existingMetadata - The task's existing metadata
193
+ * @param entry - The session history entry to append
194
+ * @returns Updated task metadata with the new session history entry
195
+ */
196
+ export declare function appendTaskSessionHistory(existingMetadata: Record<string, unknown> | undefined, entry: TaskSessionHistoryEntry): Record<string, unknown>;
197
+ /**
198
+ * Closes a session history entry by setting the endedAt timestamp.
199
+ * Finds the session history entry matching the sessionId that has no endedAt.
200
+ *
201
+ * @param existingMetadata - The task's existing metadata
202
+ * @param sessionId - The session ID to close
203
+ * @param endedAt - The timestamp when the session ended
204
+ * @returns Updated task metadata with the closed session history entry
205
+ */
206
+ export declare function closeTaskSessionHistory(existingMetadata: Record<string, unknown> | undefined, sessionId: string, endedAt: Timestamp): Record<string, unknown>;
207
+ /**
208
+ * Generates a branch name for an agent working on a task
209
+ *
210
+ * Format: agent/{worker-name}/{task-id}-{slug}
211
+ *
212
+ * @param workerName - The agent's name
213
+ * @param taskId - The task ID
214
+ * @param slug - URL-friendly slug derived from task title (optional)
215
+ */
216
+ export declare function generateBranchName(workerName: string, taskId: ElementId, slug?: string): string;
217
+ /**
218
+ * Generates a worktree path for an agent working on a task
219
+ *
220
+ * Format: .stoneforge/.worktrees/{worker-name}-{task-slug}/
221
+ *
222
+ * @param workerName - The agent's name
223
+ * @param slug - URL-friendly slug derived from task title (optional)
224
+ */
225
+ export declare function generateWorktreePath(workerName: string, slug?: string): string;
226
+ /**
227
+ * Generates a branch name for a persistent worker session
228
+ *
229
+ * Format: session/{worker-name}-{timestamp}
230
+ *
231
+ * @param workerName - The agent's name
232
+ * @param timestamp - Timestamp string (e.g. '20240115143022')
233
+ */
234
+ export declare function generateSessionBranchName(workerName: string, timestamp: string): string;
235
+ /**
236
+ * Generates a worktree path for a persistent worker session
237
+ *
238
+ * Format: .stoneforge/.worktrees/{worker-name}-session-{timestamp}/
239
+ *
240
+ * @param workerName - The agent's name
241
+ * @param timestamp - Timestamp string (e.g. '20240115143022')
242
+ */
243
+ export declare function generateSessionWorktreePath(workerName: string, timestamp: string): string;
244
+ /**
245
+ * Creates a URL-friendly slug from a task title
246
+ */
247
+ export declare function createSlugFromTitle(title: string): string;
248
+ //# sourceMappingURL=task-meta.d.ts.map