@telora/daemon 0.15.1 → 0.15.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 (356) hide show
  1. package/README.md +11 -11
  2. package/build-info.json +2 -2
  3. package/dist/assembly-engine.d.ts +1 -1
  4. package/dist/assembly-engine.d.ts.map +1 -1
  5. package/dist/assembly-resolvers.js +41 -41
  6. package/dist/assembly-resolvers.js.map +1 -1
  7. package/dist/branch-status.d.ts +4 -4
  8. package/dist/branch-status.d.ts.map +1 -1
  9. package/dist/branch-status.js +23 -23
  10. package/dist/branch-status.js.map +1 -1
  11. package/dist/cli/connect.js +1 -1
  12. package/dist/cli/connect.js.map +1 -1
  13. package/dist/completion-detector.d.ts +1 -1
  14. package/dist/completion-detector.js +1 -1
  15. package/dist/completion-handler.d.ts +1 -1
  16. package/dist/completion-handler.js +4 -4
  17. package/dist/completion-handler.js.map +1 -1
  18. package/dist/condition-evaluators.js +4 -4
  19. package/dist/condition-evaluators.js.map +1 -1
  20. package/dist/control-state.d.ts +6 -6
  21. package/dist/control-state.d.ts.map +1 -1
  22. package/dist/control-state.js +43 -43
  23. package/dist/control-state.js.map +1 -1
  24. package/dist/crash-recovery-scan.d.ts +1 -1
  25. package/dist/crash-recovery-scan.js +20 -20
  26. package/dist/crash-recovery-scan.js.map +1 -1
  27. package/dist/crash-recovery-types.d.ts +3 -3
  28. package/dist/crash-recovery-types.d.ts.map +1 -1
  29. package/dist/crash-recovery-types.js +2 -2
  30. package/dist/crash-recovery-types.js.map +1 -1
  31. package/dist/crash-recovery.d.ts +3 -3
  32. package/dist/crash-recovery.d.ts.map +1 -1
  33. package/dist/crash-recovery.js +21 -21
  34. package/dist/crash-recovery.js.map +1 -1
  35. package/dist/daemon-process.d.ts +1 -1
  36. package/dist/daemon-process.d.ts.map +1 -1
  37. package/dist/dag-validator.d.ts +6 -6
  38. package/dist/dag-validator.d.ts.map +1 -1
  39. package/dist/dag-validator.js +2 -2
  40. package/dist/dag-validator.js.map +1 -1
  41. package/dist/delivery-guards.d.ts +1 -1
  42. package/dist/delivery-guards.js +1 -1
  43. package/dist/delivery-lifecycle.d.ts +5 -5
  44. package/dist/delivery-lifecycle.d.ts.map +1 -1
  45. package/dist/delivery-lifecycle.js +12 -12
  46. package/dist/delivery-lifecycle.js.map +1 -1
  47. package/dist/delivery-merge.js +1 -1
  48. package/dist/delivery-merge.js.map +1 -1
  49. package/dist/dependency-resolver.d.ts +7 -7
  50. package/dist/dependency-resolver.d.ts.map +1 -1
  51. package/dist/dependency-resolver.js.map +1 -1
  52. package/dist/directive-executor.d.ts +15 -15
  53. package/dist/directive-executor.d.ts.map +1 -1
  54. package/dist/directive-executor.js +76 -76
  55. package/dist/directive-executor.js.map +1 -1
  56. package/dist/evaluation-context.d.ts +2 -2
  57. package/dist/evaluation-context.d.ts.map +1 -1
  58. package/dist/evaluation-context.js +4 -4
  59. package/dist/evaluation-context.js.map +1 -1
  60. package/dist/focus-completion-event.d.ts +97 -0
  61. package/dist/focus-completion-event.d.ts.map +1 -0
  62. package/dist/focus-completion-event.js +257 -0
  63. package/dist/focus-completion-event.js.map +1 -0
  64. package/dist/focus-completion.d.ts +85 -0
  65. package/dist/focus-completion.d.ts.map +1 -0
  66. package/dist/focus-completion.js +459 -0
  67. package/dist/focus-completion.js.map +1 -0
  68. package/dist/focus-engine.d.ts +47 -0
  69. package/dist/focus-engine.d.ts.map +1 -0
  70. package/dist/focus-engine.js +421 -0
  71. package/dist/focus-engine.js.map +1 -0
  72. package/dist/focus-executor.d.ts +55 -0
  73. package/dist/focus-executor.d.ts.map +1 -0
  74. package/dist/focus-executor.js +549 -0
  75. package/dist/focus-executor.js.map +1 -0
  76. package/dist/focus-lifecycle.d.ts +61 -0
  77. package/dist/focus-lifecycle.d.ts.map +1 -0
  78. package/dist/focus-lifecycle.js +544 -0
  79. package/dist/focus-lifecycle.js.map +1 -0
  80. package/dist/focus-merge.d.ts +77 -0
  81. package/dist/focus-merge.d.ts.map +1 -0
  82. package/dist/focus-merge.js +378 -0
  83. package/dist/focus-merge.js.map +1 -0
  84. package/dist/focus-prompt-builder.d.ts +35 -0
  85. package/dist/focus-prompt-builder.d.ts.map +1 -0
  86. package/dist/focus-prompt-builder.js +138 -0
  87. package/dist/focus-prompt-builder.js.map +1 -0
  88. package/dist/focus-provisioning.d.ts +16 -0
  89. package/dist/focus-provisioning.d.ts.map +1 -0
  90. package/dist/focus-provisioning.js +119 -0
  91. package/dist/focus-provisioning.js.map +1 -0
  92. package/dist/focus-spawn-helpers.d.ts +67 -0
  93. package/dist/focus-spawn-helpers.d.ts.map +1 -0
  94. package/dist/focus-spawn-helpers.js +160 -0
  95. package/dist/focus-spawn-helpers.js.map +1 -0
  96. package/dist/focus-team-lifecycle.d.ts +50 -0
  97. package/dist/focus-team-lifecycle.d.ts.map +1 -0
  98. package/dist/focus-team-lifecycle.js +256 -0
  99. package/dist/focus-team-lifecycle.js.map +1 -0
  100. package/dist/focus-team-state.d.ts +24 -0
  101. package/dist/focus-team-state.d.ts.map +1 -0
  102. package/dist/focus-team-state.js +43 -0
  103. package/dist/focus-team-state.js.map +1 -0
  104. package/dist/focus-worktree-state.d.ts +47 -0
  105. package/dist/focus-worktree-state.d.ts.map +1 -0
  106. package/dist/focus-worktree-state.js +104 -0
  107. package/dist/focus-worktree-state.js.map +1 -0
  108. package/dist/git-merge.d.ts +5 -5
  109. package/dist/git-merge.d.ts.map +1 -1
  110. package/dist/git-merge.js +5 -5
  111. package/dist/git-merge.js.map +1 -1
  112. package/dist/git-state-detector.d.ts +1 -1
  113. package/dist/git-state-detector.js +9 -9
  114. package/dist/git-state-detector.js.map +1 -1
  115. package/dist/git-utils.d.ts +1 -1
  116. package/dist/git-utils.js +1 -1
  117. package/dist/git.d.ts +2 -2
  118. package/dist/git.d.ts.map +1 -1
  119. package/dist/git.js +3 -3
  120. package/dist/git.js.map +1 -1
  121. package/dist/heartbeat.d.ts +4 -4
  122. package/dist/heartbeat.d.ts.map +1 -1
  123. package/dist/heartbeat.js +7 -7
  124. package/dist/heartbeat.js.map +1 -1
  125. package/dist/index.d.ts +1 -1
  126. package/dist/index.js +10 -10
  127. package/dist/index.js.map +1 -1
  128. package/dist/listener-auto-advance.d.ts +2 -2
  129. package/dist/listener-auto-advance.js +21 -21
  130. package/dist/listener-auto-advance.js.map +1 -1
  131. package/dist/listener.d.ts +12 -12
  132. package/dist/listener.d.ts.map +1 -1
  133. package/dist/listener.js +80 -75
  134. package/dist/listener.js.map +1 -1
  135. package/dist/loop-engine.d.ts +20 -20
  136. package/dist/loop-engine.d.ts.map +1 -1
  137. package/dist/loop-engine.js +82 -82
  138. package/dist/loop-engine.js.map +1 -1
  139. package/dist/loop-event-bus.d.ts +5 -5
  140. package/dist/loop-event-bus.d.ts.map +1 -1
  141. package/dist/loop-event-bus.js +3 -3
  142. package/dist/loop-llm-client.d.ts +1 -1
  143. package/dist/loop-llm-client.js +1 -1
  144. package/dist/loop-variance.d.ts +1 -1
  145. package/dist/loop-variance.js +1 -1
  146. package/dist/merge-detector.d.ts +6 -6
  147. package/dist/merge-detector.d.ts.map +1 -1
  148. package/dist/merge-detector.js +47 -47
  149. package/dist/merge-detector.js.map +1 -1
  150. package/dist/otlp-log-parser.js +2 -2
  151. package/dist/otlp-log-parser.js.map +1 -1
  152. package/dist/otlp-metric-parser.js +1 -1
  153. package/dist/otlp-metric-parser.js.map +1 -1
  154. package/dist/otlp-receiver.d.ts +1 -1
  155. package/dist/otlp-receiver.js +7 -7
  156. package/dist/otlp-receiver.js.map +1 -1
  157. package/dist/otlp-types.d.ts +1 -1
  158. package/dist/otlp-types.d.ts.map +1 -1
  159. package/dist/otlp-types.js +3 -3
  160. package/dist/otlp-types.js.map +1 -1
  161. package/dist/output-monitor.d.ts +6 -6
  162. package/dist/output-monitor.d.ts.map +1 -1
  163. package/dist/output-monitor.js +11 -11
  164. package/dist/output-monitor.js.map +1 -1
  165. package/dist/planning-prompt-builder.d.ts +17 -15
  166. package/dist/planning-prompt-builder.d.ts.map +1 -1
  167. package/dist/planning-prompt-builder.js +34 -32
  168. package/dist/planning-prompt-builder.js.map +1 -1
  169. package/dist/pm/mitigation-correlator.d.ts +7 -7
  170. package/dist/pm/mitigation-correlator.d.ts.map +1 -1
  171. package/dist/pm/mitigation-correlator.js +33 -33
  172. package/dist/pm/mitigation-correlator.js.map +1 -1
  173. package/dist/pm-engine.js +1 -1
  174. package/dist/pm-engine.js.map +1 -1
  175. package/dist/prompt-builder.d.ts +1 -1
  176. package/dist/prompt-builder.js +9 -9
  177. package/dist/prompt-builder.js.map +1 -1
  178. package/dist/prompts/starter-prompt.d.ts +2 -2
  179. package/dist/prompts/starter-prompt.d.ts.map +1 -1
  180. package/dist/prompts/starter-prompt.js +6 -6
  181. package/dist/qa-crash-recovery.d.ts +10 -10
  182. package/dist/qa-crash-recovery.d.ts.map +1 -1
  183. package/dist/qa-crash-recovery.js +32 -32
  184. package/dist/qa-crash-recovery.js.map +1 -1
  185. package/dist/qa-dev-server.d.ts +3 -3
  186. package/dist/qa-dev-server.d.ts.map +1 -1
  187. package/dist/qa-dev-server.js +3 -3
  188. package/dist/qa-dev-server.js.map +1 -1
  189. package/dist/qa-orchestrator.d.ts +18 -18
  190. package/dist/qa-orchestrator.d.ts.map +1 -1
  191. package/dist/qa-orchestrator.js +47 -47
  192. package/dist/qa-orchestrator.js.map +1 -1
  193. package/dist/qa-provisioner.d.ts +3 -3
  194. package/dist/qa-provisioner.d.ts.map +1 -1
  195. package/dist/qa-provisioner.js +14 -14
  196. package/dist/qa-provisioner.js.map +1 -1
  197. package/dist/qa-state.d.ts +10 -10
  198. package/dist/qa-state.d.ts.map +1 -1
  199. package/dist/qa-state.js +11 -11
  200. package/dist/qa-state.js.map +1 -1
  201. package/dist/queries/control-state.d.ts +5 -5
  202. package/dist/queries/control-state.d.ts.map +1 -1
  203. package/dist/queries/control-state.js +4 -4
  204. package/dist/queries/control-state.js.map +1 -1
  205. package/dist/queries/deliveries.d.ts +28 -24
  206. package/dist/queries/deliveries.d.ts.map +1 -1
  207. package/dist/queries/deliveries.js +32 -28
  208. package/dist/queries/deliveries.js.map +1 -1
  209. package/dist/queries/focuses.d.ts +97 -0
  210. package/dist/queries/focuses.d.ts.map +1 -0
  211. package/dist/queries/focuses.js +136 -0
  212. package/dist/queries/focuses.js.map +1 -0
  213. package/dist/queries/index.d.ts +3 -3
  214. package/dist/queries/index.d.ts.map +1 -1
  215. package/dist/queries/index.js +2 -2
  216. package/dist/queries/index.js.map +1 -1
  217. package/dist/queries/qa.d.ts +16 -16
  218. package/dist/queries/qa.d.ts.map +1 -1
  219. package/dist/queries/qa.js +22 -22
  220. package/dist/queries/qa.js.map +1 -1
  221. package/dist/queries/schemas.d.ts +40 -34
  222. package/dist/queries/schemas.d.ts.map +1 -1
  223. package/dist/queries/schemas.js +31 -26
  224. package/dist/queries/schemas.js.map +1 -1
  225. package/dist/queries/sessions.d.ts +1 -1
  226. package/dist/queries/sessions.d.ts.map +1 -1
  227. package/dist/queries/sessions.js +2 -2
  228. package/dist/queries/sessions.js.map +1 -1
  229. package/dist/queries/shared.js +10 -10
  230. package/dist/queries/shared.js.map +1 -1
  231. package/dist/queries/workflows.d.ts +1 -1
  232. package/dist/queries/workflows.js +1 -1
  233. package/dist/queries/worktrees.d.ts +7 -7
  234. package/dist/queries/worktrees.d.ts.map +1 -1
  235. package/dist/queries/worktrees.js +7 -7
  236. package/dist/queries/worktrees.js.map +1 -1
  237. package/dist/review-defect-detector.d.ts +125 -0
  238. package/dist/review-defect-detector.d.ts.map +1 -0
  239. package/dist/review-defect-detector.js +289 -0
  240. package/dist/review-defect-detector.js.map +1 -0
  241. package/dist/session-lifecycle.d.ts +17 -17
  242. package/dist/session-lifecycle.d.ts.map +1 -1
  243. package/dist/session-lifecycle.js +82 -82
  244. package/dist/session-lifecycle.js.map +1 -1
  245. package/dist/spawn-cooldown.d.ts +8 -8
  246. package/dist/spawn-cooldown.d.ts.map +1 -1
  247. package/dist/spawn-cooldown.js +15 -15
  248. package/dist/spawn-cooldown.js.map +1 -1
  249. package/dist/spawn-environment.d.ts +2 -2
  250. package/dist/spawn-environment.d.ts.map +1 -1
  251. package/dist/spawn-environment.js +3 -3
  252. package/dist/spawn-environment.js.map +1 -1
  253. package/dist/spawner-lifecycle.d.ts +2 -2
  254. package/dist/spawner-lifecycle.d.ts.map +1 -1
  255. package/dist/spawner-lifecycle.js +3 -3
  256. package/dist/spawner-lifecycle.js.map +1 -1
  257. package/dist/spawner-resolution.d.ts +3 -3
  258. package/dist/spawner-resolution.d.ts.map +1 -1
  259. package/dist/spawner-resolution.js +4 -4
  260. package/dist/spawner-resolution.js.map +1 -1
  261. package/dist/spawner-stream-handlers.js +2 -2
  262. package/dist/spawner-stream-handlers.js.map +1 -1
  263. package/dist/spawner.d.ts +1 -1
  264. package/dist/spawner.d.ts.map +1 -1
  265. package/dist/spawner.js +6 -6
  266. package/dist/spawner.js.map +1 -1
  267. package/dist/stage-classifier.d.ts +1 -1
  268. package/dist/stage-classifier.js +1 -1
  269. package/dist/state-cascade.d.ts +25 -25
  270. package/dist/state-cascade.d.ts.map +1 -1
  271. package/dist/state-cascade.js +89 -89
  272. package/dist/state-cascade.js.map +1 -1
  273. package/dist/strategy-completion-event.d.ts +37 -3
  274. package/dist/strategy-completion-event.d.ts.map +1 -1
  275. package/dist/strategy-completion-event.js +78 -9
  276. package/dist/strategy-completion-event.js.map +1 -1
  277. package/dist/strategy-completion.d.ts +11 -0
  278. package/dist/strategy-completion.d.ts.map +1 -1
  279. package/dist/strategy-completion.js +22 -1
  280. package/dist/strategy-completion.js.map +1 -1
  281. package/dist/strategy-executor.d.ts.map +1 -1
  282. package/dist/strategy-executor.js +46 -14
  283. package/dist/strategy-executor.js.map +1 -1
  284. package/dist/strategy-merge.d.ts.map +1 -1
  285. package/dist/strategy-merge.js +4 -0
  286. package/dist/strategy-merge.js.map +1 -1
  287. package/dist/strategy-team-lifecycle.d.ts.map +1 -1
  288. package/dist/strategy-team-lifecycle.js +3 -0
  289. package/dist/strategy-team-lifecycle.js.map +1 -1
  290. package/dist/supabase.d.ts +4 -4
  291. package/dist/supabase.d.ts.map +1 -1
  292. package/dist/supabase.js +5 -5
  293. package/dist/supabase.js.map +1 -1
  294. package/dist/task-converter.d.ts +4 -4
  295. package/dist/task-converter.d.ts.map +1 -1
  296. package/dist/task-converter.js +1 -1
  297. package/dist/task-converter.js.map +1 -1
  298. package/dist/team-prompt-base.d.ts +59 -19
  299. package/dist/team-prompt-base.d.ts.map +1 -1
  300. package/dist/team-prompt-base.js +206 -25
  301. package/dist/team-prompt-base.js.map +1 -1
  302. package/dist/team-spawner.d.ts +9 -9
  303. package/dist/team-spawner.d.ts.map +1 -1
  304. package/dist/team-spawner.js +87 -83
  305. package/dist/team-spawner.js.map +1 -1
  306. package/dist/telemetry-writer.d.ts +2 -2
  307. package/dist/telemetry-writer.d.ts.map +1 -1
  308. package/dist/templates/claude-md.js +8 -8
  309. package/dist/templates/claude-settings.d.ts +1 -1
  310. package/dist/templates/claude-settings.js +2 -2
  311. package/dist/templates/claude-settings.js.map +1 -1
  312. package/dist/trigger-executor.d.ts +4 -4
  313. package/dist/trigger-executor.d.ts.map +1 -1
  314. package/dist/trigger-executor.js +11 -11
  315. package/dist/trigger-executor.js.map +1 -1
  316. package/dist/types/dag.d.ts +1 -1
  317. package/dist/types/delivery.d.ts +3 -3
  318. package/dist/types/delivery.d.ts.map +1 -1
  319. package/dist/types/focus.d.ts +214 -0
  320. package/dist/types/focus.d.ts.map +1 -0
  321. package/dist/types/focus.js +5 -0
  322. package/dist/types/focus.js.map +1 -0
  323. package/dist/types/index.d.ts +1 -1
  324. package/dist/types/index.d.ts.map +1 -1
  325. package/dist/types/index.js +1 -1
  326. package/dist/types/index.js.map +1 -1
  327. package/dist/types/merge.d.ts +1 -1
  328. package/dist/types/session.d.ts +2 -2
  329. package/dist/types/session.d.ts.map +1 -1
  330. package/dist/types/strategy.d.ts +7 -0
  331. package/dist/types/strategy.d.ts.map +1 -1
  332. package/dist/unified-engine-lifecycle.js +11 -11
  333. package/dist/unified-engine-lifecycle.js.map +1 -1
  334. package/dist/unified-init.d.ts +1 -1
  335. package/dist/unified-init.js +9 -9
  336. package/dist/unified-init.js.map +1 -1
  337. package/dist/unified-shell-config.d.ts +4 -4
  338. package/dist/unified-shell-config.d.ts.map +1 -1
  339. package/dist/unified-shell-config.js +5 -5
  340. package/dist/unified-shell-config.js.map +1 -1
  341. package/dist/unified-shell-status.js +3 -3
  342. package/dist/unified-shell-status.js.map +1 -1
  343. package/dist/unified-shell.d.ts +1 -1
  344. package/dist/unified-shell.js +4 -4
  345. package/dist/unified-shell.js.map +1 -1
  346. package/dist/workflow-engine.d.ts +1 -1
  347. package/dist/workflow-engine.d.ts.map +1 -1
  348. package/dist/worktree-focus.d.ts +69 -0
  349. package/dist/worktree-focus.d.ts.map +1 -0
  350. package/dist/worktree-focus.js +214 -0
  351. package/dist/worktree-focus.js.map +1 -0
  352. package/dist/worktree.d.ts +10 -10
  353. package/dist/worktree.d.ts.map +1 -1
  354. package/dist/worktree.js +39 -39
  355. package/dist/worktree.js.map +1 -1
  356. package/package.json +2 -2
@@ -1,20 +1,20 @@
1
1
  /**
2
- * Session lifecycle management for strategy teams.
2
+ * Session lifecycle management for focus teams.
3
3
  *
4
- * Extracted from strategy-executor.ts. Contains functions for session
4
+ * Extracted from focus-executor.ts. Contains functions for session
5
5
  * start/end, cleanup, error handling, team completion detection,
6
6
  * termination, and deactivation checks.
7
7
  */
8
8
  import { updateSession } from './supabase.js';
9
- import { getReadyStrategies } from './supabase.js';
9
+ import { getReadyFocuses } from './supabase.js';
10
10
  import { withRetry, sendMessage } from '@telora/daemon-core';
11
11
  import { recordActivity, clearNarration } from './heartbeat.js';
12
- import { buildWakeMessage } from './strategy-prompt-builder.js';
13
- import { getStrategyDeliveries, getStrategyIssues } from './queries/strategies.js';
12
+ import { buildWakeMessage } from './focus-prompt-builder.js';
13
+ import { getFocusDeliveries, getFocusIssues } from './queries/focuses.js';
14
14
  import { OPEN_ISSUE_STATUSES } from './constants.js';
15
- import { getActiveTeams, } from './strategy-team-state.js';
16
- import { mergeStrategyBranch, escalateMergeConflict } from './strategy-merge.js';
17
- import { handleTeamCompletion, } from './strategy-completion.js';
15
+ import { getActiveTeams, } from './focus-team-state.js';
16
+ import { mergeFocusBranch, escalateMergeConflict } from './focus-merge.js';
17
+ import { handleTeamCompletion, } from './focus-completion.js';
18
18
  import { isStatusTerminal, isStatusAgentActionable } from './stage-classifier.js';
19
19
  import { getGovernor } from './team-spawner.js';
20
20
  /**
@@ -22,22 +22,22 @@ import { getGovernor } from './team-spawner.js';
22
22
  *
23
23
  * Queries current delivery and issue state to decide whether to:
24
24
  * - Terminate the team (all deliveries terminal or no open issues remain), or
25
- * - Send a mid-strategy handoff message with remaining work.
25
+ * - Send a mid-focus handoff message with remaining work.
26
26
  *
27
- * Extracted from the inline event callback in spawnStrategyTeam to eliminate
27
+ * Extracted from the inline event callback in spawnFocusTeam to eliminate
28
28
  * deep nesting inside an async Promise chain inside an event listener.
29
29
  */
30
30
  async function handleCompletionEvent(ctx) {
31
- const { strategyId, strategyName, teamState, completionDetector, proc } = ctx;
31
+ const { focusId, focusName, teamState, completionDetector, proc } = ctx;
32
32
  const [currentDeliveries, currentIssues] = await Promise.all([
33
- getStrategyDeliveries(strategyId),
34
- getStrategyIssues(strategyId),
33
+ getFocusDeliveries(focusId),
34
+ getFocusIssues(focusId),
35
35
  ]);
36
36
  // If all deliveries are terminal, shut down
37
37
  const allTerminal = currentDeliveries.every(d => isStatusTerminal(d.executionStatus ?? ''));
38
38
  if (allTerminal) {
39
- console.log(`[strategy-executor] All deliveries terminal for "${strategyName}" -- terminating team`);
40
- terminateTeam(strategyId);
39
+ console.log(`[focus-executor] All deliveries terminal for "${focusName}" -- terminating team`);
40
+ terminateTeam(focusId);
41
41
  return;
42
42
  }
43
43
  // Check if there are actionable deliveries with open issues
@@ -45,21 +45,21 @@ async function handleCompletionEvent(ctx) {
45
45
  .filter(d => isStatusAgentActionable(d.executionStatus ?? ''))
46
46
  .map(d => d.id));
47
47
  if (actionableDeliveryIds.size === 0) {
48
- console.log(`[strategy-executor] No actionable deliveries for "${strategyName}" -- terminating team`);
49
- terminateTeam(strategyId);
48
+ console.log(`[focus-executor] No actionable deliveries for "${focusName}" -- terminating team`);
49
+ terminateTeam(focusId);
50
50
  return;
51
51
  }
52
52
  // Check for open issues across actionable deliveries.
53
53
  const hasOpenIssues = currentIssues.some(i => actionableDeliveryIds.has(i.deliveryId) && OPEN_ISSUE_STATUSES.has(i.status));
54
54
  if (!hasOpenIssues) {
55
- console.log(`[strategy-executor] Actionable deliveries have no open issues for "${strategyName}" -- ` +
55
+ console.log(`[focus-executor] Actionable deliveries have no open issues for "${focusName}" -- ` +
56
56
  `terminating team. Auto-advance will handle verify transition.`);
57
- terminateTeam(strategyId);
57
+ terminateTeam(focusId);
58
58
  return;
59
59
  }
60
- // Mid-strategy handoff: actionable work with open issues remains.
60
+ // Mid-focus handoff: actionable work with open issues remains.
61
61
  // Send work immediately and reset the completion detector for the next cycle.
62
- console.log(`[strategy-executor] Mid-strategy handoff for "${strategyName}" -- sending new work`);
62
+ console.log(`[focus-executor] Mid-focus handoff for "${focusName}" -- sending new work`);
63
63
  const message = buildWakeMessage(currentDeliveries, currentIssues, teamState.knownDeliveryIds);
64
64
  // Update tracking state
65
65
  for (const d of currentDeliveries) {
@@ -77,34 +77,34 @@ async function handleCompletionEvent(ctx) {
77
77
  * resume-failure retry, cleanup, and error reporting.
78
78
  */
79
79
  export function attachSessionLifecycle(ctx) {
80
- const { proc, params, teamState, sessionId, strategyId, strategyName, completionDetector, activityTracker, logStreams, resumeId, spawnedAt, config, } = ctx;
80
+ const { proc, params, teamState, sessionId, focusId, focusName, completionDetector, activityTracker, logStreams, resumeId, spawnedAt, config, } = ctx;
81
81
  const { stdoutLogStream, stderrStream, jsonlStream } = logStreams;
82
82
  const governor = getGovernor();
83
83
  // Handle completion -- check for more work or terminate.
84
- // No idle phase: if actionable work remains, send it immediately (mid-strategy
84
+ // No idle phase: if actionable work remains, send it immediately (mid-focus
85
85
  // handoff). If all work is done, terminate. A fresh team is spawned if new
86
86
  // deliveries arrive later (~$0.50-1.00 exploration cost, but clean context).
87
87
  completionDetector.on('complete', (info) => {
88
- console.log(`[strategy-executor] Team lead for "${strategyName}" completed work cycle: ` +
88
+ console.log(`[focus-executor] Team lead for "${focusName}" completed work cycle: ` +
89
89
  `${info.turnCount} turns, $${info.totalCostUsd.toFixed(4)}`);
90
- handleCompletionEvent({ strategyId, strategyName, teamState, completionDetector, proc }).catch(err => {
91
- console.warn(`[strategy-executor] Failed to check delivery state for "${strategyName}":`, err.message);
90
+ handleCompletionEvent({ focusId, focusName, teamState, completionDetector, proc }).catch(err => {
91
+ console.warn(`[focus-executor] Failed to check delivery state for "${focusName}":`, err.message);
92
92
  // Fallback: terminate to avoid idle money burn.
93
- terminateTeam(strategyId);
93
+ terminateTeam(focusId);
94
94
  });
95
95
  });
96
96
  // Handle process exit
97
97
  proc.on('close', async (code, signal) => {
98
- console.log(`[strategy-executor] Team lead for "${strategyName}" exited (code: ${code}, signal: ${signal})`);
98
+ console.log(`[focus-executor] Team lead for "${focusName}" exited (code: ${code}, signal: ${signal})`);
99
99
  // Detect --resume failure: if the process exits quickly with a non-zero
100
100
  // code and --resume was used, retry without resume. This handles cases
101
101
  // where the session file was cleaned up, corrupted, or incompatible.
102
102
  const RESUME_FAILURE_THRESHOLD_MS = 15_000;
103
103
  const elapsedMs = Date.now() - spawnedAt;
104
104
  if (resumeId && code !== 0 && code !== null && elapsedMs < RESUME_FAILURE_THRESHOLD_MS) {
105
- console.warn(`[strategy-executor] Resume failed for "${strategyName}" (exited in ${elapsedMs}ms), retrying without resume`);
105
+ console.warn(`[focus-executor] Resume failed for "${focusName}" (exited in ${elapsedMs}ms), retrying without resume`);
106
106
  // Release governor slot and clean up minimal state
107
- governor?.releaseSlot('strategy');
107
+ governor?.releaseSlot('focus');
108
108
  completionDetector.destroy();
109
109
  stdoutLogStream.end();
110
110
  stderrStream.end();
@@ -119,18 +119,18 @@ export function attachSessionLifecycle(ctx) {
119
119
  });
120
120
  }
121
121
  catch (updateErr) {
122
- console.warn('[strategy-executor] Failed to update session after resume failure:', updateErr.message);
122
+ console.warn('[focus-executor] Failed to update session after resume failure:', updateErr.message);
123
123
  }
124
124
  teamState.phase = 'terminated';
125
125
  const activeTeams = getActiveTeams();
126
- activeTeams.delete(strategyId);
126
+ activeTeams.delete(focusId);
127
127
  // Re-spawn without --resume (dynamic import to avoid circular dependency)
128
- const { spawnStrategyTeam } = await import('./team-spawner.js');
129
- await spawnStrategyTeam({ ...params, lastClaudeSessionId: null });
128
+ const { spawnFocusTeam } = await import('./team-spawner.js');
129
+ await spawnFocusTeam({ ...params, lastClaudeSessionId: null });
130
130
  return;
131
131
  }
132
132
  // Release governor slot (if governor is configured)
133
- governor?.releaseSlot('strategy');
133
+ governor?.releaseSlot('focus');
134
134
  // Null out stdin so post-exit merge logic falls through to the
135
135
  // fallback resolution agent instead of sending messages to a dead process.
136
136
  teamState.leadStdin = null;
@@ -139,7 +139,7 @@ export function attachSessionLifecycle(ctx) {
139
139
  await activityTracker.finalFlush();
140
140
  }
141
141
  catch (err) {
142
- console.warn('[strategy-executor] activityTracker.finalFlush failed:', err.message);
142
+ console.warn('[focus-executor] activityTracker.finalFlush failed:', err.message);
143
143
  }
144
144
  // Clean up streams
145
145
  completionDetector.destroy();
@@ -156,9 +156,9 @@ export function attachSessionLifecycle(ctx) {
156
156
  });
157
157
  });
158
158
  proc.on('error', async (err) => {
159
- console.error(`[strategy-executor] Team lead for "${strategyName}" error:`, err.message);
159
+ console.error(`[focus-executor] Team lead for "${focusName}" error:`, err.message);
160
160
  // Release governor slot (if governor is configured)
161
- governor?.releaseSlot('strategy');
161
+ governor?.releaseSlot('focus');
162
162
  try {
163
163
  await withRetry(() => updateSession(sessionId, {
164
164
  status: 'failed',
@@ -168,37 +168,37 @@ export function attachSessionLifecycle(ctx) {
168
168
  }), { maxAttempts: 3, baseDelayMs: 1000, label: 'session-update-error' });
169
169
  }
170
170
  catch (updateErr) {
171
- console.warn(`[strategy-executor] Failed to update session after retries:`, updateErr.message);
171
+ console.warn(`[focus-executor] Failed to update session after retries:`, updateErr.message);
172
172
  }
173
173
  completionDetector.destroy();
174
174
  stdoutLogStream.end();
175
175
  stderrStream.end();
176
176
  jsonlStream.end();
177
- // Worktree is strategy-owned -- do not remove on team error
177
+ // Worktree is focus-owned -- do not remove on team error
178
178
  teamState.phase = 'terminated';
179
179
  const activeTeams = getActiveTeams();
180
- activeTeams.delete(strategyId);
180
+ activeTeams.delete(focusId);
181
181
  });
182
182
  }
183
183
  // ── Team lifecycle management ────────────────────────────────────────
184
184
  /**
185
- * Terminate a strategy team.
185
+ * Terminate a focus team.
186
186
  *
187
187
  * Sends a deactivation message via stdin (if open) before SIGTERM
188
188
  * to allow the team lead to process the shutdown gracefully.
189
189
  */
190
- export function terminateTeam(strategyId) {
190
+ export function terminateTeam(focusId) {
191
191
  const activeTeams = getActiveTeams();
192
- const team = activeTeams.get(strategyId);
192
+ const team = activeTeams.get(focusId);
193
193
  if (!team || !team.leadPid)
194
194
  return false;
195
195
  // Warn if terminating while conflict resolution is in progress
196
196
  if (team.resolvingMergeConflict) {
197
- console.warn(`[strategy-executor] Terminating team "${team.strategyName}" while merge conflict resolution is in progress`);
197
+ console.warn(`[focus-executor] Terminating team "${team.focusName}" while merge conflict resolution is in progress`);
198
198
  }
199
- console.log(`[strategy-executor] Terminating team for strategy "${team.strategyName}" (phase: ${team.phase})`);
199
+ console.log(`[focus-executor] Terminating team for focus "${team.focusName}" (phase: ${team.phase})`);
200
200
  team.phase = 'shutting_down';
201
- clearNarration(strategyId);
201
+ clearNarration(focusId);
202
202
  try {
203
203
  // Send a deactivation message first to let the team lead process it
204
204
  if (team.leadStdin) {
@@ -209,7 +209,7 @@ export function terminateTeam(strategyId) {
209
209
  team.leadStdin?.end();
210
210
  }
211
211
  catch (e) {
212
- console.debug('[strategy-executor] stdin.end() failed (may already be closed):', e.message);
212
+ console.debug('[focus-executor] stdin.end() failed (may already be closed):', e.message);
213
213
  }
214
214
  }, 5000);
215
215
  }
@@ -217,48 +217,48 @@ export function terminateTeam(strategyId) {
217
217
  process.kill(team.leadPid, 'SIGTERM');
218
218
  // Escalate to SIGKILL after timeout
219
219
  setTimeout(() => {
220
- if (activeTeams.has(strategyId) && team.leadPid) {
220
+ if (activeTeams.has(focusId) && team.leadPid) {
221
221
  try {
222
222
  process.kill(team.leadPid, 'SIGKILL');
223
223
  }
224
224
  catch (e) {
225
- console.debug('[strategy-executor] SIGKILL failed (process may have exited):', e.message);
225
+ console.debug('[focus-executor] SIGKILL failed (process may have exited):', e.message);
226
226
  }
227
227
  }
228
228
  }, 30000);
229
229
  return true;
230
230
  }
231
231
  catch (e) {
232
- console.debug(`[strategy-executor] terminateTeam: process may have already exited:`, e.message);
232
+ console.debug(`[focus-executor] terminateTeam: process may have already exited:`, e.message);
233
233
  return false;
234
234
  }
235
235
  }
236
236
  /**
237
237
  * Wait for a team's process to exit (leave activeTeams).
238
238
  *
239
- * Polls activeTeams until the strategy is no longer present,
239
+ * Polls activeTeams until the focus is no longer present,
240
240
  * which happens when handleTeamCompletion runs on the 'close' event.
241
241
  * If the timeout expires, sends SIGKILL and waits briefly.
242
242
  *
243
- * @param strategyId - Strategy to wait for
243
+ * @param focusId - Focus to wait for
244
244
  * @param timeoutMs - Max wait time in ms (default 30s)
245
245
  * @returns true if team exited within timeout, false if forced
246
246
  */
247
- export async function waitForTeamExit(strategyId, timeoutMs = 30000) {
247
+ export async function waitForTeamExit(focusId, timeoutMs = 30000) {
248
248
  const activeTeams = getActiveTeams();
249
- const team = activeTeams.get(strategyId);
249
+ const team = activeTeams.get(focusId);
250
250
  if (!team)
251
251
  return true; // Already gone
252
252
  const deadline = Date.now() + timeoutMs;
253
253
  const pollMs = 500;
254
254
  while (Date.now() < deadline) {
255
- if (!activeTeams.has(strategyId))
255
+ if (!activeTeams.has(focusId))
256
256
  return true;
257
257
  await new Promise(resolve => setTimeout(resolve, pollMs));
258
258
  }
259
259
  // Timeout expired -- escalate to SIGKILL
260
260
  if (team.leadPid) {
261
- console.warn(`[strategy-executor] Team "${team.strategyName}" did not exit within ${timeoutMs}ms, sending SIGKILL`);
261
+ console.warn(`[focus-executor] Team "${team.focusName}" did not exit within ${timeoutMs}ms, sending SIGKILL`);
262
262
  try {
263
263
  process.kill(team.leadPid, 'SIGKILL');
264
264
  }
@@ -266,42 +266,42 @@ export async function waitForTeamExit(strategyId, timeoutMs = 30000) {
266
266
  // Brief wait for SIGKILL to take effect
267
267
  await new Promise(resolve => setTimeout(resolve, 2000));
268
268
  }
269
- return !activeTeams.has(strategyId);
269
+ return !activeTeams.has(focusId);
270
270
  }
271
271
  /**
272
272
  * Terminate all active teams.
273
273
  */
274
274
  export function terminateAllTeams() {
275
275
  const activeTeams = getActiveTeams();
276
- for (const strategyId of activeTeams.keys()) {
277
- terminateTeam(strategyId);
276
+ for (const focusId of activeTeams.keys()) {
277
+ terminateTeam(focusId);
278
278
  }
279
279
  }
280
280
  /**
281
- * Detect strategies that have been deactivated (agent role removed)
281
+ * Detect focuses that have been deactivated (agent role removed)
282
282
  * and shut down their active teams.
283
283
  */
284
- export async function detectDeactivatedStrategies(config) {
284
+ export async function detectDeactivatedFocuses(config) {
285
285
  const activeTeams = getActiveTeams();
286
286
  if (activeTeams.size === 0)
287
287
  return;
288
288
  try {
289
- const readyStrategies = await getReadyStrategies(config.organizationId, config.productId);
290
- const activeStrategyIds = new Set(readyStrategies.map(s => s.strategy_id));
291
- for (const [strategyId, team] of activeTeams) {
292
- if (!activeStrategyIds.has(strategyId) && team.phase !== 'shutting_down' && team.phase !== 'terminated') {
293
- console.log(`[strategy-executor] Strategy "${team.strategyName}" deactivated -- shutting down team`);
294
- terminateTeam(strategyId);
289
+ const readyFocuses = await getReadyFocuses(config.organizationId, config.productId);
290
+ const activeFocusIds = new Set(readyFocuses.map(s => s.focus_id));
291
+ for (const [focusId, team] of activeTeams) {
292
+ if (!activeFocusIds.has(focusId) && team.phase !== 'shutting_down' && team.phase !== 'terminated') {
293
+ console.log(`[focus-executor] Focus "${team.focusName}" deactivated -- shutting down team`);
294
+ terminateTeam(focusId);
295
295
  }
296
296
  }
297
297
  }
298
298
  catch (err) {
299
- console.warn(`[strategy-executor] Failed to check for deactivated strategies:`, err.message);
299
+ console.warn(`[focus-executor] Failed to check for deactivated focuses:`, err.message);
300
300
  }
301
301
  }
302
302
  /**
303
303
  * Check active teams for newly completed deliveries and merge
304
- * the strategy branch to integration incrementally.
304
+ * the focus branch to integration incrementally.
305
305
  *
306
306
  * Called from the poll loop. For each active team, queries delivery
307
307
  * statuses and triggers a merge when any delivery reaches verify/done
@@ -309,42 +309,42 @@ export async function detectDeactivatedStrategies(config) {
309
309
  *
310
310
  * After processing merges, checks if ALL active deliveries are terminal
311
311
  * and merged. If so, terminates the team proactively since no more work
312
- * remains. The strategy stays active in the DB -- if new deliveries
312
+ * remains. The focus stays active in the DB -- if new deliveries
313
313
  * arrive later, the next poll cycle spawns a fresh team.
314
314
  */
315
315
  export async function checkAndMergeCompletedDeliveries(config) {
316
316
  const activeTeams = getActiveTeams();
317
317
  if (activeTeams.size === 0)
318
318
  return;
319
- for (const [strategyId, team] of activeTeams) {
319
+ for (const [focusId, team] of activeTeams) {
320
320
  // Only check teams that are actively executing
321
321
  if (team.phase !== 'executing')
322
322
  continue;
323
323
  // Skip merge attempts while team lead is resolving a merge conflict
324
324
  if (team.resolvingMergeConflict) {
325
- console.log(`[strategy-executor] Skipping merge check for "${team.strategyName}" -- conflict resolution in progress`);
325
+ console.log(`[focus-executor] Skipping merge check for "${team.focusName}" -- conflict resolution in progress`);
326
326
  continue;
327
327
  }
328
328
  try {
329
- const deliveries = await getStrategyDeliveries(strategyId);
329
+ const deliveries = await getFocusDeliveries(focusId);
330
330
  // Find deliveries in verify/done that we haven't merged for yet
331
331
  const newlyCompleted = deliveries.filter(d => (d.executionStatus === 'verify' || d.executionStatus === 'done')
332
332
  && !team.mergedDeliveryIds.has(d.id));
333
333
  if (newlyCompleted.length > 0) {
334
334
  const completedNames = newlyCompleted.map(d => d.name).join(', ');
335
- console.log(`[strategy-executor] ${newlyCompleted.length} delivery(ies) completed mid-flight for "${team.strategyName}": ${completedNames} -- merging to integration`);
335
+ console.log(`[focus-executor] ${newlyCompleted.length} delivery(ies) completed mid-flight for "${team.focusName}": ${completedNames} -- merging to integration`);
336
336
  // One merge covers all completed deliveries (same branch).
337
337
  // Pass the newly-completed IDs so git state is recorded only for
338
338
  // these — never for queued/planning deliveries on the same branch.
339
- const mergeResult = await mergeStrategyBranch(config, team, team.leadSessionId ?? '', team.branchName, newlyCompleted.map(d => d.id));
339
+ const mergeResult = await mergeFocusBranch(config, team, team.leadSessionId ?? '', team.branchName, newlyCompleted.map(d => d.id));
340
340
  if (mergeResult.mergeSucceeded) {
341
- // Track merged deliveries (git state already reported by mergeStrategyBranch)
341
+ // Track merged deliveries (git state already reported by mergeFocusBranch)
342
342
  for (const d of newlyCompleted) {
343
343
  team.mergedDeliveryIds.add(d.id);
344
344
  }
345
345
  }
346
346
  else {
347
- console.warn(`[strategy-executor] Mid-flight merge failed for "${team.strategyName}": ${mergeResult.exitReason}`);
347
+ console.warn(`[focus-executor] Mid-flight merge failed for "${team.focusName}": ${mergeResult.exitReason}`);
348
348
  // Escalate merge conflict for each unmerged delivery
349
349
  for (const d of newlyCompleted) {
350
350
  escalateMergeConflict({
@@ -355,7 +355,7 @@ export async function checkAndMergeCompletedDeliveries(config) {
355
355
  branchName: team.branchName,
356
356
  integrationBranch: config.integrationBranch,
357
357
  mergeError: mergeResult.exitReason,
358
- }).catch(err => console.warn(`[strategy-executor] escalateMergeConflict failed for ${d.id}:`, err.message));
358
+ }).catch(err => console.warn(`[focus-executor] escalateMergeConflict failed for ${d.id}:`, err.message));
359
359
  }
360
360
  // Don't mark as merged -- will retry next poll. Team continues working.
361
361
  }
@@ -365,15 +365,15 @@ export async function checkAndMergeCompletedDeliveries(config) {
365
365
  // Otherwise the team is idle, waiting for the daemon to push new work.
366
366
  const teamWork = deliveries.filter(d => isStatusAgentActionable(d.executionStatus ?? ''));
367
367
  if (teamWork.length > 0) {
368
- console.log(`[strategy-executor] ${teamWork.length} delivery(ies) still queued/running for "${team.strategyName}" -- team continues`);
368
+ console.log(`[focus-executor] ${teamWork.length} delivery(ies) still queued/running for "${team.focusName}" -- team continues`);
369
369
  continue;
370
370
  }
371
371
  // No queued/running deliveries -- team is idle, completion detector
372
372
  // handles the actual idle transition. Log for observability.
373
- console.log(`[strategy-executor] All deliveries complete for "${team.strategyName}" -- team is idle`);
373
+ console.log(`[focus-executor] All deliveries complete for "${team.focusName}" -- team is idle`);
374
374
  }
375
375
  catch (err) {
376
- console.warn(`[strategy-executor] Failed to check completed deliveries for "${team.strategyName}":`, err.message);
376
+ console.warn(`[focus-executor] Failed to check completed deliveries for "${team.focusName}":`, err.message);
377
377
  }
378
378
  }
379
379
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-lifecycle.js","sourceRoot":"","sources":["../src/session-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-lifecycle.js","sourceRoot":"","sources":["../src/session-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  /**
2
- * Spawn cooldown: prevents crash loops by tracking recently-torn-down strategies.
2
+ * Spawn cooldown: prevents crash loops by tracking recently-torn-down focuses.
3
3
  *
4
- * When a strategy is torn down, it enters a cooldown period before it can be
4
+ * When a focus is torn down, it enters a cooldown period before it can be
5
5
  * respawned. Consecutive teardowns increase the cooldown exponentially
6
6
  * (1min, 2min, 4min, 8min, capped at 10min).
7
7
  */
8
- /** Record a strategy teardown for spawn cooldown tracking. */
9
- export declare function recordStrategyTeardown(strategyId: string): void;
10
- /** Check if a strategy is in spawn cooldown. */
11
- export declare function isInSpawnCooldown(strategyId: string): boolean;
12
- /** Clear cooldown for a strategy (e.g. after successful long-running session). */
13
- export declare function clearSpawnCooldown(strategyId: string): void;
8
+ /** Record a focus teardown for spawn cooldown tracking. */
9
+ export declare function recordFocusTeardown(focusId: string): void;
10
+ /** Check if a focus is in spawn cooldown. */
11
+ export declare function isInSpawnCooldown(focusId: string): boolean;
12
+ /** Clear cooldown for a focus (e.g. after successful long-running session). */
13
+ export declare function clearSpawnCooldown(focusId: string): void;
14
14
  //# sourceMappingURL=spawn-cooldown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-cooldown.d.ts","sourceRoot":"","sources":["../src/spawn-cooldown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAO/D;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAS7D;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE3D"}
1
+ {"version":3,"file":"spawn-cooldown.d.ts","sourceRoot":"","sources":["../src/spawn-cooldown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAOzD;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAS1D;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAExD"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Spawn cooldown: prevents crash loops by tracking recently-torn-down strategies.
2
+ * Spawn cooldown: prevents crash loops by tracking recently-torn-down focuses.
3
3
  *
4
- * When a strategy is torn down, it enters a cooldown period before it can be
4
+ * When a focus is torn down, it enters a cooldown period before it can be
5
5
  * respawned. Consecutive teardowns increase the cooldown exponentially
6
6
  * (1min, 2min, 4min, 8min, capped at 10min).
7
7
  */
@@ -17,25 +17,25 @@ const COOLDOWN_CLEANUP_THRESHOLD_MS = 2 * SPAWN_COOLDOWN_MAX_MS;
17
17
  */
18
18
  function cleanupStaleEntries() {
19
19
  const now = Date.now();
20
- for (const [strategyId, entry] of teardownTimestamps) {
20
+ for (const [focusId, entry] of teardownTimestamps) {
21
21
  if (now - entry.time > COOLDOWN_CLEANUP_THRESHOLD_MS) {
22
- teardownTimestamps.delete(strategyId);
22
+ teardownTimestamps.delete(focusId);
23
23
  }
24
24
  }
25
25
  }
26
- /** Record a strategy teardown for spawn cooldown tracking. */
27
- export function recordStrategyTeardown(strategyId) {
26
+ /** Record a focus teardown for spawn cooldown tracking. */
27
+ export function recordFocusTeardown(focusId) {
28
28
  cleanupStaleEntries();
29
- const existing = teardownTimestamps.get(strategyId);
29
+ const existing = teardownTimestamps.get(focusId);
30
30
  const count = existing ? existing.count + 1 : 1;
31
- teardownTimestamps.set(strategyId, { time: Date.now(), count });
31
+ teardownTimestamps.set(focusId, { time: Date.now(), count });
32
32
  const cooldownMs = Math.min(SPAWN_COOLDOWN_BASE_MS * Math.pow(2, count - 1), SPAWN_COOLDOWN_MAX_MS);
33
- console.log(`[spawn-cooldown] Strategy ${strategyId} torn down (count=${count}, cooldown=${Math.round(cooldownMs / 1000)}s)`);
33
+ console.log(`[spawn-cooldown] Focus ${focusId} torn down (count=${count}, cooldown=${Math.round(cooldownMs / 1000)}s)`);
34
34
  }
35
- /** Check if a strategy is in spawn cooldown. */
36
- export function isInSpawnCooldown(strategyId) {
35
+ /** Check if a focus is in spawn cooldown. */
36
+ export function isInSpawnCooldown(focusId) {
37
37
  cleanupStaleEntries();
38
- const entry = teardownTimestamps.get(strategyId);
38
+ const entry = teardownTimestamps.get(focusId);
39
39
  if (!entry)
40
40
  return false;
41
41
  const cooldownMs = Math.min(SPAWN_COOLDOWN_BASE_MS * Math.pow(2, entry.count - 1), SPAWN_COOLDOWN_MAX_MS);
@@ -44,8 +44,8 @@ export function isInSpawnCooldown(strategyId) {
44
44
  }
45
45
  return true;
46
46
  }
47
- /** Clear cooldown for a strategy (e.g. after successful long-running session). */
48
- export function clearSpawnCooldown(strategyId) {
49
- teardownTimestamps.delete(strategyId);
47
+ /** Clear cooldown for a focus (e.g. after successful long-running session). */
48
+ export function clearSpawnCooldown(focusId) {
49
+ teardownTimestamps.delete(focusId);
50
50
  }
51
51
  //# sourceMappingURL=spawn-cooldown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../src/spawn-cooldown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA2C,CAAC;AAC9E,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,yBAAyB;AAChE,MAAM,qBAAqB,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,yBAAyB;AAEpE,uEAAuE;AACvE,MAAM,6BAA6B,GAAG,CAAC,GAAG,qBAAqB,CAAC;AAEhE;;;;GAIG;AACH,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACrD,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,6BAA6B,EAAE,CAAC;YACrD,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,mBAAmB,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,qBAAqB,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAChI,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,mBAAmB,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC1G,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../src/spawn-cooldown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA2C,CAAC;AAC9E,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,yBAAyB;AAChE,MAAM,qBAAqB,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,yBAAyB;AAEpE,uEAAuE;AACvE,MAAM,6BAA6B,GAAG,CAAC,GAAG,qBAAqB,CAAC;AAEhE;;;;GAIG;AACH,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;QAClD,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,6BAA6B,EAAE,CAAC;YACrD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,mBAAmB,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,qBAAqB,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1H,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,mBAAmB,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC1G,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Shared spawn environment builder for daemon agent processes.
3
3
  *
4
4
  * Consolidates the environment setup that was previously duplicated between
5
- * spawner.ts (buildSpawnEnvironment) and strategy-executor.ts (buildTeamSpawnEnvironment).
5
+ * spawner.ts (buildSpawnEnvironment) and focus-executor.ts (buildTeamSpawnEnvironment).
6
6
  *
7
7
  * CRITICAL: Strips Claude Code session vars (CLAUDECODE, CLAUDE_CODE_*, CLAUDECODE_*)
8
8
  * via the shared stripClaudeCodeEnvVars utility from daemon-core. If the daemon was
@@ -17,7 +17,7 @@ import type { DaemonConfig } from './types.js';
17
17
  */
18
18
  export interface SpawnIds {
19
19
  orgId?: string;
20
- strategyId?: string;
20
+ focusId?: string;
21
21
  sessionId?: string;
22
22
  deliveryId?: string;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-environment.d.ts","sourceRoot":"","sources":["../src/spawn-environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,QAAQ,GACZ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CA4BpC"}
1
+ {"version":3,"file":"spawn-environment.d.ts","sourceRoot":"","sources":["../src/spawn-environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,QAAQ,GACZ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CA4BpC"}
@@ -2,7 +2,7 @@
2
2
  * Shared spawn environment builder for daemon agent processes.
3
3
  *
4
4
  * Consolidates the environment setup that was previously duplicated between
5
- * spawner.ts (buildSpawnEnvironment) and strategy-executor.ts (buildTeamSpawnEnvironment).
5
+ * spawner.ts (buildSpawnEnvironment) and focus-executor.ts (buildTeamSpawnEnvironment).
6
6
  *
7
7
  * CRITICAL: Strips Claude Code session vars (CLAUDECODE, CLAUDE_CODE_*, CLAUDECODE_*)
8
8
  * via the shared stripClaudeCodeEnvVars utility from daemon-core. If the daemon was
@@ -28,7 +28,7 @@ export function buildSpawnEnvironment(config, ids) {
28
28
  ...process.env,
29
29
  TELORA_DAEMON_AGENT: '1',
30
30
  TELORA_MCP_PROFILE: 'execution',
31
- // Agent Teams always enabled -- strategy-level execution model
31
+ // Agent Teams always enabled -- focus-level execution model
32
32
  CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: '1',
33
33
  }, { preserve: ['CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS'] });
34
34
  // Inject OTel telemetry env vars when telemetry is enabled
@@ -37,7 +37,7 @@ export function buildSpawnEnvironment(config, ids) {
37
37
  port: config.telemetry.port,
38
38
  resourceAttributes: {
39
39
  'telora.org_id': ids.orgId,
40
- 'telora.strategy_id': ids.strategyId,
40
+ 'telora.focus_id': ids.focusId,
41
41
  'telora.delivery_id': ids.deliveryId,
42
42
  'telora.session_id': ids.sessionId,
43
43
  },