@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,466 @@
1
+ /**
2
+ * Session Manager Service
3
+ *
4
+ * This service manages agent sessions with provider session ID support for
5
+ * resumable sessions and cross-restart persistence.
6
+ *
7
+ * Key features:
8
+ * - Track active sessions with process metadata
9
+ * - Persist session state to database via Agent entity metadata
10
+ * - Start, resume, stop, and suspend sessions
11
+ * - Message running sessions via agent channels
12
+ * - Query session history per agent
13
+ *
14
+ * @module
15
+ */
16
+ import { EventEmitter } from 'node:events';
17
+ import type { EntityId, Timestamp, MessageId, DocumentId } from '@stoneforge/core';
18
+ import type { QuarryAPI } from '@stoneforge/quarry';
19
+ import type { AgentRole, WorkerMode } from '../types/agent.js';
20
+ import type { SpawnerService, SessionStatus, UWPTaskInfo } from './spawner.js';
21
+ import type { AgentRegistry } from '../services/agent-registry.js';
22
+ /**
23
+ * Session record with persistence metadata
24
+ */
25
+ export interface SessionRecord {
26
+ /** Internal session ID (unique per spawn) */
27
+ readonly id: string;
28
+ /** Provider session ID (for resume) */
29
+ readonly providerSessionId?: string;
30
+ /** Agent entity ID this session belongs to */
31
+ readonly agentId: EntityId;
32
+ /** Agent role */
33
+ readonly agentRole: AgentRole;
34
+ /** Worker mode (for workers) */
35
+ readonly workerMode?: WorkerMode;
36
+ /** Spawn mode: headless or interactive */
37
+ readonly mode: 'headless' | 'interactive';
38
+ /** Process ID (if running) */
39
+ readonly pid?: number;
40
+ /** Current status */
41
+ readonly status: SessionStatus;
42
+ /** Working directory */
43
+ readonly workingDirectory: string;
44
+ /** Git worktree path (for workers) */
45
+ readonly worktree?: string;
46
+ /** Session created timestamp */
47
+ readonly createdAt: Timestamp;
48
+ /** Session started timestamp (when running state entered) */
49
+ readonly startedAt?: Timestamp;
50
+ /** Last activity timestamp */
51
+ readonly lastActivityAt: Timestamp;
52
+ /** Session ended timestamp (when terminated/suspended) */
53
+ readonly endedAt?: Timestamp;
54
+ /** Reason for termination (if applicable) */
55
+ readonly terminationReason?: string;
56
+ }
57
+ /**
58
+ * Options for starting a new session
59
+ */
60
+ export interface StartSessionOptions {
61
+ /** Working directory for the session */
62
+ readonly workingDirectory?: string;
63
+ /** Git worktree path */
64
+ readonly worktree?: string;
65
+ /** Initial prompt to send to the agent */
66
+ readonly initialPrompt?: string;
67
+ /** Additional environment variables */
68
+ readonly environmentVariables?: Record<string, string>;
69
+ /** Whether to use interactive mode (PTY) */
70
+ readonly interactive?: boolean;
71
+ /** Terminal columns (for interactive mode) */
72
+ readonly cols?: number;
73
+ /** Terminal rows (for interactive mode) */
74
+ readonly rows?: number;
75
+ /** LLM model to use for this session (overrides agent metadata) */
76
+ readonly model?: string;
77
+ }
78
+ /**
79
+ * Options for resuming a session
80
+ */
81
+ export interface ResumeSessionOptions {
82
+ /** The provider session ID to resume */
83
+ readonly providerSessionId: string;
84
+ /** Working directory for the session */
85
+ readonly workingDirectory?: string;
86
+ /** Git worktree path */
87
+ readonly worktree?: string;
88
+ /** Additional prompt to send after resume */
89
+ readonly resumePrompt?: string;
90
+ /**
91
+ * Whether to check the ready queue before resuming (UWP compliance).
92
+ * If true (default), the session will check for assigned tasks before
93
+ * continuing with the previous context.
94
+ */
95
+ readonly checkReadyQueue?: boolean;
96
+ /**
97
+ * Callback to get ready tasks - allows integration without circular deps.
98
+ * If not provided and checkReadyQueue is true, UWP check will be skipped.
99
+ */
100
+ readonly getReadyTasks?: (agentId: EntityId, limit: number) => Promise<UWPTaskInfo[]>;
101
+ }
102
+ /**
103
+ * Options for stopping a session
104
+ */
105
+ export interface StopSessionOptions {
106
+ /** Whether to attempt graceful shutdown (default: true) */
107
+ readonly graceful?: boolean;
108
+ /** Reason for stopping */
109
+ readonly reason?: string;
110
+ }
111
+ /**
112
+ * Options for sending a message to a session
113
+ */
114
+ export interface MessageSessionOptions {
115
+ /** Document ID containing the message content */
116
+ readonly contentRef?: DocumentId;
117
+ /** Message content (if contentRef not provided) */
118
+ readonly content?: string;
119
+ /** Entity ID of the sender */
120
+ readonly senderId?: EntityId;
121
+ /** Additional metadata for the message */
122
+ readonly metadata?: Record<string, unknown>;
123
+ }
124
+ /**
125
+ * Result of sending a message to a session
126
+ */
127
+ export interface MessageSessionResult {
128
+ /** Whether the message was sent successfully */
129
+ readonly success: boolean;
130
+ /** The message ID if sent via channel */
131
+ readonly messageId?: MessageId;
132
+ /** Error message if failed */
133
+ readonly error?: string;
134
+ }
135
+ /**
136
+ * Filter options for listing sessions
137
+ */
138
+ export interface SessionFilter {
139
+ /** Filter by agent ID */
140
+ readonly agentId?: EntityId;
141
+ /** Filter by agent role */
142
+ readonly role?: AgentRole;
143
+ /** Filter by status */
144
+ readonly status?: SessionStatus | SessionStatus[];
145
+ /** Filter by sessions started after this time */
146
+ readonly startedAfter?: Timestamp;
147
+ /** Filter by sessions started before this time */
148
+ readonly startedBefore?: Timestamp;
149
+ /** Include only sessions with provider session IDs (resumable) */
150
+ readonly resumable?: boolean;
151
+ }
152
+ /**
153
+ * Session history entry stored in database
154
+ */
155
+ export interface SessionHistoryEntry {
156
+ /** Internal session ID */
157
+ readonly id: string;
158
+ /** Provider session ID */
159
+ readonly providerSessionId?: string;
160
+ /** Session status when entry was created */
161
+ readonly status: SessionStatus;
162
+ /** Working directory */
163
+ readonly workingDirectory: string;
164
+ /** Worktree path */
165
+ readonly worktree?: string;
166
+ /** Session started timestamp */
167
+ readonly startedAt?: Timestamp;
168
+ /** Session ended timestamp */
169
+ readonly endedAt?: Timestamp;
170
+ /** Termination reason */
171
+ readonly terminationReason?: string;
172
+ }
173
+ /**
174
+ * Role-based session history entry - includes agent context
175
+ */
176
+ export interface RoleSessionHistoryEntry extends SessionHistoryEntry {
177
+ /** Agent role for this session */
178
+ readonly role: AgentRole;
179
+ /** Agent entity ID */
180
+ readonly agentId: EntityId;
181
+ /** Agent name at time of session */
182
+ readonly agentName?: string;
183
+ }
184
+ /**
185
+ * Result of the UWP check performed during session resume
186
+ */
187
+ export interface ResumeUWPCheckResult {
188
+ /** Whether a ready task was found during the UWP check */
189
+ readonly hasReadyTask: boolean;
190
+ /** The task ID if a ready task was found */
191
+ readonly taskId?: string;
192
+ /** The task title if a ready task was found */
193
+ readonly taskTitle?: string;
194
+ /** The task priority if a ready task was found */
195
+ readonly taskPriority?: number;
196
+ /**
197
+ * Whether the resumed session should process this task first.
198
+ * If true, the resume prompt includes instructions to process the task.
199
+ */
200
+ readonly shouldProcessFirst: boolean;
201
+ }
202
+ /**
203
+ * Session Manager interface for agent session lifecycle management.
204
+ *
205
+ * The manager provides methods for:
206
+ * - Starting new agent sessions
207
+ * - Resuming previous sessions with context preservation
208
+ * - Stopping and suspending sessions
209
+ * - Messaging running sessions
210
+ * - Querying session history
211
+ */
212
+ export interface SessionManager {
213
+ /**
214
+ * Starts a new session for an agent.
215
+ *
216
+ * @param agentId - The agent entity ID
217
+ * @param options - Start options
218
+ * @returns The session record and event emitter
219
+ */
220
+ startSession(agentId: EntityId, options?: StartSessionOptions): Promise<{
221
+ session: SessionRecord;
222
+ events: EventEmitter;
223
+ }>;
224
+ /**
225
+ * Resumes a previous session using its provider session ID.
226
+ *
227
+ * When `checkReadyQueue` is true (default), implements the Universal Work Principle (UWP):
228
+ * - Before continuing with the previous context, checks if any tasks were assigned during suspension
229
+ * - If tasks are found, the session will be instructed to process them first
230
+ *
231
+ * @param agentId - The agent entity ID
232
+ * @param options - Resume options including the provider session ID
233
+ * @returns The resumed session record, event emitter, and UWP check result
234
+ */
235
+ resumeSession(agentId: EntityId, options: ResumeSessionOptions): Promise<{
236
+ session: SessionRecord;
237
+ events: EventEmitter;
238
+ uwpCheck?: ResumeUWPCheckResult;
239
+ }>;
240
+ /**
241
+ * Stops a running session.
242
+ *
243
+ * @param sessionId - The internal session ID
244
+ * @param options - Stop options
245
+ */
246
+ stopSession(sessionId: string, options?: StopSessionOptions): Promise<void>;
247
+ /**
248
+ * Suspends a session (marks it for later resume).
249
+ * The session can be resumed later using its provider session ID.
250
+ *
251
+ * @param sessionId - The internal session ID
252
+ * @param reason - Optional reason for suspension
253
+ */
254
+ suspendSession(sessionId: string, reason?: string): Promise<void>;
255
+ /**
256
+ * Interrupts a running session (sends interrupt signal to stop current operation).
257
+ * This is like pressing Escape in the Claude Code CLI - it stops the current
258
+ * operation but keeps the session running.
259
+ *
260
+ * @param sessionId - The internal session ID
261
+ */
262
+ interruptSession(sessionId: string): Promise<void>;
263
+ /**
264
+ * Gets a session by internal ID.
265
+ *
266
+ * @param sessionId - The internal session ID
267
+ * @returns The session record or undefined if not found
268
+ */
269
+ getSession(sessionId: string): SessionRecord | undefined;
270
+ /**
271
+ * Gets the active session for an agent.
272
+ *
273
+ * @param agentId - The agent entity ID
274
+ * @returns The active session or undefined if none
275
+ */
276
+ getActiveSession(agentId: EntityId): SessionRecord | undefined;
277
+ /**
278
+ * Lists sessions matching the filter.
279
+ *
280
+ * @param filter - Filter options
281
+ * @returns Array of matching session records
282
+ */
283
+ listSessions(filter?: SessionFilter): SessionRecord[];
284
+ /**
285
+ * Gets the most recent session for an agent that can be resumed.
286
+ *
287
+ * @param agentId - The agent entity ID
288
+ * @returns The most recent resumable session or undefined
289
+ */
290
+ getMostRecentResumableSession(agentId: EntityId): SessionRecord | undefined;
291
+ /**
292
+ * Gets the session history for an agent from the database.
293
+ *
294
+ * @param agentId - The agent entity ID
295
+ * @param limit - Maximum number of entries to return
296
+ * @returns Array of session history entries
297
+ */
298
+ getSessionHistory(agentId: EntityId, limit?: number): Promise<SessionHistoryEntry[]>;
299
+ /**
300
+ * Gets the session history for a role across all agents.
301
+ *
302
+ * This aggregates session history from all agents with the specified role,
303
+ * sorted by most recent first.
304
+ *
305
+ * @param role - The agent role to filter by
306
+ * @param limit - Maximum number of entries to return (default 10)
307
+ * @returns Array of role-based session history entries
308
+ */
309
+ getSessionHistoryByRole(role: AgentRole, limit?: number): Promise<RoleSessionHistoryEntry[]>;
310
+ /**
311
+ * Gets the most recent previous session for a role.
312
+ *
313
+ * Returns the most recently ended (suspended or terminated) session for
314
+ * agents with the specified role. This is useful for predecessor queries
315
+ * where a new agent needs to consult the previous session holder for context.
316
+ *
317
+ * @param role - The agent role to find previous session for
318
+ * @returns The most recent previous session, or undefined if none found
319
+ */
320
+ getPreviousSession(role: AgentRole): Promise<RoleSessionHistoryEntry | undefined>;
321
+ /**
322
+ * Sends a message to a running session via its agent channel.
323
+ *
324
+ * For headless sessions, messages are queued for the agent to process.
325
+ * For interactive sessions, messages appear in the agent's inbox.
326
+ *
327
+ * @param sessionId - The internal session ID
328
+ * @param options - Message options
329
+ * @returns Result of the send operation
330
+ */
331
+ messageSession(sessionId: string, options: MessageSessionOptions): Promise<MessageSessionResult>;
332
+ /**
333
+ * Gets the event emitter for a session.
334
+ *
335
+ * Events emitted:
336
+ * - 'event' (SpawnedSessionEvent) - Parsed stream-json event
337
+ * - 'status' (SessionStatus) - Session status change
338
+ * - 'error' (Error) - Session error
339
+ * - 'exit' (code: number | null, signal: string | null) - Process exit
340
+ *
341
+ * @param sessionId - The internal session ID
342
+ * @returns The event emitter or undefined if session not found
343
+ */
344
+ getEventEmitter(sessionId: string): EventEmitter | undefined;
345
+ /**
346
+ * Records that the human user typed into a session's PTY.
347
+ * Used for idle-based debouncing of message forwarding.
348
+ *
349
+ * @param sessionId - The internal session ID
350
+ */
351
+ recordUserInput(sessionId: string): void;
352
+ /**
353
+ * Gets how long (ms) the user has been idle in the agent's active session.
354
+ * Returns undefined if the agent has no active session or no input has been recorded.
355
+ *
356
+ * @param agentId - The agent entity ID
357
+ * @returns Milliseconds since last user input, or undefined
358
+ */
359
+ getSessionUserIdleMs(agentId: EntityId): number | undefined;
360
+ /**
361
+ * Persists the current session state to the database.
362
+ * Called automatically on state changes but can be called manually.
363
+ *
364
+ * @param sessionId - The internal session ID
365
+ */
366
+ persistSession(sessionId: string): Promise<void>;
367
+ /**
368
+ * Loads session state from the database for an agent.
369
+ * Used to recover sessions after restart.
370
+ *
371
+ * @param agentId - The agent entity ID
372
+ */
373
+ loadSessionState(agentId: EntityId): Promise<void>;
374
+ /**
375
+ * Reconciles in-memory state with database on startup.
376
+ * Finds agents marked as 'running' whose processes are no longer alive
377
+ * and resets them to 'idle'.
378
+ *
379
+ * @returns Summary of reconciliation results
380
+ */
381
+ reconcileOnStartup(): Promise<{
382
+ reconciled: number;
383
+ errors: string[];
384
+ }>;
385
+ }
386
+ /**
387
+ * Implementation of the Session Manager.
388
+ */
389
+ export declare class SessionManagerImpl implements SessionManager {
390
+ private readonly spawner;
391
+ private readonly api;
392
+ private readonly registry;
393
+ private readonly sessions;
394
+ private readonly agentSessions;
395
+ private readonly sessionHistory;
396
+ private readonly sessionCleanupFns;
397
+ constructor(spawner: SpawnerService, api: QuarryAPI, // Used for message operations in messageSession
398
+ registry: AgentRegistry);
399
+ /**
400
+ * Gets the API instance for direct operations
401
+ */
402
+ getApi(): QuarryAPI;
403
+ startSession(agentId: EntityId, options?: StartSessionOptions): Promise<{
404
+ session: SessionRecord;
405
+ events: EventEmitter;
406
+ }>;
407
+ resumeSession(agentId: EntityId, options: ResumeSessionOptions): Promise<{
408
+ session: SessionRecord;
409
+ events: EventEmitter;
410
+ uwpCheck?: ResumeUWPCheckResult;
411
+ }>;
412
+ stopSession(sessionId: string, options?: StopSessionOptions): Promise<void>;
413
+ interruptSession(sessionId: string): Promise<void>;
414
+ suspendSession(sessionId: string, reason?: string): Promise<void>;
415
+ getSession(sessionId: string): SessionRecord | undefined;
416
+ getActiveSession(agentId: EntityId): SessionRecord | undefined;
417
+ listSessions(filter?: SessionFilter): SessionRecord[];
418
+ getMostRecentResumableSession(agentId: EntityId): SessionRecord | undefined;
419
+ getSessionHistory(agentId: EntityId, limit?: number): Promise<SessionHistoryEntry[]>;
420
+ getSessionHistoryByRole(role: AgentRole, limit?: number): Promise<RoleSessionHistoryEntry[]>;
421
+ getPreviousSession(role: AgentRole): Promise<RoleSessionHistoryEntry | undefined>;
422
+ messageSession(sessionId: string, options: MessageSessionOptions): Promise<MessageSessionResult>;
423
+ getEventEmitter(sessionId: string): EventEmitter | undefined;
424
+ recordUserInput(sessionId: string): void;
425
+ getSessionUserIdleMs(agentId: EntityId): number | undefined;
426
+ persistSession(sessionId: string): Promise<void>;
427
+ loadSessionState(agentId: EntityId): Promise<void>;
428
+ reconcileOnStartup(): Promise<{
429
+ reconciled: number;
430
+ errors: string[];
431
+ }>;
432
+ private scheduleTerminatedSessionCleanup;
433
+ /**
434
+ * Checks whether a process with the given PID is still alive.
435
+ * Uses signal 0 which doesn't kill — just checks existence.
436
+ */
437
+ private isProcessAlive;
438
+ /**
439
+ * Cleans up a session whose process is no longer alive.
440
+ * Transitions it to 'terminated' and schedules memory cleanup.
441
+ */
442
+ private cleanupDeadSession;
443
+ private setupSpawnerEventHandlers;
444
+ private setupSessionEventForwarding;
445
+ /**
446
+ * Cleans up event listeners for a session.
447
+ * Called when a session exits to prevent listener leaks.
448
+ */
449
+ private cleanupSessionEventListeners;
450
+ private createSessionState;
451
+ private toPublicSession;
452
+ private addToHistory;
453
+ private getPersistedHistory;
454
+ private mergeHistory;
455
+ private getTimestampMs;
456
+ /**
457
+ * Builds the UWP task prompt to instruct the agent to process the assigned task first.
458
+ * This ensures compliance with the Universal Work Principle: "If there is work on your anchor, YOU MUST RUN IT"
459
+ */
460
+ private buildUWPTaskPrompt;
461
+ }
462
+ /**
463
+ * Creates a SessionManager instance
464
+ */
465
+ export declare function createSessionManager(spawner: SpawnerService, api: QuarryAPI, registry: AgentRegistry): SessionManager;
466
+ //# sourceMappingURL=session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/session-manager.ts"],"names":[],"mappings":"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"}