lorenz 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 (630) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +13 -0
  3. package/README.md +774 -0
  4. package/RELEASE-MANIFEST.json +211 -0
  5. package/apps/cli/bin/lorenz.js +25 -0
  6. package/apps/cli/dist/bin/cli.d.ts +3 -0
  7. package/apps/cli/dist/bin/cli.d.ts.map +1 -0
  8. package/apps/cli/dist/bin/cli.js +4 -0
  9. package/apps/cli/dist/bin/cli.js.map +1 -0
  10. package/apps/cli/dist/daemon.d.ts +76 -0
  11. package/apps/cli/dist/daemon.d.ts.map +1 -0
  12. package/apps/cli/dist/daemon.js +189 -0
  13. package/apps/cli/dist/daemon.js.map +1 -0
  14. package/apps/cli/dist/doctor.d.ts +40 -0
  15. package/apps/cli/dist/doctor.d.ts.map +1 -0
  16. package/apps/cli/dist/doctor.js +590 -0
  17. package/apps/cli/dist/doctor.js.map +1 -0
  18. package/apps/cli/dist/index.d.ts +32 -0
  19. package/apps/cli/dist/index.d.ts.map +1 -0
  20. package/apps/cli/dist/index.js +26 -0
  21. package/apps/cli/dist/index.js.map +1 -0
  22. package/apps/cli/dist/main.d.ts +40 -0
  23. package/apps/cli/dist/main.d.ts.map +1 -0
  24. package/apps/cli/dist/main.js +259 -0
  25. package/apps/cli/dist/main.js.map +1 -0
  26. package/apps/cli/dist/runs.d.ts +31 -0
  27. package/apps/cli/dist/runs.d.ts.map +1 -0
  28. package/apps/cli/dist/runs.js +281 -0
  29. package/apps/cli/dist/runs.js.map +1 -0
  30. package/apps/cli/dist/workerDriverLoader.d.ts +64 -0
  31. package/apps/cli/dist/workerDriverLoader.d.ts.map +1 -0
  32. package/apps/cli/dist/workerDriverLoader.js +211 -0
  33. package/apps/cli/dist/workerDriverLoader.js.map +1 -0
  34. package/apps/cli/package.json +57 -0
  35. package/apps/symphony-dashboard/dist/assets/index-B3owF3jd.css +1 -0
  36. package/apps/symphony-dashboard/dist/assets/index-DQ6XlL0d.js +227 -0
  37. package/apps/symphony-dashboard/dist/index.html +18 -0
  38. package/bin/lorenz +16 -0
  39. package/extensions/docker-worker/dist/index.d.ts +92 -0
  40. package/extensions/docker-worker/dist/index.d.ts.map +1 -0
  41. package/extensions/docker-worker/dist/index.js +283 -0
  42. package/extensions/docker-worker/dist/index.js.map +1 -0
  43. package/extensions/docker-worker/package.json +14 -0
  44. package/extensions/jira-tracker/dist/client.d.ts +50 -0
  45. package/extensions/jira-tracker/dist/client.d.ts.map +1 -0
  46. package/extensions/jira-tracker/dist/client.js +619 -0
  47. package/extensions/jira-tracker/dist/client.js.map +1 -0
  48. package/extensions/jira-tracker/dist/index.d.ts +5 -0
  49. package/extensions/jira-tracker/dist/index.d.ts.map +1 -0
  50. package/extensions/jira-tracker/dist/index.js +5 -0
  51. package/extensions/jira-tracker/dist/index.js.map +1 -0
  52. package/extensions/jira-tracker/dist/options.d.ts +38 -0
  53. package/extensions/jira-tracker/dist/options.d.ts.map +1 -0
  54. package/extensions/jira-tracker/dist/options.js +61 -0
  55. package/extensions/jira-tracker/dist/options.js.map +1 -0
  56. package/extensions/jira-tracker/dist/provider.d.ts +6 -0
  57. package/extensions/jira-tracker/dist/provider.d.ts.map +1 -0
  58. package/extensions/jira-tracker/dist/provider.js +178 -0
  59. package/extensions/jira-tracker/dist/provider.js.map +1 -0
  60. package/extensions/jira-tracker/dist/register.d.ts +10 -0
  61. package/extensions/jira-tracker/dist/register.d.ts.map +1 -0
  62. package/extensions/jira-tracker/dist/register.js +15 -0
  63. package/extensions/jira-tracker/dist/register.js.map +1 -0
  64. package/extensions/jira-tracker/package.json +16 -0
  65. package/extensions/linear-tracker/dist/client.d.ts +82 -0
  66. package/extensions/linear-tracker/dist/client.d.ts.map +1 -0
  67. package/extensions/linear-tracker/dist/client.js +622 -0
  68. package/extensions/linear-tracker/dist/client.js.map +1 -0
  69. package/extensions/linear-tracker/dist/index.d.ts +8 -0
  70. package/extensions/linear-tracker/dist/index.d.ts.map +1 -0
  71. package/extensions/linear-tracker/dist/index.js +7 -0
  72. package/extensions/linear-tracker/dist/index.js.map +1 -0
  73. package/extensions/linear-tracker/dist/options.d.ts +32 -0
  74. package/extensions/linear-tracker/dist/options.d.ts.map +1 -0
  75. package/extensions/linear-tracker/dist/options.js +59 -0
  76. package/extensions/linear-tracker/dist/options.js.map +1 -0
  77. package/extensions/linear-tracker/dist/provider.d.ts +4 -0
  78. package/extensions/linear-tracker/dist/provider.d.ts.map +1 -0
  79. package/extensions/linear-tracker/dist/provider.js +58 -0
  80. package/extensions/linear-tracker/dist/provider.js.map +1 -0
  81. package/extensions/linear-tracker/dist/register.d.ts +11 -0
  82. package/extensions/linear-tracker/dist/register.d.ts.map +1 -0
  83. package/extensions/linear-tracker/dist/register.js +19 -0
  84. package/extensions/linear-tracker/dist/register.js.map +1 -0
  85. package/extensions/linear-tracker/dist/toolOps.d.ts +8 -0
  86. package/extensions/linear-tracker/dist/toolOps.d.ts.map +1 -0
  87. package/extensions/linear-tracker/dist/toolOps.js +160 -0
  88. package/extensions/linear-tracker/dist/toolOps.js.map +1 -0
  89. package/extensions/linear-tracker/dist/tools.d.ts +7 -0
  90. package/extensions/linear-tracker/dist/tools.d.ts.map +1 -0
  91. package/extensions/linear-tracker/dist/tools.js +210 -0
  92. package/extensions/linear-tracker/dist/tools.js.map +1 -0
  93. package/extensions/linear-tracker/package.json +18 -0
  94. package/extensions/local-tracker/dist/boardStore.d.ts +116 -0
  95. package/extensions/local-tracker/dist/boardStore.d.ts.map +1 -0
  96. package/extensions/local-tracker/dist/boardStore.js +475 -0
  97. package/extensions/local-tracker/dist/boardStore.js.map +1 -0
  98. package/extensions/local-tracker/dist/client.d.ts +14 -0
  99. package/extensions/local-tracker/dist/client.d.ts.map +1 -0
  100. package/extensions/local-tracker/dist/client.js +27 -0
  101. package/extensions/local-tracker/dist/client.js.map +1 -0
  102. package/extensions/local-tracker/dist/index.d.ts +7 -0
  103. package/extensions/local-tracker/dist/index.d.ts.map +1 -0
  104. package/extensions/local-tracker/dist/index.js +7 -0
  105. package/extensions/local-tracker/dist/index.js.map +1 -0
  106. package/extensions/local-tracker/dist/options.d.ts +31 -0
  107. package/extensions/local-tracker/dist/options.d.ts.map +1 -0
  108. package/extensions/local-tracker/dist/options.js +69 -0
  109. package/extensions/local-tracker/dist/options.js.map +1 -0
  110. package/extensions/local-tracker/dist/provider.d.ts +9 -0
  111. package/extensions/local-tracker/dist/provider.d.ts.map +1 -0
  112. package/extensions/local-tracker/dist/provider.js +35 -0
  113. package/extensions/local-tracker/dist/provider.js.map +1 -0
  114. package/extensions/local-tracker/dist/register.d.ts +11 -0
  115. package/extensions/local-tracker/dist/register.d.ts.map +1 -0
  116. package/extensions/local-tracker/dist/register.js +19 -0
  117. package/extensions/local-tracker/dist/register.js.map +1 -0
  118. package/extensions/local-tracker/dist/resolveBoardDir.d.ts +24 -0
  119. package/extensions/local-tracker/dist/resolveBoardDir.d.ts.map +1 -0
  120. package/extensions/local-tracker/dist/resolveBoardDir.js +39 -0
  121. package/extensions/local-tracker/dist/resolveBoardDir.js.map +1 -0
  122. package/extensions/local-tracker/dist/toolOps.d.ts +9 -0
  123. package/extensions/local-tracker/dist/toolOps.d.ts.map +1 -0
  124. package/extensions/local-tracker/dist/toolOps.js +86 -0
  125. package/extensions/local-tracker/dist/toolOps.js.map +1 -0
  126. package/extensions/local-tracker/dist/tools.d.ts +7 -0
  127. package/extensions/local-tracker/dist/tools.d.ts.map +1 -0
  128. package/extensions/local-tracker/dist/tools.js +170 -0
  129. package/extensions/local-tracker/dist/tools.js.map +1 -0
  130. package/extensions/local-tracker/package.json +18 -0
  131. package/extensions/memory-tracker/dist/index.d.ts +24 -0
  132. package/extensions/memory-tracker/dist/index.d.ts.map +1 -0
  133. package/extensions/memory-tracker/dist/index.js +110 -0
  134. package/extensions/memory-tracker/dist/index.js.map +1 -0
  135. package/extensions/memory-tracker/package.json +16 -0
  136. package/extensions/slack-tracker/dist/client.d.ts +88 -0
  137. package/extensions/slack-tracker/dist/client.d.ts.map +1 -0
  138. package/extensions/slack-tracker/dist/client.js +246 -0
  139. package/extensions/slack-tracker/dist/client.js.map +1 -0
  140. package/extensions/slack-tracker/dist/inMemoryTransport.d.ts +42 -0
  141. package/extensions/slack-tracker/dist/inMemoryTransport.d.ts.map +1 -0
  142. package/extensions/slack-tracker/dist/inMemoryTransport.js +104 -0
  143. package/extensions/slack-tracker/dist/inMemoryTransport.js.map +1 -0
  144. package/extensions/slack-tracker/dist/index.d.ts +15 -0
  145. package/extensions/slack-tracker/dist/index.d.ts.map +1 -0
  146. package/extensions/slack-tracker/dist/index.js +11 -0
  147. package/extensions/slack-tracker/dist/index.js.map +1 -0
  148. package/extensions/slack-tracker/dist/mapping.d.ts +27 -0
  149. package/extensions/slack-tracker/dist/mapping.d.ts.map +1 -0
  150. package/extensions/slack-tracker/dist/mapping.js +109 -0
  151. package/extensions/slack-tracker/dist/mapping.js.map +1 -0
  152. package/extensions/slack-tracker/dist/operations.d.ts +41 -0
  153. package/extensions/slack-tracker/dist/operations.d.ts.map +1 -0
  154. package/extensions/slack-tracker/dist/operations.js +97 -0
  155. package/extensions/slack-tracker/dist/operations.js.map +1 -0
  156. package/extensions/slack-tracker/dist/options.d.ts +30 -0
  157. package/extensions/slack-tracker/dist/options.d.ts.map +1 -0
  158. package/extensions/slack-tracker/dist/options.js +49 -0
  159. package/extensions/slack-tracker/dist/options.js.map +1 -0
  160. package/extensions/slack-tracker/dist/provider.d.ts +9 -0
  161. package/extensions/slack-tracker/dist/provider.d.ts.map +1 -0
  162. package/extensions/slack-tracker/dist/provider.js +74 -0
  163. package/extensions/slack-tracker/dist/provider.js.map +1 -0
  164. package/extensions/slack-tracker/dist/register.d.ts +11 -0
  165. package/extensions/slack-tracker/dist/register.d.ts.map +1 -0
  166. package/extensions/slack-tracker/dist/register.js +19 -0
  167. package/extensions/slack-tracker/dist/register.js.map +1 -0
  168. package/extensions/slack-tracker/dist/threadState.d.ts +52 -0
  169. package/extensions/slack-tracker/dist/threadState.d.ts.map +1 -0
  170. package/extensions/slack-tracker/dist/threadState.js +192 -0
  171. package/extensions/slack-tracker/dist/threadState.js.map +1 -0
  172. package/extensions/slack-tracker/dist/toolOps.d.ts +13 -0
  173. package/extensions/slack-tracker/dist/toolOps.d.ts.map +1 -0
  174. package/extensions/slack-tracker/dist/toolOps.js +76 -0
  175. package/extensions/slack-tracker/dist/toolOps.js.map +1 -0
  176. package/extensions/slack-tracker/dist/tools.d.ts +8 -0
  177. package/extensions/slack-tracker/dist/tools.d.ts.map +1 -0
  178. package/extensions/slack-tracker/dist/tools.js +266 -0
  179. package/extensions/slack-tracker/dist/tools.js.map +1 -0
  180. package/extensions/slack-tracker/dist/transport.d.ts +63 -0
  181. package/extensions/slack-tracker/dist/transport.d.ts.map +1 -0
  182. package/extensions/slack-tracker/dist/transport.js +2 -0
  183. package/extensions/slack-tracker/dist/transport.js.map +1 -0
  184. package/extensions/slack-tracker/dist/webTransport.d.ts +44 -0
  185. package/extensions/slack-tracker/dist/webTransport.d.ts.map +1 -0
  186. package/extensions/slack-tracker/dist/webTransport.js +402 -0
  187. package/extensions/slack-tracker/dist/webTransport.js.map +1 -0
  188. package/extensions/slack-tracker/package.json +17 -0
  189. package/package.json +89 -0
  190. package/packages/acp/dist/childProcess.d.ts +4 -0
  191. package/packages/acp/dist/childProcess.d.ts.map +1 -0
  192. package/packages/acp/dist/childProcess.js +33 -0
  193. package/packages/acp/dist/childProcess.js.map +1 -0
  194. package/packages/acp/dist/index.d.ts +70 -0
  195. package/packages/acp/dist/index.d.ts.map +1 -0
  196. package/packages/acp/dist/index.js +701 -0
  197. package/packages/acp/dist/index.js.map +1 -0
  198. package/packages/acp/dist/options.d.ts +24 -0
  199. package/packages/acp/dist/options.d.ts.map +1 -0
  200. package/packages/acp/dist/options.js +92 -0
  201. package/packages/acp/dist/options.js.map +1 -0
  202. package/packages/acp/dist/toml.d.ts +2 -0
  203. package/packages/acp/dist/toml.d.ts.map +1 -0
  204. package/packages/acp/dist/toml.js +51 -0
  205. package/packages/acp/dist/toml.js.map +1 -0
  206. package/packages/acp/package.json +24 -0
  207. package/packages/agent-runner/dist/index.d.ts +58 -0
  208. package/packages/agent-runner/dist/index.d.ts.map +1 -0
  209. package/packages/agent-runner/dist/index.js +288 -0
  210. package/packages/agent-runner/dist/index.js.map +1 -0
  211. package/packages/agent-runner/package.json +19 -0
  212. package/packages/agent-sdk/dist/index.d.ts +2 -0
  213. package/packages/agent-sdk/dist/index.d.ts.map +1 -0
  214. package/packages/agent-sdk/dist/index.js +2 -0
  215. package/packages/agent-sdk/dist/index.js.map +1 -0
  216. package/packages/agent-sdk/dist/provider.d.ts +66 -0
  217. package/packages/agent-sdk/dist/provider.d.ts.map +1 -0
  218. package/packages/agent-sdk/dist/provider.js +38 -0
  219. package/packages/agent-sdk/dist/provider.js.map +1 -0
  220. package/packages/agent-sdk/package.json +14 -0
  221. package/packages/cli-kit/dist/index.d.ts +20 -0
  222. package/packages/cli-kit/dist/index.d.ts.map +1 -0
  223. package/packages/cli-kit/dist/index.js +72 -0
  224. package/packages/cli-kit/dist/index.js.map +1 -0
  225. package/packages/cli-kit/package.json +14 -0
  226. package/packages/config/dist/aliases.d.ts +10 -0
  227. package/packages/config/dist/aliases.d.ts.map +1 -0
  228. package/packages/config/dist/aliases.js +153 -0
  229. package/packages/config/dist/aliases.js.map +1 -0
  230. package/packages/config/dist/defaults.d.ts +12 -0
  231. package/packages/config/dist/defaults.d.ts.map +1 -0
  232. package/packages/config/dist/defaults.js +78 -0
  233. package/packages/config/dist/defaults.js.map +1 -0
  234. package/packages/config/dist/errors.d.ts +3 -0
  235. package/packages/config/dist/errors.d.ts.map +1 -0
  236. package/packages/config/dist/errors.js +56 -0
  237. package/packages/config/dist/errors.js.map +1 -0
  238. package/packages/config/dist/index.d.ts +5 -0
  239. package/packages/config/dist/index.d.ts.map +1 -0
  240. package/packages/config/dist/index.js +4 -0
  241. package/packages/config/dist/index.js.map +1 -0
  242. package/packages/config/dist/leaf-utils.d.ts +3 -0
  243. package/packages/config/dist/leaf-utils.d.ts.map +1 -0
  244. package/packages/config/dist/leaf-utils.js +9 -0
  245. package/packages/config/dist/leaf-utils.js.map +1 -0
  246. package/packages/config/dist/parse.d.ts +11 -0
  247. package/packages/config/dist/parse.d.ts.map +1 -0
  248. package/packages/config/dist/parse.js +821 -0
  249. package/packages/config/dist/parse.js.map +1 -0
  250. package/packages/config/dist/schemas.d.ts +214 -0
  251. package/packages/config/dist/schemas.d.ts.map +1 -0
  252. package/packages/config/dist/schemas.js +248 -0
  253. package/packages/config/dist/schemas.js.map +1 -0
  254. package/packages/config/package.json +19 -0
  255. package/packages/dispatch/dist/index.d.ts +22 -0
  256. package/packages/dispatch/dist/index.d.ts.map +1 -0
  257. package/packages/dispatch/dist/index.js +117 -0
  258. package/packages/dispatch/dist/index.js.map +1 -0
  259. package/packages/dispatch/package.json +16 -0
  260. package/packages/dispatch-coordinator/dist/coordinator.d.ts +158 -0
  261. package/packages/dispatch-coordinator/dist/coordinator.d.ts.map +1 -0
  262. package/packages/dispatch-coordinator/dist/coordinator.js +529 -0
  263. package/packages/dispatch-coordinator/dist/coordinator.js.map +1 -0
  264. package/packages/dispatch-coordinator/dist/gate.d.ts +24 -0
  265. package/packages/dispatch-coordinator/dist/gate.d.ts.map +1 -0
  266. package/packages/dispatch-coordinator/dist/gate.js +47 -0
  267. package/packages/dispatch-coordinator/dist/gate.js.map +1 -0
  268. package/packages/dispatch-coordinator/dist/index.d.ts +6 -0
  269. package/packages/dispatch-coordinator/dist/index.d.ts.map +1 -0
  270. package/packages/dispatch-coordinator/dist/index.js +16 -0
  271. package/packages/dispatch-coordinator/dist/index.js.map +1 -0
  272. package/packages/dispatch-coordinator/dist/mcpEndpointManager.d.ts +28 -0
  273. package/packages/dispatch-coordinator/dist/mcpEndpointManager.d.ts.map +1 -0
  274. package/packages/dispatch-coordinator/dist/mcpEndpointManager.js +54 -0
  275. package/packages/dispatch-coordinator/dist/mcpEndpointManager.js.map +1 -0
  276. package/packages/dispatch-coordinator/dist/nullEndpointManager.d.ts +18 -0
  277. package/packages/dispatch-coordinator/dist/nullEndpointManager.d.ts.map +1 -0
  278. package/packages/dispatch-coordinator/dist/nullEndpointManager.js +40 -0
  279. package/packages/dispatch-coordinator/dist/nullEndpointManager.js.map +1 -0
  280. package/packages/dispatch-coordinator/dist/types.d.ts +119 -0
  281. package/packages/dispatch-coordinator/dist/types.d.ts.map +1 -0
  282. package/packages/dispatch-coordinator/dist/types.js +17 -0
  283. package/packages/dispatch-coordinator/dist/types.js.map +1 -0
  284. package/packages/dispatch-coordinator/package.json +16 -0
  285. package/packages/domain/dist/index.d.ts +775 -0
  286. package/packages/domain/dist/index.d.ts.map +1 -0
  287. package/packages/domain/dist/index.js +124 -0
  288. package/packages/domain/dist/index.js.map +1 -0
  289. package/packages/domain/package.json +14 -0
  290. package/packages/humanize/dist/index.d.ts +4 -0
  291. package/packages/humanize/dist/index.d.ts.map +1 -0
  292. package/packages/humanize/dist/index.js +347 -0
  293. package/packages/humanize/dist/index.js.map +1 -0
  294. package/packages/humanize/package.json +11 -0
  295. package/packages/issue/dist/index.d.ts +7 -0
  296. package/packages/issue/dist/index.d.ts.map +1 -0
  297. package/packages/issue/dist/index.js +147 -0
  298. package/packages/issue/dist/index.js.map +1 -0
  299. package/packages/issue/package.json +14 -0
  300. package/packages/log-file/dist/index.d.ts +10 -0
  301. package/packages/log-file/dist/index.d.ts.map +1 -0
  302. package/packages/log-file/dist/index.js +200 -0
  303. package/packages/log-file/dist/index.js.map +1 -0
  304. package/packages/log-file/package.json +15 -0
  305. package/packages/mcp/dist/agentEndpoint.d.ts +31 -0
  306. package/packages/mcp/dist/agentEndpoint.d.ts.map +1 -0
  307. package/packages/mcp/dist/agentEndpoint.js +270 -0
  308. package/packages/mcp/dist/agentEndpoint.js.map +1 -0
  309. package/packages/mcp/dist/auth.d.ts +7 -0
  310. package/packages/mcp/dist/auth.d.ts.map +1 -0
  311. package/packages/mcp/dist/auth.js +48 -0
  312. package/packages/mcp/dist/auth.js.map +1 -0
  313. package/packages/mcp/dist/filter.d.ts +70 -0
  314. package/packages/mcp/dist/filter.d.ts.map +1 -0
  315. package/packages/mcp/dist/filter.js +231 -0
  316. package/packages/mcp/dist/filter.js.map +1 -0
  317. package/packages/mcp/dist/index.d.ts +7 -0
  318. package/packages/mcp/dist/index.d.ts.map +1 -0
  319. package/packages/mcp/dist/index.js +5 -0
  320. package/packages/mcp/dist/index.js.map +1 -0
  321. package/packages/mcp/dist/server.d.ts +31 -0
  322. package/packages/mcp/dist/server.d.ts.map +1 -0
  323. package/packages/mcp/dist/server.js +176 -0
  324. package/packages/mcp/dist/server.js.map +1 -0
  325. package/packages/mcp/dist/tools/linear.d.ts +5 -0
  326. package/packages/mcp/dist/tools/linear.d.ts.map +1 -0
  327. package/packages/mcp/dist/tools/linear.js +192 -0
  328. package/packages/mcp/dist/tools/linear.js.map +1 -0
  329. package/packages/mcp/dist/tools/local.d.ts +5 -0
  330. package/packages/mcp/dist/tools/local.d.ts.map +1 -0
  331. package/packages/mcp/dist/tools/local.js +161 -0
  332. package/packages/mcp/dist/tools/local.js.map +1 -0
  333. package/packages/mcp/dist/tools/result.d.ts +5 -0
  334. package/packages/mcp/dist/tools/result.d.ts.map +1 -0
  335. package/packages/mcp/dist/tools/result.js +15 -0
  336. package/packages/mcp/dist/tools/result.js.map +1 -0
  337. package/packages/mcp/dist/tools.d.ts +14 -0
  338. package/packages/mcp/dist/tools.d.ts.map +1 -0
  339. package/packages/mcp/dist/tools.js +58 -0
  340. package/packages/mcp/dist/tools.js.map +1 -0
  341. package/packages/mcp/package.json +20 -0
  342. package/packages/orchestrator/dist/index.d.ts +171 -0
  343. package/packages/orchestrator/dist/index.d.ts.map +1 -0
  344. package/packages/orchestrator/dist/index.js +524 -0
  345. package/packages/orchestrator/dist/index.js.map +1 -0
  346. package/packages/orchestrator/package.json +18 -0
  347. package/packages/policies/dist/index.d.ts +11 -0
  348. package/packages/policies/dist/index.d.ts.map +1 -0
  349. package/packages/policies/dist/index.js +6 -0
  350. package/packages/policies/dist/index.js.map +1 -0
  351. package/packages/policies/dist/reconciliation.d.ts +5 -0
  352. package/packages/policies/dist/reconciliation.d.ts.map +1 -0
  353. package/packages/policies/dist/reconciliation.js +17 -0
  354. package/packages/policies/dist/reconciliation.js.map +1 -0
  355. package/packages/policies/dist/resume.d.ts +14 -0
  356. package/packages/policies/dist/resume.d.ts.map +1 -0
  357. package/packages/policies/dist/resume.js +7 -0
  358. package/packages/policies/dist/resume.js.map +1 -0
  359. package/packages/policies/dist/retry.d.ts +4 -0
  360. package/packages/policies/dist/retry.d.ts.map +1 -0
  361. package/packages/policies/dist/retry.js +7 -0
  362. package/packages/policies/dist/retry.js.map +1 -0
  363. package/packages/policies/dist/stopReason.d.ts +4 -0
  364. package/packages/policies/dist/stopReason.d.ts.map +1 -0
  365. package/packages/policies/dist/stopReason.js +11 -0
  366. package/packages/policies/dist/stopReason.js.map +1 -0
  367. package/packages/policies/dist/usage.d.ts +14 -0
  368. package/packages/policies/dist/usage.d.ts.map +1 -0
  369. package/packages/policies/dist/usage.js +38 -0
  370. package/packages/policies/dist/usage.js.map +1 -0
  371. package/packages/policies/dist/workerHost.d.ts +8 -0
  372. package/packages/policies/dist/workerHost.d.ts.map +1 -0
  373. package/packages/policies/dist/workerHost.js +20 -0
  374. package/packages/policies/dist/workerHost.js.map +1 -0
  375. package/packages/policies/package.json +21 -0
  376. package/packages/presenter/dist/index.d.ts +81 -0
  377. package/packages/presenter/dist/index.d.ts.map +1 -0
  378. package/packages/presenter/dist/index.js +421 -0
  379. package/packages/presenter/dist/index.js.map +1 -0
  380. package/packages/presenter/package.json +16 -0
  381. package/packages/projections/dist/index.d.ts +10 -0
  382. package/packages/projections/dist/index.d.ts.map +1 -0
  383. package/packages/projections/dist/index.js +30 -0
  384. package/packages/projections/dist/index.js.map +1 -0
  385. package/packages/projections/package.json +15 -0
  386. package/packages/prompt/dist/index.d.ts +9 -0
  387. package/packages/prompt/dist/index.d.ts.map +1 -0
  388. package/packages/prompt/dist/index.js +71 -0
  389. package/packages/prompt/dist/index.js.map +1 -0
  390. package/packages/prompt/package.json +16 -0
  391. package/packages/retry-scheduler/dist/index.d.ts +12 -0
  392. package/packages/retry-scheduler/dist/index.d.ts.map +1 -0
  393. package/packages/retry-scheduler/dist/index.js +39 -0
  394. package/packages/retry-scheduler/dist/index.js.map +1 -0
  395. package/packages/retry-scheduler/package.json +15 -0
  396. package/packages/runtime/dist/index.d.ts +157 -0
  397. package/packages/runtime/dist/index.d.ts.map +1 -0
  398. package/packages/runtime/dist/index.js +1074 -0
  399. package/packages/runtime/dist/index.js.map +1 -0
  400. package/packages/runtime/package.json +26 -0
  401. package/packages/runtime-events/dist/index.d.ts +110 -0
  402. package/packages/runtime-events/dist/index.d.ts.map +1 -0
  403. package/packages/runtime-events/dist/index.js +25 -0
  404. package/packages/runtime-events/dist/index.js.map +1 -0
  405. package/packages/runtime-events/package.json +14 -0
  406. package/packages/server/dist/index.d.ts +25 -0
  407. package/packages/server/dist/index.d.ts.map +1 -0
  408. package/packages/server/dist/index.js +213 -0
  409. package/packages/server/dist/index.js.map +1 -0
  410. package/packages/server/dist/issue-store.d.ts +26 -0
  411. package/packages/server/dist/issue-store.d.ts.map +1 -0
  412. package/packages/server/dist/issue-store.js +88 -0
  413. package/packages/server/dist/issue-store.js.map +1 -0
  414. package/packages/server/dist/path-params.d.ts +6 -0
  415. package/packages/server/dist/path-params.d.ts.map +1 -0
  416. package/packages/server/dist/path-params.js +15 -0
  417. package/packages/server/dist/path-params.js.map +1 -0
  418. package/packages/server/dist/source.d.ts +12 -0
  419. package/packages/server/dist/source.d.ts.map +1 -0
  420. package/packages/server/dist/source.js +2 -0
  421. package/packages/server/dist/source.js.map +1 -0
  422. package/packages/server/dist/trace-routes.d.ts +21 -0
  423. package/packages/server/dist/trace-routes.d.ts.map +1 -0
  424. package/packages/server/dist/trace-routes.js +66 -0
  425. package/packages/server/dist/trace-routes.js.map +1 -0
  426. package/packages/server/dist/ws.d.ts +18 -0
  427. package/packages/server/dist/ws.d.ts.map +1 -0
  428. package/packages/server/dist/ws.js +168 -0
  429. package/packages/server/dist/ws.js.map +1 -0
  430. package/packages/server/package.json +22 -0
  431. package/packages/ssh/dist/index.d.ts +33 -0
  432. package/packages/ssh/dist/index.d.ts.map +1 -0
  433. package/packages/ssh/dist/index.js +281 -0
  434. package/packages/ssh/dist/index.js.map +1 -0
  435. package/packages/ssh/package.json +15 -0
  436. package/packages/static-worker/dist/index.d.ts +73 -0
  437. package/packages/static-worker/dist/index.d.ts.map +1 -0
  438. package/packages/static-worker/dist/index.js +150 -0
  439. package/packages/static-worker/dist/index.js.map +1 -0
  440. package/packages/static-worker/package.json +14 -0
  441. package/packages/tool-sdk/dist/filter.d.ts +70 -0
  442. package/packages/tool-sdk/dist/filter.d.ts.map +1 -0
  443. package/packages/tool-sdk/dist/filter.js +231 -0
  444. package/packages/tool-sdk/dist/filter.js.map +1 -0
  445. package/packages/tool-sdk/dist/index.d.ts +6 -0
  446. package/packages/tool-sdk/dist/index.d.ts.map +1 -0
  447. package/packages/tool-sdk/dist/index.js +4 -0
  448. package/packages/tool-sdk/dist/index.js.map +1 -0
  449. package/packages/tool-sdk/dist/provider.d.ts +51 -0
  450. package/packages/tool-sdk/dist/provider.d.ts.map +1 -0
  451. package/packages/tool-sdk/dist/provider.js +2 -0
  452. package/packages/tool-sdk/dist/provider.js.map +1 -0
  453. package/packages/tool-sdk/dist/registry.d.ts +35 -0
  454. package/packages/tool-sdk/dist/registry.d.ts.map +1 -0
  455. package/packages/tool-sdk/dist/registry.js +85 -0
  456. package/packages/tool-sdk/dist/registry.js.map +1 -0
  457. package/packages/tool-sdk/dist/result.d.ts +5 -0
  458. package/packages/tool-sdk/dist/result.d.ts.map +1 -0
  459. package/packages/tool-sdk/dist/result.js +15 -0
  460. package/packages/tool-sdk/dist/result.js.map +1 -0
  461. package/packages/tool-sdk/package.json +14 -0
  462. package/packages/traceviz-emitter/dist/index.d.ts +19 -0
  463. package/packages/traceviz-emitter/dist/index.d.ts.map +1 -0
  464. package/packages/traceviz-emitter/dist/index.js +97 -0
  465. package/packages/traceviz-emitter/dist/index.js.map +1 -0
  466. package/packages/traceviz-emitter/package.json +17 -0
  467. package/packages/traceviz-server/dist/index.d.ts +14 -0
  468. package/packages/traceviz-server/dist/index.d.ts.map +1 -0
  469. package/packages/traceviz-server/dist/index.js +10 -0
  470. package/packages/traceviz-server/dist/index.js.map +1 -0
  471. package/packages/traceviz-server/dist/models/api.d.ts +51 -0
  472. package/packages/traceviz-server/dist/models/api.d.ts.map +1 -0
  473. package/packages/traceviz-server/dist/models/api.js +5 -0
  474. package/packages/traceviz-server/dist/models/api.js.map +1 -0
  475. package/packages/traceviz-server/dist/models/display-events.d.ts +58 -0
  476. package/packages/traceviz-server/dist/models/display-events.d.ts.map +1 -0
  477. package/packages/traceviz-server/dist/models/display-events.js +6 -0
  478. package/packages/traceviz-server/dist/models/display-events.js.map +1 -0
  479. package/packages/traceviz-server/dist/parser.d.ts +14 -0
  480. package/packages/traceviz-server/dist/parser.d.ts.map +1 -0
  481. package/packages/traceviz-server/dist/parser.js +363 -0
  482. package/packages/traceviz-server/dist/parser.js.map +1 -0
  483. package/packages/traceviz-server/dist/stats.d.ts +7 -0
  484. package/packages/traceviz-server/dist/stats.d.ts.map +1 -0
  485. package/packages/traceviz-server/dist/stats.js +81 -0
  486. package/packages/traceviz-server/dist/stats.js.map +1 -0
  487. package/packages/traceviz-server/dist/watcher.d.ts +54 -0
  488. package/packages/traceviz-server/dist/watcher.d.ts.map +1 -0
  489. package/packages/traceviz-server/dist/watcher.js +368 -0
  490. package/packages/traceviz-server/dist/watcher.js.map +1 -0
  491. package/packages/traceviz-server/package.json +16 -0
  492. package/packages/tracker-sdk/dist/index.d.ts +5 -0
  493. package/packages/tracker-sdk/dist/index.d.ts.map +1 -0
  494. package/packages/tracker-sdk/dist/index.js +4 -0
  495. package/packages/tracker-sdk/dist/index.js.map +1 -0
  496. package/packages/tracker-sdk/dist/options.d.ts +20 -0
  497. package/packages/tracker-sdk/dist/options.d.ts.map +1 -0
  498. package/packages/tracker-sdk/dist/options.js +46 -0
  499. package/packages/tracker-sdk/dist/options.js.map +1 -0
  500. package/packages/tracker-sdk/dist/provider.d.ts +104 -0
  501. package/packages/tracker-sdk/dist/provider.d.ts.map +1 -0
  502. package/packages/tracker-sdk/dist/provider.js +2 -0
  503. package/packages/tracker-sdk/dist/provider.js.map +1 -0
  504. package/packages/tracker-sdk/dist/registry.d.ts +26 -0
  505. package/packages/tracker-sdk/dist/registry.d.ts.map +1 -0
  506. package/packages/tracker-sdk/dist/registry.js +52 -0
  507. package/packages/tracker-sdk/dist/registry.js.map +1 -0
  508. package/packages/tracker-sdk/dist/toolPack.d.ts +10 -0
  509. package/packages/tracker-sdk/dist/toolPack.d.ts.map +1 -0
  510. package/packages/tracker-sdk/dist/toolPack.js +185 -0
  511. package/packages/tracker-sdk/dist/toolPack.js.map +1 -0
  512. package/packages/tracker-sdk/package.json +15 -0
  513. package/packages/tui/dist/index.d.ts +35 -0
  514. package/packages/tui/dist/index.d.ts.map +1 -0
  515. package/packages/tui/dist/index.js +354 -0
  516. package/packages/tui/dist/index.js.map +1 -0
  517. package/packages/tui/package.json +18 -0
  518. package/packages/worker-host-pool/dist/index.d.ts +33 -0
  519. package/packages/worker-host-pool/dist/index.d.ts.map +1 -0
  520. package/packages/worker-host-pool/dist/index.js +311 -0
  521. package/packages/worker-host-pool/dist/index.js.map +1 -0
  522. package/packages/worker-host-pool/package.json +14 -0
  523. package/packages/worker-pool/dist/index.d.ts +6 -0
  524. package/packages/worker-pool/dist/index.d.ts.map +1 -0
  525. package/packages/worker-pool/dist/index.js +15 -0
  526. package/packages/worker-pool/dist/index.js.map +1 -0
  527. package/packages/worker-pool/dist/lease.d.ts +36 -0
  528. package/packages/worker-pool/dist/lease.d.ts.map +1 -0
  529. package/packages/worker-pool/dist/lease.js +53 -0
  530. package/packages/worker-pool/dist/lease.js.map +1 -0
  531. package/packages/worker-pool/dist/ledger.d.ts +51 -0
  532. package/packages/worker-pool/dist/ledger.d.ts.map +1 -0
  533. package/packages/worker-pool/dist/ledger.js +165 -0
  534. package/packages/worker-pool/dist/ledger.js.map +1 -0
  535. package/packages/worker-pool/dist/mutex.d.ts +10 -0
  536. package/packages/worker-pool/dist/mutex.d.ts.map +1 -0
  537. package/packages/worker-pool/dist/mutex.js +22 -0
  538. package/packages/worker-pool/dist/mutex.js.map +1 -0
  539. package/packages/worker-pool/dist/pool.d.ts +33 -0
  540. package/packages/worker-pool/dist/pool.d.ts.map +1 -0
  541. package/packages/worker-pool/dist/pool.js +1727 -0
  542. package/packages/worker-pool/dist/pool.js.map +1 -0
  543. package/packages/worker-pool/dist/reaper.d.ts +94 -0
  544. package/packages/worker-pool/dist/reaper.d.ts.map +1 -0
  545. package/packages/worker-pool/dist/reaper.js +295 -0
  546. package/packages/worker-pool/dist/reaper.js.map +1 -0
  547. package/packages/worker-pool/dist/types.d.ts +249 -0
  548. package/packages/worker-pool/dist/types.d.ts.map +1 -0
  549. package/packages/worker-pool/dist/types.js +2 -0
  550. package/packages/worker-pool/dist/types.js.map +1 -0
  551. package/packages/worker-pool/package.json +16 -0
  552. package/packages/worker-sdk/dist/conformance.d.ts +64 -0
  553. package/packages/worker-sdk/dist/conformance.d.ts.map +1 -0
  554. package/packages/worker-sdk/dist/conformance.js +109 -0
  555. package/packages/worker-sdk/dist/conformance.js.map +1 -0
  556. package/packages/worker-sdk/dist/fake.d.ts +76 -0
  557. package/packages/worker-sdk/dist/fake.d.ts.map +1 -0
  558. package/packages/worker-sdk/dist/fake.js +142 -0
  559. package/packages/worker-sdk/dist/fake.js.map +1 -0
  560. package/packages/worker-sdk/dist/index.d.ts +5 -0
  561. package/packages/worker-sdk/dist/index.d.ts.map +1 -0
  562. package/packages/worker-sdk/dist/index.js +10 -0
  563. package/packages/worker-sdk/dist/index.js.map +1 -0
  564. package/packages/worker-sdk/dist/module.d.ts +46 -0
  565. package/packages/worker-sdk/dist/module.d.ts.map +1 -0
  566. package/packages/worker-sdk/dist/module.js +59 -0
  567. package/packages/worker-sdk/dist/module.js.map +1 -0
  568. package/packages/worker-sdk/dist/registry.d.ts +24 -0
  569. package/packages/worker-sdk/dist/registry.d.ts.map +1 -0
  570. package/packages/worker-sdk/dist/registry.js +49 -0
  571. package/packages/worker-sdk/dist/registry.js.map +1 -0
  572. package/packages/worker-sdk/dist/types.d.ts +138 -0
  573. package/packages/worker-sdk/dist/types.d.ts.map +1 -0
  574. package/packages/worker-sdk/dist/types.js +21 -0
  575. package/packages/worker-sdk/dist/types.js.map +1 -0
  576. package/packages/worker-sdk/package.json +15 -0
  577. package/packages/workflow/dist/index.d.ts +33 -0
  578. package/packages/workflow/dist/index.d.ts.map +1 -0
  579. package/packages/workflow/dist/index.js +125 -0
  580. package/packages/workflow/dist/index.js.map +1 -0
  581. package/packages/workflow/package.json +19 -0
  582. package/packages/workspace/dist/index.d.ts +70 -0
  583. package/packages/workspace/dist/index.d.ts.map +1 -0
  584. package/packages/workspace/dist/index.js +1016 -0
  585. package/packages/workspace/dist/index.js.map +1 -0
  586. package/packages/workspace/package.json +17 -0
  587. package/runtime-deps/anthropic-claude-agent-sdk/LICENSE.md +1 -0
  588. package/runtime-deps/anthropic-claude-agent-sdk/README.md +65 -0
  589. package/runtime-deps/anthropic-claude-agent-sdk/agentSdkTypes.d.ts +1 -0
  590. package/runtime-deps/anthropic-claude-agent-sdk/assistant.d.ts +135 -0
  591. package/runtime-deps/anthropic-claude-agent-sdk/assistant.mjs +190 -0
  592. package/runtime-deps/anthropic-claude-agent-sdk/bridge.d.ts +231 -0
  593. package/runtime-deps/anthropic-claude-agent-sdk/bridge.mjs +168 -0
  594. package/runtime-deps/anthropic-claude-agent-sdk/browser-sdk.d.ts +53 -0
  595. package/runtime-deps/anthropic-claude-agent-sdk/browser-sdk.js +93 -0
  596. package/runtime-deps/anthropic-claude-agent-sdk/extractFromBunfs.d.ts +1 -0
  597. package/runtime-deps/anthropic-claude-agent-sdk/extractFromBunfs.js +156 -0
  598. package/runtime-deps/anthropic-claude-agent-sdk/manifest.json +47 -0
  599. package/runtime-deps/anthropic-claude-agent-sdk/manifest.zst.json +55 -0
  600. package/runtime-deps/anthropic-claude-agent-sdk/node_modules/.bin/anthropic-ai-sdk +21 -0
  601. package/runtime-deps/anthropic-claude-agent-sdk/package.json +81 -0
  602. package/runtime-deps/anthropic-claude-agent-sdk/sdk-tools.d.ts +3170 -0
  603. package/runtime-deps/anthropic-claude-agent-sdk/sdk.d.ts +6000 -0
  604. package/runtime-deps/anthropic-claude-agent-sdk/sdk.mjs +119 -0
  605. package/runtime-deps/openai-codex/README.md +60 -0
  606. package/runtime-deps/openai-codex/bin/codex.js +229 -0
  607. package/runtime-deps/openai-codex/bin/rg +79 -0
  608. package/runtime-deps/openai-codex/package.json +22 -0
  609. package/vendor/claude-agent-acp/dist/acp-agent.d.ts +239 -0
  610. package/vendor/claude-agent-acp/dist/acp-agent.d.ts.map +1 -0
  611. package/vendor/claude-agent-acp/dist/acp-agent.js +2693 -0
  612. package/vendor/claude-agent-acp/dist/bundle.js +41230 -0
  613. package/vendor/claude-agent-acp/dist/index.d.ts +3 -0
  614. package/vendor/claude-agent-acp/dist/index.d.ts.map +1 -0
  615. package/vendor/claude-agent-acp/dist/index.js +67 -0
  616. package/vendor/claude-agent-acp/dist/lib.d.ts +6 -0
  617. package/vendor/claude-agent-acp/dist/lib.d.ts.map +1 -0
  618. package/vendor/claude-agent-acp/dist/lib.js +5 -0
  619. package/vendor/claude-agent-acp/dist/settings.d.ts +68 -0
  620. package/vendor/claude-agent-acp/dist/settings.d.ts.map +1 -0
  621. package/vendor/claude-agent-acp/dist/settings.js +182 -0
  622. package/vendor/claude-agent-acp/dist/tools.d.ts +103 -0
  623. package/vendor/claude-agent-acp/dist/tools.d.ts.map +1 -0
  624. package/vendor/claude-agent-acp/dist/tools.js +713 -0
  625. package/vendor/claude-agent-acp/dist/utils.d.ts +16 -0
  626. package/vendor/claude-agent-acp/dist/utils.d.ts.map +1 -0
  627. package/vendor/claude-agent-acp/dist/utils.js +83 -0
  628. package/vendor/claude-agent-acp/package.json +23 -0
  629. package/vendor/codex-acp/dist/index.js +21280 -0
  630. package/vendor/codex-acp/package.json +17 -0
@@ -0,0 +1,142 @@
1
+ import { defaultWorkerDriverRegistry } from "./registry.js";
2
+ const KIND = "fake";
3
+ const CAPABILITIES = {
4
+ sshAddressable: false,
5
+ ephemeral: false,
6
+ usesLedger: false,
7
+ };
8
+ /**
9
+ * An in-memory {@link WorkerDriver} used by the always-on test layer and the
10
+ * memory-tracker e2e demo, and the SDK's reference implementation of the
11
+ * driver contract. It owns no real machines and touches no disk: every
12
+ * operation mutates a `Map<workerId, WorkerDescriptor>` and the yielded `workerHost`
13
+ * is a synthetic `fake://worker-<workerId>` address. Determinism comes from the
14
+ * injected clock (so `createdAtMs` is reproducible), and failure can be
15
+ * injected per-worker so tests can exercise probe/provision/destroy faults and
16
+ * the conformance suite's unreachable-worker case.
17
+ */
18
+ export class FakeWorkerDriver {
19
+ deps;
20
+ kind = KIND;
21
+ capabilities = CAPABILITIES;
22
+ // The live inventory: provisioned-minus-destroyed, keyed on the pool's
23
+ // idempotency key so `provision` is idempotent on `workerId`.
24
+ workers = new Map();
25
+ // Per-worker failure injections. `probeFailures` flips `probe` to `{ ok: false }`;
26
+ // `provisionFailures`/`destroyFailures` reject the respective call.
27
+ probeFailures = new Map();
28
+ provisionFailures = new Map();
29
+ destroyFailures = new Map();
30
+ // A write counter that proves the driver never touched the disk. It is
31
+ // structurally pinned at 0 (the driver holds only in-memory state), so a
32
+ // test can assert ZERO fs I/O by reading `fsWriteCount`.
33
+ writes = 0;
34
+ constructor(deps) {
35
+ this.deps = deps;
36
+ }
37
+ /** Number of fs writes performed (always 0; the driver is purely in-memory). */
38
+ get fsWriteCount() {
39
+ return this.writes;
40
+ }
41
+ /**
42
+ * Provisions (or re-adopts) a worker for `req.workerId`. Idempotent on `workerId`: a
43
+ * second call returns the SAME descriptor without creating a duplicate. The
44
+ * descriptor is stamped from the injected clock so its `createdAtMs` is
45
+ * deterministic.
46
+ */
47
+ async provision(req) {
48
+ const injected = this.provisionFailures.get(req.workerId);
49
+ if (injected !== undefined) {
50
+ return Promise.reject(new Error(injected));
51
+ }
52
+ const existing = this.workers.get(req.workerId);
53
+ if (existing) {
54
+ return Promise.resolve(existing);
55
+ }
56
+ const workerHost = `fake://worker-${req.workerId}`;
57
+ const descriptor = {
58
+ workerId: req.workerId,
59
+ workerHost,
60
+ driverRef: workerHost,
61
+ createdAtMs: this.deps.clock.now().getTime(),
62
+ labels: [...req.labels],
63
+ metadata: {},
64
+ };
65
+ this.workers.set(req.workerId, descriptor);
66
+ return Promise.resolve(descriptor);
67
+ }
68
+ /**
69
+ * Reports the worker healthy unless a probe failure was injected for its
70
+ * `workerId`. An unknown/already-destroyed worker is reported `ok: false` rather
71
+ * than throwing (mirroring a real probe against a gone machine).
72
+ */
73
+ async probe(worker, _opts) {
74
+ const injected = this.probeFailures.get(worker.workerId);
75
+ if (injected !== undefined) {
76
+ return Promise.resolve({ ok: false, reason: injected });
77
+ }
78
+ if (!this.workers.has(worker.workerId)) {
79
+ return Promise.resolve({ ok: false, reason: "fake_worker_not_found" });
80
+ }
81
+ return Promise.resolve({ ok: true });
82
+ }
83
+ /**
84
+ * Destroys a worker. Idempotent and tolerant of an already-gone (or
85
+ * never-provisioned) worker. Rejects only when a destroy failure was injected
86
+ * for the worker, leaving the worker in place so the caller can retry.
87
+ */
88
+ async destroy(worker, _opts) {
89
+ const injected = this.destroyFailures.get(worker.workerId);
90
+ if (injected !== undefined) {
91
+ return Promise.reject(new Error(injected));
92
+ }
93
+ this.workers.delete(worker.workerId);
94
+ return Promise.resolve();
95
+ }
96
+ /** Returns the live inventory (provisioned-minus-destroyed). */
97
+ async list() {
98
+ return Promise.resolve([...this.workers.values()]);
99
+ }
100
+ /** Injects a probe failure so `probe` returns `{ ok: false, reason }`. */
101
+ injectProbeFailure(workerId, reason) {
102
+ this.probeFailures.set(workerId, reason);
103
+ }
104
+ /** Clears a previously injected probe failure so the worker probes healthy again. */
105
+ clearProbeFailure(workerId) {
106
+ this.probeFailures.delete(workerId);
107
+ }
108
+ /** Injects a provision failure so `provision` rejects with `reason`. */
109
+ injectProvisionFailure(workerId, reason) {
110
+ this.provisionFailures.set(workerId, reason);
111
+ }
112
+ /** Clears a previously injected provision failure. */
113
+ clearProvisionFailure(workerId) {
114
+ this.provisionFailures.delete(workerId);
115
+ }
116
+ /** Injects a destroy failure so `destroy` rejects with `reason`. */
117
+ injectDestroyFailure(workerId, reason) {
118
+ this.destroyFailures.set(workerId, reason);
119
+ }
120
+ /** Clears a previously injected destroy failure. */
121
+ clearDestroyFailure(workerId) {
122
+ this.destroyFailures.delete(workerId);
123
+ }
124
+ }
125
+ /** The registered `fake` factory: constructs a fresh in-memory driver per pool. */
126
+ export const fakeWorkerDriverFactory = {
127
+ kind: KIND,
128
+ create: (_options, deps) => new FakeWorkerDriver(deps),
129
+ };
130
+ /**
131
+ * Registers the `fake` driver. The SDK ships this reference driver (rather
132
+ * than an extension) so engine and extension test suites alike can exercise
133
+ * the pool without real machines; the composition root registers it next to
134
+ * the real driver extensions.
135
+ */
136
+ export function registerFakeWorkerDriver(registries = {}) {
137
+ const drivers = registries.workerDrivers ?? defaultWorkerDriverRegistry;
138
+ if (drivers.get(KIND) === undefined) {
139
+ drivers.register(fakeWorkerDriverFactory);
140
+ }
141
+ }
142
+ //# sourceMappingURL=fake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake.js","sourceRoot":"","sources":["../src/fake.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { POOL_OWNED_LABEL, type WorkerDescriptor, type WorkerDriver, type WorkerDriverFactory, type WorkerHealth, type DriverCapabilities, type DriverDeps, type ProvisionRequest, type SshRunOptions, type SshRunResult, type SshRunner, type TeardownReason, } from "./types.js";
2
+ export { WorkerDriverRegistry, defaultWorkerDriverRegistry } from "./registry.js";
3
+ export { WORKER_DRIVER_SDK_VERSION, assertWorkerDriverModule, defineWorkerDriver, type WorkerDriverModule, } from "./module.js";
4
+ export { FakeWorkerDriver, fakeWorkerDriverFactory, registerFakeWorkerDriver } from "./fake.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ // The worker SDK: the contract a worker backend implements to join the warm
2
+ // worker pool, the registry the composition root wires it into, and the
3
+ // in-memory reference driver. The conformance kit lives behind the
4
+ // `@lorenz/worker-sdk/conformance` subpath so the runtime barrel never pulls
5
+ // vitest.
6
+ export { POOL_OWNED_LABEL, } from "./types.js";
7
+ export { WorkerDriverRegistry, defaultWorkerDriverRegistry } from "./registry.js";
8
+ export { WORKER_DRIVER_SDK_VERSION, assertWorkerDriverModule, defineWorkerDriver, } from "./module.js";
9
+ export { FakeWorkerDriver, fakeWorkerDriverFactory, registerFakeWorkerDriver } from "./fake.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,wEAAwE;AACxE,mEAAmE;AACnE,6EAA6E;AAC7E,UAAU;AAEV,OAAO,EACL,gBAAgB,GAYjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { WorkerDriverFactory } from "./types.js";
2
+ /**
3
+ * The worker-driver SDK version this build of the engine speaks. Out-of-tree
4
+ * driver modules declare the version they target via
5
+ * {@link WorkerDriverModule.sdkVersion}; the loader rejects a mismatch before the
6
+ * module ever reaches the registry. Major-only: additive, backwards-compatible
7
+ * SDK changes never bump it.
8
+ */
9
+ export declare const WORKER_DRIVER_SDK_VERSION = 1;
10
+ /**
11
+ * The unit an OUT-OF-TREE worker-driver module exports: a {@link WorkerDriverFactory}
12
+ * carrying the SDK version it targets. In-repo extensions register factories
13
+ * directly (the composition root vouches for them); a dynamically imported
14
+ * module instead crosses a version boundary the daemon cannot type-check, so
15
+ * the explicit `sdkVersion` handshake stands in for the compiler.
16
+ */
17
+ export interface WorkerDriverModule extends WorkerDriverFactory {
18
+ readonly sdkVersion: number;
19
+ }
20
+ /**
21
+ * Authoring sugar for out-of-tree driver modules: shape-asserts the module at
22
+ * definition time (so a typo fails in the author's tests, not the operator's
23
+ * daemon) and returns it unchanged. Usage:
24
+ *
25
+ * ```ts
26
+ * export default defineWorkerDriver({
27
+ * kind: "acme",
28
+ * sdkVersion: 1,
29
+ * create: (options, deps) => new AcmeWorkerDriver(options, deps),
30
+ * });
31
+ * ```
32
+ */
33
+ export declare function defineWorkerDriver(module: WorkerDriverModule): WorkerDriverModule;
34
+ /**
35
+ * Structural check + version handshake for a dynamically loaded worker-driver
36
+ * module. `source` names where the value came from (a module specifier, or
37
+ * `defineWorkerDriver` at authoring time) so every error is actionable. Throws:
38
+ *
39
+ * - `worker_pool_driver_module_invalid: <source> ...` when the value is not an
40
+ * object, `kind` is not a non-empty string, `create` is not a function, or
41
+ * `sdkVersion` is not a number;
42
+ * - `worker_pool_driver_sdk_mismatch: <source> targets SDK v<n>, this build
43
+ * supports v<WORKER_DRIVER_SDK_VERSION>` when the declared version differs.
44
+ */
45
+ export declare function assertWorkerDriverModule(value: unknown, source: string): asserts value is WorkerDriverModule;
46
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAGjF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,IAAI,kBAAkB,CA+BrC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The worker-driver SDK version this build of the engine speaks. Out-of-tree
3
+ * driver modules declare the version they target via
4
+ * {@link WorkerDriverModule.sdkVersion}; the loader rejects a mismatch before the
5
+ * module ever reaches the registry. Major-only: additive, backwards-compatible
6
+ * SDK changes never bump it.
7
+ */
8
+ export const WORKER_DRIVER_SDK_VERSION = 1;
9
+ /**
10
+ * Authoring sugar for out-of-tree driver modules: shape-asserts the module at
11
+ * definition time (so a typo fails in the author's tests, not the operator's
12
+ * daemon) and returns it unchanged. Usage:
13
+ *
14
+ * ```ts
15
+ * export default defineWorkerDriver({
16
+ * kind: "acme",
17
+ * sdkVersion: 1,
18
+ * create: (options, deps) => new AcmeWorkerDriver(options, deps),
19
+ * });
20
+ * ```
21
+ */
22
+ export function defineWorkerDriver(module) {
23
+ assertWorkerDriverModule(module, "defineWorkerDriver");
24
+ return module;
25
+ }
26
+ /**
27
+ * Structural check + version handshake for a dynamically loaded worker-driver
28
+ * module. `source` names where the value came from (a module specifier, or
29
+ * `defineWorkerDriver` at authoring time) so every error is actionable. Throws:
30
+ *
31
+ * - `worker_pool_driver_module_invalid: <source> ...` when the value is not an
32
+ * object, `kind` is not a non-empty string, `create` is not a function, or
33
+ * `sdkVersion` is not a number;
34
+ * - `worker_pool_driver_sdk_mismatch: <source> targets SDK v<n>, this build
35
+ * supports v<WORKER_DRIVER_SDK_VERSION>` when the declared version differs.
36
+ */
37
+ export function assertWorkerDriverModule(value, source) {
38
+ if (typeof value !== "object" || value === null) {
39
+ throw new Error(`worker_pool_driver_module_invalid: ${source} did not yield a worker driver module object ` +
40
+ `(got ${value === null ? "null" : typeof value}); export defineWorkerDriver({ kind, sdkVersion, create }) ` +
41
+ `as the default export or a named export`);
42
+ }
43
+ const candidate = value;
44
+ if (typeof candidate.kind !== "string" || candidate.kind.trim() === "") {
45
+ throw new Error(`worker_pool_driver_module_invalid: ${source} is missing a non-empty string \`kind\``);
46
+ }
47
+ if (typeof candidate.create !== "function") {
48
+ throw new Error(`worker_pool_driver_module_invalid: ${source} (kind: ${candidate.kind}) is missing a \`create(options, deps)\` function`);
49
+ }
50
+ if (typeof candidate.sdkVersion !== "number") {
51
+ throw new Error(`worker_pool_driver_module_invalid: ${source} (kind: ${candidate.kind}) is missing a numeric \`sdkVersion\` ` +
52
+ `(declare sdkVersion: ${WORKER_DRIVER_SDK_VERSION})`);
53
+ }
54
+ if (candidate.sdkVersion !== WORKER_DRIVER_SDK_VERSION) {
55
+ throw new Error(`worker_pool_driver_sdk_mismatch: ${source} targets SDK v${candidate.sdkVersion}, ` +
56
+ `this build supports v${WORKER_DRIVER_SDK_VERSION}`);
57
+ }
58
+ }
59
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAa3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,MAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,+CAA+C;YACzF,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,6DAA6D;YAC3G,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAAoC,CAAC;IACvD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,yCAAyC,CACtF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,WAAW,SAAS,CAAC,IAAI,mDAAmD,CACzH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,WAAW,SAAS,CAAC,IAAI,wCAAwC;YAC3G,wBAAwB,yBAAyB,GAAG,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,UAAU,KAAK,yBAAyB,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,iBAAiB,SAAS,CAAC,UAAU,IAAI;YACjF,wBAAwB,yBAAyB,EAAE,CACtD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { WorkerDriverFactory } from "./types.js";
2
+ /**
3
+ * Lookup table of {@link WorkerDriverFactory}s keyed by `worker.worker_pool.driver`.
4
+ * The pool resolves the configured kind through a registry instead of
5
+ * hardcoding backends, so the set of supported worker drivers is decided by
6
+ * whoever composes the application.
7
+ */
8
+ export declare class WorkerDriverRegistry {
9
+ private readonly factories;
10
+ /** Register a factory. Throws when a different factory already claims the kind. */
11
+ register(factory: WorkerDriverFactory): void;
12
+ get(kind: string | undefined): WorkerDriverFactory | undefined;
13
+ /** Like {@link get} but throws a config-style error listing the known kinds. */
14
+ require(kind: string | undefined): WorkerDriverFactory;
15
+ kinds(): string[];
16
+ }
17
+ /**
18
+ * Process-wide registry used as the default by the pool and the CLI. The
19
+ * composition root (the CLI entrypoint, or a test) registers drivers here;
20
+ * library code only reads from it. Call sites that need isolation can
21
+ * construct their own {@link WorkerDriverRegistry} and pass it explicitly.
22
+ */
23
+ export declare const defaultWorkerDriverRegistry: WorkerDriverRegistry;
24
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0C;IAEpE,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAU5C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS;IAI9D,gFAAgF;IAChF,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB;IAgBtD,KAAK,IAAI,MAAM,EAAE;CAGlB;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,sBAA6B,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Lookup table of {@link WorkerDriverFactory}s keyed by `worker.worker_pool.driver`.
3
+ * The pool resolves the configured kind through a registry instead of
4
+ * hardcoding backends, so the set of supported worker drivers is decided by
5
+ * whoever composes the application.
6
+ */
7
+ export class WorkerDriverRegistry {
8
+ factories = new Map();
9
+ /** Register a factory. Throws when a different factory already claims the kind. */
10
+ register(factory) {
11
+ const kind = factory.kind.trim();
12
+ if (!kind)
13
+ throw new Error("worker driver kind must not be blank");
14
+ const existing = this.factories.get(kind);
15
+ if (existing && existing !== factory) {
16
+ throw new Error(`worker driver already registered for kind: ${kind}`);
17
+ }
18
+ this.factories.set(kind, factory);
19
+ }
20
+ get(kind) {
21
+ return kind === undefined ? undefined : this.factories.get(kind);
22
+ }
23
+ /** Like {@link get} but throws a config-style error listing the known kinds. */
24
+ require(kind) {
25
+ if (kind === undefined || kind === null || kind === "") {
26
+ throw new Error("worker.worker_pool.driver is required");
27
+ }
28
+ const factory = this.factories.get(kind);
29
+ if (!factory) {
30
+ const known = this.kinds();
31
+ const hint = known.length > 0
32
+ ? ` (known kinds: ${known.join(", ")})`
33
+ : " (no worker drivers registered - register worker driver extensions at the composition root)";
34
+ throw new Error(`worker_pool_driver_unavailable: ${kind}${hint}`);
35
+ }
36
+ return factory;
37
+ }
38
+ kinds() {
39
+ return [...this.factories.keys()].sort();
40
+ }
41
+ }
42
+ /**
43
+ * Process-wide registry used as the default by the pool and the CLI. The
44
+ * composition root (the CLI entrypoint, or a test) registers drivers here;
45
+ * library code only reads from it. Call sites that need isolation can
46
+ * construct their own {@link WorkerDriverRegistry} and pass it explicitly.
47
+ */
48
+ export const defaultWorkerDriverRegistry = new WorkerDriverRegistry();
49
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACd,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEpE,mFAAmF;IACnF,QAAQ,CAAC,OAA4B;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,IAAwB;QAC1B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,gFAAgF;IAChF,OAAO,CAAC,IAAwB;QAC9B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,GAAG,CAAC;gBACd,CAAC,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACvC,CAAC,CAAC,6FAA6F,CAAC;YACpG,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,138 @@
1
+ import type { ClockPort } from "@lorenz/domain";
2
+ /**
3
+ * The worker driver contract: everything a third party needs to ship a new worker
4
+ * backend (their own cloud, their own VM fleet) as an extension, without
5
+ * touching the pool engine. A driver provisions, probes, destroys, and lists
6
+ * SSH-addressable workers behind one interface; the warm pool in
7
+ * `@lorenz/worker-pool` owns every lifecycle decision (leasing, reaping,
8
+ * spend, crash recovery) and only ever calls these four operations.
9
+ *
10
+ * This module is dependency-light by design: it pulls `ClockPort` from
11
+ * `@lorenz/domain` only, so extensions implementing a driver depend on the
12
+ * SDK layer alone.
13
+ */
14
+ /**
15
+ * The label every pool-owned worker carries so a `list()` reconcile can re-adopt
16
+ * or destroy ONLY workers the pool created (never an unlabeled foreign
17
+ * instance). The pool stamps this on every provision request, and every
18
+ * driver's `list()` MUST surface it on the descriptors it returns (the pool's
19
+ * ownership gate keys on it).
20
+ */
21
+ export declare const POOL_OWNED_LABEL = "symphony.pool=worker-pool";
22
+ /**
23
+ * Why a worker is being torn down. Drives driver `destroy` and the pool's
24
+ * ledger/spend bookkeeping; never runs workspace hooks (the runner owns
25
+ * workspace lifecycle).
26
+ */
27
+ export type TeardownReason = "ttl" | "idle" | "shrink" | "unhealthy" | "failed" | "drain" | "orphan";
28
+ /**
29
+ * Driver-reported health of a single worker. The probe is a cheap readiness
30
+ * check (e.g. `printf ready` over SSH), not a workspace/hook operation.
31
+ */
32
+ export type WorkerHealth = {
33
+ ok: true;
34
+ } | {
35
+ ok: false;
36
+ reason: string;
37
+ };
38
+ /**
39
+ * Static capabilities of a driver backend. `usesLedger` gates the write-ahead
40
+ * ledger (cloud-only); `sshAddressable` records that the yielded `workerHost`
41
+ * is an SSH destination; `ephemeral` records that workers are disposable
42
+ * machines.
43
+ */
44
+ export interface DriverCapabilities {
45
+ sshAddressable: boolean;
46
+ ephemeral: boolean;
47
+ usesLedger: boolean;
48
+ }
49
+ /**
50
+ * A provisioned worker. `workerHost` is the SSH-addressable string threaded
51
+ * end-to-end by the orchestrator/runner. `driverRef` is the backend's own
52
+ * handle (e.g. a machine id) used for `destroy`/`list` reconcile. `labels`
53
+ * tag pool-owned survivors so a `list()` reconcile can re-adopt them.
54
+ */
55
+ export interface WorkerDescriptor {
56
+ workerId: string;
57
+ workerHost: string;
58
+ driverRef: string;
59
+ createdAtMs: number;
60
+ labels: ReadonlyArray<string>;
61
+ metadata: Record<string, unknown>;
62
+ }
63
+ /**
64
+ * Request to provision one worker. `workerId` is the pool's idempotency key (a
65
+ * driver must return the same worker for the same `workerId`). `affinityKey` carries
66
+ * a prior `workerHost` so a retry can re-land on the same machine. `labels`
67
+ * are stamped on the worker for reconcile. `driverOptions` is the operator's selected
68
+ * `workers.<name>` profile, minus `driver`, passed through verbatim.
69
+ */
70
+ export interface ProvisionRequest {
71
+ workerId: string;
72
+ affinityKey?: string | null;
73
+ labels: ReadonlyArray<string>;
74
+ timeoutMs: number;
75
+ signal?: AbortSignal;
76
+ driverOptions?: Record<string, unknown>;
77
+ }
78
+ /**
79
+ * A swappable backend that provisions, probes, destroys, and lists workers
80
+ * behind one interface. Every implementation must be idempotent on `workerId`
81
+ * for `provision` and idempotent for `destroy` (a second destroy of a gone
82
+ * machine is tolerated, never an error).
83
+ */
84
+ export interface WorkerDriver {
85
+ readonly kind: string;
86
+ provision(req: ProvisionRequest): Promise<WorkerDescriptor>;
87
+ probe(worker: WorkerDescriptor, opts: {
88
+ timeoutMs: number;
89
+ signal?: AbortSignal;
90
+ }): Promise<WorkerHealth>;
91
+ destroy(worker: WorkerDescriptor, opts: {
92
+ timeoutMs: number;
93
+ reason: TeardownReason;
94
+ }): Promise<void>;
95
+ list(): Promise<WorkerDescriptor[]>;
96
+ readonly capabilities: DriverCapabilities;
97
+ }
98
+ /**
99
+ * Structural mirror of the engine's ssh runner so drivers can probe workers over
100
+ * SSH without depending on the engine ssh package. The pool injects the real
101
+ * implementation through {@link DriverDeps}; tests inject fakes.
102
+ */
103
+ export interface SshRunOptions {
104
+ timeoutMs?: number | undefined;
105
+ stderrToStdout?: boolean | undefined;
106
+ abortSignal?: AbortSignal | undefined;
107
+ }
108
+ export interface SshRunResult {
109
+ stdout: string;
110
+ stderr: string;
111
+ status: number;
112
+ }
113
+ export type SshRunner = (destination: string, command: string, options?: SshRunOptions) => Promise<SshRunResult>;
114
+ /**
115
+ * Dependencies a driver factory receives from the pool. Deliberately excludes
116
+ * any workspace or hook deps: drivers manage worker lifecycle only. Cloud
117
+ * transports the engine does not provide (e.g. an E2B client or Modal
118
+ * transport) are closed over by the extension's registration, never threaded
119
+ * through these deps.
120
+ */
121
+ export interface DriverDeps {
122
+ clock: ClockPort;
123
+ logEvent: (event: Record<string, unknown>) => void;
124
+ runSsh: SshRunner;
125
+ }
126
+ /**
127
+ * The unit a worker-driver extension registers: a named constructor for its
128
+ * {@link WorkerDriver}. `create` receives the selected `workers.<name>` profile
129
+ * options verbatim (never the full pool settings, so
130
+ * the SDK surface stays stable) and validates them itself, throwing an
131
+ * actionable error at pool construction when they are unusable - the same
132
+ * fail-loud startup point as an unregistered kind.
133
+ */
134
+ export interface WorkerDriverFactory {
135
+ readonly kind: string;
136
+ create(options: Readonly<Record<string, unknown>>, deps: DriverDeps): WorkerDriver;
137
+ }
138
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The worker driver contract: everything a third party needs to ship a new worker
3
+ * backend (their own cloud, their own VM fleet) as an extension, without
4
+ * touching the pool engine. A driver provisions, probes, destroys, and lists
5
+ * SSH-addressable workers behind one interface; the warm pool in
6
+ * `@lorenz/worker-pool` owns every lifecycle decision (leasing, reaping,
7
+ * spend, crash recovery) and only ever calls these four operations.
8
+ *
9
+ * This module is dependency-light by design: it pulls `ClockPort` from
10
+ * `@lorenz/domain` only, so extensions implementing a driver depend on the
11
+ * SDK layer alone.
12
+ */
13
+ /**
14
+ * The label every pool-owned worker carries so a `list()` reconcile can re-adopt
15
+ * or destroy ONLY workers the pool created (never an unlabeled foreign
16
+ * instance). The pool stamps this on every provision request, and every
17
+ * driver's `list()` MUST surface it on the descriptors it returns (the pool's
18
+ * ownership gate keys on it).
19
+ */
20
+ export const POOL_OWNED_LABEL = "symphony.pool=worker-pool";
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC"}
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "@lorenz/worker-sdk",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": "./dist/index.js",
10
+ "./conformance": "./dist/conformance.js"
11
+ },
12
+ "dependencies": {
13
+ "@lorenz/domain": "file:../domain"
14
+ }
15
+ }
@@ -0,0 +1,33 @@
1
+ import { type ParsedPromptTemplate, type WorkflowContentStamp, type WorkflowDefinition } from "@lorenz/domain";
2
+ import type { DefaultSettingsOptions } from "@lorenz/config";
3
+ import type { AgentExecutorRegistry } from "@lorenz/agent-sdk";
4
+ import type { TrackerRegistry } from "@lorenz/tracker-sdk";
5
+ type WorkflowLoadOptions = DefaultSettingsOptions & {
6
+ cwd?: string | undefined;
7
+ /**
8
+ * Tracker providers consulted while parsing the `tracker:` config section. The
9
+ * composition root passes its populated registry so provider option parsing, aliases,
10
+ * and env fallbacks apply; when omitted, the process-wide default registry is used.
11
+ */
12
+ trackers?: TrackerRegistry | undefined;
13
+ /**
14
+ * Executor providers consulted while parsing `agents.<kind>` config records, the same
15
+ * way `trackers` backs the `tracker:` section; when omitted, the process-wide default
16
+ * registry is used.
17
+ */
18
+ executors?: AgentExecutorRegistry | undefined;
19
+ };
20
+ export declare const defaultPromptTemplate = "You are working on an issue from the configured tracker.\n\nIdentifier: {{ issue.identifier }}\nTitle: {{ issue.title }}\n\nBody:\n{% if issue.description %}\n{{ issue.description }}\n{% else %}\nNo description provided.\n{% endif %}\n";
21
+ export declare function workflowFilePath(env?: NodeJS.ProcessEnv, cwd?: string): string;
22
+ export declare function loadWorkflow(workflowPath?: string, env?: NodeJS.ProcessEnv, defaults?: WorkflowLoadOptions): Promise<WorkflowDefinition>;
23
+ export declare function currentWorkflowStamp(workflowPath: string): Promise<WorkflowContentStamp>;
24
+ export declare function workflowFileChanged(workflow: WorkflowDefinition): Promise<boolean>;
25
+ export declare function workflowStampsEqual(left: WorkflowContentStamp | undefined, right: WorkflowContentStamp | undefined): boolean;
26
+ export declare function parseWorkflowContent(content: string): {
27
+ config: Record<string, unknown>;
28
+ body: string;
29
+ };
30
+ export declare function effectivePromptTemplate(promptTemplate: string): string;
31
+ export declare function parsePromptTemplate(promptTemplate: string): ParsedPromptTemplate;
32
+ export {};
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,KAAK,mBAAmB,GAAG,sBAAsB,GAAG;IAClD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC/C,CAAC;AAOF,eAAO,MAAM,qBAAqB,gPAWjC,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,SAAgB,GAClB,MAAM,CAIR;AAED,wBAAsB,YAAY,CAChC,YAAY,CAAC,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,mBAAwB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AAED,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAQ9F;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxF;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,oBAAoB,GAAG,SAAS,EACtC,KAAK,EAAE,oBAAoB,GAAG,SAAS,GACtC,OAAO,CAQT;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAyBA;AAED,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,oBAAoB,CAUhF"}