@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,99 @@
1
+ /**
2
+ * Message Mapper
3
+ *
4
+ * Maps SDK message types to the existing SpawnedSessionEvent format
5
+ * for backward compatibility with the orchestrator's event handling.
6
+ *
7
+ * SDK Message Type Mappings:
8
+ * | SDK Message Type | Current Event Type |
9
+ * |-----------------------|-------------------|
10
+ * | SDKAssistantMessage | assistant |
11
+ * | SDKUserMessage | user |
12
+ * | tool_use content | tool_use |
13
+ * | tool_result content | tool_result |
14
+ * | SDKSystemMessage | system |
15
+ * | SDKResultMessage | result |
16
+ *
17
+ * @module
18
+ */
19
+ import type { Timestamp } from '@stoneforge/core';
20
+ import type { SpawnedSessionEvent } from './spawner.js';
21
+ /**
22
+ * Base SDK message interface
23
+ */
24
+ export interface SDKMessage {
25
+ type: string;
26
+ [key: string]: unknown;
27
+ }
28
+ /**
29
+ * SDK assistant message
30
+ */
31
+ export interface SDKAssistantMessage extends SDKMessage {
32
+ type: 'assistant';
33
+ content: string | SDKContentBlock[];
34
+ }
35
+ /**
36
+ * SDK user message
37
+ */
38
+ export interface SDKUserMessage extends SDKMessage {
39
+ type: 'user';
40
+ content: string;
41
+ }
42
+ /**
43
+ * SDK system message
44
+ */
45
+ export interface SDKSystemMessage extends SDKMessage {
46
+ type: 'system';
47
+ subtype?: string;
48
+ session_id?: string;
49
+ message?: string;
50
+ }
51
+ /**
52
+ * SDK result message (completion)
53
+ */
54
+ export interface SDKResultMessage extends SDKMessage {
55
+ type: 'result';
56
+ result?: string;
57
+ status?: string;
58
+ }
59
+ /**
60
+ * SDK error message
61
+ */
62
+ export interface SDKErrorMessage extends SDKMessage {
63
+ type: 'error';
64
+ error: string;
65
+ message?: string;
66
+ }
67
+ /**
68
+ * SDK content block (for structured content like tool use)
69
+ */
70
+ export interface SDKContentBlock {
71
+ type: 'text' | 'tool_use' | 'tool_result';
72
+ text?: string;
73
+ id?: string;
74
+ name?: string;
75
+ input?: unknown;
76
+ tool_use_id?: string;
77
+ content?: string;
78
+ is_error?: boolean;
79
+ }
80
+ export type AnySDKMessage = SDKAssistantMessage | SDKUserMessage | SDKSystemMessage | SDKResultMessage | SDKErrorMessage;
81
+ /**
82
+ * Maps an SDK message to a SpawnedSessionEvent.
83
+ *
84
+ * @param sdkMessage - The SDK message to map
85
+ * @returns The mapped SpawnedSessionEvent
86
+ */
87
+ export declare function mapSDKMessageToEvent(sdkMessage: AnySDKMessage): SpawnedSessionEvent;
88
+ /**
89
+ * Maps a tool_result content block to SpawnedSessionEvent.
90
+ */
91
+ export declare function mapToolResultToEvent(toolUseId: string, content: string, isError?: boolean, receivedAt?: Timestamp): SpawnedSessionEvent;
92
+ /**
93
+ * Maps an array of SDK messages to SpawnedSessionEvents.
94
+ *
95
+ * @param messages - Array of SDK messages
96
+ * @returns Array of mapped events
97
+ */
98
+ export declare function mapSDKMessagesToEvents(messages: AnySDKMessage[]): SpawnedSessionEvent[];
99
+ //# sourceMappingURL=message-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-mapper.d.ts","sourceRoot":"","sources":["../../src/runtime/message-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,cAAc,CAAC;AAM7E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,CAAC;AAMpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,aAAa,GAAG,mBAAmB,CA2BnF;AAoJD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,EACxB,UAAU,GAAE,SAA6B,GACxC,mBAAmB,CAerB;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAEvF"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Message Mapper
3
+ *
4
+ * Maps SDK message types to the existing SpawnedSessionEvent format
5
+ * for backward compatibility with the orchestrator's event handling.
6
+ *
7
+ * SDK Message Type Mappings:
8
+ * | SDK Message Type | Current Event Type |
9
+ * |-----------------------|-------------------|
10
+ * | SDKAssistantMessage | assistant |
11
+ * | SDKUserMessage | user |
12
+ * | tool_use content | tool_use |
13
+ * | tool_result content | tool_result |
14
+ * | SDKSystemMessage | system |
15
+ * | SDKResultMessage | result |
16
+ *
17
+ * @module
18
+ */
19
+ import { createTimestamp } from '@stoneforge/core';
20
+ // ============================================================================
21
+ // Mapper Functions
22
+ // ============================================================================
23
+ /**
24
+ * Maps an SDK message to a SpawnedSessionEvent.
25
+ *
26
+ * @param sdkMessage - The SDK message to map
27
+ * @returns The mapped SpawnedSessionEvent
28
+ */
29
+ export function mapSDKMessageToEvent(sdkMessage) {
30
+ const receivedAt = createTimestamp();
31
+ switch (sdkMessage.type) {
32
+ case 'assistant':
33
+ return mapAssistantMessage(sdkMessage, receivedAt);
34
+ case 'user':
35
+ return mapUserMessage(sdkMessage, receivedAt);
36
+ case 'system':
37
+ return mapSystemMessage(sdkMessage, receivedAt);
38
+ case 'result':
39
+ return mapResultMessage(sdkMessage, receivedAt);
40
+ case 'error':
41
+ return mapErrorMessage(sdkMessage, receivedAt);
42
+ default:
43
+ // Unknown message type - pass through as raw
44
+ return {
45
+ type: (sdkMessage.type || 'system'),
46
+ receivedAt,
47
+ raw: sdkMessage,
48
+ };
49
+ }
50
+ }
51
+ /**
52
+ * Maps an SDK assistant message to SpawnedSessionEvent.
53
+ * Assistant messages may contain text or tool_use blocks.
54
+ */
55
+ function mapAssistantMessage(message, receivedAt) {
56
+ // If content is a string, it's simple text
57
+ if (typeof message.content === 'string') {
58
+ return {
59
+ type: 'assistant',
60
+ receivedAt,
61
+ raw: {
62
+ type: 'assistant',
63
+ message: message.content,
64
+ },
65
+ message: message.content,
66
+ };
67
+ }
68
+ // Content is an array of content blocks
69
+ const blocks = message.content;
70
+ // Find text content
71
+ const textBlocks = blocks.filter((b) => b.type === 'text');
72
+ const textContent = textBlocks.map((b) => b.text || '').join('\n');
73
+ // Find tool_use blocks
74
+ const toolUseBlocks = blocks.filter((b) => b.type === 'tool_use');
75
+ if (toolUseBlocks.length > 0) {
76
+ // Return tool_use event for the first tool use block
77
+ // (In practice, Claude typically uses one tool at a time)
78
+ const toolBlock = toolUseBlocks[0];
79
+ return {
80
+ type: 'tool_use',
81
+ receivedAt,
82
+ raw: {
83
+ type: 'tool_use',
84
+ tool: toolBlock.name,
85
+ tool_use_id: toolBlock.id,
86
+ tool_input: toolBlock.input,
87
+ message: textContent || undefined,
88
+ },
89
+ message: textContent || undefined,
90
+ tool: {
91
+ name: toolBlock.name,
92
+ id: toolBlock.id,
93
+ input: toolBlock.input,
94
+ },
95
+ };
96
+ }
97
+ // No tool use, return as assistant message
98
+ return {
99
+ type: 'assistant',
100
+ receivedAt,
101
+ raw: {
102
+ type: 'assistant',
103
+ message: textContent,
104
+ },
105
+ message: textContent,
106
+ };
107
+ }
108
+ /**
109
+ * Maps an SDK user message to SpawnedSessionEvent.
110
+ */
111
+ function mapUserMessage(message, receivedAt) {
112
+ return {
113
+ type: 'user',
114
+ receivedAt,
115
+ raw: {
116
+ type: 'user',
117
+ message: message.content,
118
+ },
119
+ message: message.content,
120
+ };
121
+ }
122
+ /**
123
+ * Maps an SDK system message to SpawnedSessionEvent.
124
+ */
125
+ function mapSystemMessage(message, receivedAt) {
126
+ return {
127
+ type: 'system',
128
+ subtype: message.subtype,
129
+ receivedAt,
130
+ raw: {
131
+ type: 'system',
132
+ subtype: message.subtype,
133
+ session_id: message.session_id,
134
+ message: message.message,
135
+ },
136
+ message: message.message,
137
+ };
138
+ }
139
+ /**
140
+ * Maps an SDK result message to SpawnedSessionEvent.
141
+ */
142
+ function mapResultMessage(message, receivedAt) {
143
+ return {
144
+ type: 'result',
145
+ receivedAt,
146
+ raw: {
147
+ type: 'result',
148
+ result: message.result,
149
+ },
150
+ message: message.result,
151
+ };
152
+ }
153
+ /**
154
+ * Maps an SDK error message to SpawnedSessionEvent.
155
+ */
156
+ function mapErrorMessage(message, receivedAt) {
157
+ return {
158
+ type: 'error',
159
+ receivedAt,
160
+ raw: {
161
+ type: 'error',
162
+ error: message.error,
163
+ message: message.message,
164
+ },
165
+ message: message.message || message.error,
166
+ };
167
+ }
168
+ // ============================================================================
169
+ // Content Block Mappers
170
+ // ============================================================================
171
+ /**
172
+ * Maps a tool_result content block to SpawnedSessionEvent.
173
+ */
174
+ export function mapToolResultToEvent(toolUseId, content, isError = false, receivedAt = createTimestamp()) {
175
+ return {
176
+ type: 'tool_result',
177
+ receivedAt,
178
+ raw: {
179
+ type: 'tool_result',
180
+ tool_use_id: toolUseId,
181
+ content,
182
+ is_error: isError,
183
+ },
184
+ message: content,
185
+ tool: {
186
+ id: toolUseId,
187
+ },
188
+ };
189
+ }
190
+ // ============================================================================
191
+ // Batch Processing
192
+ // ============================================================================
193
+ /**
194
+ * Maps an array of SDK messages to SpawnedSessionEvents.
195
+ *
196
+ * @param messages - Array of SDK messages
197
+ * @returns Array of mapped events
198
+ */
199
+ export function mapSDKMessagesToEvents(messages) {
200
+ return messages.map(mapSDKMessageToEvent);
201
+ }
202
+ //# sourceMappingURL=message-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-mapper.js","sourceRoot":"","sources":["../../src/runtime/message-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Predecessor Query Service
3
+ *
4
+ * This service enables agents to consult previous sessions for context and guidance.
5
+ * It implements the predecessor query pattern from the orchestration spec:
6
+ *
7
+ * 1. Find most recent session for a given role
8
+ * 2. Resume that previous session using Claude Code's --resume flag
9
+ * 3. Send a message to the predecessor
10
+ * 4. Capture the response
11
+ * 5. Suspend the predecessor session again
12
+ * 6. Return the response to the current agent
13
+ *
14
+ * This allows collaborative problem-solving between agents by enabling new sessions
15
+ * to query previous session holders for historical context.
16
+ *
17
+ * @module
18
+ */
19
+ import { EventEmitter } from 'node:events';
20
+ import type { EntityId, Timestamp } from '@stoneforge/core';
21
+ import type { AgentRole } from '../types/agent.js';
22
+ import type { SessionManager } from './session-manager.js';
23
+ /**
24
+ * Options for querying a predecessor
25
+ */
26
+ export interface PredecessorQueryOptions {
27
+ /** Maximum time to wait for a response in milliseconds (default: 60000) */
28
+ readonly timeout?: number;
29
+ /** Whether to suspend the predecessor after getting a response (default: true) */
30
+ readonly suspendAfterResponse?: boolean;
31
+ /** Additional context to provide to the predecessor */
32
+ readonly context?: string;
33
+ /** Working directory for the resumed session */
34
+ readonly workingDirectory?: string;
35
+ }
36
+ /**
37
+ * Result of a predecessor query
38
+ */
39
+ export interface PredecessorQueryResult {
40
+ /** Whether the query was successful */
41
+ readonly success: boolean;
42
+ /** The response message from the predecessor */
43
+ readonly response?: string;
44
+ /** The predecessor session information */
45
+ readonly predecessor?: PredecessorInfo;
46
+ /** Error message if the query failed */
47
+ readonly error?: string;
48
+ /** Timestamp when the query completed */
49
+ readonly completedAt: Timestamp;
50
+ /** Duration of the query in milliseconds */
51
+ readonly durationMs: number;
52
+ }
53
+ /**
54
+ * Information about the predecessor session
55
+ */
56
+ export interface PredecessorInfo {
57
+ /** The agent ID of the predecessor */
58
+ readonly agentId: EntityId;
59
+ /** The agent name */
60
+ readonly agentName?: string;
61
+ /** The role of the predecessor */
62
+ readonly role: AgentRole;
63
+ /** The provider session ID used for resume */
64
+ readonly providerSessionId: string;
65
+ /** The internal session ID */
66
+ readonly sessionId: string;
67
+ /** The working directory of the predecessor session */
68
+ readonly workingDirectory: string;
69
+ /** When the predecessor session was originally started */
70
+ readonly originalStartedAt?: Timestamp;
71
+ /** When the predecessor session was suspended */
72
+ readonly suspendedAt?: Timestamp;
73
+ }
74
+ /**
75
+ * Status of a predecessor query
76
+ */
77
+ export type PredecessorQueryStatus = 'pending' | 'resuming' | 'waiting_response' | 'completed' | 'failed' | 'timed_out';
78
+ /**
79
+ * Active predecessor query tracking
80
+ */
81
+ export interface ActivePredecessorQuery {
82
+ /** Unique query ID */
83
+ readonly id: string;
84
+ /** The requesting agent ID */
85
+ readonly requestingAgentId: EntityId;
86
+ /** The role being queried */
87
+ readonly targetRole: AgentRole;
88
+ /** The message sent to the predecessor */
89
+ readonly message: string;
90
+ /** Current status of the query */
91
+ status: PredecessorQueryStatus;
92
+ /** The predecessor session ID (once resumed) */
93
+ predecessorSessionId?: string;
94
+ /** Query started timestamp */
95
+ readonly startedAt: Timestamp;
96
+ /** Query completed timestamp */
97
+ completedAt?: Timestamp;
98
+ /** Accumulated response text */
99
+ responseAccumulator: string;
100
+ /** Event emitter for query events */
101
+ readonly events: EventEmitter;
102
+ }
103
+ /**
104
+ * Predecessor Query Service interface.
105
+ *
106
+ * This service enables agents to consult previous sessions of a given role
107
+ * for context, guidance, or to understand historical decisions.
108
+ */
109
+ export interface PredecessorQueryService {
110
+ /**
111
+ * Queries a predecessor session of a given role.
112
+ *
113
+ * This method:
114
+ * 1. Finds the most recent suspended/terminated session for the role
115
+ * 2. Resumes that session using Claude Code's --resume flag
116
+ * 3. Sends the provided message to the predecessor
117
+ * 4. Waits for and captures the response
118
+ * 5. Suspends the predecessor session again
119
+ * 6. Returns the response
120
+ *
121
+ * @param requestingAgentId - The agent making the query
122
+ * @param role - The role to query (e.g., 'director', 'worker')
123
+ * @param message - The message/question to send to the predecessor
124
+ * @param options - Query options
125
+ * @returns The query result with the predecessor's response
126
+ */
127
+ consultPredecessor(requestingAgentId: EntityId, role: AgentRole, message: string, options?: PredecessorQueryOptions): Promise<PredecessorQueryResult>;
128
+ /**
129
+ * Gets information about the most recent predecessor for a role.
130
+ *
131
+ * This is useful for checking if a predecessor exists before querying,
132
+ * or for getting context about who held the role previously.
133
+ *
134
+ * @param role - The role to find the predecessor for
135
+ * @returns The predecessor info or undefined if none exists
136
+ */
137
+ getPredecessorInfo(role: AgentRole): Promise<PredecessorInfo | undefined>;
138
+ /**
139
+ * Checks if a predecessor exists and can be queried for a given role.
140
+ *
141
+ * A predecessor is queryable if:
142
+ * - A previous session exists for the role
143
+ * - The session was suspended (not terminated) OR has a Claude session ID
144
+ *
145
+ * @param role - The role to check
146
+ * @returns True if a queryable predecessor exists
147
+ */
148
+ hasPredecessor(role: AgentRole): Promise<boolean>;
149
+ /**
150
+ * Gets the status of an active predecessor query.
151
+ *
152
+ * @param queryId - The query ID
153
+ * @returns The active query or undefined if not found
154
+ */
155
+ getActiveQuery(queryId: string): ActivePredecessorQuery | undefined;
156
+ /**
157
+ * Lists all active predecessor queries.
158
+ *
159
+ * @returns Array of active queries
160
+ */
161
+ listActiveQueries(): ActivePredecessorQuery[];
162
+ /**
163
+ * Cancels an active predecessor query.
164
+ *
165
+ * This will attempt to gracefully stop the resumed predecessor session
166
+ * and clean up resources.
167
+ *
168
+ * @param queryId - The query ID to cancel
169
+ */
170
+ cancelQuery(queryId: string): Promise<void>;
171
+ }
172
+ /** Default timeout for predecessor queries (60 seconds) */
173
+ export declare const DEFAULT_QUERY_TIMEOUT_MS = 60000;
174
+ /** Minimum timeout for predecessor queries (10 seconds) */
175
+ export declare const MIN_QUERY_TIMEOUT_MS = 10000;
176
+ /** Maximum timeout for predecessor queries (5 minutes) */
177
+ export declare const MAX_QUERY_TIMEOUT_MS = 300000;
178
+ /**
179
+ * Implementation of the Predecessor Query Service.
180
+ */
181
+ export declare class PredecessorQueryServiceImpl implements PredecessorQueryService {
182
+ private readonly sessionManager;
183
+ private readonly activeQueries;
184
+ private queryCounter;
185
+ constructor(sessionManager: SessionManager);
186
+ consultPredecessor(requestingAgentId: EntityId, role: AgentRole, message: string, options?: PredecessorQueryOptions): Promise<PredecessorQueryResult>;
187
+ getPredecessorInfo(role: AgentRole): Promise<PredecessorInfo | undefined>;
188
+ hasPredecessor(role: AgentRole): Promise<boolean>;
189
+ getActiveQuery(queryId: string): ActivePredecessorQuery | undefined;
190
+ listActiveQueries(): ActivePredecessorQuery[];
191
+ cancelQuery(queryId: string): Promise<void>;
192
+ private generateQueryId;
193
+ private normalizeTimeout;
194
+ private captureResponse;
195
+ }
196
+ /**
197
+ * Error thrown when a predecessor query times out
198
+ */
199
+ export declare class TimeoutError extends Error {
200
+ constructor(message: string);
201
+ }
202
+ /**
203
+ * Error thrown when no predecessor is found for a role
204
+ */
205
+ export declare class NoPredecessorError extends Error {
206
+ constructor(role: AgentRole);
207
+ }
208
+ /**
209
+ * Creates a PredecessorQueryService instance
210
+ */
211
+ export declare function createPredecessorQueryService(sessionManager: SessionManager): PredecessorQueryService;
212
+ //# sourceMappingURL=predecessor-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predecessor-query.d.ts","sourceRoot":"","sources":["../../src/runtime/predecessor-query.ts"],"names":[],"mappings":"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"}