@telora/factory 0.4.5

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 (301) hide show
  1. package/dist/audit.d.ts +69 -0
  2. package/dist/audit.d.ts.map +1 -0
  3. package/dist/audit.js +376 -0
  4. package/dist/audit.js.map +1 -0
  5. package/dist/builder-completion.d.ts +35 -0
  6. package/dist/builder-completion.d.ts.map +1 -0
  7. package/dist/builder-completion.js +375 -0
  8. package/dist/builder-completion.js.map +1 -0
  9. package/dist/builder-spawner.d.ts +40 -0
  10. package/dist/builder-spawner.d.ts.map +1 -0
  11. package/dist/builder-spawner.js +493 -0
  12. package/dist/builder-spawner.js.map +1 -0
  13. package/dist/completion-gate.d.ts +52 -0
  14. package/dist/completion-gate.d.ts.map +1 -0
  15. package/dist/completion-gate.js +336 -0
  16. package/dist/completion-gate.js.map +1 -0
  17. package/dist/completion-report.d.ts +36 -0
  18. package/dist/completion-report.d.ts.map +1 -0
  19. package/dist/completion-report.js +348 -0
  20. package/dist/completion-report.js.map +1 -0
  21. package/dist/completion.d.ts +58 -0
  22. package/dist/completion.d.ts.map +1 -0
  23. package/dist/completion.js +287 -0
  24. package/dist/completion.js.map +1 -0
  25. package/dist/config.d.ts +16 -0
  26. package/dist/config.d.ts.map +1 -0
  27. package/dist/config.js +57 -0
  28. package/dist/config.js.map +1 -0
  29. package/dist/context-manager.d.ts +152 -0
  30. package/dist/context-manager.d.ts.map +1 -0
  31. package/dist/context-manager.js +421 -0
  32. package/dist/context-manager.js.map +1 -0
  33. package/dist/crash-detection.d.ts +70 -0
  34. package/dist/crash-detection.d.ts.map +1 -0
  35. package/dist/crash-detection.js +123 -0
  36. package/dist/crash-detection.js.map +1 -0
  37. package/dist/crash-recovery.d.ts +83 -0
  38. package/dist/crash-recovery.d.ts.map +1 -0
  39. package/dist/crash-recovery.js +522 -0
  40. package/dist/crash-recovery.js.map +1 -0
  41. package/dist/crash-resolution.d.ts +34 -0
  42. package/dist/crash-resolution.d.ts.map +1 -0
  43. package/dist/crash-resolution.js +382 -0
  44. package/dist/crash-resolution.js.map +1 -0
  45. package/dist/escalation.d.ts +150 -0
  46. package/dist/escalation.d.ts.map +1 -0
  47. package/dist/escalation.js +352 -0
  48. package/dist/escalation.js.map +1 -0
  49. package/dist/execution-target.d.ts +31 -0
  50. package/dist/execution-target.d.ts.map +1 -0
  51. package/dist/execution-target.js +71 -0
  52. package/dist/execution-target.js.map +1 -0
  53. package/dist/execution-unit-init.d.ts +28 -0
  54. package/dist/execution-unit-init.d.ts.map +1 -0
  55. package/dist/execution-unit-init.js +115 -0
  56. package/dist/execution-unit-init.js.map +1 -0
  57. package/dist/execution.d.ts +17 -0
  58. package/dist/execution.d.ts.map +1 -0
  59. package/dist/execution.js +20 -0
  60. package/dist/execution.js.map +1 -0
  61. package/dist/factory-engine.d.ts +100 -0
  62. package/dist/factory-engine.d.ts.map +1 -0
  63. package/dist/factory-engine.js +243 -0
  64. package/dist/factory-engine.js.map +1 -0
  65. package/dist/gap-detection.d.ts +43 -0
  66. package/dist/gap-detection.d.ts.map +1 -0
  67. package/dist/gap-detection.js +149 -0
  68. package/dist/gap-detection.js.map +1 -0
  69. package/dist/gate-context.d.ts +23 -0
  70. package/dist/gate-context.d.ts.map +1 -0
  71. package/dist/gate-context.js +63 -0
  72. package/dist/gate-context.js.map +1 -0
  73. package/dist/gate-engine.d.ts +55 -0
  74. package/dist/gate-engine.d.ts.map +1 -0
  75. package/dist/gate-engine.js +191 -0
  76. package/dist/gate-engine.js.map +1 -0
  77. package/dist/gates/adversarial.d.ts +59 -0
  78. package/dist/gates/adversarial.d.ts.map +1 -0
  79. package/dist/gates/adversarial.js +426 -0
  80. package/dist/gates/adversarial.js.map +1 -0
  81. package/dist/gates/adversary-spawner.d.ts +35 -0
  82. package/dist/gates/adversary-spawner.d.ts.map +1 -0
  83. package/dist/gates/adversary-spawner.js +286 -0
  84. package/dist/gates/adversary-spawner.js.map +1 -0
  85. package/dist/gates/adversary-test-dir.d.ts +41 -0
  86. package/dist/gates/adversary-test-dir.d.ts.map +1 -0
  87. package/dist/gates/adversary-test-dir.js +150 -0
  88. package/dist/gates/adversary-test-dir.js.map +1 -0
  89. package/dist/gates/behavioral-parser.d.ts +32 -0
  90. package/dist/gates/behavioral-parser.d.ts.map +1 -0
  91. package/dist/gates/behavioral-parser.js +190 -0
  92. package/dist/gates/behavioral-parser.js.map +1 -0
  93. package/dist/gates/behavioral-runner.d.ts +36 -0
  94. package/dist/gates/behavioral-runner.d.ts.map +1 -0
  95. package/dist/gates/behavioral-runner.js +306 -0
  96. package/dist/gates/behavioral-runner.js.map +1 -0
  97. package/dist/gates/behavioral.d.ts +37 -0
  98. package/dist/gates/behavioral.d.ts.map +1 -0
  99. package/dist/gates/behavioral.js +485 -0
  100. package/dist/gates/behavioral.js.map +1 -0
  101. package/dist/gates/deterministic.d.ts +24 -0
  102. package/dist/gates/deterministic.d.ts.map +1 -0
  103. package/dist/gates/deterministic.js +186 -0
  104. package/dist/gates/deterministic.js.map +1 -0
  105. package/dist/git-factory.d.ts +59 -0
  106. package/dist/git-factory.d.ts.map +1 -0
  107. package/dist/git-factory.js +102 -0
  108. package/dist/git-factory.js.map +1 -0
  109. package/dist/guard-evaluation.d.ts +48 -0
  110. package/dist/guard-evaluation.d.ts.map +1 -0
  111. package/dist/guard-evaluation.js +416 -0
  112. package/dist/guard-evaluation.js.map +1 -0
  113. package/dist/index.d.ts +30 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +39 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/instance-completion.d.ts +34 -0
  118. package/dist/instance-completion.d.ts.map +1 -0
  119. package/dist/instance-completion.js +366 -0
  120. package/dist/instance-completion.js.map +1 -0
  121. package/dist/instance-lifecycle.d.ts +15 -0
  122. package/dist/instance-lifecycle.d.ts.map +1 -0
  123. package/dist/instance-lifecycle.js +18 -0
  124. package/dist/instance-lifecycle.js.map +1 -0
  125. package/dist/instance-phase-dispatch.d.ts +75 -0
  126. package/dist/instance-phase-dispatch.d.ts.map +1 -0
  127. package/dist/instance-phase-dispatch.js +674 -0
  128. package/dist/instance-phase-dispatch.js.map +1 -0
  129. package/dist/instance-poll-loop.d.ts +43 -0
  130. package/dist/instance-poll-loop.d.ts.map +1 -0
  131. package/dist/instance-poll-loop.js +360 -0
  132. package/dist/instance-poll-loop.js.map +1 -0
  133. package/dist/instance-state-machine.d.ts +52 -0
  134. package/dist/instance-state-machine.d.ts.map +1 -0
  135. package/dist/instance-state-machine.js +235 -0
  136. package/dist/instance-state-machine.js.map +1 -0
  137. package/dist/log-manager.d.ts +28 -0
  138. package/dist/log-manager.d.ts.map +1 -0
  139. package/dist/log-manager.js +71 -0
  140. package/dist/log-manager.js.map +1 -0
  141. package/dist/pipeline-evaluator.d.ts +61 -0
  142. package/dist/pipeline-evaluator.d.ts.map +1 -0
  143. package/dist/pipeline-evaluator.js +107 -0
  144. package/dist/pipeline-evaluator.js.map +1 -0
  145. package/dist/pipeline-metrics.d.ts +52 -0
  146. package/dist/pipeline-metrics.d.ts.map +1 -0
  147. package/dist/pipeline-metrics.js +40 -0
  148. package/dist/pipeline-metrics.js.map +1 -0
  149. package/dist/pipeline-traversal.d.ts +43 -0
  150. package/dist/pipeline-traversal.d.ts.map +1 -0
  151. package/dist/pipeline-traversal.js +68 -0
  152. package/dist/pipeline-traversal.js.map +1 -0
  153. package/dist/plan-parser.d.ts +76 -0
  154. package/dist/plan-parser.d.ts.map +1 -0
  155. package/dist/plan-parser.js +223 -0
  156. package/dist/plan-parser.js.map +1 -0
  157. package/dist/planning-phase.d.ts +52 -0
  158. package/dist/planning-phase.d.ts.map +1 -0
  159. package/dist/planning-phase.js +444 -0
  160. package/dist/planning-phase.js.map +1 -0
  161. package/dist/planning-prompt.d.ts +64 -0
  162. package/dist/planning-prompt.d.ts.map +1 -0
  163. package/dist/planning-prompt.js +251 -0
  164. package/dist/planning-prompt.js.map +1 -0
  165. package/dist/planning.d.ts +16 -0
  166. package/dist/planning.d.ts.map +1 -0
  167. package/dist/planning.js +17 -0
  168. package/dist/planning.js.map +1 -0
  169. package/dist/process-runner.d.ts +41 -0
  170. package/dist/process-runner.d.ts.map +1 -0
  171. package/dist/process-runner.js +81 -0
  172. package/dist/process-runner.js.map +1 -0
  173. package/dist/product-config.d.ts +34 -0
  174. package/dist/product-config.d.ts.map +1 -0
  175. package/dist/product-config.js +43 -0
  176. package/dist/product-config.js.map +1 -0
  177. package/dist/queries/cycle-evaluations.d.ts +23 -0
  178. package/dist/queries/cycle-evaluations.d.ts.map +1 -0
  179. package/dist/queries/cycle-evaluations.js +37 -0
  180. package/dist/queries/cycle-evaluations.js.map +1 -0
  181. package/dist/queries/escalations.d.ts +30 -0
  182. package/dist/queries/escalations.d.ts.map +1 -0
  183. package/dist/queries/escalations.js +42 -0
  184. package/dist/queries/escalations.js.map +1 -0
  185. package/dist/queries/execution-units.d.ts +76 -0
  186. package/dist/queries/execution-units.d.ts.map +1 -0
  187. package/dist/queries/execution-units.js +109 -0
  188. package/dist/queries/execution-units.js.map +1 -0
  189. package/dist/queries/gate-results.d.ts +32 -0
  190. package/dist/queries/gate-results.d.ts.map +1 -0
  191. package/dist/queries/gate-results.js +44 -0
  192. package/dist/queries/gate-results.js.map +1 -0
  193. package/dist/queries/instances.d.ts +51 -0
  194. package/dist/queries/instances.d.ts.map +1 -0
  195. package/dist/queries/instances.js +77 -0
  196. package/dist/queries/instances.js.map +1 -0
  197. package/dist/queries/sessions.d.ts +50 -0
  198. package/dist/queries/sessions.d.ts.map +1 -0
  199. package/dist/queries/sessions.js +81 -0
  200. package/dist/queries/sessions.js.map +1 -0
  201. package/dist/queries/shared.d.ts +38 -0
  202. package/dist/queries/shared.d.ts.map +1 -0
  203. package/dist/queries/shared.js +119 -0
  204. package/dist/queries/shared.js.map +1 -0
  205. package/dist/queries/specs.d.ts +12 -0
  206. package/dist/queries/specs.d.ts.map +1 -0
  207. package/dist/queries/specs.js +21 -0
  208. package/dist/queries/specs.js.map +1 -0
  209. package/dist/queries/strategies.d.ts +14 -0
  210. package/dist/queries/strategies.d.ts.map +1 -0
  211. package/dist/queries/strategies.js +18 -0
  212. package/dist/queries/strategies.js.map +1 -0
  213. package/dist/queries/work-units.d.ts +42 -0
  214. package/dist/queries/work-units.d.ts.map +1 -0
  215. package/dist/queries/work-units.js +57 -0
  216. package/dist/queries/work-units.js.map +1 -0
  217. package/dist/queries/workflows.d.ts +29 -0
  218. package/dist/queries/workflows.d.ts.map +1 -0
  219. package/dist/queries/workflows.js +103 -0
  220. package/dist/queries/workflows.js.map +1 -0
  221. package/dist/remediation-units.d.ts +40 -0
  222. package/dist/remediation-units.d.ts.map +1 -0
  223. package/dist/remediation-units.js +263 -0
  224. package/dist/remediation-units.js.map +1 -0
  225. package/dist/replanning.d.ts +72 -0
  226. package/dist/replanning.d.ts.map +1 -0
  227. package/dist/replanning.js +403 -0
  228. package/dist/replanning.js.map +1 -0
  229. package/dist/resource-limits.d.ts +62 -0
  230. package/dist/resource-limits.d.ts.map +1 -0
  231. package/dist/resource-limits.js +322 -0
  232. package/dist/resource-limits.js.map +1 -0
  233. package/dist/scheduler.d.ts +98 -0
  234. package/dist/scheduler.d.ts.map +1 -0
  235. package/dist/scheduler.js +203 -0
  236. package/dist/scheduler.js.map +1 -0
  237. package/dist/session-adapter.d.ts +89 -0
  238. package/dist/session-adapter.d.ts.map +1 -0
  239. package/dist/session-adapter.js +108 -0
  240. package/dist/session-adapter.js.map +1 -0
  241. package/dist/sop-generator.d.ts +29 -0
  242. package/dist/sop-generator.d.ts.map +1 -0
  243. package/dist/sop-generator.js +235 -0
  244. package/dist/sop-generator.js.map +1 -0
  245. package/dist/spec-profiles.d.ts +41 -0
  246. package/dist/spec-profiles.d.ts.map +1 -0
  247. package/dist/spec-profiles.js +131 -0
  248. package/dist/spec-profiles.js.map +1 -0
  249. package/dist/strategy-design-graph.d.ts +23 -0
  250. package/dist/strategy-design-graph.d.ts.map +1 -0
  251. package/dist/strategy-design-graph.js +205 -0
  252. package/dist/strategy-design-graph.js.map +1 -0
  253. package/dist/strategy-design-prompt.d.ts +28 -0
  254. package/dist/strategy-design-prompt.d.ts.map +1 -0
  255. package/dist/strategy-design-prompt.js +108 -0
  256. package/dist/strategy-design-prompt.js.map +1 -0
  257. package/dist/strategy-design-schema.d.ts +767 -0
  258. package/dist/strategy-design-schema.d.ts.map +1 -0
  259. package/dist/strategy-design-schema.js +126 -0
  260. package/dist/strategy-design-schema.js.map +1 -0
  261. package/dist/strategy-design.d.ts +69 -0
  262. package/dist/strategy-design.d.ts.map +1 -0
  263. package/dist/strategy-design.js +411 -0
  264. package/dist/strategy-design.js.map +1 -0
  265. package/dist/strategy-gating.d.ts +31 -0
  266. package/dist/strategy-gating.d.ts.map +1 -0
  267. package/dist/strategy-gating.js +276 -0
  268. package/dist/strategy-gating.js.map +1 -0
  269. package/dist/team-prompt-builder.d.ts +47 -0
  270. package/dist/team-prompt-builder.d.ts.map +1 -0
  271. package/dist/team-prompt-builder.js +362 -0
  272. package/dist/team-prompt-builder.js.map +1 -0
  273. package/dist/trace-engine.d.ts +40 -0
  274. package/dist/trace-engine.d.ts.map +1 -0
  275. package/dist/trace-engine.js +344 -0
  276. package/dist/trace-engine.js.map +1 -0
  277. package/dist/types.d.ts +612 -0
  278. package/dist/types.d.ts.map +1 -0
  279. package/dist/types.js +9 -0
  280. package/dist/types.js.map +1 -0
  281. package/dist/unit-session-lifecycle.d.ts +78 -0
  282. package/dist/unit-session-lifecycle.d.ts.map +1 -0
  283. package/dist/unit-session-lifecycle.js +141 -0
  284. package/dist/unit-session-lifecycle.js.map +1 -0
  285. package/dist/unit-session.d.ts +30 -0
  286. package/dist/unit-session.d.ts.map +1 -0
  287. package/dist/unit-session.js +370 -0
  288. package/dist/unit-session.js.map +1 -0
  289. package/dist/watchdogs.d.ts +33 -0
  290. package/dist/watchdogs.d.ts.map +1 -0
  291. package/dist/watchdogs.js +170 -0
  292. package/dist/watchdogs.js.map +1 -0
  293. package/dist/work-unit-scheduler.d.ts +34 -0
  294. package/dist/work-unit-scheduler.d.ts.map +1 -0
  295. package/dist/work-unit-scheduler.js +91 -0
  296. package/dist/work-unit-scheduler.js.map +1 -0
  297. package/dist/workflow-transition.d.ts +90 -0
  298. package/dist/workflow-transition.d.ts.map +1 -0
  299. package/dist/workflow-transition.js +340 -0
  300. package/dist/workflow-transition.js.map +1 -0
  301. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-phase-dispatch.js","sourceRoot":"","sources":["../src/instance-phase-dispatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Factory instance poll loop -- discovers pending factory instances and
3
+ * drives them through the state machine.
4
+ *
5
+ * Implements the core 30s poll loop:
6
+ * pending -> designing -> planning -> building -> gating -> completed/paused/failed
7
+ *
8
+ * Active instances are tracked in an in-memory Map. The poll loop respects
9
+ * the maxConcurrentInstances config limit when picking up new work.
10
+ *
11
+ * Mirrors the polling pattern from packages/daemon/src/listener.ts.
12
+ */
13
+ import type { ResourceGovernor } from '@telora/daemon-core';
14
+ import type { FactoryConfig, FactoryInstanceState } from './types.js';
15
+ /**
16
+ * Start the factory poll loop.
17
+ *
18
+ * Performs an immediate first poll, then repeats every 30 seconds.
19
+ * Throws if already running or if config is missing.
20
+ */
21
+ export declare function startPollLoop(factoryConfig: FactoryConfig): void;
22
+ /**
23
+ * Stop the factory poll loop.
24
+ *
25
+ * Does NOT terminate active instances -- callers should drain those
26
+ * separately during graceful shutdown.
27
+ */
28
+ export declare function stopPollLoop(): void;
29
+ /**
30
+ * Get a read-only snapshot of active instances.
31
+ */
32
+ export declare function getActiveInstances(): ReadonlyMap<string, FactoryInstanceState>;
33
+ /**
34
+ * Signal graceful shutdown. The next poll iteration will skip processing
35
+ * and no new instances will be picked up.
36
+ */
37
+ export declare function setShuttingDown(): void;
38
+ /**
39
+ * Set the optional resource governor for global concurrency control.
40
+ * Called by FactoryEngine.setGovernor().
41
+ */
42
+ export declare function setFactoryGovernor(gov: ResourceGovernor): void;
43
+ //# sourceMappingURL=instance-poll-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-poll-loop.d.ts","sourceRoot":"","sources":["../src/instance-poll-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EACV,aAAa,EAEb,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAoDpB;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAyBhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAE9E;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAG9D"}
@@ -0,0 +1,360 @@
1
+ /**
2
+ * Factory instance poll loop -- discovers pending factory instances and
3
+ * drives them through the state machine.
4
+ *
5
+ * Implements the core 30s poll loop:
6
+ * pending -> designing -> planning -> building -> gating -> completed/paused/failed
7
+ *
8
+ * Active instances are tracked in an in-memory Map. The poll loop respects
9
+ * the maxConcurrentInstances config limit when picking up new work.
10
+ *
11
+ * Mirrors the polling pattern from packages/daemon/src/listener.ts.
12
+ */
13
+ import { basename } from 'node:path';
14
+ import { findFactoryProduct } from './product-config.js';
15
+ import { getPendingInstances, getActiveInstances as queryActiveInstances, updateInstanceStatus, getInstanceBlueprint, updateInstanceWorkflowStage, getProductDeploymentProfileSnapshot } from './queries/instances.js';
16
+ import { safeInterval } from './queries/shared.js';
17
+ import { findEntryNode } from './pipeline-evaluator.js';
18
+ import { handleInstanceFailure, buildInstanceEvalContext, checkPauseTimeout, recoverResumedInstance, getOrResolveWorkflow, } from './instance-state-machine.js';
19
+ import { runDesigning, checkBuilding, setPhaseDispatchConfig, setPhaseDispatchGovernor, } from './instance-phase-dispatch.js';
20
+ import { attemptTransition } from './workflow-transition.js';
21
+ // ============================================================================
22
+ // Constants
23
+ // ============================================================================
24
+ /** Polling interval in milliseconds (30 seconds). */
25
+ const POLL_INTERVAL_MS = 30_000;
26
+ // ============================================================================
27
+ // Module state
28
+ // ============================================================================
29
+ /** In-memory map of active factory instances keyed by instance ID. */
30
+ const activeInstances = new Map();
31
+ /** Module-level config, set by startPollLoop. */
32
+ let config = null;
33
+ /** Interval handle returned by safeInterval. */
34
+ let pollInterval = null;
35
+ /** Guard against concurrent poll iterations. */
36
+ let isProcessing = false;
37
+ /** Graceful shutdown flag -- when true, the poll loop becomes a no-op. */
38
+ let shuttingDown = false;
39
+ /** Optional resource governor for global concurrency control across engines. */
40
+ let governor = null;
41
+ // ============================================================================
42
+ // Exported lifecycle controls
43
+ // ============================================================================
44
+ /**
45
+ * Start the factory poll loop.
46
+ *
47
+ * Performs an immediate first poll, then repeats every 30 seconds.
48
+ * Throws if already running or if config is missing.
49
+ */
50
+ export function startPollLoop(factoryConfig) {
51
+ if (pollInterval) {
52
+ throw new Error('Poll loop is already running. Call stopPollLoop() first.');
53
+ }
54
+ config = factoryConfig;
55
+ shuttingDown = false;
56
+ // Share config with the phase dispatch module
57
+ setPhaseDispatchConfig(factoryConfig);
58
+ if (governor) {
59
+ setPhaseDispatchGovernor(governor);
60
+ }
61
+ // Immediate first poll (fire-and-forget; errors are logged inside pollOnce)
62
+ pollOnce();
63
+ pollInterval = safeInterval(async () => {
64
+ await pollOnce();
65
+ }, POLL_INTERVAL_MS, 'factory-instance-poll');
66
+ console.log(`[factory] Poll loop started (every ${POLL_INTERVAL_MS / 1000}s, ` +
67
+ `max ${config.maxConcurrentInstances} concurrent instances)`);
68
+ }
69
+ /**
70
+ * Stop the factory poll loop.
71
+ *
72
+ * Does NOT terminate active instances -- callers should drain those
73
+ * separately during graceful shutdown.
74
+ */
75
+ export function stopPollLoop() {
76
+ if (pollInterval) {
77
+ clearInterval(pollInterval);
78
+ pollInterval = null;
79
+ }
80
+ console.log('[factory] Poll loop stopped');
81
+ }
82
+ /**
83
+ * Get a read-only snapshot of active instances.
84
+ */
85
+ export function getActiveInstances() {
86
+ return activeInstances;
87
+ }
88
+ /**
89
+ * Signal graceful shutdown. The next poll iteration will skip processing
90
+ * and no new instances will be picked up.
91
+ */
92
+ export function setShuttingDown() {
93
+ shuttingDown = true;
94
+ console.log('[factory] Shutdown flag set -- poll loop will stop picking up new work');
95
+ }
96
+ /**
97
+ * Set the optional resource governor for global concurrency control.
98
+ * Called by FactoryEngine.setGovernor().
99
+ */
100
+ export function setFactoryGovernor(gov) {
101
+ governor = gov;
102
+ setPhaseDispatchGovernor(gov);
103
+ }
104
+ // ============================================================================
105
+ // Poll loop internals
106
+ // ============================================================================
107
+ /**
108
+ * Single iteration of the poll loop.
109
+ *
110
+ * 1. Skip if shutting down or already processing.
111
+ * 2. Monitor active instances for state changes.
112
+ * 3. Query for pending instances.
113
+ * 4. Check capacity, then pick up new instances.
114
+ */
115
+ async function pollOnce() {
116
+ if (shuttingDown)
117
+ return;
118
+ // Prevent concurrent iterations (mirrors daemon pattern)
119
+ if (isProcessing)
120
+ return;
121
+ isProcessing = true;
122
+ try {
123
+ // Step 1: Monitor already-active instances
124
+ await monitorActiveInstances();
125
+ // Step 2: Rediscover active instances not in memory (after daemon restart)
126
+ // Iterate all configured products to find active instances
127
+ if (!config)
128
+ return;
129
+ for (const product of config.products) {
130
+ try {
131
+ const dbActiveInstances = await queryActiveInstances(product.id);
132
+ for (const instance of dbActiveInstances) {
133
+ if (activeInstances.has(instance.id))
134
+ continue;
135
+ // This instance is active in DB but not tracked in memory -- adopt it
136
+ await adoptActiveInstance(instance);
137
+ }
138
+ }
139
+ catch (error) {
140
+ console.error(`[factory] Error rediscovering active instances for product ${product.id}:`, error.message);
141
+ }
142
+ }
143
+ // Step 3: Discover new pending instances if we have capacity
144
+ const currentCount = activeInstances.size;
145
+ const maxSlots = config.maxConcurrentInstances;
146
+ if (currentCount >= maxSlots) {
147
+ return;
148
+ }
149
+ // Aggregate pending instances across all configured products
150
+ const pendingInstances = [];
151
+ for (const product of config.products) {
152
+ const productPending = await getPendingInstances(product.id);
153
+ pendingInstances.push(...productPending);
154
+ }
155
+ if (pendingInstances.length === 0) {
156
+ return;
157
+ }
158
+ console.log(`[factory] Found ${pendingInstances.length} pending instance(s) across ${config.products.length} product(s), ` +
159
+ `${maxSlots - currentCount} slot(s) available`);
160
+ // Step 4: Pick up instances up to capacity
161
+ for (const instance of pendingInstances) {
162
+ if (activeInstances.size >= maxSlots) {
163
+ console.log('[factory] Capacity reached, deferring remaining instances');
164
+ break;
165
+ }
166
+ // Skip if we already track this instance (defensive guard)
167
+ if (activeInstances.has(instance.id)) {
168
+ continue;
169
+ }
170
+ await transitionToPending(instance);
171
+ }
172
+ }
173
+ catch (error) {
174
+ console.error('[factory] Error during poll iteration:', error.message);
175
+ }
176
+ finally {
177
+ isProcessing = false;
178
+ }
179
+ }
180
+ /**
181
+ * Build a FactoryInstanceState from an instance record + resolved blueprint/workflow.
182
+ *
183
+ * Shared by transitionToPending (fresh pickup) and adoptActiveInstance (crash recovery).
184
+ */
185
+ function buildInstanceState(instance, blueprint, workflow, overrides, deploymentProfileSnapshot) {
186
+ return {
187
+ instanceId: instance.id,
188
+ blueprintId: instance.blueprintId,
189
+ productId: instance.productId,
190
+ specType: instance.specType ?? null,
191
+ specId: instance.specId ?? null,
192
+ status: overrides.status,
193
+ currentWorkflowStageId: overrides.currentWorkflowStageId,
194
+ branchName: instance.branchName,
195
+ worktreePath: instance.worktreePath,
196
+ specification: instance.specification,
197
+ blueprint,
198
+ pipelineGraph: blueprint.pipelineGraph ?? null,
199
+ currentPipelineNodeId: overrides.currentPipelineNodeId,
200
+ workflow,
201
+ startedAt: overrides.startedAt,
202
+ activeBuilderSessions: new Map(),
203
+ executionUnits: new Map(),
204
+ escalatedAt: overrides.escalatedAt,
205
+ tokensUsed: overrides.tokensUsed,
206
+ costUsed: overrides.costUsed,
207
+ completionGateIterations: 0,
208
+ gateFailureFeedback: new Map(),
209
+ deploymentProfileSnapshot,
210
+ };
211
+ }
212
+ // ============================================================================
213
+ // Instance state transitions
214
+ // ============================================================================
215
+ /**
216
+ * Pick up a pending instance: fetch its blueprint, persist the status
217
+ * transition to "planning", and add it to the active instances map.
218
+ */
219
+ async function transitionToPending(instance) {
220
+ try {
221
+ // Fetch the full instance + blueprint data
222
+ const { blueprint } = await getInstanceBlueprint(instance.id);
223
+ // Resolve the workflow for this entity type (cached)
224
+ const workflow = await getOrResolveWorkflow('factory_instance');
225
+ // Attempt workflow-governed transition: pending -> designing
226
+ const ctx = buildInstanceEvalContext(null);
227
+ const transResult = await attemptTransition(workflow, 'pending', 'designing', instance.organizationId, 'factory_instance', instance.id, ctx);
228
+ if (!transResult.allowed) {
229
+ console.log(`[factory] Instance ${instance.id} transition pending -> designing blocked by guards`);
230
+ return;
231
+ }
232
+ // Compute initial pipeline node
233
+ const initialPipelineNodeId = blueprint.pipelineGraph
234
+ ? findEntryNode(blueprint.pipelineGraph.nodes, blueprint.pipelineGraph.edges)
235
+ : null;
236
+ // Transition to designing in the DB (including initial pipeline node if present)
237
+ const designingFields = {
238
+ wallClockStartedAt: new Date().toISOString(),
239
+ };
240
+ if (initialPipelineNodeId) {
241
+ designingFields.currentPipelineNodeId = initialPipelineNodeId;
242
+ }
243
+ await updateInstanceStatus(instance.id, 'designing', designingFields);
244
+ // Persist workflow stage if available
245
+ if (transResult.newStageId) {
246
+ await updateInstanceWorkflowStage(instance.id, transResult.newStageId);
247
+ }
248
+ // Load deployment profile snapshot (non-fatal: just omit if unavailable)
249
+ const deploymentProfileSnapshot = await getProductDeploymentProfileSnapshot(instance.productId).catch(() => null);
250
+ const state = buildInstanceState(instance, blueprint, workflow, {
251
+ status: 'designing',
252
+ currentWorkflowStageId: transResult.newStageId ?? instance.currentWorkflowStageId ?? null,
253
+ currentPipelineNodeId: initialPipelineNodeId,
254
+ startedAt: new Date(),
255
+ escalatedAt: null,
256
+ tokensUsed: 0,
257
+ costUsed: 0,
258
+ }, deploymentProfileSnapshot);
259
+ activeInstances.set(instance.id, state);
260
+ const instanceProduct = config ? findFactoryProduct(config, instance.productId) : undefined;
261
+ const productTag = config && config.products.length > 1 && instanceProduct
262
+ ? ` [${basename(instanceProduct.repoPath) || instanceProduct.id.slice(0, 8)}]`
263
+ : '';
264
+ console.log(`[factory] Instance ${instance.id} picked up` + productTag + ` ` +
265
+ `(blueprint: ${blueprint.name}, status: pending -> designing)`);
266
+ // Kick off designing immediately (async, errors handled inside)
267
+ runDesigning(state).catch((error) => {
268
+ console.error(`[factory] Designing failed for instance ${state.instanceId}:`, error.message);
269
+ handleInstanceFailure(state, `Designing failed: ${error.message}`);
270
+ });
271
+ }
272
+ catch (error) {
273
+ console.error(`[factory] Failed to pick up instance ${instance.id}:`, error.message);
274
+ }
275
+ }
276
+ /**
277
+ * Adopt an active instance found in the DB but not in the in-memory map.
278
+ *
279
+ * This handles daemon restart scenarios: the instance was being processed
280
+ * by a previous daemon process, which is now gone. We rebuild the in-memory
281
+ * state and add it to the active map so the poll loop can continue it.
282
+ */
283
+ async function adoptActiveInstance(instance) {
284
+ try {
285
+ const { blueprint } = await getInstanceBlueprint(instance.id);
286
+ const workflow = await getOrResolveWorkflow('factory_instance');
287
+ // Use DB-persisted pipeline node for crash recovery; fall back to entry node
288
+ const recoveredPipelineNodeId = instance.currentPipelineNodeId
289
+ ?? (blueprint.pipelineGraph
290
+ ? findEntryNode(blueprint.pipelineGraph.nodes, blueprint.pipelineGraph.edges)
291
+ : null);
292
+ // Load deployment profile snapshot (non-fatal: just omit if unavailable)
293
+ const deploymentProfileSnapshot = await getProductDeploymentProfileSnapshot(instance.productId).catch(() => null);
294
+ const state = buildInstanceState(instance, blueprint, workflow, {
295
+ status: instance.status,
296
+ currentWorkflowStageId: instance.currentWorkflowStageId ?? null,
297
+ currentPipelineNodeId: recoveredPipelineNodeId,
298
+ startedAt: instance.wallClockStartedAt
299
+ ? new Date(instance.wallClockStartedAt)
300
+ : new Date(),
301
+ escalatedAt: instance.escalatedAt ?? null,
302
+ tokensUsed: instance.tokensUsed ?? 0,
303
+ costUsed: instance.costUsed ?? 0,
304
+ }, deploymentProfileSnapshot);
305
+ activeInstances.set(instance.id, state);
306
+ console.log(`[factory] Adopted active instance ${instance.id} ` +
307
+ `(blueprint: ${blueprint.name}, status: ${instance.status})`);
308
+ // Restore execution units, reset orphaned work units, and reset in_progress
309
+ // strategies back to pending so the scheduler can re-assign them.
310
+ // Covers both daemon-restart recovery and resumed-from-failed scenarios.
311
+ if (state.status === 'building') {
312
+ await recoverResumedInstance(state);
313
+ }
314
+ }
315
+ catch (error) {
316
+ console.error(`[factory] Failed to adopt active instance ${instance.id}:`, error.message);
317
+ }
318
+ }
319
+ /**
320
+ * Monitor active instances and react to state changes.
321
+ *
322
+ * For each active instance, checks whether it has progressed to a new
323
+ * stage and triggers the appropriate phase handler.
324
+ */
325
+ async function monitorActiveInstances() {
326
+ for (const [instanceId, state] of activeInstances) {
327
+ try {
328
+ switch (state.status) {
329
+ case 'designing':
330
+ // Designing is driven by runDesigning -- nothing to poll here
331
+ break;
332
+ case 'planning':
333
+ // Planning is driven by runPlanning -- nothing to poll here
334
+ break;
335
+ case 'building':
336
+ await checkBuilding(state);
337
+ break;
338
+ case 'completed':
339
+ case 'failed':
340
+ case 'cancelled':
341
+ // Terminal states -- remove from active tracking
342
+ activeInstances.delete(instanceId);
343
+ console.log(`[factory] Instance ${instanceId} removed from active tracking (status: ${state.status})`);
344
+ break;
345
+ case 'paused':
346
+ // Check pause timeout -- auto-fail if the human hasn't responded
347
+ await checkPauseTimeout(state);
348
+ break;
349
+ default:
350
+ // Defensive: log unexpected status
351
+ console.warn(`[factory] Instance ${instanceId} has unexpected status: ${state.status}`);
352
+ break;
353
+ }
354
+ }
355
+ catch (error) {
356
+ console.error(`[factory] Error monitoring instance ${instanceId}:`, error.message);
357
+ }
358
+ }
359
+ }
360
+ //# sourceMappingURL=instance-poll-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-poll-loop.js","sourceRoot":"","sources":["../src/instance-poll-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Factory instance state machine -- workflow-governed status transitions,
3
+ * error handling, pause timeout enforcement, and resume recovery.
4
+ *
5
+ * This module is a leaf in the dependency graph: it does not import from
6
+ * the sibling instance-* modules, so it cannot create circular imports.
7
+ */
8
+ import type { FactoryInstanceState, EvaluationContext } from './types.js';
9
+ import { getOrResolveWorkflow } from './workflow-transition.js';
10
+ /**
11
+ * Build a minimal EvaluationContext from the current instance state.
12
+ * Used for guard condition evaluation during workflow transitions.
13
+ */
14
+ export declare function buildInstanceEvalContext(state: FactoryInstanceState | null): EvaluationContext;
15
+ /**
16
+ * Transition a factory instance through the workflow state machine.
17
+ *
18
+ * Attempts a workflow-governed transition from the current status to the
19
+ * target status. If the workflow allows the transition (or no workflow
20
+ * exists), updates both the in-memory state and the database.
21
+ *
22
+ * @param state The in-memory instance state
23
+ * @param targetStatus The target instance status
24
+ * @param reason Optional reason (used for failed/completed messages)
25
+ */
26
+ export declare function transitionInstanceStatus(state: FactoryInstanceState, targetStatus: FactoryInstanceState['status'], reason?: string): Promise<void>;
27
+ /**
28
+ * Transition an instance to "failed" and remove it from active tracking.
29
+ */
30
+ export declare function handleInstanceFailure(state: FactoryInstanceState, reason: string): void;
31
+ /**
32
+ * Recover execution state when a paused instance is resumed.
33
+ *
34
+ * When a factory instance is paused (e.g., resource limit hit), its sessions
35
+ * are terminated but work units and strategies remain in their mid-flight states
36
+ * (in_progress). The scheduler only picks up 'pending' strategies, so without
37
+ * this recovery the instance is deadlocked after resume.
38
+ *
39
+ * Mirrors the orphan-reset logic in adoptActiveInstance but runs live (no
40
+ * daemon restart required).
41
+ */
42
+ export declare function recoverResumedInstance(state: FactoryInstanceState): Promise<void>;
43
+ /**
44
+ * Check whether a paused instance has exceeded its pause timeout.
45
+ *
46
+ * If `blueprint.pauseTimeoutHours` is set and the instance has been paused
47
+ * longer than that, auto-fail it. This prevents paused instances from sitting
48
+ * indefinitely when humans forget about them.
49
+ */
50
+ export declare function checkPauseTimeout(state: FactoryInstanceState): Promise<void>;
51
+ export { getOrResolveWorkflow };
52
+ //# sourceMappingURL=instance-state-machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-state-machine.d.ts","sourceRoot":"","sources":["../src/instance-state-machine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAqB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMnF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,GAAG,iBAAiB,CA+B9F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,oBAAoB,EAC3B,YAAY,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAC5C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAsDf;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOvF;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEvF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkElF;AAID,OAAO,EAAE,oBAAoB,EAAE,CAAC"}