@jamesaphoenix/tx-core 0.4.2 → 0.4.3

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 (330) 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 +102 -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/anchor.d.ts +15 -1
  23. package/dist/mappers/anchor.d.ts.map +1 -1
  24. package/dist/mappers/anchor.js +95 -28
  25. package/dist/mappers/anchor.js.map +1 -1
  26. package/dist/mappers/attempt.d.ts +3 -1
  27. package/dist/mappers/attempt.d.ts.map +1 -1
  28. package/dist/mappers/attempt.js +23 -9
  29. package/dist/mappers/attempt.js.map +1 -1
  30. package/dist/mappers/candidate.d.ts +3 -1
  31. package/dist/mappers/candidate.d.ts.map +1 -1
  32. package/dist/mappers/candidate.js +46 -16
  33. package/dist/mappers/candidate.js.map +1 -1
  34. package/dist/mappers/claim.d.ts +1 -1
  35. package/dist/mappers/claim.d.ts.map +1 -1
  36. package/dist/mappers/claim.js +11 -4
  37. package/dist/mappers/claim.js.map +1 -1
  38. package/dist/mappers/deduplication.d.ts +13 -1
  39. package/dist/mappers/deduplication.d.ts.map +1 -1
  40. package/dist/mappers/deduplication.js +22 -3
  41. package/dist/mappers/deduplication.js.map +1 -1
  42. package/dist/mappers/doc.d.ts +24 -0
  43. package/dist/mappers/doc.d.ts.map +1 -0
  44. package/dist/mappers/doc.js +161 -0
  45. package/dist/mappers/doc.js.map +1 -0
  46. package/dist/mappers/edge.d.ts +10 -1
  47. package/dist/mappers/edge.d.ts.map +1 -1
  48. package/dist/mappers/edge.js +74 -12
  49. package/dist/mappers/edge.js.map +1 -1
  50. package/dist/mappers/file-learning.d.ts.map +1 -1
  51. package/dist/mappers/file-learning.js +2 -1
  52. package/dist/mappers/file-learning.js.map +1 -1
  53. package/dist/mappers/index.d.ts +6 -7
  54. package/dist/mappers/index.d.ts.map +1 -1
  55. package/dist/mappers/index.js +10 -12
  56. package/dist/mappers/index.js.map +1 -1
  57. package/dist/mappers/learning.d.ts +9 -1
  58. package/dist/mappers/learning.d.ts.map +1 -1
  59. package/dist/mappers/learning.js +94 -14
  60. package/dist/mappers/learning.js.map +1 -1
  61. package/dist/mappers/orchestrator-state.d.ts +1 -1
  62. package/dist/mappers/orchestrator-state.d.ts.map +1 -1
  63. package/dist/mappers/orchestrator-state.js +31 -5
  64. package/dist/mappers/orchestrator-state.js.map +1 -1
  65. package/dist/mappers/parse-date.d.ts +11 -0
  66. package/dist/mappers/parse-date.d.ts.map +1 -0
  67. package/dist/mappers/parse-date.js +18 -0
  68. package/dist/mappers/parse-date.js.map +1 -0
  69. package/dist/mappers/run.d.ts +14 -4
  70. package/dist/mappers/run.d.ts.map +1 -1
  71. package/dist/mappers/run.js +49 -18
  72. package/dist/mappers/run.js.map +1 -1
  73. package/dist/mappers/task.d.ts +5 -1
  74. package/dist/mappers/task.d.ts.map +1 -1
  75. package/dist/mappers/task.js +66 -16
  76. package/dist/mappers/task.js.map +1 -1
  77. package/dist/mappers/tracked-project.d.ts +3 -1
  78. package/dist/mappers/tracked-project.d.ts.map +1 -1
  79. package/dist/mappers/tracked-project.js +23 -9
  80. package/dist/mappers/tracked-project.js.map +1 -1
  81. package/dist/mappers/worker.d.ts +1 -1
  82. package/dist/mappers/worker.d.ts.map +1 -1
  83. package/dist/mappers/worker.js +44 -6
  84. package/dist/mappers/worker.js.map +1 -1
  85. package/dist/repo/anchor-repo.d.ts +2 -2
  86. package/dist/repo/anchor-repo.d.ts.map +1 -1
  87. package/dist/repo/anchor-repo.js +46 -5
  88. package/dist/repo/anchor-repo.js.map +1 -1
  89. package/dist/repo/attempt-repo.d.ts +2 -2
  90. package/dist/repo/attempt-repo.d.ts.map +1 -1
  91. package/dist/repo/attempt-repo.js +16 -6
  92. package/dist/repo/attempt-repo.js.map +1 -1
  93. package/dist/repo/candidate-repo.d.ts.map +1 -1
  94. package/dist/repo/candidate-repo.js +22 -1
  95. package/dist/repo/candidate-repo.js.map +1 -1
  96. package/dist/repo/claim-repo.d.ts +46 -2
  97. package/dist/repo/claim-repo.d.ts.map +1 -1
  98. package/dist/repo/claim-repo.js +113 -6
  99. package/dist/repo/claim-repo.js.map +1 -1
  100. package/dist/repo/compaction-repo.d.ts +41 -0
  101. package/dist/repo/compaction-repo.d.ts.map +1 -0
  102. package/dist/repo/compaction-repo.js +84 -0
  103. package/dist/repo/compaction-repo.js.map +1 -0
  104. package/dist/repo/deduplication-repo.d.ts +9 -1
  105. package/dist/repo/deduplication-repo.d.ts.map +1 -1
  106. package/dist/repo/deduplication-repo.js +46 -9
  107. package/dist/repo/deduplication-repo.js.map +1 -1
  108. package/dist/repo/dep-repo.d.ts +27 -3
  109. package/dist/repo/dep-repo.d.ts.map +1 -1
  110. package/dist/repo/dep-repo.js +166 -39
  111. package/dist/repo/dep-repo.js.map +1 -1
  112. package/dist/repo/doc-repo.d.ts +59 -0
  113. package/dist/repo/doc-repo.d.ts.map +1 -0
  114. package/dist/repo/doc-repo.js +276 -0
  115. package/dist/repo/doc-repo.js.map +1 -0
  116. package/dist/repo/edge-repo.d.ts +1 -1
  117. package/dist/repo/edge-repo.d.ts.map +1 -1
  118. package/dist/repo/edge-repo.js +65 -34
  119. package/dist/repo/edge-repo.js.map +1 -1
  120. package/dist/repo/file-learning-repo.d.ts +3 -3
  121. package/dist/repo/file-learning-repo.d.ts.map +1 -1
  122. package/dist/repo/file-learning-repo.js +19 -8
  123. package/dist/repo/file-learning-repo.js.map +1 -1
  124. package/dist/repo/index.d.ts +4 -6
  125. package/dist/repo/index.d.ts.map +1 -1
  126. package/dist/repo/index.js +3 -5
  127. package/dist/repo/index.js.map +1 -1
  128. package/dist/repo/learning-repo.d.ts +10 -3
  129. package/dist/repo/learning-repo.d.ts.map +1 -1
  130. package/dist/repo/learning-repo.js +68 -11
  131. package/dist/repo/learning-repo.js.map +1 -1
  132. package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
  133. package/dist/repo/orchestrator-state-repo.js +8 -1
  134. package/dist/repo/orchestrator-state-repo.js.map +1 -1
  135. package/dist/repo/run-repo.d.ts +3 -3
  136. package/dist/repo/run-repo.d.ts.map +1 -1
  137. package/dist/repo/run-repo.js +40 -19
  138. package/dist/repo/run-repo.js.map +1 -1
  139. package/dist/repo/task-repo.d.ts +14 -3
  140. package/dist/repo/task-repo.d.ts.map +1 -1
  141. package/dist/repo/task-repo.js +194 -20
  142. package/dist/repo/task-repo.js.map +1 -1
  143. package/dist/repo/tracked-project-repo.d.ts.map +1 -1
  144. package/dist/repo/tracked-project-repo.js +15 -1
  145. package/dist/repo/tracked-project-repo.js.map +1 -1
  146. package/dist/repo/worker-repo.d.ts +3 -2
  147. package/dist/repo/worker-repo.d.ts.map +1 -1
  148. package/dist/repo/worker-repo.js +54 -8
  149. package/dist/repo/worker-repo.js.map +1 -1
  150. package/dist/schemas/sync.js +2 -2
  151. package/dist/schemas/sync.js.map +1 -1
  152. package/dist/schemas/worker.d.ts +1 -0
  153. package/dist/schemas/worker.d.ts.map +1 -1
  154. package/dist/schemas/worker.js +1 -0
  155. package/dist/schemas/worker.js.map +1 -1
  156. package/dist/services/agent-service.d.ts +57 -0
  157. package/dist/services/agent-service.d.ts.map +1 -0
  158. package/dist/services/agent-service.js +81 -0
  159. package/dist/services/agent-service.js.map +1 -0
  160. package/dist/services/anchor-service.js +1 -1
  161. package/dist/services/anchor-service.js.map +1 -1
  162. package/dist/services/anchor-verification.d.ts +8 -0
  163. package/dist/services/anchor-verification.d.ts.map +1 -1
  164. package/dist/services/anchor-verification.js +237 -37
  165. package/dist/services/anchor-verification.js.map +1 -1
  166. package/dist/services/ast-grep-service.d.ts.map +1 -1
  167. package/dist/services/ast-grep-service.js +93 -22
  168. package/dist/services/ast-grep-service.js.map +1 -1
  169. package/dist/services/attempt-service.d.ts.map +1 -1
  170. package/dist/services/attempt-service.js +1 -4
  171. package/dist/services/attempt-service.js.map +1 -1
  172. package/dist/services/auto-sync-service.d.ts +1 -1
  173. package/dist/services/auto-sync-service.d.ts.map +1 -1
  174. package/dist/services/auto-sync-service.js +18 -10
  175. package/dist/services/auto-sync-service.js.map +1 -1
  176. package/dist/services/claim-service.d.ts +8 -2
  177. package/dist/services/claim-service.d.ts.map +1 -1
  178. package/dist/services/claim-service.js +37 -23
  179. package/dist/services/claim-service.js.map +1 -1
  180. package/dist/services/compaction-service.d.ts +105 -0
  181. package/dist/services/compaction-service.d.ts.map +1 -0
  182. package/dist/services/compaction-service.js +369 -0
  183. package/dist/services/compaction-service.js.map +1 -0
  184. package/dist/services/cycle-scan-service.d.ts +32 -0
  185. package/dist/services/cycle-scan-service.d.ts.map +1 -0
  186. package/dist/services/cycle-scan-service.js +542 -0
  187. package/dist/services/cycle-scan-service.js.map +1 -0
  188. package/dist/services/daemon-service.d.ts +40 -2
  189. package/dist/services/daemon-service.d.ts.map +1 -1
  190. package/dist/services/daemon-service.js +199 -52
  191. package/dist/services/daemon-service.js.map +1 -1
  192. package/dist/services/deduplication-service.d.ts +8 -4
  193. package/dist/services/deduplication-service.d.ts.map +1 -1
  194. package/dist/services/deduplication-service.js +79 -25
  195. package/dist/services/deduplication-service.js.map +1 -1
  196. package/dist/services/dep-service.d.ts +2 -2
  197. package/dist/services/dep-service.d.ts.map +1 -1
  198. package/dist/services/dep-service.js +9 -5
  199. package/dist/services/dep-service.js.map +1 -1
  200. package/dist/services/diversifier-service.d.ts +2 -1
  201. package/dist/services/diversifier-service.d.ts.map +1 -1
  202. package/dist/services/diversifier-service.js +37 -43
  203. package/dist/services/diversifier-service.js.map +1 -1
  204. package/dist/services/doc-service.d.ts +49 -0
  205. package/dist/services/doc-service.d.ts.map +1 -0
  206. package/dist/services/doc-service.js +605 -0
  207. package/dist/services/doc-service.js.map +1 -0
  208. package/dist/services/edge-service.js +2 -2
  209. package/dist/services/edge-service.js.map +1 -1
  210. package/dist/services/embedding-service.d.ts +66 -2
  211. package/dist/services/embedding-service.d.ts.map +1 -1
  212. package/dist/services/embedding-service.js +138 -24
  213. package/dist/services/embedding-service.js.map +1 -1
  214. package/dist/services/file-learning-service.d.ts.map +1 -1
  215. package/dist/services/file-learning-service.js +8 -7
  216. package/dist/services/file-learning-service.js.map +1 -1
  217. package/dist/services/file-watcher-service.d.ts.map +1 -1
  218. package/dist/services/file-watcher-service.js +58 -11
  219. package/dist/services/file-watcher-service.js.map +1 -1
  220. package/dist/services/graph-expansion.d.ts +3 -0
  221. package/dist/services/graph-expansion.d.ts.map +1 -1
  222. package/dist/services/graph-expansion.js +28 -7
  223. package/dist/services/graph-expansion.js.map +1 -1
  224. package/dist/services/hierarchy-service.d.ts +1 -1
  225. package/dist/services/hierarchy-service.d.ts.map +1 -1
  226. package/dist/services/hierarchy-service.js +50 -32
  227. package/dist/services/hierarchy-service.js.map +1 -1
  228. package/dist/services/index.d.ts +13 -15
  229. package/dist/services/index.d.ts.map +1 -1
  230. package/dist/services/index.js +13 -15
  231. package/dist/services/index.js.map +1 -1
  232. package/dist/services/learning-service.d.ts +4 -4
  233. package/dist/services/learning-service.d.ts.map +1 -1
  234. package/dist/services/learning-service.js +75 -42
  235. package/dist/services/learning-service.js.map +1 -1
  236. package/dist/services/llm-service.d.ts +62 -0
  237. package/dist/services/llm-service.d.ts.map +1 -0
  238. package/dist/services/llm-service.js +172 -0
  239. package/dist/services/llm-service.js.map +1 -0
  240. package/dist/services/migration-service.d.ts +1 -1
  241. package/dist/services/migration-service.d.ts.map +1 -1
  242. package/dist/services/migration-service.js +18 -7
  243. package/dist/services/migration-service.js.map +1 -1
  244. package/dist/services/orchestrator-service.d.ts +4 -3
  245. package/dist/services/orchestrator-service.d.ts.map +1 -1
  246. package/dist/services/orchestrator-service.js +67 -29
  247. package/dist/services/orchestrator-service.js.map +1 -1
  248. package/dist/services/promotion-service.d.ts +1 -1
  249. package/dist/services/promotion-service.js +1 -1
  250. package/dist/services/promotion-service.js.map +1 -1
  251. package/dist/services/query-expansion-service.d.ts +30 -9
  252. package/dist/services/query-expansion-service.d.ts.map +1 -1
  253. package/dist/services/query-expansion-service.js +54 -63
  254. package/dist/services/query-expansion-service.js.map +1 -1
  255. package/dist/services/ready-service.d.ts +21 -1
  256. package/dist/services/ready-service.d.ts.map +1 -1
  257. package/dist/services/ready-service.js +44 -21
  258. package/dist/services/ready-service.js.map +1 -1
  259. package/dist/services/retriever-service.d.ts +10 -10
  260. package/dist/services/retriever-service.d.ts.map +1 -1
  261. package/dist/services/retriever-service.js +53 -161
  262. package/dist/services/retriever-service.js.map +1 -1
  263. package/dist/services/swarm-verification.d.ts +2 -2
  264. package/dist/services/swarm-verification.d.ts.map +1 -1
  265. package/dist/services/swarm-verification.js +12 -6
  266. package/dist/services/swarm-verification.js.map +1 -1
  267. package/dist/services/sync-service.d.ts +17 -4
  268. package/dist/services/sync-service.d.ts.map +1 -1
  269. package/dist/services/sync-service.js +378 -114
  270. package/dist/services/sync-service.js.map +1 -1
  271. package/dist/services/task-service.d.ts +6 -4
  272. package/dist/services/task-service.d.ts.map +1 -1
  273. package/dist/services/task-service.js +162 -33
  274. package/dist/services/task-service.js.map +1 -1
  275. package/dist/services/tracing-service.d.ts +55 -0
  276. package/dist/services/tracing-service.d.ts.map +1 -0
  277. package/dist/services/tracing-service.js +99 -0
  278. package/dist/services/tracing-service.js.map +1 -0
  279. package/dist/services/transcript-adapter.d.ts +99 -0
  280. package/dist/services/transcript-adapter.d.ts.map +1 -0
  281. package/dist/services/transcript-adapter.js +283 -0
  282. package/dist/services/transcript-adapter.js.map +1 -0
  283. package/dist/services/validation-service.d.ts +85 -0
  284. package/dist/services/validation-service.d.ts.map +1 -0
  285. package/dist/services/validation-service.js +289 -0
  286. package/dist/services/validation-service.js.map +1 -0
  287. package/dist/services/worker-process.d.ts +23 -4
  288. package/dist/services/worker-process.d.ts.map +1 -1
  289. package/dist/services/worker-process.js +159 -70
  290. package/dist/services/worker-process.js.map +1 -1
  291. package/dist/services/worker-service.d.ts.map +1 -1
  292. package/dist/services/worker-service.js +7 -12
  293. package/dist/services/worker-service.js.map +1 -1
  294. package/dist/sync/claude-task-writer.d.ts +49 -0
  295. package/dist/sync/claude-task-writer.d.ts.map +1 -0
  296. package/dist/sync/claude-task-writer.js +135 -0
  297. package/dist/sync/claude-task-writer.js.map +1 -0
  298. package/dist/utils/doc-hash.d.ts +10 -0
  299. package/dist/utils/doc-hash.d.ts.map +1 -0
  300. package/dist/utils/doc-hash.js +14 -0
  301. package/dist/utils/doc-hash.js.map +1 -0
  302. package/dist/utils/doc-renderer.d.ts +44 -0
  303. package/dist/utils/doc-renderer.d.ts.map +1 -0
  304. package/dist/utils/doc-renderer.js +202 -0
  305. package/dist/utils/doc-renderer.js.map +1 -0
  306. package/dist/utils/math.d.ts +5 -1
  307. package/dist/utils/math.d.ts.map +1 -1
  308. package/dist/utils/math.js +12 -4
  309. package/dist/utils/math.js.map +1 -1
  310. package/dist/utils/sql.d.ts +9 -0
  311. package/dist/utils/sql.d.ts.map +1 -0
  312. package/dist/utils/sql.js +9 -0
  313. package/dist/utils/sql.js.map +1 -0
  314. package/dist/utils/toml-config.d.ts +22 -0
  315. package/dist/utils/toml-config.d.ts.map +1 -0
  316. package/dist/utils/toml-config.js +75 -0
  317. package/dist/utils/toml-config.js.map +1 -0
  318. package/dist/worker/hooks.d.ts +102 -0
  319. package/dist/worker/hooks.d.ts.map +1 -0
  320. package/dist/worker/hooks.js +11 -0
  321. package/dist/worker/hooks.js.map +1 -0
  322. package/dist/worker/index.d.ts +9 -0
  323. package/dist/worker/index.d.ts.map +1 -0
  324. package/dist/worker/index.js +8 -0
  325. package/dist/worker/index.js.map +1 -0
  326. package/dist/worker/run-worker.d.ts +33 -0
  327. package/dist/worker/run-worker.d.ts.map +1 -0
  328. package/dist/worker/run-worker.js +265 -0
  329. package/dist/worker/run-worker.js.map +1 -0
  330. package/package.json +14 -12
@@ -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,31 @@ 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
103
  process.on("SIGTERM", () => handleSignal("SIGTERM"));
62
104
  process.on("SIGINT", () => handleSignal("SIGINT"));
63
- // Completed tasks counter for metrics (shared with heartbeat loop)
64
- const tasksCompletedRef = yield* Ref.make(0);
65
105
  // Heartbeat fiber - runs continuously in background
66
- const heartbeatFiber = yield* Effect.fork(runHeartbeatLoop(workerId, config.heartbeatIntervalSeconds, shutdownState, tasksCompletedRef));
106
+ const heartbeatFiber = yield* Effect.fork(runHeartbeatLoop(workerId, config.heartbeatIntervalSeconds, state, tasksCompletedRef));
67
107
  try {
68
108
  // Main work loop
69
109
  while (true) {
70
110
  // Check if shutdown was requested
71
- const state = yield* Ref.get(shutdownState);
72
- if (state.requested) {
111
+ if (state.shutdownRequested) {
73
112
  yield* Effect.log(`Worker ${workerId} shutting down gracefully`);
74
113
  break;
75
114
  }
76
- // Update status to idle
115
+ // Update status to idle (both orchestrator and shared state for heartbeat)
116
+ state.currentStatus = "idle";
117
+ state.currentTaskId = undefined;
77
118
  yield* workerService.updateStatus(workerId, "idle");
78
119
  // Check for available work
79
120
  const readyTasks = yield* readyService.getReady(1);
@@ -92,8 +133,13 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
92
133
  }
93
134
  const _claim = claimResult.right;
94
135
  yield* Effect.log(`Worker ${workerId} claimed task ${task.id}`);
95
- const tasksCompleted = yield* Ref.get(tasksCompletedRef);
136
+ // Mark busy in shared state immediately so heartbeat reports correctly
137
+ // This must happen before the heartbeat call and agent spawn to avoid
138
+ // the race window where heartbeat would report "idle" for a claimed task
139
+ state.currentStatus = "busy";
140
+ state.currentTaskId = task.id;
96
141
  // Update worker status to busy with current task
142
+ const currentTasksCompleted = yield* Ref.get(tasksCompletedRef);
97
143
  yield* workerService.heartbeat({
98
144
  workerId,
99
145
  timestamp: new Date(),
@@ -102,18 +148,19 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
102
148
  metrics: {
103
149
  cpuPercent: process.cpuUsage().user / 1000000,
104
150
  memoryMb: process.memoryUsage().heapUsed / 1024 / 1024,
105
- tasksCompleted
151
+ tasksCompleted: currentTasksCompleted
106
152
  }
107
153
  });
108
154
  // Select appropriate agent for the task
109
155
  const agent = selectAgent(task);
110
156
  // Start lease renewal fiber
157
+ const leaseDuration = config.leaseDurationMinutes ?? 30;
111
158
  const renewalInterval = config.leaseRenewalIntervalSeconds ??
112
- config.heartbeatIntervalSeconds * 10; // Default: 10x heartbeat interval
113
- const renewFiber = yield* Effect.fork(runLeaseRenewalLoop(task.id, workerId, renewalInterval, shutdownState));
159
+ Math.floor((leaseDuration * 60) / 3); // Default: renew at 1/3 of lease duration
160
+ const renewFiber = yield* Effect.fork(runLeaseRenewalLoop(task.id, workerId, renewalInterval, state));
114
161
  try {
115
- // Run Claude subprocess
116
- const result = yield* runClaude(agent, task, workerId, config.workingDirectory ?? process.cwd(), shutdownState);
162
+ // Run agent subprocess
163
+ const result = yield* runAgent(agent, task, workerId, config.workingDirectory ?? process.cwd(), state);
117
164
  if (result.success) {
118
165
  // Mark task as done
119
166
  yield* taskService.update(task.id, { status: "done" });
@@ -121,10 +168,32 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
121
168
  yield* Effect.log(`Task ${task.id} completed successfully`);
122
169
  }
123
170
  else {
124
- yield* Effect.log(`Task ${task.id} failed: ${result.error ?? "Unknown error"}`);
171
+ // Record the failure attempt
172
+ yield* attemptService
173
+ .create(task.id, agent, "failed", result.error ?? "Unknown error")
174
+ .pipe(Effect.catchAll((error) => Effect.log(`Failed to record attempt for task ${task.id}: ${error.message}`)));
175
+ // Check if max retries exceeded
176
+ const failedCount = yield* attemptService
177
+ .getFailedCount(task.id)
178
+ .pipe(Effect.catchAll(() => Effect.succeed(0)));
179
+ if (failedCount >= MAX_RETRIES) {
180
+ // Circuit breaker: mark task as blocked to stop infinite retries
181
+ yield* taskService
182
+ .update(task.id, { status: "blocked" })
183
+ .pipe(Effect.catchAll((error) => Effect.log(`Failed to block task ${task.id}: ${error.message}`)));
184
+ yield* Effect.log(`Task ${task.id} failed ${failedCount} times (max: ${MAX_RETRIES}), marked blocked`);
185
+ }
186
+ else {
187
+ // Reset to backlog so task can be retried by another worker
188
+ yield* taskService
189
+ .update(task.id, { status: "backlog" })
190
+ .pipe(Effect.catchAll((error) => Effect.log(`Failed to reset task ${task.id} status: ${error.message}`)));
191
+ yield* Effect.log(`Task ${task.id} failed (attempt ${failedCount}/${MAX_RETRIES}): ${result.error ?? "Unknown error"}`);
192
+ }
125
193
  }
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}`)));
194
+ // Release the claim with retry logic
195
+ // If release fails after retries, log and continue - reconciliation will eventually clean up
196
+ 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
197
  }
129
198
  finally {
130
199
  // Stop renewal fiber
@@ -147,23 +216,22 @@ export const runWorkerProcess = (config) => Effect.gen(function* () {
147
216
  * Run the heartbeat loop.
148
217
  * Sends periodic heartbeats to the orchestrator.
149
218
  */
150
- const runHeartbeatLoop = (workerId, intervalSeconds, shutdownState, tasksCompletedRef) => Effect.gen(function* () {
219
+ const runHeartbeatLoop = (workerId, intervalSeconds, state, tasksCompletedRef) => Effect.gen(function* () {
151
220
  const workerService = yield* WorkerService;
152
221
  while (true) {
153
222
  // Check shutdown before heartbeat
154
- const state = yield* Ref.get(shutdownState);
155
- if (state.requested)
223
+ if (state.shutdownRequested)
156
224
  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
225
+ // Read status from shared state (set explicitly by the main work loop)
226
+ const { currentStatus, currentTaskId } = state;
227
+ // Read tasksCompleted from Ref (safe concurrent access)
160
228
  const tasksCompleted = yield* Ref.get(tasksCompletedRef);
161
229
  yield* workerService
162
230
  .heartbeat({
163
231
  workerId,
164
232
  timestamp: new Date(),
165
- status,
166
- currentTaskId: undefined, // The main loop sets this
233
+ status: currentStatus,
234
+ currentTaskId,
167
235
  metrics: {
168
236
  cpuPercent: process.cpuUsage().user / 1000000,
169
237
  memoryMb: process.memoryUsage().heapUsed / 1024 / 1024,
@@ -178,45 +246,54 @@ const runHeartbeatLoop = (workerId, intervalSeconds, shutdownState, tasksComplet
178
246
  * Run the lease renewal loop.
179
247
  * Periodically renews the lease on a claimed task.
180
248
  */
181
- const runLeaseRenewalLoop = (taskId, workerId, intervalSeconds, shutdownState) => Effect.gen(function* () {
249
+ const runLeaseRenewalLoop = (taskId, workerId, intervalSeconds, state) => Effect.gen(function* () {
182
250
  const claimService = yield* ClaimService;
183
251
  while (true) {
184
252
  // Wait before first renewal
185
253
  yield* Effect.sleep(Duration.seconds(intervalSeconds));
186
254
  // Check shutdown before renewal
187
- const state = yield* Ref.get(shutdownState);
188
- if (state.requested)
255
+ if (state.shutdownRequested)
189
256
  break;
190
- yield* claimService
257
+ const renewResult = yield* claimService
191
258
  .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}`)));
259
+ .pipe(Effect.tap(() => Effect.log(`Renewed lease on task ${taskId}`)), Effect.map(() => true), Effect.catchAll((error) => Effect.gen(function* () {
260
+ yield* Effect.log(`CRITICAL: Lease renewal failed for task ${taskId}: ${error.message}. Stopping worker to prevent duplicate execution.`);
261
+ // Stop the worker to prevent duplicate task execution
262
+ // Another worker may have claimed this task after lease expiry
263
+ state.shutdownRequested = true;
264
+ // Kill agent subprocess with SIGKILL escalation
265
+ if (state.agentProcess) {
266
+ killWithEscalation(state.agentProcess);
267
+ }
268
+ return false;
269
+ })));
270
+ // Exit renewal loop if renewal failed
271
+ if (!renewResult)
272
+ break;
193
273
  }
194
274
  });
195
275
  /**
196
- * Run a Claude subprocess to work on a task.
276
+ * Run an agent subprocess to work on a task.
277
+ *
278
+ * Uses direct mutation on state object instead of Effect.runSync
279
+ * because this function uses Effect.async with process event callbacks.
197
280
  */
198
- const runClaude = (agent, task, workerId, workingDirectory, shutdownState) => Effect.async((resume) => {
281
+ const runAgent = (agent, task, workerId, workingDirectory, state) => Effect.async((resume) => {
199
282
  const prompt = buildPrompt(agent, task);
200
283
  const proc = spawn("claude", ["--dangerously-skip-permissions", "--print", prompt], {
201
284
  cwd: workingDirectory,
202
285
  env: { ...process.env, TX_WORKER_ID: workerId },
203
286
  stdio: ["pipe", "pipe", "pipe"]
204
287
  });
205
- // Store the process reference for signal handling
206
- Effect.runSync(Ref.update(shutdownState, (state) => ({
207
- ...state,
208
- claudeProcess: proc
209
- })));
288
+ // Store the process reference for signal handling (direct mutation)
289
+ state.agentProcess = proc;
210
290
  let stderr = "";
211
291
  proc.stderr?.on("data", (data) => {
212
292
  stderr += data.toString();
213
293
  });
214
294
  proc.on("close", (code) => {
215
- // Clear the process reference
216
- Effect.runSync(Ref.update(shutdownState, (state) => ({
217
- ...state,
218
- claudeProcess: null
219
- })));
295
+ // Clear the process reference (direct mutation)
296
+ state.agentProcess = null;
220
297
  if (code === 0) {
221
298
  resume(Effect.succeed({ success: true, exitCode: code ?? 0 }));
222
299
  }
@@ -229,11 +306,8 @@ const runClaude = (agent, task, workerId, workingDirectory, shutdownState) => Ef
229
306
  }
230
307
  });
231
308
  proc.on("error", (err) => {
232
- // Clear the process reference
233
- Effect.runSync(Ref.update(shutdownState, (state) => ({
234
- ...state,
235
- claudeProcess: null
236
- })));
309
+ // Clear the process reference (direct mutation)
310
+ state.agentProcess = null;
237
311
  resume(Effect.succeed({
238
312
  success: false,
239
313
  error: err.message,
@@ -242,17 +316,32 @@ const runClaude = (agent, task, workerId, workingDirectory, shutdownState) => Ef
242
316
  });
243
317
  });
244
318
  /**
245
- * Build the prompt for the Claude subprocess.
319
+ * Sanitize user-provided text for inclusion in agent prompts.
320
+ * Removes characters that could be used for prompt injection or shell escaping.
321
+ * Only allows alphanumeric, spaces, basic punctuation, and common symbols.
246
322
  */
247
- const buildPrompt = (agent, task) => `Read .claude/agents/${agent}.md for your instructions.
323
+ const sanitizeForPrompt = (text) => text.replace(/[^\w\s.,;:!?'"()\-/+=#@&%]/g, "").slice(0, 500);
324
+ /**
325
+ * Build the prompt for the agent subprocess.
326
+ * Task data is sanitized to prevent prompt injection since the agent
327
+ * runs with --dangerously-skip-permissions.
328
+ */
329
+ const buildPrompt = (agent, task) => {
330
+ // Only allow valid agent names (alphanumeric + hyphens)
331
+ const safeAgent = agent.replace(/[^a-zA-Z0-9-]/g, "");
332
+ // Task IDs follow a strict format (tx-XXXXXX) — validate shape
333
+ const safeId = /^tx-[a-z0-9]{6,12}$/.test(task.id) ? task.id : "unknown";
334
+ const safeTitle = sanitizeForPrompt(task.title);
335
+ return `Read .claude/agents/${safeAgent}.md for your instructions.
248
336
 
249
- Your assigned task: ${task.id}
250
- Task title: ${task.title}
337
+ Your assigned task: ${safeId}
338
+ Task title: ${safeTitle}
251
339
 
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.
340
+ Run \`tx show ${safeId}\` to get full details, then follow your agent instructions.
341
+ When done, run \`tx done ${safeId}\` to mark the task complete.
254
342
  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\`.`;
343
+ If you hit a blocker, update the task status: \`tx update ${safeId} --status blocked\`.`;
344
+ };
256
345
  /**
257
346
  * Select the appropriate agent based on task characteristics.
258
347
  */
@@ -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":"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"}
@@ -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"}