@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,369 @@
1
+ /**
2
+ * Agent Routes
3
+ *
4
+ * Agent registration, management, and status endpoints.
5
+ */
6
+ import { Hono } from 'hono';
7
+ import { getProviderRegistry, ProviderError } from '@stoneforge/smithy/providers';
8
+ import { formatSessionRecord } from '../formatters.js';
9
+ export function createAgentRoutes(services) {
10
+ const { agentRegistry, sessionManager, taskAssignmentService } = services;
11
+ const app = new Hono();
12
+ // GET /api/agents
13
+ app.get('/api/agents', async (c) => {
14
+ try {
15
+ const url = new URL(c.req.url);
16
+ const role = url.searchParams.get('role');
17
+ const agents = role ? await agentRegistry.getAgentsByRole(role) : await agentRegistry.listAgents();
18
+ return c.json({ agents });
19
+ }
20
+ catch (error) {
21
+ console.error('[orchestrator] Failed to list agents:', error);
22
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
23
+ }
24
+ });
25
+ // POST /api/agents
26
+ app.post('/api/agents', async (c) => {
27
+ try {
28
+ const body = (await c.req.json());
29
+ if (!body.role || !body.name) {
30
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'role and name are required' } }, 400);
31
+ }
32
+ const createdBy = (body.createdBy ?? 'el-0000');
33
+ let agent;
34
+ switch (body.role) {
35
+ case 'director':
36
+ agent = await agentRegistry.registerDirector({
37
+ name: body.name,
38
+ createdBy,
39
+ tags: body.tags,
40
+ maxConcurrentTasks: body.maxConcurrentTasks,
41
+ provider: body.provider,
42
+ model: body.model,
43
+ });
44
+ break;
45
+ case 'worker':
46
+ if (!body.workerMode) {
47
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'workerMode is required for workers' } }, 400);
48
+ }
49
+ agent = await agentRegistry.registerWorker({
50
+ name: body.name,
51
+ workerMode: body.workerMode,
52
+ createdBy,
53
+ tags: body.tags,
54
+ maxConcurrentTasks: body.maxConcurrentTasks,
55
+ reportsTo: body.reportsTo,
56
+ provider: body.provider,
57
+ model: body.model,
58
+ });
59
+ break;
60
+ case 'steward':
61
+ if (!body.stewardFocus) {
62
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'stewardFocus is required for stewards' } }, 400);
63
+ }
64
+ agent = await agentRegistry.registerSteward({
65
+ name: body.name,
66
+ stewardFocus: body.stewardFocus,
67
+ triggers: body.triggers,
68
+ createdBy,
69
+ tags: body.tags,
70
+ maxConcurrentTasks: body.maxConcurrentTasks,
71
+ reportsTo: body.reportsTo,
72
+ provider: body.provider,
73
+ model: body.model,
74
+ });
75
+ break;
76
+ default:
77
+ return c.json({ error: { code: 'INVALID_INPUT', message: `Invalid role: ${body.role}` } }, 400);
78
+ }
79
+ return c.json({ agent }, 201);
80
+ }
81
+ catch (error) {
82
+ const errorMessage = String(error);
83
+ if (errorMessage.includes('already exists') || errorMessage.includes('duplicate')) {
84
+ return c.json({ error: { code: 'ALREADY_EXISTS', message: errorMessage } }, 409);
85
+ }
86
+ console.error('[orchestrator] Failed to register agent:', error);
87
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: errorMessage } }, 500);
88
+ }
89
+ });
90
+ // POST /api/agents/director
91
+ app.post('/api/agents/director', async (c) => {
92
+ try {
93
+ const body = (await c.req.json());
94
+ if (!body.name) {
95
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'name is required' } }, 400);
96
+ }
97
+ const agent = await agentRegistry.registerDirector({
98
+ name: body.name,
99
+ createdBy: (body.createdBy ?? 'el-0000'),
100
+ tags: body.tags,
101
+ maxConcurrentTasks: body.maxConcurrentTasks,
102
+ });
103
+ return c.json({ agent }, 201);
104
+ }
105
+ catch (error) {
106
+ const errorMessage = String(error);
107
+ if (errorMessage.includes('already exists') || errorMessage.includes('duplicate')) {
108
+ return c.json({ error: { code: 'ALREADY_EXISTS', message: errorMessage } }, 409);
109
+ }
110
+ console.error('[orchestrator] Failed to register director:', error);
111
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: errorMessage } }, 500);
112
+ }
113
+ });
114
+ // POST /api/agents/worker
115
+ app.post('/api/agents/worker', async (c) => {
116
+ try {
117
+ const body = (await c.req.json());
118
+ if (!body.name) {
119
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'name is required' } }, 400);
120
+ }
121
+ if (!body.workerMode) {
122
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'workerMode is required' } }, 400);
123
+ }
124
+ if (body.workerMode !== 'ephemeral' && body.workerMode !== 'persistent') {
125
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'workerMode must be "ephemeral" or "persistent"' } }, 400);
126
+ }
127
+ const agent = await agentRegistry.registerWorker({
128
+ name: body.name,
129
+ workerMode: body.workerMode,
130
+ createdBy: (body.createdBy ?? 'el-0000'),
131
+ tags: body.tags,
132
+ maxConcurrentTasks: body.maxConcurrentTasks,
133
+ reportsTo: body.reportsTo,
134
+ });
135
+ return c.json({ agent }, 201);
136
+ }
137
+ catch (error) {
138
+ const errorMessage = String(error);
139
+ if (errorMessage.includes('already exists') || errorMessage.includes('duplicate')) {
140
+ return c.json({ error: { code: 'ALREADY_EXISTS', message: errorMessage } }, 409);
141
+ }
142
+ console.error('[orchestrator] Failed to register worker:', error);
143
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: errorMessage } }, 500);
144
+ }
145
+ });
146
+ // POST /api/agents/steward
147
+ app.post('/api/agents/steward', async (c) => {
148
+ try {
149
+ const body = (await c.req.json());
150
+ if (!body.name) {
151
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'name is required' } }, 400);
152
+ }
153
+ if (!body.stewardFocus) {
154
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'stewardFocus is required' } }, 400);
155
+ }
156
+ const validFocuses = ['merge', 'health', 'reminder', 'ops'];
157
+ if (!validFocuses.includes(body.stewardFocus)) {
158
+ return c.json({ error: { code: 'INVALID_INPUT', message: `stewardFocus must be one of: ${validFocuses.join(', ')}` } }, 400);
159
+ }
160
+ if (body.triggers) {
161
+ for (const trigger of body.triggers) {
162
+ if (trigger.type === 'cron' && !trigger.schedule) {
163
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'Cron trigger requires a schedule' } }, 400);
164
+ }
165
+ if (trigger.type === 'event' && !trigger.event) {
166
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'Event trigger requires an event name' } }, 400);
167
+ }
168
+ if (trigger.type !== 'cron' && trigger.type !== 'event') {
169
+ return c.json({ error: { code: 'INVALID_INPUT', message: 'Trigger type must be "cron" or "event"' } }, 400);
170
+ }
171
+ }
172
+ }
173
+ const agent = await agentRegistry.registerSteward({
174
+ name: body.name,
175
+ stewardFocus: body.stewardFocus,
176
+ triggers: body.triggers,
177
+ createdBy: (body.createdBy ?? 'el-0000'),
178
+ tags: body.tags,
179
+ maxConcurrentTasks: body.maxConcurrentTasks,
180
+ reportsTo: body.reportsTo,
181
+ });
182
+ return c.json({ agent }, 201);
183
+ }
184
+ catch (error) {
185
+ const errorMessage = String(error);
186
+ if (errorMessage.includes('already exists') || errorMessage.includes('duplicate')) {
187
+ return c.json({ error: { code: 'ALREADY_EXISTS', message: errorMessage } }, 409);
188
+ }
189
+ console.error('[orchestrator] Failed to register steward:', error);
190
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: errorMessage } }, 500);
191
+ }
192
+ });
193
+ // GET /api/agents/:id
194
+ app.get('/api/agents/:id', async (c) => {
195
+ try {
196
+ const agentId = c.req.param('id');
197
+ const agent = await agentRegistry.getAgent(agentId);
198
+ if (!agent) {
199
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Agent not found' } }, 404);
200
+ }
201
+ return c.json({ agent });
202
+ }
203
+ catch (error) {
204
+ console.error('[orchestrator] Failed to get agent:', error);
205
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
206
+ }
207
+ });
208
+ // PATCH /api/agents/:id
209
+ app.patch('/api/agents/:id', async (c) => {
210
+ try {
211
+ const agentId = c.req.param('id');
212
+ const body = (await c.req.json());
213
+ const agent = await agentRegistry.getAgent(agentId);
214
+ if (!agent) {
215
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Agent not found' } }, 404);
216
+ }
217
+ if (body.name !== undefined && (typeof body.name !== 'string' || body.name.trim().length === 0)) {
218
+ return c.json({ error: { code: 'VALIDATION_ERROR', message: 'Name must be a non-empty string' } }, 400);
219
+ }
220
+ if (body.provider !== undefined && (typeof body.provider !== 'string' || body.provider.trim().length === 0)) {
221
+ return c.json({ error: { code: 'VALIDATION_ERROR', message: 'Provider must be a non-empty string' } }, 400);
222
+ }
223
+ if (body.model !== undefined && body.model !== null && (typeof body.model !== 'string' || body.model.trim().length === 0)) {
224
+ return c.json({ error: { code: 'VALIDATION_ERROR', message: 'Model must be a non-empty string or null' } }, 400);
225
+ }
226
+ // Update name if provided
227
+ let updatedAgent = agent;
228
+ if (body.name !== undefined) {
229
+ updatedAgent = await agentRegistry.updateAgent(agentId, { name: body.name.trim() });
230
+ }
231
+ // Update provider in agent metadata if provided
232
+ if (body.provider !== undefined) {
233
+ updatedAgent = await agentRegistry.updateAgentMetadata(agentId, { provider: body.provider.trim() });
234
+ }
235
+ // Update model in agent metadata if provided (null clears the override)
236
+ if (body.model !== undefined) {
237
+ updatedAgent = await agentRegistry.updateAgentMetadata(agentId, {
238
+ model: body.model === null ? undefined : body.model.trim(),
239
+ });
240
+ }
241
+ return c.json({ agent: updatedAgent });
242
+ }
243
+ catch (error) {
244
+ console.error('[orchestrator] Failed to update agent:', error);
245
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
246
+ }
247
+ });
248
+ // DELETE /api/agents/:id
249
+ app.delete('/api/agents/:id', async (c) => {
250
+ try {
251
+ const agentId = c.req.param('id');
252
+ const agent = await agentRegistry.getAgent(agentId);
253
+ if (!agent) {
254
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Agent not found' } }, 404);
255
+ }
256
+ // Check if agent has an active session
257
+ const activeSession = sessionManager.getActiveSession(agentId);
258
+ if (activeSession) {
259
+ return c.json({ error: { code: 'AGENT_BUSY', message: 'Cannot delete agent with active session. Stop the agent first.' } }, 409);
260
+ }
261
+ await agentRegistry.deleteAgent(agentId);
262
+ return c.json({ success: true });
263
+ }
264
+ catch (error) {
265
+ console.error('[orchestrator] Failed to delete agent:', error);
266
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
267
+ }
268
+ });
269
+ // GET /api/agents/:id/status
270
+ app.get('/api/agents/:id/status', async (c) => {
271
+ try {
272
+ const agentId = c.req.param('id');
273
+ const agent = await agentRegistry.getAgent(agentId);
274
+ if (!agent) {
275
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Agent not found' } }, 404);
276
+ }
277
+ const activeSession = sessionManager.getActiveSession(agentId);
278
+ const history = await sessionManager.getSessionHistory(agentId, 5);
279
+ return c.json({
280
+ agentId,
281
+ hasActiveSession: !!activeSession,
282
+ activeSession: activeSession ? formatSessionRecord(activeSession) : null,
283
+ recentHistory: history,
284
+ });
285
+ }
286
+ catch (error) {
287
+ console.error('[orchestrator] Failed to get agent status:', error);
288
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
289
+ }
290
+ });
291
+ // GET /api/agents/:id/workload
292
+ app.get('/api/agents/:id/workload', async (c) => {
293
+ try {
294
+ const agentId = c.req.param('id');
295
+ const agent = await agentRegistry.getAgent(agentId);
296
+ if (!agent) {
297
+ return c.json({ error: { code: 'NOT_FOUND', message: 'Agent not found' } }, 404);
298
+ }
299
+ const workload = await taskAssignmentService.getAgentWorkload(agentId);
300
+ const hasCapacity = await taskAssignmentService.agentHasCapacity(agentId);
301
+ const agentMeta = agent.metadata?.agent;
302
+ const maxConcurrentTasks = agentMeta?.capabilities?.maxConcurrentTasks ?? 3;
303
+ return c.json({ agentId, agentName: agent.name, workload, hasCapacity, maxConcurrentTasks });
304
+ }
305
+ catch (error) {
306
+ console.error('[orchestrator] Failed to get agent workload:', error);
307
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
308
+ }
309
+ });
310
+ // GET /api/providers
311
+ app.get('/api/providers', async (c) => {
312
+ try {
313
+ const registry = getProviderRegistry();
314
+ const names = registry.list();
315
+ const providers = await Promise.all(names.map(async (name) => {
316
+ const p = registry.get(name);
317
+ return {
318
+ name,
319
+ available: await p.isAvailable(),
320
+ installInstructions: p.getInstallInstructions(),
321
+ };
322
+ }));
323
+ return c.json({ providers });
324
+ }
325
+ catch (error) {
326
+ console.error('[orchestrator] Failed to list providers:', error);
327
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
328
+ }
329
+ });
330
+ // GET /api/providers/:name/models
331
+ app.get('/api/providers/:name/models', async (c) => {
332
+ try {
333
+ const providerName = c.req.param('name');
334
+ const registry = getProviderRegistry();
335
+ const provider = registry.get(providerName);
336
+ if (!provider) {
337
+ return c.json({ error: { code: 'NOT_FOUND', message: `Provider not found: ${providerName}` } }, 404);
338
+ }
339
+ const available = await provider.isAvailable();
340
+ if (!available) {
341
+ return c.json({
342
+ error: {
343
+ code: 'PROVIDER_UNAVAILABLE',
344
+ message: `Provider ${providerName} is not available. ${provider.getInstallInstructions()}`,
345
+ },
346
+ }, 503);
347
+ }
348
+ const models = await provider.listModels();
349
+ return c.json({ models });
350
+ }
351
+ catch (error) {
352
+ // ProviderError indicates the provider SDK failed (auth, process crash, etc.)
353
+ // — treat as 503 (service unavailable) rather than 500 (internal server error)
354
+ if (error instanceof ProviderError) {
355
+ console.warn('[orchestrator] Provider error listing models:', error.message);
356
+ return c.json({
357
+ error: {
358
+ code: 'PROVIDER_UNAVAILABLE',
359
+ message: error.message,
360
+ },
361
+ }, 503);
362
+ }
363
+ console.error('[orchestrator] Failed to list provider models:', error);
364
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
365
+ }
366
+ });
367
+ return app;
368
+ }
369
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/server/routes/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Dispatch Daemon Routes
3
+ *
4
+ * API endpoints for controlling the dispatch daemon lifecycle.
5
+ */
6
+ import { Hono } from 'hono';
7
+ import type { Services } from '../services.js';
8
+ /**
9
+ * Mark the daemon as server-managed (called during auto-start).
10
+ */
11
+ export declare function markDaemonAsServerManaged(): void;
12
+ export declare function createDaemonRoutes(services: Services): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
13
+ //# sourceMappingURL=daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/server/routes/daemon.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAS/C;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,8EAgNpD"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Dispatch Daemon Routes
3
+ *
4
+ * API endpoints for controlling the dispatch daemon lifecycle.
5
+ */
6
+ import { Hono } from 'hono';
7
+ import { saveDaemonState, saveDaemonConfigOverrides } from '../daemon-state.js';
8
+ /**
9
+ * Whether the daemon was started by the server (vs CLI or manual).
10
+ * Used to warn CLI users when stopping a server-managed daemon.
11
+ */
12
+ let serverManaged = false;
13
+ /**
14
+ * Mark the daemon as server-managed (called during auto-start).
15
+ */
16
+ export function markDaemonAsServerManaged() {
17
+ serverManaged = true;
18
+ }
19
+ export function createDaemonRoutes(services) {
20
+ const { dispatchDaemon } = services;
21
+ const app = new Hono();
22
+ // GET /api/daemon/status
23
+ app.get('/api/daemon/status', (c) => {
24
+ if (!dispatchDaemon) {
25
+ return c.json({
26
+ isRunning: false,
27
+ available: false,
28
+ reason: 'DispatchDaemon not available (no git repository)',
29
+ serverManaged: false,
30
+ });
31
+ }
32
+ const config = dispatchDaemon.getConfig();
33
+ return c.json({
34
+ isRunning: dispatchDaemon.isRunning(),
35
+ available: true,
36
+ serverManaged,
37
+ config: {
38
+ pollIntervalMs: config.pollIntervalMs,
39
+ workerAvailabilityPollEnabled: config.workerAvailabilityPollEnabled,
40
+ inboxPollEnabled: config.inboxPollEnabled,
41
+ stewardTriggerPollEnabled: config.stewardTriggerPollEnabled,
42
+ workflowTaskPollEnabled: config.workflowTaskPollEnabled,
43
+ directorInboxForwardingEnabled: config.directorInboxForwardingEnabled,
44
+ },
45
+ });
46
+ });
47
+ // POST /api/daemon/start
48
+ app.post('/api/daemon/start', async (c) => {
49
+ if (!dispatchDaemon) {
50
+ return c.json({
51
+ error: {
52
+ code: 'DAEMON_UNAVAILABLE',
53
+ message: 'DispatchDaemon not available (no git repository)',
54
+ },
55
+ }, 503);
56
+ }
57
+ try {
58
+ if (dispatchDaemon.isRunning()) {
59
+ return c.json({
60
+ success: true,
61
+ isRunning: true,
62
+ alreadyRunning: true,
63
+ serverManaged,
64
+ message: 'Daemon is already running',
65
+ });
66
+ }
67
+ dispatchDaemon.start();
68
+ // Persist state so daemon restarts after server restart
69
+ saveDaemonState(true, 'user');
70
+ return c.json({
71
+ success: true,
72
+ isRunning: dispatchDaemon.isRunning(),
73
+ alreadyRunning: false,
74
+ serverManaged,
75
+ });
76
+ }
77
+ catch (error) {
78
+ console.error('[orchestrator] Failed to start daemon:', error);
79
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
80
+ }
81
+ });
82
+ // POST /api/daemon/stop
83
+ app.post('/api/daemon/stop', async (c) => {
84
+ if (!dispatchDaemon) {
85
+ return c.json({
86
+ error: {
87
+ code: 'DAEMON_UNAVAILABLE',
88
+ message: 'DispatchDaemon not available (no git repository)',
89
+ },
90
+ }, 503);
91
+ }
92
+ try {
93
+ const wasRunning = dispatchDaemon.isRunning();
94
+ const wasServerManaged = serverManaged;
95
+ dispatchDaemon.stop();
96
+ // Persist state so daemon stays stopped after server restart
97
+ saveDaemonState(false, 'user');
98
+ // Reset server-managed flag when stopped
99
+ serverManaged = false;
100
+ return c.json({
101
+ success: true,
102
+ isRunning: dispatchDaemon.isRunning(),
103
+ wasRunning,
104
+ wasServerManaged,
105
+ message: wasServerManaged
106
+ ? 'Daemon stopped. Note: This daemon was auto-started by the server.'
107
+ : 'Daemon stopped.',
108
+ });
109
+ }
110
+ catch (error) {
111
+ console.error('[orchestrator] Failed to stop daemon:', error);
112
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
113
+ }
114
+ });
115
+ // POST /api/daemon/poll/:type - Manual poll trigger
116
+ app.post('/api/daemon/poll/:type', async (c) => {
117
+ if (!dispatchDaemon) {
118
+ return c.json({
119
+ error: {
120
+ code: 'DAEMON_UNAVAILABLE',
121
+ message: 'DispatchDaemon not available (no git repository)',
122
+ },
123
+ }, 503);
124
+ }
125
+ const pollType = c.req.param('type');
126
+ try {
127
+ let result;
128
+ switch (pollType) {
129
+ case 'worker-availability':
130
+ result = await dispatchDaemon.pollWorkerAvailability();
131
+ break;
132
+ case 'inbox':
133
+ result = await dispatchDaemon.pollInboxes();
134
+ break;
135
+ case 'steward-trigger':
136
+ result = await dispatchDaemon.pollStewardTriggers();
137
+ break;
138
+ case 'workflow-task':
139
+ result = await dispatchDaemon.pollWorkflowTasks();
140
+ break;
141
+ default:
142
+ return c.json({
143
+ error: {
144
+ code: 'INVALID_POLL_TYPE',
145
+ message: `Invalid poll type: ${pollType}. Valid types: worker-availability, inbox, steward-trigger, workflow-task`,
146
+ },
147
+ }, 400);
148
+ }
149
+ return c.json({ success: true, result });
150
+ }
151
+ catch (error) {
152
+ console.error(`[orchestrator] Failed to run ${pollType} poll:`, error);
153
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
154
+ }
155
+ });
156
+ // PATCH /api/daemon/config - Update daemon configuration
157
+ app.patch('/api/daemon/config', async (c) => {
158
+ if (!dispatchDaemon) {
159
+ return c.json({
160
+ error: {
161
+ code: 'DAEMON_UNAVAILABLE',
162
+ message: 'DispatchDaemon not available (no git repository)',
163
+ },
164
+ }, 503);
165
+ }
166
+ try {
167
+ const body = (await c.req.json());
168
+ dispatchDaemon.updateConfig(body);
169
+ // Persist config overrides that should survive server restarts
170
+ if (body.directorInboxForwardingEnabled !== undefined) {
171
+ saveDaemonConfigOverrides({
172
+ directorInboxForwardingEnabled: body.directorInboxForwardingEnabled,
173
+ });
174
+ }
175
+ return c.json({
176
+ success: true,
177
+ config: dispatchDaemon.getConfig(),
178
+ });
179
+ }
180
+ catch (error) {
181
+ console.error('[orchestrator] Failed to update daemon config:', error);
182
+ return c.json({ error: { code: 'INTERNAL_ERROR', message: String(error) } }, 500);
183
+ }
184
+ });
185
+ return app;
186
+ }
187
+ //# sourceMappingURL=daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/server/routes/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Activity/Events Routes
3
+ *
4
+ * Event listing and SSE streaming for real-time activity.
5
+ */
6
+ import { Hono } from 'hono';
7
+ import { EventEmitter } from 'node:events';
8
+ import type { EntityId } from '@stoneforge/core';
9
+ import type { Services } from '../services.js';
10
+ interface NewSessionInfo {
11
+ sessionId: string;
12
+ agentId: EntityId | string;
13
+ agentRole: string;
14
+ events: EventEmitter;
15
+ }
16
+ /**
17
+ * Notify all SSE stream clients that a new session has started.
18
+ * Call this from session start/resume endpoints after the session is created.
19
+ */
20
+ export declare function notifySSEClientsOfNewSession(info: NewSessionInfo): void;
21
+ export declare function createEventRoutes(services: Services): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
22
+ export {};
23
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/server/routes/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,kBAAkB,CAAC;AAI5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAY/C,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEvE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,8EA2RnD"}