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,402 @@
1
+ import { errorMessage, isRecord } from "@lorenz/domain";
2
+ import { isBotMention } from "./mapping.js";
3
+ import { slackEndpoint, slackTrackerOptions } from "./options.js";
4
+ // Generous safety cap on conversations.history pages. The normal terminal condition is Slack
5
+ // returning no next_cursor (full history exhausted). This cap only exists to bound a pathological
6
+ // non-terminating cursor; reaching it while a cursor is STILL present is an anomaly we surface as a
7
+ // loud truncation warning rather than silently dropping older mentions. At limit=200 this covers
8
+ // ~100k messages per channel per poll.
9
+ const MAX_HISTORY_PAGES = 500;
10
+ const MAX_RETRIES = 4;
11
+ /**
12
+ * Upper bound on a single retry sleep, including Retry-After-driven ones. Slack's real
13
+ * Retry-After values are short; an unbounded header (or a far-future HTTP-date injected by an
14
+ * intermediary) must not park the poll loop or an agent tool call on an un-abortable timer.
15
+ */
16
+ const MAX_RETRY_DELAY_MS = 60_000;
17
+ /**
18
+ * Workspace base URLs (auth.test `url`) keyed by endpoint+token and shared across transport
19
+ * instances: the tool packs construct a fresh transport per call, and the workspace URL never
20
+ * changes over a token's lifetime.
21
+ */
22
+ const teamUrlByAuth = new Map();
23
+ const defaultSleep = async (delayMs) => new Promise((resolve) => setTimeout(resolve, delayMs));
24
+ export class SlackWebTransport {
25
+ fetchImpl;
26
+ sleep;
27
+ logger;
28
+ endpoint;
29
+ token;
30
+ botUserId;
31
+ maxHistoryPages;
32
+ warnedNoBotUserId = false;
33
+ constructor(settings, fetchImpl = fetch, sleep = defaultSleep, logger = { warn: (message) => console.warn(message) }, options = {}) {
34
+ this.fetchImpl = fetchImpl;
35
+ this.sleep = sleep;
36
+ this.logger = logger;
37
+ this.endpoint = slackEndpoint(settings);
38
+ this.token = settings.tracker.apiKey ?? "";
39
+ this.botUserId = slackTrackerOptions(settings).botUserId;
40
+ this.maxHistoryPages = options.maxHistoryPages ?? MAX_HISTORY_PAGES;
41
+ }
42
+ async listMentions(channels) {
43
+ return (await this.scanChannels(channels)).mentions;
44
+ }
45
+ async scanChannels(channels) {
46
+ // Each poll scans recent conversations.history from newest backward (no oldest/latest
47
+ // watermark). A per-channel incremental watermark is a DEFERRED enhancement: a naive
48
+ // time-watermark would regress re-discovery of undispatched active issues, because the runtime
49
+ // re-surfaces an active-but-undispatched Todo/In Progress issue via the candidate poll, and a
50
+ // watermark that advanced past it would stop re-surfacing it so it would never be picked up.
51
+ // Doing this safely needs a stateful open-issue registry, tracked separately. The conservative
52
+ // poll interval (WORKFLOW.slack.md polling.interval_ms) plus the 429/Retry-After backoff bound
53
+ // the rate-limit pressure in the meantime.
54
+ //
55
+ // Fail closed: with no bot user id configured, the any-mention fallback would treat every
56
+ // human-to-human <@U...> mention in a watched channel as an issue and expose that text to
57
+ // workers. The production transport must never do that, so match nothing and warn once.
58
+ if (!this.botUserId || this.botUserId.trim() === "") {
59
+ if (!this.warnedNoBotUserId) {
60
+ this.warnedNoBotUserId = true;
61
+ this.logger.warn("slack tracker: bot_user_id (SLACK_BOT_USER_ID) is not set; refusing to scan mentions " +
62
+ "(fail closed). Set tracker.bot_user_id so only the bot's own mentions create issues.");
63
+ }
64
+ return { mentions: [], threadedRoots: [] };
65
+ }
66
+ // Channels are scanned CONCURRENTLY: Slack rate-limits conversations.history per channel,
67
+ // and the per-channel isolation below makes the scans independent, so poll wall-time is the
68
+ // slowest single channel rather than the sum of every channel's pagination and backoff.
69
+ const results = await Promise.all(channels.map(async (channel) => {
70
+ // Isolate per-channel failures: a single unreadable channel (e.g. not_in_channel,
71
+ // missing_scope, or a persistent 429) must not blind candidate discovery across the
72
+ // other channels. Skip-and-log the bad channel and keep the rest.
73
+ //
74
+ // Crucially, a channel's results are buffered and only merged once that channel's scan
75
+ // COMPLETES (Slack exhausts its history, or we hit the page-cap truncation bound which is
76
+ // loudly surfaced in the scan). If pagination fails partway through, the partial buffer
77
+ // is DISCARDED: a partial scan must never masquerade as a complete one, because every
78
+ // mention beyond the failed page would otherwise vanish silently from candidate discovery
79
+ // and terminal cleanup.
80
+ try {
81
+ return { channel, scan: await this.scanChannel(channel) };
82
+ }
83
+ catch (error) {
84
+ // A page failed after the transport's own retries: treat the whole channel as failed
85
+ // and discard its partial buffer. One bad channel must not abort the others.
86
+ const message = errorMessage(error);
87
+ this.logger.warn(`slack tracker: channel ${channel} scan failed before completing; discarding its ` +
88
+ `partial results this poll: ${message}`);
89
+ return { channel, failure: message };
90
+ }
91
+ }));
92
+ const out = { mentions: [], threadedRoots: [] };
93
+ const failures = [];
94
+ for (const result of results) {
95
+ if ("scan" in result) {
96
+ out.mentions.push(...result.scan.mentions);
97
+ out.threadedRoots.push(...result.scan.threadedRoots);
98
+ }
99
+ else {
100
+ failures.push(`${result.channel}: ${result.failure}`);
101
+ }
102
+ }
103
+ // If there were channels to scan but NONE completed, surface the failure (preserving the
104
+ // reject contract the runtime relies on for poll_error) rather than silently reporting a
105
+ // healthy-looking partial/empty result.
106
+ if (failures.length > 0 && failures.length === channels.length) {
107
+ throw new Error(`slack conversations.history failed for all channels: ${failures.join("; ")}`);
108
+ }
109
+ return out;
110
+ }
111
+ /** Scan one channel's full root-message history; throws when pagination fails partway. */
112
+ async scanChannel(channel) {
113
+ const buffer = { mentions: [], threadedRoots: [] };
114
+ let cursor;
115
+ // Page until Slack stops returning a next_cursor: full exhaustion is the normal terminal
116
+ // condition. The page count only guards against a pathological non-terminating cursor.
117
+ for (let page = 0; page < this.maxHistoryPages; page += 1) {
118
+ const params = { channel, limit: "200" };
119
+ if (cursor)
120
+ params.cursor = cursor;
121
+ const body = await this.get("conversations.history", params);
122
+ const messages = Array.isArray(body.messages) ? body.messages : [];
123
+ for (const m of messages) {
124
+ if (typeof m.ts !== "string")
125
+ continue;
126
+ if (isBotMention(m.text ?? "", this.botUserId)) {
127
+ buffer.mentions.push(toMessage(channel, m, this.botUserId));
128
+ }
129
+ else if ((m.reply_count ?? 0) > 0) {
130
+ // Non-mention roots that carry a thread: candidates for reply-mention tracking.
131
+ buffer.threadedRoots.push(toMessage(channel, m, this.botUserId));
132
+ }
133
+ }
134
+ cursor = nextCursor(body);
135
+ if (!cursor)
136
+ break;
137
+ }
138
+ // Hitting the safety cap with a cursor STILL present means we stopped before exhausting the
139
+ // channel's history. Older bot mentions beyond this point are silently invisible to candidate
140
+ // discovery and terminal cleanup, so make the truncation loud rather than dropping them
141
+ // quietly. Truncation is an intentional, surfaced bound, so the scan still counts as
142
+ // complete-enough: we keep the buffer collected up to the cap.
143
+ if (cursor) {
144
+ this.logger.warn(`slack tracker: channel ${channel} history scan hit the ${this.maxHistoryPages}-page ` +
145
+ "safety cap with more pages remaining; truncating scan. Older bot mentions in this " +
146
+ "channel may be missed this poll.");
147
+ }
148
+ return buffer;
149
+ }
150
+ async teamUrl() {
151
+ const cacheKey = `${this.endpoint}${this.token}`;
152
+ const cached = teamUrlByAuth.get(cacheKey);
153
+ if (cached !== undefined)
154
+ return cached;
155
+ try {
156
+ const body = await this.get("auth.test", {});
157
+ const url = typeof body.url === "string" && body.url !== "" ? body.url.replace(/\/+$/, "") : null;
158
+ teamUrlByAuth.set(cacheKey, url);
159
+ return url;
160
+ }
161
+ catch {
162
+ // Permalinks are decoration: never let a transient auth.test failure break a read path,
163
+ // and don't cache the failure so a later call can succeed.
164
+ return null;
165
+ }
166
+ }
167
+ async getMessage(channel, ts) {
168
+ const body = await this.get("conversations.history", {
169
+ channel,
170
+ latest: ts,
171
+ inclusive: "true",
172
+ limit: "1",
173
+ });
174
+ const messages = Array.isArray(body.messages) ? body.messages : [];
175
+ const found = messages.find((m) => m.ts === ts);
176
+ return found ? toMessage(channel, found, this.botUserId) : null;
177
+ }
178
+ async getUser(userId) {
179
+ let body;
180
+ try {
181
+ body = await this.get("users.info", { user: userId });
182
+ }
183
+ catch {
184
+ // An unknown or unreadable user resolves to null rather than failing the caller's read.
185
+ return null;
186
+ }
187
+ const user = body.user;
188
+ if (!isRecord(user) || typeof user.id !== "string")
189
+ return null;
190
+ const profile = isRecord(user.profile) ? user.profile : {};
191
+ return {
192
+ id: user.id,
193
+ ...(typeof user.name === "string" ? { name: user.name } : {}),
194
+ ...(typeof user.real_name === "string" ? { realName: user.real_name } : {}),
195
+ ...(typeof profile.display_name === "string" && profile.display_name !== ""
196
+ ? { displayName: profile.display_name }
197
+ : {}),
198
+ ...(typeof user.is_bot === "boolean" ? { isBot: user.is_bot } : {}),
199
+ };
200
+ }
201
+ async listAround(channel, ts, window) {
202
+ // Two bounded history reads around the anchor: at-or-before it (latest+inclusive walks
203
+ // backwards from the anchor) and strictly after it (oldest exclusive). Both are pure reads.
204
+ const [beforeBody, afterBody] = await Promise.all([
205
+ window.before > 0
206
+ ? this.get("conversations.history", {
207
+ channel,
208
+ latest: ts,
209
+ inclusive: "true",
210
+ limit: String(window.before),
211
+ })
212
+ : Promise.resolve({}),
213
+ window.after > 0
214
+ ? this.get("conversations.history", {
215
+ channel,
216
+ oldest: ts,
217
+ inclusive: "false",
218
+ limit: String(window.after),
219
+ })
220
+ : Promise.resolve({}),
221
+ ]);
222
+ const collect = (body) => (Array.isArray(body.messages) ? body.messages : [])
223
+ .filter((m) => typeof m.ts === "string")
224
+ .map((m) => toMessage(channel, m, this.botUserId));
225
+ const merged = new Map();
226
+ for (const message of [...collect(beforeBody), ...collect(afterBody)]) {
227
+ merged.set(message.ts, message);
228
+ }
229
+ return [...merged.values()].sort((a, b) => Number.parseFloat(a.ts) - Number.parseFloat(b.ts));
230
+ }
231
+ async getThread(channel, ts) {
232
+ // conversations.replies returns the parent (root) message FIRST followed by its replies. Page
233
+ // through next_cursor like listMentions (a pure read, safe to retry on 429/5xx) and drop the
234
+ // parent (the message whose ts === the thread ts) so only the replies are returned.
235
+ const out = [];
236
+ let cursor;
237
+ for (let page = 0; page < this.maxHistoryPages; page += 1) {
238
+ const params = { channel, ts, limit: "200" };
239
+ if (cursor)
240
+ params.cursor = cursor;
241
+ const body = await this.get("conversations.replies", params);
242
+ const messages = Array.isArray(body.messages) ? body.messages : [];
243
+ for (const m of messages) {
244
+ if (typeof m.ts !== "string")
245
+ continue;
246
+ if (m.ts === ts)
247
+ continue;
248
+ out.push(toThreadReply(m));
249
+ }
250
+ cursor = nextCursor(body);
251
+ if (!cursor)
252
+ break;
253
+ }
254
+ // Same loud-truncation contract as the history scan: a silently partial thread would let a
255
+ // continuation agent recover incomplete progress notes with no signal anything was dropped.
256
+ if (cursor) {
257
+ this.logger.warn(`slack tracker: thread ${channel}:${ts} hit the ${this.maxHistoryPages}-page safety cap ` +
258
+ "with more replies remaining; returning a truncated thread.");
259
+ }
260
+ return out;
261
+ }
262
+ async addReaction(channel, ts, name) {
263
+ // reactions.add is idempotent: re-applying an already-present reaction is harmless (Slack
264
+ // returns already_reacted, which parse() treats as success), so retrying on an ambiguous 5xx
265
+ // cannot corrupt state.
266
+ await this.post("reactions.add", { channel, timestamp: ts, name }, { idempotent: true });
267
+ }
268
+ async removeReaction(channel, ts, name) {
269
+ // reactions.remove is idempotent: removing an already-absent reaction is harmless (Slack
270
+ // returns no_reaction, which parse() treats as success), so retrying on a 5xx is safe.
271
+ await this.post("reactions.remove", { channel, timestamp: ts, name }, { idempotent: true });
272
+ }
273
+ async postReply(channel, threadTs, body) {
274
+ // chat.postMessage is NOT idempotent: a retry posts a DUPLICATE reply. It may retry only on a
275
+ // 429 (rejected before processing), never on an ambiguous 5xx where the reply may have applied.
276
+ await this.post("chat.postMessage", { channel, thread_ts: threadTs, text: body }, {
277
+ idempotent: false,
278
+ });
279
+ }
280
+ async get(method, params) {
281
+ const url = `${this.endpoint}/${method}?${new URLSearchParams(params).toString()}`;
282
+ // GET (conversations.history) is a pure read: safe to retry on both 429 and 5xx.
283
+ const response = await this.fetchWithRetry(method, async () => this.fetchImpl(url, {
284
+ method: "GET",
285
+ headers: { authorization: `Bearer ${this.token}` },
286
+ signal: AbortSignal.timeout(30_000),
287
+ }), { idempotent: true });
288
+ return this.parse(method, response);
289
+ }
290
+ async post(method, params, options) {
291
+ const response = await this.fetchWithRetry(method, async () => this.fetchImpl(`${this.endpoint}/${method}`, {
292
+ method: "POST",
293
+ headers: {
294
+ authorization: `Bearer ${this.token}`,
295
+ "content-type": "application/json; charset=utf-8",
296
+ },
297
+ body: JSON.stringify(params),
298
+ signal: AbortSignal.timeout(30_000),
299
+ }), options);
300
+ return this.parse(method, response);
301
+ }
302
+ async fetchWithRetry(method, send, options) {
303
+ for (let retryCount = 0;; retryCount += 1) {
304
+ let response;
305
+ try {
306
+ response = await send();
307
+ }
308
+ catch (error) {
309
+ throw new Error(`slack ${method} request failed: ${errorMessage(error)}`, {
310
+ cause: error,
311
+ });
312
+ }
313
+ // A non-idempotent write (chat.postMessage) may retry only on a 429, which Slack rejects
314
+ // BEFORE processing the request - so no reply was posted and a retry cannot duplicate it.
315
+ // An ambiguous 5xx (the reply may have already been delivered) must NOT be retried.
316
+ const canRetry = options.idempotent ? isRetryable(response.status) : response.status === 429;
317
+ if (!canRetry || retryCount >= MAX_RETRIES) {
318
+ if (isRetryable(response.status)) {
319
+ throw new Error(`slack ${method} failed: status ${response.status}`);
320
+ }
321
+ return response;
322
+ }
323
+ await this.sleep(retryDelayMs(response.headers, retryCount));
324
+ }
325
+ }
326
+ async parse(method, response) {
327
+ let body;
328
+ try {
329
+ body = (await response.json());
330
+ }
331
+ catch {
332
+ throw new Error(`slack ${method} returned a non-JSON response (HTTP ${response.status})`);
333
+ }
334
+ if (body.ok !== true) {
335
+ const reason = typeof body.error === "string" ? body.error : String(response.status);
336
+ // Benign Slack errors that mean the write's GOAL is already satisfied are treated as success.
337
+ // This matters for idempotent retries: when an ambiguous 5xx actually applied the write, the
338
+ // retry sees these "already done" errors and must resolve cleanly rather than report a failure
339
+ // while the target state is in fact present (which would let the next poll observe a phantom
340
+ // advanced/terminal status). reactions.add: already_reacted means the reaction is present
341
+ // (the goal). reactions.remove: no_reaction means the reaction is already absent (the goal).
342
+ if (method === "reactions.add" && reason === "already_reacted")
343
+ return body;
344
+ if (method === "reactions.remove" && reason === "no_reaction")
345
+ return body;
346
+ throw new Error(`slack ${method} failed: ${reason}`);
347
+ }
348
+ return body;
349
+ }
350
+ }
351
+ function isRetryable(status) {
352
+ return status === 429 || status >= 500;
353
+ }
354
+ function retryDelayMs(headers, retryCount) {
355
+ const retryAfter = headers.get("retry-after");
356
+ if (retryAfter !== null) {
357
+ const seconds = Number(retryAfter.trim());
358
+ if (Number.isInteger(seconds) && seconds >= 0) {
359
+ return Math.min(seconds * 1000, MAX_RETRY_DELAY_MS);
360
+ }
361
+ const dateMs = Date.parse(retryAfter.trim());
362
+ if (!Number.isNaN(dateMs)) {
363
+ return Math.min(Math.max(0, dateMs - Date.now()), MAX_RETRY_DELAY_MS);
364
+ }
365
+ }
366
+ return Math.min(1_000 * 2 ** retryCount, 30_000);
367
+ }
368
+ function nextCursor(body) {
369
+ const meta = body.response_metadata;
370
+ if (typeof meta !== "object" || meta === null)
371
+ return undefined;
372
+ const cursor = meta.next_cursor;
373
+ if (typeof cursor !== "string" || cursor === "")
374
+ return undefined;
375
+ return cursor;
376
+ }
377
+ function toMessage(channel, m, botUserId) {
378
+ const botReacted = botUserId !== undefined &&
379
+ (m.reactions ?? []).some((r) => Array.isArray(r.users) && r.users.includes(botUserId));
380
+ return {
381
+ channel,
382
+ ts: m.ts ?? "",
383
+ text: m.text ?? "",
384
+ ...(typeof m.user === "string" ? { user: m.user } : {}),
385
+ reactions: (m.reactions ?? [])
386
+ .map((r) => r.name)
387
+ .filter((n) => typeof n === "string"),
388
+ ...(typeof m.reply_count === "number" && m.reply_count > 0
389
+ ? { replyCount: m.reply_count }
390
+ : {}),
391
+ ...(typeof m.latest_reply === "string" ? { latestReply: m.latest_reply } : {}),
392
+ ...(botReacted ? { botReacted: true } : {}),
393
+ };
394
+ }
395
+ function toThreadReply(m) {
396
+ // exactOptionalPropertyTypes: only set `user` when present rather than assigning undefined.
397
+ const reply = { ts: m.ts ?? "", text: m.text ?? "" };
398
+ if (typeof m.user === "string")
399
+ reply.user = m.user;
400
+ return reply;
401
+ }
402
+ //# sourceMappingURL=webTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webTransport.js","sourceRoot":"","sources":["../src/webTransport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@lorenz/slack-tracker",
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
+ },
11
+ "dependencies": {
12
+ "@lorenz/domain": "file:../../packages/domain",
13
+ "@lorenz/issue": "file:../../packages/issue",
14
+ "@lorenz/tool-sdk": "file:../../packages/tool-sdk",
15
+ "@lorenz/tracker-sdk": "file:../../packages/tracker-sdk"
16
+ }
17
+ }
package/package.json ADDED
@@ -0,0 +1,89 @@
1
+ {
2
+ "name": "lorenz",
3
+ "version": "0.1.0",
4
+ "description": "Lorenz is a control plane for dispatching and structuring order across dynamic agent systems.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/ryanlyn/symphony.git"
9
+ },
10
+ "homepage": "https://github.com/ryanlyn/symphony#readme",
11
+ "type": "module",
12
+ "bin": {
13
+ "lorenz": "./bin/lorenz"
14
+ },
15
+ "scripts": {
16
+ "start": "node ./node_modules/@lorenz/cli/dist/bin/cli.js"
17
+ },
18
+ "dependencies": {
19
+ "@agentclientprotocol/claude-agent-acp": "file:vendor/claude-agent-acp",
20
+ "@agentclientprotocol/codex-acp": "file:vendor/codex-acp",
21
+ "@agentclientprotocol/sdk": "^0.21.0",
22
+ "@anthropic-ai/claude-agent-sdk": "file:runtime-deps/anthropic-claude-agent-sdk",
23
+ "@hono/node-server": "^1.19.14",
24
+ "@hono/node-ws": "^1.1.1",
25
+ "@linear/sdk": "^84.0.0",
26
+ "@lorenz/acp": "file:packages/acp",
27
+ "@lorenz/agent-runner": "file:packages/agent-runner",
28
+ "@lorenz/agent-sdk": "file:packages/agent-sdk",
29
+ "@lorenz/cli": "file:apps/cli",
30
+ "@lorenz/cli-kit": "file:packages/cli-kit",
31
+ "@lorenz/config": "file:packages/config",
32
+ "@lorenz/dispatch": "file:packages/dispatch",
33
+ "@lorenz/dispatch-coordinator": "file:packages/dispatch-coordinator",
34
+ "@lorenz/docker-worker": "file:extensions/docker-worker",
35
+ "@lorenz/domain": "file:packages/domain",
36
+ "@lorenz/humanize": "file:packages/humanize",
37
+ "@lorenz/issue": "file:packages/issue",
38
+ "@lorenz/jira-tracker": "file:extensions/jira-tracker",
39
+ "@lorenz/linear-tracker": "file:extensions/linear-tracker",
40
+ "@lorenz/local-tracker": "file:extensions/local-tracker",
41
+ "@lorenz/log-file": "file:packages/log-file",
42
+ "@lorenz/mcp": "file:packages/mcp",
43
+ "@lorenz/memory-tracker": "file:extensions/memory-tracker",
44
+ "@lorenz/orchestrator": "file:packages/orchestrator",
45
+ "@lorenz/policies": "file:packages/policies",
46
+ "@lorenz/presenter": "file:packages/presenter",
47
+ "@lorenz/projections": "file:packages/projections",
48
+ "@lorenz/prompt": "file:packages/prompt",
49
+ "@lorenz/retry-scheduler": "file:packages/retry-scheduler",
50
+ "@lorenz/runtime": "file:packages/runtime",
51
+ "@lorenz/runtime-events": "file:packages/runtime-events",
52
+ "@lorenz/server": "file:packages/server",
53
+ "@lorenz/slack-tracker": "file:extensions/slack-tracker",
54
+ "@lorenz/ssh": "file:packages/ssh",
55
+ "@lorenz/static-worker": "file:packages/static-worker",
56
+ "@lorenz/tool-sdk": "file:packages/tool-sdk",
57
+ "@lorenz/traceviz-emitter": "file:packages/traceviz-emitter",
58
+ "@lorenz/traceviz-server": "file:packages/traceviz-server",
59
+ "@lorenz/tracker-sdk": "file:packages/tracker-sdk",
60
+ "@lorenz/tui": "file:packages/tui",
61
+ "@lorenz/worker-host-pool": "file:packages/worker-host-pool",
62
+ "@lorenz/worker-pool": "file:packages/worker-pool",
63
+ "@lorenz/worker-sdk": "file:packages/worker-sdk",
64
+ "@lorenz/workflow": "file:packages/workflow",
65
+ "@lorenz/workspace": "file:packages/workspace",
66
+ "@openai/codex": "file:runtime-deps/openai-codex",
67
+ "better-sqlite3": "^12.10.0",
68
+ "commander": "^14.0.3",
69
+ "diff": "^8.0.3",
70
+ "execa": "^9.6.1",
71
+ "hono": "^4.12.18",
72
+ "ink": "^7.0.1",
73
+ "liquidjs": "^10.21.1",
74
+ "open": "^11.0.0",
75
+ "pino": "^9.14.0",
76
+ "pino-roll": "^3.1.0",
77
+ "react": "^19.2.5",
78
+ "ts-pattern": "^5.9.0",
79
+ "vscode-jsonrpc": "^8.2.1",
80
+ "yaml": "^2.8.0",
81
+ "zod": "^4.4.3"
82
+ },
83
+ "engines": {
84
+ "node": ">=24"
85
+ },
86
+ "publishConfig": {
87
+ "access": "public"
88
+ }
89
+ }
@@ -0,0 +1,4 @@
1
+ import type { ChildProcessWithoutNullStreams } from "node:child_process";
2
+ export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, message: string): Promise<T>;
3
+ export declare function stopChild(child: ChildProcessWithoutNullStreams): Promise<void>;
4
+ //# sourceMappingURL=childProcess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"childProcess.d.ts","sourceRoot":"","sources":["../src/childProcess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEzE,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAepF"}
@@ -0,0 +1,33 @@
1
+ export async function withTimeout(promise, timeoutMs, message) {
2
+ let timer = null;
3
+ try {
4
+ return await Promise.race([
5
+ promise,
6
+ new Promise((_resolve, reject) => {
7
+ timer = setTimeout(() => reject(new Error(message)), timeoutMs);
8
+ }),
9
+ ]);
10
+ }
11
+ finally {
12
+ if (timer)
13
+ clearTimeout(timer);
14
+ }
15
+ }
16
+ export async function stopChild(child) {
17
+ if (child.exitCode !== null || child.signalCode !== null)
18
+ return;
19
+ await new Promise((resolve) => {
20
+ let closed = false;
21
+ const timer = setTimeout(() => {
22
+ if (!closed)
23
+ child.kill("SIGKILL");
24
+ }, 1_000);
25
+ child.once("close", () => {
26
+ closed = true;
27
+ clearTimeout(timer);
28
+ resolve();
29
+ });
30
+ child.kill("SIGTERM");
31
+ });
32
+ }
33
+ //# sourceMappingURL=childProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"childProcess.js","sourceRoot":"","sources":["../src/childProcess.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAmB,EACnB,SAAiB,EACjB,OAAe;IAEf,IAAI,KAAK,GAA0B,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACtC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAClE,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAqC;IACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO;IAEjE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC;YACd,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}