@jamesaphoenix/tx-core 0.4.2 → 0.4.4

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 (336) hide show
  1. package/README.md +480 -0
  2. package/dist/db.d.ts +28 -14
  3. package/dist/db.d.ts.map +1 -1
  4. package/dist/db.js +108 -14
  5. package/dist/db.js.map +1 -1
  6. package/dist/errors.d.ts +178 -34
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +119 -26
  9. package/dist/errors.js.map +1 -1
  10. package/dist/id.d.ts +10 -0
  11. package/dist/id.d.ts.map +1 -1
  12. package/dist/id.js +17 -1
  13. package/dist/id.js.map +1 -1
  14. package/dist/index.d.ts +15 -7
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +62 -8
  17. package/dist/index.js.map +1 -1
  18. package/dist/layer.d.ts +23 -14
  19. package/dist/layer.d.ts.map +1 -1
  20. package/dist/layer.js +75 -76
  21. package/dist/layer.js.map +1 -1
  22. package/dist/mappers/attempt.d.ts +3 -1
  23. package/dist/mappers/attempt.d.ts.map +1 -1
  24. package/dist/mappers/attempt.js +23 -9
  25. package/dist/mappers/attempt.js.map +1 -1
  26. package/dist/mappers/claim.d.ts +1 -1
  27. package/dist/mappers/claim.d.ts.map +1 -1
  28. package/dist/mappers/claim.js +11 -4
  29. package/dist/mappers/claim.js.map +1 -1
  30. package/dist/mappers/deduplication.d.ts +13 -1
  31. package/dist/mappers/deduplication.d.ts.map +1 -1
  32. package/dist/mappers/deduplication.js +22 -3
  33. package/dist/mappers/deduplication.js.map +1 -1
  34. package/dist/mappers/doc.d.ts +24 -0
  35. package/dist/mappers/doc.d.ts.map +1 -0
  36. package/dist/mappers/doc.js +161 -0
  37. package/dist/mappers/doc.js.map +1 -0
  38. package/dist/mappers/file-learning.d.ts.map +1 -1
  39. package/dist/mappers/file-learning.js +2 -1
  40. package/dist/mappers/file-learning.js.map +1 -1
  41. package/dist/mappers/index.d.ts +6 -7
  42. package/dist/mappers/index.d.ts.map +1 -1
  43. package/dist/mappers/index.js +10 -12
  44. package/dist/mappers/index.js.map +1 -1
  45. package/dist/mappers/learning.d.ts +9 -1
  46. package/dist/mappers/learning.d.ts.map +1 -1
  47. package/dist/mappers/learning.js +94 -14
  48. package/dist/mappers/learning.js.map +1 -1
  49. package/dist/mappers/orchestrator-state.d.ts +1 -1
  50. package/dist/mappers/orchestrator-state.d.ts.map +1 -1
  51. package/dist/mappers/orchestrator-state.js +31 -5
  52. package/dist/mappers/orchestrator-state.js.map +1 -1
  53. package/dist/mappers/parse-date.d.ts +11 -0
  54. package/dist/mappers/parse-date.d.ts.map +1 -0
  55. package/dist/mappers/parse-date.js +18 -0
  56. package/dist/mappers/parse-date.js.map +1 -0
  57. package/dist/mappers/run.d.ts +14 -4
  58. package/dist/mappers/run.d.ts.map +1 -1
  59. package/dist/mappers/run.js +49 -18
  60. package/dist/mappers/run.js.map +1 -1
  61. package/dist/mappers/task.d.ts +5 -1
  62. package/dist/mappers/task.d.ts.map +1 -1
  63. package/dist/mappers/task.js +66 -16
  64. package/dist/mappers/task.js.map +1 -1
  65. package/dist/mappers/tracked-project.d.ts +3 -1
  66. package/dist/mappers/tracked-project.d.ts.map +1 -1
  67. package/dist/mappers/tracked-project.js +23 -9
  68. package/dist/mappers/tracked-project.js.map +1 -1
  69. package/dist/mappers/worker.d.ts +1 -1
  70. package/dist/mappers/worker.d.ts.map +1 -1
  71. package/dist/mappers/worker.js +44 -6
  72. package/dist/mappers/worker.js.map +1 -1
  73. package/dist/repo/attempt-repo.d.ts +2 -2
  74. package/dist/repo/attempt-repo.d.ts.map +1 -1
  75. package/dist/repo/attempt-repo.js +16 -6
  76. package/dist/repo/attempt-repo.js.map +1 -1
  77. package/dist/repo/claim-repo.d.ts +46 -2
  78. package/dist/repo/claim-repo.d.ts.map +1 -1
  79. package/dist/repo/claim-repo.js +113 -6
  80. package/dist/repo/claim-repo.js.map +1 -1
  81. package/dist/repo/deduplication-repo.d.ts +9 -1
  82. package/dist/repo/deduplication-repo.d.ts.map +1 -1
  83. package/dist/repo/deduplication-repo.js +46 -9
  84. package/dist/repo/deduplication-repo.js.map +1 -1
  85. package/dist/repo/dep-repo.d.ts +27 -3
  86. package/dist/repo/dep-repo.d.ts.map +1 -1
  87. package/dist/repo/dep-repo.js +166 -39
  88. package/dist/repo/dep-repo.js.map +1 -1
  89. package/dist/repo/doc-repo.d.ts +59 -0
  90. package/dist/repo/doc-repo.d.ts.map +1 -0
  91. package/dist/repo/doc-repo.js +276 -0
  92. package/dist/repo/doc-repo.js.map +1 -0
  93. package/dist/repo/file-learning-repo.d.ts +3 -3
  94. package/dist/repo/file-learning-repo.d.ts.map +1 -1
  95. package/dist/repo/file-learning-repo.js +19 -8
  96. package/dist/repo/file-learning-repo.js.map +1 -1
  97. package/dist/repo/index.d.ts +4 -6
  98. package/dist/repo/index.d.ts.map +1 -1
  99. package/dist/repo/index.js +3 -5
  100. package/dist/repo/index.js.map +1 -1
  101. package/dist/repo/learning-repo.d.ts +10 -3
  102. package/dist/repo/learning-repo.d.ts.map +1 -1
  103. package/dist/repo/learning-repo.js +68 -11
  104. package/dist/repo/learning-repo.js.map +1 -1
  105. package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
  106. package/dist/repo/orchestrator-state-repo.js +8 -1
  107. package/dist/repo/orchestrator-state-repo.js.map +1 -1
  108. package/dist/repo/run-repo.d.ts +3 -3
  109. package/dist/repo/run-repo.d.ts.map +1 -1
  110. package/dist/repo/run-repo.js +40 -19
  111. package/dist/repo/run-repo.js.map +1 -1
  112. package/dist/repo/task-repo.d.ts +14 -3
  113. package/dist/repo/task-repo.d.ts.map +1 -1
  114. package/dist/repo/task-repo.js +194 -20
  115. package/dist/repo/task-repo.js.map +1 -1
  116. package/dist/repo/tracked-project-repo.d.ts.map +1 -1
  117. package/dist/repo/tracked-project-repo.js +15 -1
  118. package/dist/repo/tracked-project-repo.js.map +1 -1
  119. package/dist/repo/worker-repo.d.ts +3 -2
  120. package/dist/repo/worker-repo.d.ts.map +1 -1
  121. package/dist/repo/worker-repo.js +54 -8
  122. package/dist/repo/worker-repo.js.map +1 -1
  123. package/dist/schemas/sync.js +2 -2
  124. package/dist/schemas/sync.js.map +1 -1
  125. package/dist/schemas/worker.d.ts +1 -0
  126. package/dist/schemas/worker.d.ts.map +1 -1
  127. package/dist/schemas/worker.js +1 -0
  128. package/dist/schemas/worker.js.map +1 -1
  129. package/dist/services/agent-service.d.ts +57 -0
  130. package/dist/services/agent-service.d.ts.map +1 -0
  131. package/dist/services/agent-service.js +81 -0
  132. package/dist/services/agent-service.js.map +1 -0
  133. package/dist/services/attempt-service.d.ts.map +1 -1
  134. package/dist/services/attempt-service.js +1 -4
  135. package/dist/services/attempt-service.js.map +1 -1
  136. package/dist/services/auto-sync-service.d.ts.map +1 -1
  137. package/dist/services/auto-sync-service.js +18 -10
  138. package/dist/services/auto-sync-service.js.map +1 -1
  139. package/dist/services/claim-service.d.ts +8 -2
  140. package/dist/services/claim-service.d.ts.map +1 -1
  141. package/dist/services/claim-service.js +37 -23
  142. package/dist/services/claim-service.js.map +1 -1
  143. package/dist/services/cycle-scan-service.d.ts +32 -0
  144. package/dist/services/cycle-scan-service.d.ts.map +1 -0
  145. package/dist/services/cycle-scan-service.js +546 -0
  146. package/dist/services/cycle-scan-service.js.map +1 -0
  147. package/dist/services/daemon-service.d.ts +40 -2
  148. package/dist/services/daemon-service.d.ts.map +1 -1
  149. package/dist/services/daemon-service.js +199 -52
  150. package/dist/services/daemon-service.js.map +1 -1
  151. package/dist/services/deduplication-service.d.ts +8 -4
  152. package/dist/services/deduplication-service.d.ts.map +1 -1
  153. package/dist/services/deduplication-service.js +79 -25
  154. package/dist/services/deduplication-service.js.map +1 -1
  155. package/dist/services/dep-service.d.ts +2 -2
  156. package/dist/services/dep-service.d.ts.map +1 -1
  157. package/dist/services/dep-service.js +9 -5
  158. package/dist/services/dep-service.js.map +1 -1
  159. package/dist/services/diversifier-service.d.ts +2 -1
  160. package/dist/services/diversifier-service.d.ts.map +1 -1
  161. package/dist/services/diversifier-service.js +37 -43
  162. package/dist/services/diversifier-service.js.map +1 -1
  163. package/dist/services/doc-service.d.ts +49 -0
  164. package/dist/services/doc-service.d.ts.map +1 -0
  165. package/dist/services/doc-service.js +605 -0
  166. package/dist/services/doc-service.js.map +1 -0
  167. package/dist/services/embedding-service.d.ts +66 -2
  168. package/dist/services/embedding-service.d.ts.map +1 -1
  169. package/dist/services/embedding-service.js +138 -24
  170. package/dist/services/embedding-service.js.map +1 -1
  171. package/dist/services/file-learning-service.d.ts.map +1 -1
  172. package/dist/services/file-learning-service.js +8 -7
  173. package/dist/services/file-learning-service.js.map +1 -1
  174. package/dist/services/file-watcher-service.d.ts.map +1 -1
  175. package/dist/services/file-watcher-service.js +58 -11
  176. package/dist/services/file-watcher-service.js.map +1 -1
  177. package/dist/services/hierarchy-service.d.ts +1 -1
  178. package/dist/services/hierarchy-service.d.ts.map +1 -1
  179. package/dist/services/hierarchy-service.js +50 -32
  180. package/dist/services/hierarchy-service.js.map +1 -1
  181. package/dist/services/index.d.ts +13 -15
  182. package/dist/services/index.d.ts.map +1 -1
  183. package/dist/services/index.js +13 -15
  184. package/dist/services/index.js.map +1 -1
  185. package/dist/services/learning-service.d.ts +3 -3
  186. package/dist/services/learning-service.d.ts.map +1 -1
  187. package/dist/services/learning-service.js +75 -42
  188. package/dist/services/learning-service.js.map +1 -1
  189. package/dist/services/llm-service.d.ts +62 -0
  190. package/dist/services/llm-service.d.ts.map +1 -0
  191. package/dist/services/llm-service.js +172 -0
  192. package/dist/services/llm-service.js.map +1 -0
  193. package/dist/services/migration-service.d.ts +1 -1
  194. package/dist/services/migration-service.d.ts.map +1 -1
  195. package/dist/services/migration-service.js +18 -7
  196. package/dist/services/migration-service.js.map +1 -1
  197. package/dist/services/orchestrator-service.d.ts +4 -3
  198. package/dist/services/orchestrator-service.d.ts.map +1 -1
  199. package/dist/services/orchestrator-service.js +66 -27
  200. package/dist/services/orchestrator-service.js.map +1 -1
  201. package/dist/services/query-expansion-service.d.ts +30 -9
  202. package/dist/services/query-expansion-service.d.ts.map +1 -1
  203. package/dist/services/query-expansion-service.js +54 -63
  204. package/dist/services/query-expansion-service.js.map +1 -1
  205. package/dist/services/ready-service.d.ts +21 -1
  206. package/dist/services/ready-service.d.ts.map +1 -1
  207. package/dist/services/ready-service.js +44 -21
  208. package/dist/services/ready-service.js.map +1 -1
  209. package/dist/services/retriever-service.d.ts +10 -10
  210. package/dist/services/retriever-service.d.ts.map +1 -1
  211. package/dist/services/retriever-service.js +53 -161
  212. package/dist/services/retriever-service.js.map +1 -1
  213. package/dist/services/sync-service.d.ts +17 -4
  214. package/dist/services/sync-service.d.ts.map +1 -1
  215. package/dist/services/sync-service.js +381 -116
  216. package/dist/services/sync-service.js.map +1 -1
  217. package/dist/services/task-service.d.ts +6 -4
  218. package/dist/services/task-service.d.ts.map +1 -1
  219. package/dist/services/task-service.js +165 -35
  220. package/dist/services/task-service.js.map +1 -1
  221. package/dist/services/tracing-service.d.ts +55 -0
  222. package/dist/services/tracing-service.d.ts.map +1 -0
  223. package/dist/services/tracing-service.js +99 -0
  224. package/dist/services/tracing-service.js.map +1 -0
  225. package/dist/services/transcript-adapter.d.ts +99 -0
  226. package/dist/services/transcript-adapter.d.ts.map +1 -0
  227. package/dist/services/transcript-adapter.js +283 -0
  228. package/dist/services/transcript-adapter.js.map +1 -0
  229. package/dist/services/validation-service.d.ts +85 -0
  230. package/dist/services/validation-service.d.ts.map +1 -0
  231. package/dist/services/validation-service.js +289 -0
  232. package/dist/services/validation-service.js.map +1 -0
  233. package/dist/services/worker-process.d.ts +23 -4
  234. package/dist/services/worker-process.d.ts.map +1 -1
  235. package/dist/services/worker-process.js +168 -72
  236. package/dist/services/worker-process.js.map +1 -1
  237. package/dist/services/worker-service.d.ts.map +1 -1
  238. package/dist/services/worker-service.js +7 -12
  239. package/dist/services/worker-service.js.map +1 -1
  240. package/dist/sync/claude-task-writer.d.ts +49 -0
  241. package/dist/sync/claude-task-writer.d.ts.map +1 -0
  242. package/dist/sync/claude-task-writer.js +135 -0
  243. package/dist/sync/claude-task-writer.js.map +1 -0
  244. package/dist/utils/doc-hash.d.ts +10 -0
  245. package/dist/utils/doc-hash.d.ts.map +1 -0
  246. package/dist/utils/doc-hash.js +14 -0
  247. package/dist/utils/doc-hash.js.map +1 -0
  248. package/dist/utils/doc-renderer.d.ts +44 -0
  249. package/dist/utils/doc-renderer.d.ts.map +1 -0
  250. package/dist/utils/doc-renderer.js +202 -0
  251. package/dist/utils/doc-renderer.js.map +1 -0
  252. package/dist/utils/math.d.ts +5 -1
  253. package/dist/utils/math.d.ts.map +1 -1
  254. package/dist/utils/math.js +12 -4
  255. package/dist/utils/math.js.map +1 -1
  256. package/dist/utils/sql.d.ts +9 -0
  257. package/dist/utils/sql.d.ts.map +1 -0
  258. package/dist/utils/sql.js +9 -0
  259. package/dist/utils/sql.js.map +1 -0
  260. package/dist/utils/toml-config.d.ts +22 -0
  261. package/dist/utils/toml-config.d.ts.map +1 -0
  262. package/dist/utils/toml-config.js +75 -0
  263. package/dist/utils/toml-config.js.map +1 -0
  264. package/dist/worker/hooks.d.ts +102 -0
  265. package/dist/worker/hooks.d.ts.map +1 -0
  266. package/dist/worker/hooks.js +11 -0
  267. package/dist/worker/hooks.js.map +1 -0
  268. package/dist/worker/index.d.ts +9 -0
  269. package/dist/worker/index.d.ts.map +1 -0
  270. package/dist/worker/index.js +8 -0
  271. package/dist/worker/index.js.map +1 -0
  272. package/dist/worker/run-worker.d.ts +33 -0
  273. package/dist/worker/run-worker.d.ts.map +1 -0
  274. package/dist/worker/run-worker.js +265 -0
  275. package/dist/worker/run-worker.js.map +1 -0
  276. package/package.json +14 -12
  277. package/dist/mappers/anchor.d.ts +0 -14
  278. package/dist/mappers/anchor.d.ts.map +0 -1
  279. package/dist/mappers/anchor.js +0 -38
  280. package/dist/mappers/anchor.js.map +0 -1
  281. package/dist/mappers/candidate.d.ts +0 -23
  282. package/dist/mappers/candidate.d.ts.map +0 -1
  283. package/dist/mappers/candidate.js +0 -53
  284. package/dist/mappers/candidate.js.map +0 -1
  285. package/dist/mappers/edge.d.ts +0 -10
  286. package/dist/mappers/edge.d.ts.map +0 -1
  287. package/dist/mappers/edge.js +0 -19
  288. package/dist/mappers/edge.js.map +0 -1
  289. package/dist/repo/anchor-repo.d.ts +0 -52
  290. package/dist/repo/anchor-repo.d.ts.map +0 -1
  291. package/dist/repo/anchor-repo.js +0 -204
  292. package/dist/repo/anchor-repo.js.map +0 -1
  293. package/dist/repo/candidate-repo.d.ts +0 -16
  294. package/dist/repo/candidate-repo.d.ts.map +0 -1
  295. package/dist/repo/candidate-repo.js +0 -143
  296. package/dist/repo/candidate-repo.js.map +0 -1
  297. package/dist/repo/edge-repo.d.ts +0 -26
  298. package/dist/repo/edge-repo.d.ts.map +0 -1
  299. package/dist/repo/edge-repo.js +0 -227
  300. package/dist/repo/edge-repo.js.map +0 -1
  301. package/dist/services/anchor-service.d.ts +0 -147
  302. package/dist/services/anchor-service.d.ts.map +0 -1
  303. package/dist/services/anchor-service.js +0 -540
  304. package/dist/services/anchor-service.js.map +0 -1
  305. package/dist/services/anchor-verification.d.ts +0 -94
  306. package/dist/services/anchor-verification.d.ts.map +0 -1
  307. package/dist/services/anchor-verification.js +0 -617
  308. package/dist/services/anchor-verification.js.map +0 -1
  309. package/dist/services/ast-grep-service.d.ts +0 -58
  310. package/dist/services/ast-grep-service.d.ts.map +0 -1
  311. package/dist/services/ast-grep-service.js +0 -356
  312. package/dist/services/ast-grep-service.js.map +0 -1
  313. package/dist/services/candidate-extractor-service.d.ts +0 -56
  314. package/dist/services/candidate-extractor-service.d.ts.map +0 -1
  315. package/dist/services/candidate-extractor-service.js +0 -365
  316. package/dist/services/candidate-extractor-service.js.map +0 -1
  317. package/dist/services/edge-service.d.ts +0 -78
  318. package/dist/services/edge-service.d.ts.map +0 -1
  319. package/dist/services/edge-service.js +0 -158
  320. package/dist/services/edge-service.js.map +0 -1
  321. package/dist/services/feedback-tracker.d.ts +0 -64
  322. package/dist/services/feedback-tracker.d.ts.map +0 -1
  323. package/dist/services/feedback-tracker.js +0 -110
  324. package/dist/services/feedback-tracker.js.map +0 -1
  325. package/dist/services/graph-expansion.d.ts +0 -155
  326. package/dist/services/graph-expansion.d.ts.map +0 -1
  327. package/dist/services/graph-expansion.js +0 -466
  328. package/dist/services/graph-expansion.js.map +0 -1
  329. package/dist/services/promotion-service.d.ts +0 -67
  330. package/dist/services/promotion-service.d.ts.map +0 -1
  331. package/dist/services/promotion-service.js +0 -151
  332. package/dist/services/promotion-service.js.map +0 -1
  333. package/dist/services/swarm-verification.d.ts +0 -104
  334. package/dist/services/swarm-verification.d.ts.map +0 -1
  335. package/dist/services/swarm-verification.js +0 -400
  336. package/dist/services/swarm-verification.js.map +0 -1
@@ -2,16 +2,54 @@
2
2
  * WorkerProcess - PRD-018
3
3
  *
4
4
  * Implements the worker process with heartbeat fiber, lease renewal,
5
- * Claude subprocess management, and graceful shutdown handling.
5
+ * agent subprocess management, and graceful shutdown handling.
6
6
  * Uses Effect-TS patterns per DD-002.
7
7
  */
8
- import { Effect, Duration, Fiber, Ref } from "effect";
8
+ import { Effect, Duration, Fiber, Ref, Schedule } from "effect";
9
9
  import { spawn } from "child_process";
10
10
  import * as os from "os";
11
11
  import { WorkerService } from "./worker-service.js";
12
12
  import { ClaimService } from "./claim-service.js";
13
13
  import { ReadyService } from "./ready-service.js";
14
14
  import { TaskService } from "./task-service.js";
15
+ import { AttemptService } from "./attempt-service.js";
16
+ /**
17
+ * Maximum number of failed attempts before a task is marked as blocked.
18
+ * After this many failures, the task will not be retried automatically.
19
+ */
20
+ const MAX_RETRIES = 3;
21
+ /**
22
+ * Timeout in milliseconds to wait after SIGTERM before escalating to SIGKILL.
23
+ * If the agent subprocess doesn't exit within this window, it will be forcefully killed.
24
+ */
25
+ export const SIGKILL_ESCALATION_TIMEOUT_MS = 5_000;
26
+ /**
27
+ * Kill a child process with SIGTERM, escalating to SIGKILL after a timeout.
28
+ *
29
+ * If the process ignores SIGTERM (e.g., traps the signal), it would become orphaned.
30
+ * This function ensures cleanup by sending SIGKILL after SIGKILL_ESCALATION_TIMEOUT_MS.
31
+ *
32
+ * Uses setTimeout with .unref() so the escalation timer doesn't keep the event loop alive
33
+ * during graceful shutdown.
34
+ */
35
+ export const killWithEscalation = (proc) => {
36
+ if (proc.killed)
37
+ return;
38
+ proc.kill("SIGTERM");
39
+ const escalationTimer = setTimeout(() => {
40
+ try {
41
+ if (!proc.killed) {
42
+ console.log(`Agent process ${proc.pid} did not exit after SIGTERM, escalating to SIGKILL`);
43
+ proc.kill("SIGKILL");
44
+ }
45
+ }
46
+ catch {
47
+ // Process may have already exited between the check and kill call
48
+ }
49
+ }, SIGKILL_ESCALATION_TIMEOUT_MS);
50
+ // Don't keep event loop alive waiting for the escalation timer
51
+ escalationTimer.unref();
52
+ };
15
53
  /**
16
54
  * Run the worker process.
17
55
  *
@@ -29,11 +67,19 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
29
67
  const claimService = yield* ClaimService;
30
68
  const readyService = yield* ReadyService;
31
69
  const taskService = yield* TaskService;
32
- // Shutdown state ref (mutable, shared with signal handlers)
33
- const shutdownState = yield* Ref.make({
34
- requested: false,
35
- claudeProcess: null
36
- });
70
+ const attemptService = yield* AttemptService;
71
+ // Mutable worker state (shared with signal handlers and heartbeat fiber via closure)
72
+ // Using plain object instead of Effect Ref to avoid Effect.runSync in signal handlers
73
+ const state = {
74
+ shutdownRequested: false,
75
+ agentProcess: null,
76
+ currentStatus: "idle",
77
+ currentTaskId: undefined
78
+ };
79
+ // Effect Ref for tasksCompleted counter — safe for concurrent fiber access.
80
+ // Separate from MutableWorkerState because it's only accessed from Effect
81
+ // contexts, never from signal handlers
82
+ const tasksCompletedRef = yield* Ref.make(0);
37
83
  // Register with orchestrator
38
84
  const worker = yield* workerService.register({
39
85
  name: config.name,
@@ -44,36 +90,33 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
44
90
  const workerId = worker.id;
45
91
  yield* Effect.log(`Worker ${workerId} registered`);
46
92
  // Set up signal handlers for graceful shutdown
93
+ // Uses direct mutation - no Effect.runSync needed
47
94
  const handleSignal = (signal) => {
48
95
  console.log(`Worker ${workerId} received ${signal}`);
49
- // Mark shutdown as requested (sync since signal handlers can't use async)
50
- Effect.runSync(Ref.update(shutdownState, (state) => ({
51
- ...state,
52
- requested: true
53
- })));
54
- // Try to terminate Claude subprocess if running
55
- Effect.runSync(Ref.get(shutdownState).pipe(Effect.map((state) => {
56
- if (state.claudeProcess && !state.claudeProcess.killed) {
57
- state.claudeProcess.kill("SIGTERM");
58
- }
59
- })));
96
+ // Mark shutdown as requested
97
+ state.shutdownRequested = true;
98
+ // Try to terminate agent subprocess with SIGKILL escalation
99
+ if (state.agentProcess) {
100
+ killWithEscalation(state.agentProcess);
101
+ }
60
102
  };
61
- process.on("SIGTERM", () => handleSignal("SIGTERM"));
62
- process.on("SIGINT", () => handleSignal("SIGINT"));
63
- // Completed tasks counter for metrics (shared with heartbeat loop)
64
- const tasksCompletedRef = yield* Ref.make(0);
103
+ const sigTermHandler = () => handleSignal("SIGTERM");
104
+ const sigIntHandler = () => handleSignal("SIGINT");
105
+ process.on("SIGTERM", sigTermHandler);
106
+ process.on("SIGINT", sigIntHandler);
65
107
  // Heartbeat fiber - runs continuously in background
66
- const heartbeatFiber = yield* Effect.fork(runHeartbeatLoop(workerId, config.heartbeatIntervalSeconds, shutdownState, tasksCompletedRef));
108
+ const heartbeatFiber = yield* Effect.fork(runHeartbeatLoop(workerId, config.heartbeatIntervalSeconds, state, tasksCompletedRef));
67
109
  try {
68
110
  // Main work loop
69
111
  while (true) {
70
112
  // Check if shutdown was requested
71
- const state = yield* Ref.get(shutdownState);
72
- if (state.requested) {
113
+ if (state.shutdownRequested) {
73
114
  yield* Effect.log(`Worker ${workerId} shutting down gracefully`);
74
115
  break;
75
116
  }
76
- // Update status to idle
117
+ // Update status to idle (both orchestrator and shared state for heartbeat)
118
+ state.currentStatus = "idle";
119
+ state.currentTaskId = undefined;
77
120
  yield* workerService.updateStatus(workerId, "idle");
78
121
  // Check for available work
79
122
  const readyTasks = yield* readyService.getReady(1);
@@ -92,8 +135,15 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
92
135
  }
93
136
  const _claim = claimResult.right;
94
137
  yield* Effect.log(`Worker ${workerId} claimed task ${task.id}`);
95
- const tasksCompleted = yield* Ref.get(tasksCompletedRef);
138
+ // Transition task to 'active' so reconciliation can track it
139
+ yield* taskService.update(task.id, { status: "active" }).pipe(Effect.catchAll((error) => Effect.log(`Failed to set task ${task.id} to active: ${error.message}`)));
140
+ // Mark busy in shared state immediately so heartbeat reports correctly
141
+ // This must happen before the heartbeat call and agent spawn to avoid
142
+ // the race window where heartbeat would report "idle" for a claimed task
143
+ state.currentStatus = "busy";
144
+ state.currentTaskId = task.id;
96
145
  // Update worker status to busy with current task
146
+ const currentTasksCompleted = yield* Ref.get(tasksCompletedRef);
97
147
  yield* workerService.heartbeat({
98
148
  workerId,
99
149
  timestamp: new Date(),
@@ -102,18 +152,19 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
102
152
  metrics: {
103
153
  cpuPercent: process.cpuUsage().user / 1000000,
104
154
  memoryMb: process.memoryUsage().heapUsed / 1024 / 1024,
105
- tasksCompleted
155
+ tasksCompleted: currentTasksCompleted
106
156
  }
107
157
  });
108
158
  // Select appropriate agent for the task
109
159
  const agent = selectAgent(task);
110
160
  // Start lease renewal fiber
161
+ const leaseDuration = config.leaseDurationMinutes ?? 30;
111
162
  const renewalInterval = config.leaseRenewalIntervalSeconds ??
112
- config.heartbeatIntervalSeconds * 10; // Default: 10x heartbeat interval
113
- const renewFiber = yield* Effect.fork(runLeaseRenewalLoop(task.id, workerId, renewalInterval, shutdownState));
163
+ Math.floor((leaseDuration * 60) / 3); // Default: renew at 1/3 of lease duration
164
+ const renewFiber = yield* Effect.fork(runLeaseRenewalLoop(task.id, workerId, renewalInterval, state));
114
165
  try {
115
- // Run Claude subprocess
116
- const result = yield* runClaude(agent, task, workerId, config.workingDirectory ?? process.cwd(), shutdownState);
166
+ // Run agent subprocess
167
+ const result = yield* runAgent(agent, task, workerId, config.workingDirectory ?? process.cwd(), state);
117
168
  if (result.success) {
118
169
  // Mark task as done
119
170
  yield* taskService.update(task.id, { status: "done" });
@@ -121,10 +172,32 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
121
172
  yield* Effect.log(`Task ${task.id} completed successfully`);
122
173
  }
123
174
  else {
124
- yield* Effect.log(`Task ${task.id} failed: ${result.error ?? "Unknown error"}`);
175
+ // Record the failure attempt
176
+ yield* attemptService
177
+ .create(task.id, agent, "failed", result.error ?? "Unknown error")
178
+ .pipe(Effect.catchAll((error) => Effect.log(`Failed to record attempt for task ${task.id}: ${error.message}`)));
179
+ // Check if max retries exceeded
180
+ const failedCount = yield* attemptService
181
+ .getFailedCount(task.id)
182
+ .pipe(Effect.catchAll(() => Effect.succeed(0)));
183
+ if (failedCount >= MAX_RETRIES) {
184
+ // Circuit breaker: mark task as blocked to stop infinite retries
185
+ yield* taskService
186
+ .update(task.id, { status: "blocked" })
187
+ .pipe(Effect.catchAll((error) => Effect.log(`Failed to block task ${task.id}: ${error.message}`)));
188
+ yield* Effect.log(`Task ${task.id} failed ${failedCount} times (max: ${MAX_RETRIES}), marked blocked`);
189
+ }
190
+ else {
191
+ // Reset to backlog so task can be retried by another worker
192
+ yield* taskService
193
+ .update(task.id, { status: "backlog" })
194
+ .pipe(Effect.catchAll((error) => Effect.log(`Failed to reset task ${task.id} status: ${error.message}`)));
195
+ yield* Effect.log(`Task ${task.id} failed (attempt ${failedCount}/${MAX_RETRIES}): ${result.error ?? "Unknown error"}`);
196
+ }
125
197
  }
126
- // Release the claim
127
- yield* claimService.release(task.id, workerId).pipe(Effect.catchAll((error) => Effect.log(`Failed to release claim for task ${task.id}: ${error.message}`)));
198
+ // Release the claim with retry logic
199
+ // If release fails after retries, log and continue - reconciliation will eventually clean up
200
+ yield* claimService.release(task.id, workerId).pipe(Effect.retry(Schedule.exponential(Duration.seconds(1)).pipe(Schedule.jittered, Schedule.compose(Schedule.recurs(3)))), Effect.catchAll((error) => Effect.log(`Failed to release claim for task ${task.id} after retries: ${error.message}`)));
128
201
  }
129
202
  finally {
130
203
  // Stop renewal fiber
@@ -135,6 +208,9 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
135
208
  yield* workerService.updateStatus(workerId, "stopping");
136
209
  }
137
210
  finally {
211
+ // Cleanup: remove signal handlers to prevent accumulation on restart
212
+ process.removeListener("SIGTERM", sigTermHandler);
213
+ process.removeListener("SIGINT", sigIntHandler);
138
214
  // Cleanup: stop heartbeat fiber and deregister
139
215
  yield* Fiber.interrupt(heartbeatFiber);
140
216
  // Release any active claims before deregistering
@@ -147,23 +223,22 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
147
223
  * Run the heartbeat loop.
148
224
  * Sends periodic heartbeats to the orchestrator.
149
225
  */
150
- const runHeartbeatLoop = (workerId, intervalSeconds, shutdownState, tasksCompletedRef) => Effect.gen(function* () {
226
+ const runHeartbeatLoop = (workerId, intervalSeconds, state, tasksCompletedRef) => Effect.gen(function* () {
151
227
  const workerService = yield* WorkerService;
152
228
  while (true) {
153
229
  // Check shutdown before heartbeat
154
- const state = yield* Ref.get(shutdownState);
155
- if (state.requested)
230
+ if (state.shutdownRequested)
156
231
  break;
157
- // Determine current status based on whether Claude is running
158
- const status = state.claudeProcess ? "busy" : "idle";
159
- // Read current completed count from shared ref
232
+ // Read status from shared state (set explicitly by the main work loop)
233
+ const { currentStatus, currentTaskId } = state;
234
+ // Read tasksCompleted from Ref (safe concurrent access)
160
235
  const tasksCompleted = yield* Ref.get(tasksCompletedRef);
161
236
  yield* workerService
162
237
  .heartbeat({
163
238
  workerId,
164
239
  timestamp: new Date(),
165
- status,
166
- currentTaskId: undefined, // The main loop sets this
240
+ status: currentStatus,
241
+ currentTaskId,
167
242
  metrics: {
168
243
  cpuPercent: process.cpuUsage().user / 1000000,
169
244
  memoryMb: process.memoryUsage().heapUsed / 1024 / 1024,
@@ -178,45 +253,54 @@ const runHeartbeatLoop = (workerId, intervalSeconds, shutdownState, tasksComplet
178
253
  * Run the lease renewal loop.
179
254
  * Periodically renews the lease on a claimed task.
180
255
  */
181
- const runLeaseRenewalLoop = (taskId, workerId, intervalSeconds, shutdownState) => Effect.gen(function* () {
256
+ const runLeaseRenewalLoop = (taskId, workerId, intervalSeconds, state) => Effect.gen(function* () {
182
257
  const claimService = yield* ClaimService;
183
258
  while (true) {
184
259
  // Wait before first renewal
185
260
  yield* Effect.sleep(Duration.seconds(intervalSeconds));
186
261
  // Check shutdown before renewal
187
- const state = yield* Ref.get(shutdownState);
188
- if (state.requested)
262
+ if (state.shutdownRequested)
189
263
  break;
190
- yield* claimService
264
+ const renewResult = yield* claimService
191
265
  .renew(taskId, workerId)
192
- .pipe(Effect.tap(() => Effect.log(`Renewed lease on task ${taskId}`)), Effect.catchAll((error) => Effect.log(`Lease renewal failed for task ${taskId}: ${error.message}`)));
266
+ .pipe(Effect.tap(() => Effect.log(`Renewed lease on task ${taskId}`)), Effect.map(() => true), Effect.catchAll((error) => Effect.gen(function* () {
267
+ yield* Effect.log(`CRITICAL: Lease renewal failed for task ${taskId}: ${error.message}. Stopping worker to prevent duplicate execution.`);
268
+ // Stop the worker to prevent duplicate task execution
269
+ // Another worker may have claimed this task after lease expiry
270
+ state.shutdownRequested = true;
271
+ // Kill agent subprocess with SIGKILL escalation
272
+ if (state.agentProcess) {
273
+ killWithEscalation(state.agentProcess);
274
+ }
275
+ return false;
276
+ })));
277
+ // Exit renewal loop if renewal failed
278
+ if (!renewResult)
279
+ break;
193
280
  }
194
281
  });
195
282
  /**
196
- * Run a Claude subprocess to work on a task.
283
+ * Run an agent subprocess to work on a task.
284
+ *
285
+ * Uses direct mutation on state object instead of Effect.runSync
286
+ * because this function uses Effect.async with process event callbacks.
197
287
  */
198
- const runClaude = (agent, task, workerId, workingDirectory, shutdownState) => Effect.async((resume) => {
288
+ const runAgent = (agent, task, workerId, workingDirectory, state) => Effect.async((resume) => {
199
289
  const prompt = buildPrompt(agent, task);
200
290
  const proc = spawn("claude", ["--dangerously-skip-permissions", "--print", prompt], {
201
291
  cwd: workingDirectory,
202
292
  env: { ...process.env, TX_WORKER_ID: workerId },
203
293
  stdio: ["pipe", "pipe", "pipe"]
204
294
  });
205
- // Store the process reference for signal handling
206
- Effect.runSync(Ref.update(shutdownState, (state) => ({
207
- ...state,
208
- claudeProcess: proc
209
- })));
295
+ // Store the process reference for signal handling (direct mutation)
296
+ state.agentProcess = proc;
210
297
  let stderr = "";
211
298
  proc.stderr?.on("data", (data) => {
212
299
  stderr += data.toString();
213
300
  });
214
301
  proc.on("close", (code) => {
215
- // Clear the process reference
216
- Effect.runSync(Ref.update(shutdownState, (state) => ({
217
- ...state,
218
- claudeProcess: null
219
- })));
302
+ // Clear the process reference (direct mutation)
303
+ state.agentProcess = null;
220
304
  if (code === 0) {
221
305
  resume(Effect.succeed({ success: true, exitCode: code ?? 0 }));
222
306
  }
@@ -229,11 +313,8 @@ const runClaude = (agent, task, workerId, workingDirectory, shutdownState) => Ef
229
313
  }
230
314
  });
231
315
  proc.on("error", (err) => {
232
- // Clear the process reference
233
- Effect.runSync(Ref.update(shutdownState, (state) => ({
234
- ...state,
235
- claudeProcess: null
236
- })));
316
+ // Clear the process reference (direct mutation)
317
+ state.agentProcess = null;
237
318
  resume(Effect.succeed({
238
319
  success: false,
239
320
  error: err.message,
@@ -242,17 +323,32 @@ const runClaude = (agent, task, workerId, workingDirectory, shutdownState) => Ef
242
323
  });
243
324
  });
244
325
  /**
245
- * Build the prompt for the Claude subprocess.
326
+ * Sanitize user-provided text for inclusion in agent prompts.
327
+ * Removes characters that could be used for prompt injection or shell escaping.
328
+ * Only allows alphanumeric, spaces, basic punctuation, and common symbols.
246
329
  */
247
- const buildPrompt = (agent, task) => `Read .claude/agents/${agent}.md for your instructions.
330
+ const sanitizeForPrompt = (text) => text.replace(/[^\w\s.,;:!?'"()\-/+=#@&%]/g, "").slice(0, 500);
331
+ /**
332
+ * Build the prompt for the agent subprocess.
333
+ * Task data is sanitized to prevent prompt injection since the agent
334
+ * runs with --dangerously-skip-permissions.
335
+ */
336
+ const buildPrompt = (agent, task) => {
337
+ // Only allow valid agent names (alphanumeric + hyphens)
338
+ const safeAgent = agent.replace(/[^a-zA-Z0-9-]/g, "");
339
+ // Task IDs follow a strict format (tx-XXXXXX) — validate shape
340
+ const safeId = /^tx-[a-z0-9]{6,12}$/.test(task.id) ? task.id : "unknown";
341
+ const safeTitle = sanitizeForPrompt(task.title);
342
+ return `Read .claude/agents/${safeAgent}.md for your instructions.
248
343
 
249
- Your assigned task: ${task.id}
250
- Task title: ${task.title}
344
+ Your assigned task: ${safeId}
345
+ Task title: ${safeTitle}
251
346
 
252
- Run \`tx show ${task.id}\` to get full details, then follow your agent instructions.
253
- When done, run \`tx done ${task.id}\` to mark the task complete.
347
+ Run \`tx show ${safeId}\` to get full details, then follow your agent instructions.
348
+ When done, run \`tx done ${safeId}\` to mark the task complete.
254
349
  If you discover new work, create subtasks with \`tx add\`.
255
- If you hit a blocker, update the task status: \`tx update ${task.id} --status blocked\`.`;
350
+ If you hit a blocker, update the task status: \`tx update ${safeId} --status blocked\`.`;
351
+ };
256
352
  /**
257
353
  * Select the appropriate agent based on task characteristics.
258
354
  */
@@ -1 +1 @@
1
- {"version":3,"file":"worker-process.js","sourceRoot":"","sources":["../../src/services/worker-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-process.js","sourceRoot":"","sources":["../../src/services/worker-process.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,CAAA;AAErB;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,CAAA;AAElD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAkB,EAAQ,EAAE;IAC7D,IAAI,IAAI,CAAC,MAAM;QAAE,OAAM;IAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEpB,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CACT,iBAAiB,IAAI,CAAC,GAAG,oDAAoD,CAC9E,CAAA;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;IACH,CAAC,EAAE,6BAA6B,CAAC,CAAA;IAEjC,+DAA+D;IAC/D,eAAe,CAAC,KAAK,EAAE,CAAA;AACzB,CAAC,CAAA;AAsDD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,EAAE,CAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,aAAa,CAAA;IAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACxC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,WAAW,CAAA;IACtC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,cAAc,CAAA;IAE5C,qFAAqF;IACrF,sFAAsF;IACtF,MAAM,KAAK,GAAuB;QAChC,iBAAiB,EAAE,KAAK;QACxB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,MAAM;QACrB,aAAa,EAAE,SAAS;KACzB,CAAA;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE5C,6BAA6B;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1B,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,aAAa,CAAC,CAAA;IAElD,+CAA+C;IAC/C,kDAAkD;IAClD,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;QACtC,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,aAAa,MAAM,EAAE,CAAC,CAAA;QAEpD,6BAA6B;QAC7B,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAE9B,4DAA4D;QAC5D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAEnC,oDAAoD;IACpD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,wBAAwB,EAAE,KAAK,EAAE,iBAAiB,CAAC,CACtF,CAAA;IAGD,IAAI,CAAC;QACH,iBAAiB;QACjB,OAAO,IAAI,EAAE,CAAC;YACZ,kCAAkC;YAClC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,2BAA2B,CAAC,CAAA;gBAChE,MAAK;YACP,CAAC;YAED,2EAA2E;YAC3E,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;YAC5B,KAAK,CAAC,aAAa,GAAG,SAAS,CAAA;YAC/B,KAAK,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEnD,2BAA2B;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAElD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,wCAAwC;gBACxC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxC,SAAQ;YACV,CAAC;YAED,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAE1B,wBAAwB;YACxB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,CACnE,MAAM,CAAC,MAAM,CACd,CAAA;YAED,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChC,qCAAqC;gBACrC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,UAAU,QAAQ,yBAAyB,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAC/E,CAAA;gBACD,SAAQ;YACV,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAA;YAChC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;YAE/D,6DAA6D;YAC7D,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,EAAE,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CACxE,CACF,CAAA;YAED,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;YAC5B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAA;YAE7B,iDAAiD;YACjD,MAAM,qBAAqB,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC/D,KAAK,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC;gBAC7B,QAAQ;gBACR,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,IAAI,CAAC,EAAE;gBACtB,OAAO,EAAE;oBACP,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,OAAO;oBAC7C,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;oBACtD,cAAc,EAAE,qBAAqB;iBACtC;aACF,CAAC,CAAA;YAEF,wCAAwC;YACxC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;YAE/B,4BAA4B;YAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAA;YACvD,MAAM,eAAe,GACnB,MAAM,CAAC,2BAA2B;gBAClC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA,CAAC,0CAA0C;YAEjF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACnC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAC/D,CAAA;YAED,IAAI,CAAC;gBACH,uBAAuB;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAC5B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EACxC,KAAK,CACN,CAAA;gBAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,oBAAoB;oBACpB,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;oBACtD,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAClD,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAA;gBAC7D,CAAC;qBAAM,CAAC;oBACN,6BAA6B;oBAC7B,KAAK,CAAC,CAAC,cAAc;yBAClB,MAAM,CACL,IAAI,CAAC,EAAE,EACP,KAAK,EACL,QAAQ,EACR,MAAM,CAAC,KAAK,IAAI,eAAe,CAChC;yBACA,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CACR,qCAAqC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CACjE,CACF,CACF,CAAA;oBAEH,gCAAgC;oBAChC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,cAAc;yBACtC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;yBACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAEjD,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;wBAC/B,iEAAiE;wBACjE,KAAK,CAAC,CAAC,WAAW;6BACf,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;6BACtC,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CACR,wBAAwB,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CACpD,CACF,CACF,CAAA;wBACH,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,QAAQ,IAAI,CAAC,EAAE,WAAW,WAAW,gBAAgB,WAAW,mBAAmB,CACpF,CAAA;oBACH,CAAC;yBAAM,CAAC;wBACN,4DAA4D;wBAC5D,KAAK,CAAC,CAAC,WAAW;6BACf,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;6BACtC,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CACR,wBAAwB,IAAI,CAAC,EAAE,YAAY,KAAK,CAAC,OAAO,EAAE,CAC3D,CACF,CACF,CAAA;wBACH,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,QAAQ,IAAI,CAAC,EAAE,oBAAoB,WAAW,IAAI,WAAW,MAAM,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CACrG,CAAA;oBACH,CAAC;gBACH,CAAC;gBAED,qCAAqC;gBACrC,6FAA6F;gBAC7F,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,KAAK,CACV,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5C,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACrC,CACF,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CACR,oCAAoC,IAAI,CAAC,EAAE,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAC9E,CACF,CACF,CAAA;YACH,CAAC;oBAAS,CAAC;gBACT,qBAAqB;gBACrB,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,KAAK,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACzD,CAAC;YAAS,CAAC;QACT,qEAAqE;QACrE,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QACjD,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAE/C,+CAA+C;QAC/C,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAEtC,iDAAiD;QACjD,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CACR,uCAAuC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CACpE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACrB,CACF,CAAA;QAED,KAAK,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,+BAA+B,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CACxE,CACF,CAAA;QAED,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,oBAAoB,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CACvB,QAAgB,EAChB,eAAuB,EACvB,KAAyB,EACzB,iBAAkC,EAClC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,aAAa,CAAA;IAE1C,OAAO,IAAI,EAAE,CAAC;QACZ,kCAAkC;QAClC,IAAI,KAAK,CAAC,iBAAiB;YAAE,MAAK;QAElC,uEAAuE;QACvE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;QAE9C,wDAAwD;QACxD,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAExD,KAAK,CAAC,CAAC,aAAa;aACjB,SAAS,CAAC;YACT,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,aAAa;YACrB,aAAa;YACb,OAAO,EAAE;gBACP,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,OAAO;gBAC7C,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;gBACtD,cAAc;aACf;SACF,CAAC;aACD,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,wBAAwB,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CACjE,CACF,CAAA;QAEH,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;IACxD,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ;;;GAGG;AACH,MAAM,mBAAmB,GAAG,CAC1B,MAAc,EACd,QAAgB,EAChB,eAAuB,EACvB,KAAyB,EACzB,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAExC,OAAO,IAAI,EAAE,CAAC;QACZ,4BAA4B;QAC5B,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;QAEtD,gCAAgC;QAChC,IAAI,KAAK,CAAC,iBAAiB;YAAE,MAAK;QAElC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,YAAY;aACpC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;aACvB,IAAI,CACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC,EAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,2CAA2C,MAAM,KAAK,KAAK,CAAC,OAAO,mDAAmD,CACvH,CAAA;YACD,sDAAsD;YACtD,+DAA+D;YAC/D,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAC9B,gDAAgD;YAChD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YACxC,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CACH,CACF,CAAA;QAEH,sCAAsC;QACtC,IAAI,CAAC,WAAW;YAAE,MAAK;IACzB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CACf,KAAa,EACb,IAAkB,EAClB,QAAgB,EAChB,gBAAwB,EACxB,KAAyB,EACU,EAAE,CACrC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;IACtB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAEvC,MAAM,IAAI,GAAG,KAAK,CAChB,QAAQ,EACR,CAAC,gCAAgC,EAAE,SAAS,EAAE,MAAM,CAAC,EACrD;QACE,GAAG,EAAE,gBAAgB;QACrB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE;QAC/C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAChC,CACF,CAAA;IAED,oEAAoE;IACpE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;IAEzB,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,gDAAgD;QAChD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;QAEzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,CACJ,MAAM,CAAC,OAAO,CAAC;gBACb,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,MAAM,IAAI,aAAa,IAAI,EAAE;gBACpC,QAAQ,EAAE,IAAI,IAAI,CAAC;aACpB,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACvB,gDAAgD;QAChD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;QAEzB,MAAM,CACJ,MAAM,CAAC,OAAO,CAAC;YACb,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC;SACZ,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,IAAkB,EAAU,EAAE;IAChE,wDAAwD;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IACrD,+DAA+D;IAC/D,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE/C,OAAO,uBAAuB,SAAS;;sBAEnB,MAAM;cACd,SAAS;;gBAEP,MAAM;2BACK,MAAM;;4DAE2B,MAAM,sBAAsB,CAAA;AACxF,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAU,EAAE;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;IAEtC,sCAAsC;IACtC,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtB,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7B,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EACzB,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,oCAAoC;IACpC,IACE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EACvB,CAAC;QACD,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,8DAA8D;IAC9D,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,yBAAyB;IACzB,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-service.d.ts","sourceRoot":"","sources":["../../src/services/worker-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;;IAkBG;;;OAGG;uBACgB,CACjB,YAAY,EAAE,kBAAkB,KAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAE7D;;;OAGG;wBACiB,CAClB,SAAS,EAAE,SAAS,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;IAE7D;;;;OAIG;yBACkB,CACnB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;IAE7D;;OAEG;mBACY,CACb,MAAM,CAAC,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;IAEpD;;;OAGG;uBACgB,CACjB,MAAM,EAAE,cAAc,KACnB,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;IAEpD;;OAEG;uBACgB,CACjB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;IAE7D;;OAEG;2BACoB,CACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;;AAxDjE,qBAAa,aAAc,SAAQ,kBA0DhC;CAAG;AAEN,eAAO,MAAM,iBAAiB,mFAqK7B,CAAA"}
1
+ {"version":3,"file":"worker-service.d.ts","sourceRoot":"","sources":["../../src/services/worker-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;;IAkBG;;;OAGG;uBACgB,CACjB,YAAY,EAAE,kBAAkB,KAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAE7D;;;OAGG;wBACiB,CAClB,SAAS,EAAE,SAAS,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;IAE7D;;;;OAIG;yBACkB,CACnB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;IAE7D;;OAEG;mBACY,CACb,MAAM,CAAC,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;IAEpD;;;OAGG;uBACgB,CACjB,MAAM,EAAE,cAAc,KACnB,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;IAEpD;;OAEG;uBACgB,CACjB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;IAE7D;;OAEG;2BACoB,CACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,aAAa,CAAC;;AAxDjE,qBAAa,aAAc,SAAQ,kBA0DhC;CAAG;AAEN,eAAO,MAAM,iBAAiB,mFAmK7B,CAAA"}
@@ -36,17 +36,6 @@ export const WorkerServiceLive = Layer.effect(WorkerService, Effect.gen(function
36
36
  reason: "Orchestrator is not running"
37
37
  }));
38
38
  }
39
- // Count active workers (starting, idle, busy)
40
- const startingCount = yield* workerRepo.countByStatus("starting");
41
- const idleCount = yield* workerRepo.countByStatus("idle");
42
- const busyCount = yield* workerRepo.countByStatus("busy");
43
- const activeWorkers = startingCount + idleCount + busyCount;
44
- // Check pool capacity
45
- if (activeWorkers >= state.workerPoolSize) {
46
- return yield* Effect.fail(new RegistrationError({
47
- reason: `Worker pool at capacity (${state.workerPoolSize})`
48
- }));
49
- }
50
39
  const now = new Date();
51
40
  const worker = {
52
41
  id: registration.workerId ?? generateWorkerId(),
@@ -60,7 +49,13 @@ export const WorkerServiceLive = Layer.effect(WorkerService, Effect.gen(function
60
49
  capabilities: [...(registration.capabilities ?? ["tx-implementer"])],
61
50
  metadata: {}
62
51
  };
63
- yield* workerRepo.insert(worker);
52
+ // Atomic capacity check + insert in a single transaction
53
+ const inserted = yield* workerRepo.insertIfUnderCapacity(worker, state.workerPoolSize);
54
+ if (!inserted) {
55
+ return yield* Effect.fail(new RegistrationError({
56
+ reason: `Worker pool at capacity (${state.workerPoolSize})`
57
+ }));
58
+ }
64
59
  yield* Effect.log(`Worker ${worker.id} registered`);
65
60
  return worker;
66
61
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"worker-service.js","sourceRoot":"","sources":["../../src/services/worker-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-service.js","sourceRoot":"","sources":["../../src/services/worker-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Claude Code task directory writer.
3
+ *
4
+ * Pure functions that transform TaskWithDeps[] into Claude Code's
5
+ * on-disk task format (individual JSON files per task).
6
+ *
7
+ * Claude Code stores team tasks at ~/.claude/tasks/{team-name}/
8
+ * with files: {id}.json, .highwatermark, .lock
9
+ */
10
+ import { Schema } from "effect";
11
+ import type { TaskWithDeps } from "@jamesaphoenix/tx-types";
12
+ /** A single Claude Code task file (written as {id}.json) */
13
+ export declare const ClaudeTaskFileSchema: Schema.Struct<{
14
+ id: typeof Schema.String;
15
+ subject: typeof Schema.String;
16
+ description: typeof Schema.String;
17
+ activeForm: typeof Schema.String;
18
+ status: Schema.Literal<["pending", "in_progress", "completed"]>;
19
+ blocks: Schema.Array$<typeof Schema.String>;
20
+ blockedBy: Schema.Array$<typeof Schema.String>;
21
+ }>;
22
+ export type ClaudeTaskFile = typeof ClaudeTaskFileSchema.Type;
23
+ /** Result of building Claude task files from tx tasks */
24
+ export declare const ClaudeSyncResultSchema: Schema.Struct<{
25
+ files: Schema.Array$<Schema.Struct<{
26
+ id: typeof Schema.String;
27
+ subject: typeof Schema.String;
28
+ description: typeof Schema.String;
29
+ activeForm: typeof Schema.String;
30
+ status: Schema.Literal<["pending", "in_progress", "completed"]>;
31
+ blocks: Schema.Array$<typeof Schema.String>;
32
+ blockedBy: Schema.Array$<typeof Schema.String>;
33
+ }>>;
34
+ highwatermark: typeof Schema.Number;
35
+ }>;
36
+ export type ClaudeSyncResult = typeof ClaudeSyncResultSchema.Type & {
37
+ /** Mapping from tx task ID to Claude numeric ID (for debugging) */
38
+ readonly txIdMap: ReadonlyMap<string, string>;
39
+ };
40
+ /**
41
+ * Transform tx tasks into Claude Code task files.
42
+ *
43
+ * - Filters out done tasks
44
+ * - Sorts: ready tasks first (highest score first), then non-ready by score
45
+ * - Assigns sequential numeric IDs
46
+ * - Maps blockedBy/blocks references to numeric IDs
47
+ */
48
+ export declare function buildClaudeTaskFiles(tasks: readonly TaskWithDeps[]): ClaudeSyncResult;
49
+ //# sourceMappingURL=claude-task-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-task-writer.d.ts","sourceRoot":"","sources":["../../src/sync/claude-task-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,yBAAyB,CAAA;AAQnE,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB;;;;;;;;EAQ/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAE7D,yDAAyD;AACzD,eAAO,MAAM,sBAAsB;;;;;;;;;;;EAGjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,OAAO,sBAAsB,CAAC,IAAI,GAAG;IAClE,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9C,CAAA;AAmED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,gBAAgB,CAmDrF"}