@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
@@ -2,7 +2,7 @@
2
2
  * LoopEngine -- ExecutionEngine adapter for the Loop Agent (differential receiver).
3
3
  *
4
4
  * The Loop Agent is a monitoring-only engine that does NOT spawn Claude Code
5
- * processes. It polls for strategies with loop data, computes variance between
5
+ * processes. It polls for focuses with loop data, computes variance between
6
6
  * intent (loop documents/questions) and forecasted reality (metrics/projections),
7
7
  * and when variance shifts enough, calls the LLM to re-evaluate loop data.
8
8
  *
@@ -20,7 +20,7 @@ import { callLoopLLM } from './loop-llm-client.js';
20
20
  import { onLoopTrigger } from './loop-event-bus.js';
21
21
  const DEFAULT_EVENT_TRIGGERS = {
22
22
  deliveryCompleted: true,
23
- strategyStatusChanged: true,
23
+ focusStatusChanged: true,
24
24
  reviewCompleted: true,
25
25
  };
26
26
  const DEFAULT_LOOP_CONFIG = {
@@ -41,16 +41,16 @@ export class LoopEngine {
41
41
  governor = null;
42
42
  pollTimeout = null;
43
43
  shuttingDown = false;
44
- /** Number of active strategies with loop data from last poll. */
45
- activeStrategyCount = 0;
44
+ /** Number of active focuses with loop data from last poll. */
45
+ activeFocusCount = 0;
46
46
  /** Last poll timestamp for health reporting. */
47
47
  lastPollAt = null;
48
- /** Per-strategy last LLM evaluation timestamp. */
48
+ /** Per-focus last LLM evaluation timestamp. */
49
49
  lastEvaluationAt = new Map();
50
- /** Per-strategy last computed variance (for threshold comparison). */
50
+ /** Per-focus last computed variance (for threshold comparison). */
51
51
  lastVariance = new Map();
52
- /** Strategies that have been triggered by lifecycle events (pending immediate evaluation). */
53
- triggeredStrategies = new Set();
52
+ /** Focuses that have been triggered by lifecycle events (pending immediate evaluation). */
53
+ triggeredFocuses = new Set();
54
54
  /** Cleanup function for event bus subscription. */
55
55
  unsubscribeEvents = null;
56
56
  // -----------------------------------------------------------------------
@@ -76,7 +76,7 @@ export class LoopEngine {
76
76
  const et = etRaw;
77
77
  eventTriggers = {
78
78
  deliveryCompleted: typeof et.deliveryCompleted === 'boolean' ? et.deliveryCompleted : DEFAULT_EVENT_TRIGGERS.deliveryCompleted,
79
- strategyStatusChanged: typeof et.strategyStatusChanged === 'boolean' ? et.strategyStatusChanged : DEFAULT_EVENT_TRIGGERS.strategyStatusChanged,
79
+ focusStatusChanged: typeof et.focusStatusChanged === 'boolean' ? et.focusStatusChanged : DEFAULT_EVENT_TRIGGERS.focusStatusChanged,
80
80
  reviewCompleted: typeof et.reviewCompleted === 'boolean' ? et.reviewCompleted : DEFAULT_EVENT_TRIGGERS.reviewCompleted,
81
81
  };
82
82
  }
@@ -104,7 +104,7 @@ export class LoopEngine {
104
104
  // -----------------------------------------------------------------------
105
105
  async start() {
106
106
  this.shuttingDown = false;
107
- // Subscribe to lifecycle events from the strategy engine
107
+ // Subscribe to lifecycle events from the focus engine
108
108
  this.unsubscribeEvents = onLoopTrigger((event) => this.handleLifecycleEvent(event));
109
109
  // Run initial poll immediately
110
110
  await this.runPollCycle();
@@ -138,11 +138,11 @@ export class LoopEngine {
138
138
  healthCheck() {
139
139
  return {
140
140
  status: this.config ? 'healthy' : 'unhealthy',
141
- activeWorkItems: this.activeStrategyCount,
141
+ activeWorkItems: this.activeFocusCount,
142
142
  details: {
143
- activeStrategyCount: this.activeStrategyCount,
143
+ activeFocusCount: this.activeFocusCount,
144
144
  lastPollAt: this.lastPollAt?.toISOString() ?? null,
145
- currentPollIntervalMs: this.activeStrategyCount > 0
145
+ currentPollIntervalMs: this.activeFocusCount > 0
146
146
  ? this.loopConfig.activeIntervalMs
147
147
  : this.loopConfig.idleIntervalMs,
148
148
  },
@@ -165,98 +165,98 @@ export class LoopEngine {
165
165
  if (!config)
166
166
  return;
167
167
  this.lastPollAt = new Date();
168
- let totalActiveStrategies = 0;
168
+ let totalActiveFocuses = 0;
169
169
  for (const product of config.products) {
170
170
  try {
171
171
  const count = await this.pollProduct(product.id);
172
- totalActiveStrategies += count;
172
+ totalActiveFocuses += count;
173
173
  }
174
174
  catch (err) {
175
175
  console.log(`[Loop] Poll failed for product ${product.id}: ${err instanceof Error ? err.message : String(err)}`);
176
176
  }
177
177
  }
178
- this.activeStrategyCount = totalActiveStrategies;
178
+ this.activeFocusCount = totalActiveFocuses;
179
179
  }
180
180
  /**
181
- * Poll a single product for strategies with loop data.
182
- * Returns the number of active strategies processed.
181
+ * Poll a single product for focuses with loop data.
182
+ * Returns the number of active focuses processed.
183
183
  */
184
184
  async pollProduct(productId) {
185
- // Fetch active strategies for this product
186
- let strategies;
185
+ // Fetch active focuses for this product
186
+ let focuses;
187
187
  try {
188
- const result = await callApi('strategy_list', {
188
+ const result = await callApi('focus_list', {
189
189
  productId,
190
190
  status: 'active',
191
191
  });
192
- strategies = result.items ?? [];
192
+ focuses = result.items ?? [];
193
193
  }
194
194
  catch (err) {
195
- console.log(`[Loop] Failed to fetch strategies for product ${productId}: ${err instanceof Error ? err.message : String(err)}`);
195
+ console.log(`[Loop] Failed to fetch focuses for product ${productId}: ${err instanceof Error ? err.message : String(err)}`);
196
196
  return 0;
197
197
  }
198
- if (strategies.length === 0)
198
+ if (focuses.length === 0)
199
199
  return 0;
200
200
  let processed = 0;
201
- for (const strategy of strategies) {
201
+ for (const focus of focuses) {
202
202
  try {
203
- await this.processStrategy(strategy);
203
+ await this.processFocus(focus);
204
204
  processed++;
205
205
  }
206
206
  catch (err) {
207
- console.log(`[Loop] Failed to process strategy ${strategy.id}: ${err instanceof Error ? err.message : String(err)}`);
207
+ console.log(`[Loop] Failed to process focus ${focus.id}: ${err instanceof Error ? err.message : String(err)}`);
208
208
  }
209
209
  }
210
210
  return processed;
211
211
  }
212
212
  /**
213
- * Process a single strategy: load intent + reality, compute variance,
213
+ * Process a single focus: load intent + reality, compute variance,
214
214
  * optionally call LLM for updates, persist variance snapshot.
215
215
  */
216
- async processStrategy(strategy) {
216
+ async processFocus(focus) {
217
217
  // 1. Load intent data (loop documents + questions + answers)
218
- const intent = await this.loadIntentData(strategy.id);
219
- // Skip strategies with no loop data (not yet initialized)
218
+ const intent = await this.loadIntentData(focus.id);
219
+ // Skip focuses with no loop data (not yet initialized)
220
220
  if (intent.documents.length === 0 && intent.questions.length === 0) {
221
221
  return;
222
222
  }
223
223
  // 2. Load reality data (metrics + projections)
224
- const reality = await this.loadRealityData(strategy.id);
224
+ const reality = await this.loadRealityData(focus.id);
225
225
  // 3. Compute variance (pass previous for trend direction)
226
- const previousVariance = this.lastVariance.get(strategy.id) ?? null;
227
- const variance = computeVariance(intent, reality, strategy.targetDate ?? null, previousVariance);
226
+ const previousVariance = this.lastVariance.get(focus.id) ?? null;
227
+ const variance = computeVariance(intent, reality, focus.targetDate ?? null, previousVariance);
228
228
  // 4. Persist variance snapshot
229
- await this.persistVarianceSnapshot(strategy, variance);
229
+ await this.persistVarianceSnapshot(focus, variance);
230
230
  // 5. Determine if LLM update is needed
231
- const shouldUpdate = this.shouldTriggerLLMUpdate(strategy.id, variance, reality);
231
+ const shouldUpdate = this.shouldTriggerLLMUpdate(focus.id, variance, reality);
232
232
  if (shouldUpdate) {
233
- console.log(`[Loop] Triggering LLM update for strategy "${strategy.name}" (${strategy.id.slice(0, 8)}) -- lock: ${variance.lockStatus}`);
234
- await this.runLLMUpdate(strategy, intent, reality, variance);
235
- this.lastEvaluationAt.set(strategy.id, Date.now());
233
+ console.log(`[Loop] Triggering LLM update for focus "${focus.name}" (${focus.id.slice(0, 8)}) -- lock: ${variance.lockStatus}`);
234
+ await this.runLLMUpdate(focus, intent, reality, variance);
235
+ this.lastEvaluationAt.set(focus.id, Date.now());
236
236
  }
237
237
  // 6. Store variance for threshold comparison
238
- this.lastVariance.set(strategy.id, variance);
238
+ this.lastVariance.set(focus.id, variance);
239
239
  }
240
240
  /**
241
- * Load loop data (intent) for a strategy.
241
+ * Load loop data (intent) for a focus.
242
242
  */
243
- async loadIntentData(strategyId) {
243
+ async loadIntentData(focusId) {
244
244
  const [docsResult, questionsResult, personaResult] = await Promise.all([
245
245
  callApi('loop_document_list', {
246
- entityType: 'strategy',
247
- entityId: strategyId,
246
+ entityType: 'focus',
247
+ entityId: focusId,
248
248
  detail: 'full',
249
249
  limit: 50,
250
250
  }).catch(() => ({ items: [] })),
251
251
  callApi('loop_question_list', {
252
- entityType: 'strategy',
253
- entityId: strategyId,
252
+ entityType: 'focus',
253
+ entityId: focusId,
254
254
  detail: 'full',
255
255
  limit: 50,
256
256
  }).catch(() => ({ items: [] })),
257
257
  callApi('loop_persona_get', {
258
- entityType: 'strategy',
259
- entityId: strategyId,
258
+ entityType: 'focus',
259
+ entityId: focusId,
260
260
  }).catch(() => ({ persona: null })),
261
261
  ]);
262
262
  // Fetch answers for each question
@@ -282,12 +282,12 @@ export class LoopEngine {
282
282
  };
283
283
  }
284
284
  /**
285
- * Load reality data (metrics + projections) for a strategy.
285
+ * Load reality data (metrics + projections) for a focus.
286
286
  */
287
- async loadRealityData(strategyId) {
287
+ async loadRealityData(focusId) {
288
288
  try {
289
- const result = await callApi('reality_metrics_strategy', {
290
- strategyId,
289
+ const result = await callApi('reality_metrics_focus', {
290
+ focusId,
291
291
  });
292
292
  return {
293
293
  metrics: result.metrics,
@@ -295,23 +295,23 @@ export class LoopEngine {
295
295
  };
296
296
  }
297
297
  catch (err) {
298
- console.log(`[Loop] Failed to load reality data for strategy ${strategyId}: ${err instanceof Error ? err.message : String(err)}`);
298
+ console.log(`[Loop] Failed to load reality data for focus ${focusId}: ${err instanceof Error ? err.message : String(err)}`);
299
299
  return { metrics: null, projections: { completion: null, cost: null } };
300
300
  }
301
301
  }
302
302
  /**
303
303
  * Persist variance snapshot to the database.
304
304
  */
305
- async persistVarianceSnapshot(strategy, variance) {
305
+ async persistVarianceSnapshot(focus, variance) {
306
306
  try {
307
307
  await callApi('loop_variance_upsert', {
308
- entityType: 'strategy',
309
- entityId: strategy.id,
308
+ entityType: 'focus',
309
+ entityId: focus.id,
310
310
  varianceData: variance,
311
311
  });
312
312
  }
313
313
  catch (err) {
314
- console.log(`[Loop] Failed to persist variance snapshot for strategy ${strategy.id}: ${err instanceof Error ? err.message : String(err)}`);
314
+ console.log(`[Loop] Failed to persist variance snapshot for focus ${focus.id}: ${err instanceof Error ? err.message : String(err)}`);
315
315
  }
316
316
  }
317
317
  /**
@@ -321,9 +321,9 @@ export class LoopEngine {
321
321
  * - Variance change beyond threshold
322
322
  * - Stale loop data
323
323
  */
324
- shouldTriggerLLMUpdate(strategyId, variance, reality) {
324
+ shouldTriggerLLMUpdate(focusId, variance, reality) {
325
325
  const now = Date.now();
326
- const lastEval = this.lastEvaluationAt.get(strategyId) ?? 0;
326
+ const lastEval = this.lastEvaluationAt.get(focusId) ?? 0;
327
327
  // Enforce minimum interval (debounce bursts)
328
328
  if (now - lastEval < this.loopConfig.minEvaluationIntervalMs) {
329
329
  return false;
@@ -332,9 +332,9 @@ export class LoopEngine {
332
332
  if (now - lastEval > this.loopConfig.staleThresholdMs) {
333
333
  return true;
334
334
  }
335
- // Event-driven trigger: lifecycle event flagged this strategy for re-evaluation
336
- if (this.triggeredStrategies.has(strategyId)) {
337
- this.triggeredStrategies.delete(strategyId);
335
+ // Event-driven trigger: lifecycle event flagged this focus for re-evaluation
336
+ if (this.triggeredFocuses.has(focusId)) {
337
+ this.triggeredFocuses.delete(focusId);
338
338
  return true;
339
339
  }
340
340
  // Event-aware trigger: check if new activity occurred since last evaluation
@@ -347,7 +347,7 @@ export class LoopEngine {
347
347
  }
348
348
  }
349
349
  // Compare with previous variance
350
- const prevVariance = this.lastVariance.get(strategyId);
350
+ const prevVariance = this.lastVariance.get(focusId);
351
351
  if (!prevVariance) {
352
352
  // First evaluation -- always run
353
353
  return true;
@@ -377,40 +377,40 @@ export class LoopEngine {
377
377
  /**
378
378
  * Run the LLM to re-evaluate loop data given current variance.
379
379
  */
380
- async runLLMUpdate(strategy, intent, reality, variance) {
380
+ async runLLMUpdate(focus, intent, reality, variance) {
381
381
  try {
382
382
  // Build the prompt
383
383
  const prompt = buildLoopUpdatePrompt(intent, reality, variance);
384
384
  // Call the LLM
385
- const rawResponse = await callLoopLLM(strategy.organizationId, prompt);
385
+ const rawResponse = await callLoopLLM(focus.organizationId, prompt);
386
386
  if (!rawResponse) {
387
- console.log(`[Loop] LLM returned empty response for strategy ${strategy.id}`);
387
+ console.log(`[Loop] LLM returned empty response for focus ${focus.id}`);
388
388
  return;
389
389
  }
390
390
  // Parse the response
391
391
  const updates = parseLoopUpdateResponse(rawResponse);
392
392
  // Write updates back
393
- await this.applyLoopUpdates(strategy.id, updates);
394
- console.log(`[Loop] Applied updates for strategy "${strategy.name}": ` +
393
+ await this.applyLoopUpdates(focus.id, updates);
394
+ console.log(`[Loop] Applied updates for focus "${focus.name}": ` +
395
395
  `${updates.documentReorders.length} re-ranks, ` +
396
396
  `${updates.answerUpdates.length} answers, ` +
397
397
  `${updates.newQuestions.length} new questions` +
398
398
  `${updates.personaProposal ? ', 1 persona proposal' : ''}`);
399
399
  }
400
400
  catch (err) {
401
- console.log(`[Loop] LLM update failed for strategy ${strategy.id}: ${err instanceof Error ? err.message : String(err)}`);
401
+ console.log(`[Loop] LLM update failed for focus ${focus.id}: ${err instanceof Error ? err.message : String(err)}`);
402
402
  }
403
403
  }
404
404
  /**
405
405
  * Apply parsed LLM updates back to loop data via edge function.
406
406
  */
407
- async applyLoopUpdates(strategyId, updates) {
407
+ async applyLoopUpdates(focusId, updates) {
408
408
  // Re-rank documents
409
409
  if (updates.documentReorders.length > 0) {
410
410
  try {
411
411
  await callApi('loop_document_reorder', {
412
- entityType: 'strategy',
413
- entityId: strategyId,
412
+ entityType: 'focus',
413
+ entityId: focusId,
414
414
  documentIds: updates.documentReorders,
415
415
  });
416
416
  }
@@ -434,8 +434,8 @@ export class LoopEngine {
434
434
  for (const newQuestion of updates.newQuestions) {
435
435
  try {
436
436
  await callApi('loop_question_create', {
437
- entityType: 'strategy',
438
- entityId: strategyId,
437
+ entityType: 'focus',
438
+ entityId: focusId,
439
439
  text: newQuestion.text,
440
440
  questionType: 'generated',
441
441
  });
@@ -448,8 +448,8 @@ export class LoopEngine {
448
448
  if (updates.personaProposal) {
449
449
  try {
450
450
  await callApi('loop_persona_propose', {
451
- entityType: 'strategy',
452
- entityId: strategyId,
451
+ entityType: 'focus',
452
+ entityId: focusId,
453
453
  proposedContent: updates.personaProposal,
454
454
  });
455
455
  }
@@ -459,19 +459,19 @@ export class LoopEngine {
459
459
  }
460
460
  }
461
461
  /**
462
- * Handle a lifecycle event from the strategy engine.
463
- * Marks the strategy for immediate re-evaluation on the next poll cycle.
462
+ * Handle a lifecycle event from the focus engine.
463
+ * Marks the focus for immediate re-evaluation on the next poll cycle.
464
464
  */
465
465
  handleLifecycleEvent(event) {
466
466
  const triggers = this.loopConfig.eventTriggers;
467
467
  // Check if this event type is enabled
468
468
  const eventEnabled = (event.type === 'delivery_completed' && triggers.deliveryCompleted) ||
469
- (event.type === 'strategy_status_changed' && triggers.strategyStatusChanged) ||
469
+ (event.type === 'focus_status_changed' && triggers.focusStatusChanged) ||
470
470
  (event.type === 'review_completed' && triggers.reviewCompleted);
471
471
  if (!eventEnabled)
472
472
  return;
473
- this.triggeredStrategies.add(event.strategyId);
474
- console.log(`[Loop] Event trigger: ${event.type} for strategy ${event.strategyId.slice(0, 8)}${event.detail ? ` (${event.detail})` : ''}`);
473
+ this.triggeredFocuses.add(event.focusId);
474
+ console.log(`[Loop] Event trigger: ${event.type} for focus ${event.focusId.slice(0, 8)}${event.detail ? ` (${event.detail})` : ''}`);
475
475
  }
476
476
  /**
477
477
  * Schedule the next poll cycle using adaptive interval.
@@ -479,7 +479,7 @@ export class LoopEngine {
479
479
  scheduleNextPoll() {
480
480
  if (this.shuttingDown)
481
481
  return;
482
- const intervalMs = this.activeStrategyCount > 0
482
+ const intervalMs = this.activeFocusCount > 0
483
483
  ? this.loopConfig.activeIntervalMs
484
484
  : this.loopConfig.idleIntervalMs;
485
485
  this.pollTimeout = setTimeout(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"loop-engine.js","sourceRoot":"","sources":["../src/loop-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-engine.js","sourceRoot":"","sources":["../src/loop-engine.ts"],"names":[],"mappings":"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"}
@@ -2,22 +2,22 @@
2
2
  * Loop Event Bus -- lightweight pub/sub for lifecycle events that trigger
3
3
  * Loop Agent re-evaluation.
4
4
  *
5
- * The strategy engine emits events when deliveries complete, strategies change,
5
+ * The focus engine emits events when deliveries complete, focuses change,
6
6
  * or reviews finish. The Loop Engine subscribes and schedules immediate
7
- * re-evaluation for the affected strategy (subject to debounce).
7
+ * re-evaluation for the affected focus (subject to debounce).
8
8
  *
9
9
  * Singleton pattern: both emitter and subscriber import this module.
10
10
  */
11
- export type LoopTriggerEventType = 'delivery_completed' | 'strategy_status_changed' | 'review_completed';
11
+ export type LoopTriggerEventType = 'delivery_completed' | 'focus_status_changed' | 'review_completed';
12
12
  export interface LoopTriggerEvent {
13
13
  type: LoopTriggerEventType;
14
- strategyId: string;
14
+ focusId: string;
15
15
  /** Optional context about what triggered the event. */
16
16
  detail?: string;
17
17
  }
18
18
  /**
19
19
  * Emit a lifecycle event that may trigger Loop Agent re-evaluation.
20
- * Called from strategy engine components (delivery-lifecycle, state-cascade, etc.).
20
+ * Called from focus engine components (delivery-lifecycle, state-cascade, etc.).
21
21
  */
22
22
  export declare function emitLoopTrigger(event: LoopTriggerEvent): void;
23
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"loop-event-bus.d.ts","sourceRoot":"","sources":["../src/loop-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,yBAAyB,GACzB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAKpF"}
1
+ {"version":3,"file":"loop-event-bus.d.ts","sourceRoot":"","sources":["../src/loop-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAKpF"}
@@ -2,9 +2,9 @@
2
2
  * Loop Event Bus -- lightweight pub/sub for lifecycle events that trigger
3
3
  * Loop Agent re-evaluation.
4
4
  *
5
- * The strategy engine emits events when deliveries complete, strategies change,
5
+ * The focus engine emits events when deliveries complete, focuses change,
6
6
  * or reviews finish. The Loop Engine subscribes and schedules immediate
7
- * re-evaluation for the affected strategy (subject to debounce).
7
+ * re-evaluation for the affected focus (subject to debounce).
8
8
  *
9
9
  * Singleton pattern: both emitter and subscriber import this module.
10
10
  */
@@ -17,7 +17,7 @@ bus.setMaxListeners(10);
17
17
  const LOOP_TRIGGER_EVENT = 'loop:trigger';
18
18
  /**
19
19
  * Emit a lifecycle event that may trigger Loop Agent re-evaluation.
20
- * Called from strategy engine components (delivery-lifecycle, state-cascade, etc.).
20
+ * Called from focus engine components (delivery-lifecycle, state-cascade, etc.).
21
21
  */
22
22
  export function emitLoopTrigger(event) {
23
23
  bus.emit(LOOP_TRIGGER_EVENT, event);
@@ -2,7 +2,7 @@
2
2
  * LLM client for loop data updates.
3
3
  *
4
4
  * Calls the Anthropic API using the organization's LLM secret
5
- * (fetched via edge function RPC). One call per strategy per cycle maximum.
5
+ * (fetched via edge function RPC). One call per focus per cycle maximum.
6
6
  */
7
7
  import type { LoopUpdatePrompt } from './loop-prompt-builder.js';
8
8
  /**
@@ -2,7 +2,7 @@
2
2
  * LLM client for loop data updates.
3
3
  *
4
4
  * Calls the Anthropic API using the organization's LLM secret
5
- * (fetched via edge function RPC). One call per strategy per cycle maximum.
5
+ * (fetched via edge function RPC). One call per focus per cycle maximum.
6
6
  */
7
7
  import { callApi } from './queries/shared.js';
8
8
  // ---------------------------------------------------------------------------
@@ -81,7 +81,7 @@ export interface VarianceResult {
81
81
  *
82
82
  * @param intent - Loop data (documents, questions, answers, persona)
83
83
  * @param reality - Reality metrics and projections
84
- * @param targetDate - Strategy target date (ISO string or null)
84
+ * @param targetDate - Focus target date (ISO string or null)
85
85
  * @param previousVariance - Previous variance result for trend computation (optional)
86
86
  * @returns Structured variance result
87
87
  */
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * @param intent - Loop data (documents, questions, answers, persona)
14
14
  * @param reality - Reality metrics and projections
15
- * @param targetDate - Strategy target date (ISO string or null)
15
+ * @param targetDate - Focus target date (ISO string or null)
16
16
  * @param previousVariance - Previous variance result for trend computation (optional)
17
17
  * @returns Structured variance result
18
18
  */
@@ -1,22 +1,22 @@
1
1
  /**
2
- * Merge detection for strategy branches.
2
+ * Merge detection for focus branches.
3
3
  *
4
4
  * Scans the integration branch for merge commits that originated from
5
- * strategy worktree branches. Records newly detected merges via the
6
- * product-api so they appear in the strategy commit history.
5
+ * focus worktree branches. Records newly detected merges via the
6
+ * product-api so they appear in the focus commit history.
7
7
  *
8
8
  * Called from the daemon poll loop. Uses fire-and-forget recording
9
9
  * to avoid blocking the poll cycle.
10
10
  */
11
11
  import type { DaemonConfig } from './types.js';
12
12
  /**
13
- * Detect new merge commits for all active strategies.
13
+ * Detect new merge commits for all active focuses.
14
14
  *
15
- * For each strategy with a known worktree branch, scans the integration
15
+ * For each focus with a known worktree branch, scans the integration
16
16
  * branch for merge commits from that branch. Records any new merges
17
17
  * via the product-api with merged_by='detected'.
18
18
  *
19
19
  * Called from the poll loop in listener.ts.
20
20
  */
21
- export declare function detectStrategyMerges(config: DaemonConfig): Promise<void>;
21
+ export declare function detectFocusMerges(config: DaemonConfig): Promise<void>;
22
22
  //# sourceMappingURL=merge-detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-detector.d.ts","sourceRoot":"","sources":["../src/merge-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoM/C;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE9E"}
1
+ {"version":3,"file":"merge-detector.d.ts","sourceRoot":"","sources":["../src/merge-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoM/C;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE3E"}