@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.
- package/dist/audit.d.ts +69 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +376 -0
- package/dist/audit.js.map +1 -0
- package/dist/builder-completion.d.ts +35 -0
- package/dist/builder-completion.d.ts.map +1 -0
- package/dist/builder-completion.js +375 -0
- package/dist/builder-completion.js.map +1 -0
- package/dist/builder-spawner.d.ts +40 -0
- package/dist/builder-spawner.d.ts.map +1 -0
- package/dist/builder-spawner.js +493 -0
- package/dist/builder-spawner.js.map +1 -0
- package/dist/completion-gate.d.ts +52 -0
- package/dist/completion-gate.d.ts.map +1 -0
- package/dist/completion-gate.js +336 -0
- package/dist/completion-gate.js.map +1 -0
- package/dist/completion-report.d.ts +36 -0
- package/dist/completion-report.d.ts.map +1 -0
- package/dist/completion-report.js +348 -0
- package/dist/completion-report.js.map +1 -0
- package/dist/completion.d.ts +58 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +287 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +57 -0
- package/dist/config.js.map +1 -0
- package/dist/context-manager.d.ts +152 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +421 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/crash-detection.d.ts +70 -0
- package/dist/crash-detection.d.ts.map +1 -0
- package/dist/crash-detection.js +123 -0
- package/dist/crash-detection.js.map +1 -0
- package/dist/crash-recovery.d.ts +83 -0
- package/dist/crash-recovery.d.ts.map +1 -0
- package/dist/crash-recovery.js +522 -0
- package/dist/crash-recovery.js.map +1 -0
- package/dist/crash-resolution.d.ts +34 -0
- package/dist/crash-resolution.d.ts.map +1 -0
- package/dist/crash-resolution.js +382 -0
- package/dist/crash-resolution.js.map +1 -0
- package/dist/escalation.d.ts +150 -0
- package/dist/escalation.d.ts.map +1 -0
- package/dist/escalation.js +352 -0
- package/dist/escalation.js.map +1 -0
- package/dist/execution-target.d.ts +31 -0
- package/dist/execution-target.d.ts.map +1 -0
- package/dist/execution-target.js +71 -0
- package/dist/execution-target.js.map +1 -0
- package/dist/execution-unit-init.d.ts +28 -0
- package/dist/execution-unit-init.d.ts.map +1 -0
- package/dist/execution-unit-init.js +115 -0
- package/dist/execution-unit-init.js.map +1 -0
- package/dist/execution.d.ts +17 -0
- package/dist/execution.d.ts.map +1 -0
- package/dist/execution.js +20 -0
- package/dist/execution.js.map +1 -0
- package/dist/factory-engine.d.ts +100 -0
- package/dist/factory-engine.d.ts.map +1 -0
- package/dist/factory-engine.js +243 -0
- package/dist/factory-engine.js.map +1 -0
- package/dist/gap-detection.d.ts +43 -0
- package/dist/gap-detection.d.ts.map +1 -0
- package/dist/gap-detection.js +149 -0
- package/dist/gap-detection.js.map +1 -0
- package/dist/gate-context.d.ts +23 -0
- package/dist/gate-context.d.ts.map +1 -0
- package/dist/gate-context.js +63 -0
- package/dist/gate-context.js.map +1 -0
- package/dist/gate-engine.d.ts +55 -0
- package/dist/gate-engine.d.ts.map +1 -0
- package/dist/gate-engine.js +191 -0
- package/dist/gate-engine.js.map +1 -0
- package/dist/gates/adversarial.d.ts +59 -0
- package/dist/gates/adversarial.d.ts.map +1 -0
- package/dist/gates/adversarial.js +426 -0
- package/dist/gates/adversarial.js.map +1 -0
- package/dist/gates/adversary-spawner.d.ts +35 -0
- package/dist/gates/adversary-spawner.d.ts.map +1 -0
- package/dist/gates/adversary-spawner.js +286 -0
- package/dist/gates/adversary-spawner.js.map +1 -0
- package/dist/gates/adversary-test-dir.d.ts +41 -0
- package/dist/gates/adversary-test-dir.d.ts.map +1 -0
- package/dist/gates/adversary-test-dir.js +150 -0
- package/dist/gates/adversary-test-dir.js.map +1 -0
- package/dist/gates/behavioral-parser.d.ts +32 -0
- package/dist/gates/behavioral-parser.d.ts.map +1 -0
- package/dist/gates/behavioral-parser.js +190 -0
- package/dist/gates/behavioral-parser.js.map +1 -0
- package/dist/gates/behavioral-runner.d.ts +36 -0
- package/dist/gates/behavioral-runner.d.ts.map +1 -0
- package/dist/gates/behavioral-runner.js +306 -0
- package/dist/gates/behavioral-runner.js.map +1 -0
- package/dist/gates/behavioral.d.ts +37 -0
- package/dist/gates/behavioral.d.ts.map +1 -0
- package/dist/gates/behavioral.js +485 -0
- package/dist/gates/behavioral.js.map +1 -0
- package/dist/gates/deterministic.d.ts +24 -0
- package/dist/gates/deterministic.d.ts.map +1 -0
- package/dist/gates/deterministic.js +186 -0
- package/dist/gates/deterministic.js.map +1 -0
- package/dist/git-factory.d.ts +59 -0
- package/dist/git-factory.d.ts.map +1 -0
- package/dist/git-factory.js +102 -0
- package/dist/git-factory.js.map +1 -0
- package/dist/guard-evaluation.d.ts +48 -0
- package/dist/guard-evaluation.d.ts.map +1 -0
- package/dist/guard-evaluation.js +416 -0
- package/dist/guard-evaluation.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-completion.d.ts +34 -0
- package/dist/instance-completion.d.ts.map +1 -0
- package/dist/instance-completion.js +366 -0
- package/dist/instance-completion.js.map +1 -0
- package/dist/instance-lifecycle.d.ts +15 -0
- package/dist/instance-lifecycle.d.ts.map +1 -0
- package/dist/instance-lifecycle.js +18 -0
- package/dist/instance-lifecycle.js.map +1 -0
- package/dist/instance-phase-dispatch.d.ts +75 -0
- package/dist/instance-phase-dispatch.d.ts.map +1 -0
- package/dist/instance-phase-dispatch.js +674 -0
- package/dist/instance-phase-dispatch.js.map +1 -0
- package/dist/instance-poll-loop.d.ts +43 -0
- package/dist/instance-poll-loop.d.ts.map +1 -0
- package/dist/instance-poll-loop.js +360 -0
- package/dist/instance-poll-loop.js.map +1 -0
- package/dist/instance-state-machine.d.ts +52 -0
- package/dist/instance-state-machine.d.ts.map +1 -0
- package/dist/instance-state-machine.js +235 -0
- package/dist/instance-state-machine.js.map +1 -0
- package/dist/log-manager.d.ts +28 -0
- package/dist/log-manager.d.ts.map +1 -0
- package/dist/log-manager.js +71 -0
- package/dist/log-manager.js.map +1 -0
- package/dist/pipeline-evaluator.d.ts +61 -0
- package/dist/pipeline-evaluator.d.ts.map +1 -0
- package/dist/pipeline-evaluator.js +107 -0
- package/dist/pipeline-evaluator.js.map +1 -0
- package/dist/pipeline-metrics.d.ts +52 -0
- package/dist/pipeline-metrics.d.ts.map +1 -0
- package/dist/pipeline-metrics.js +40 -0
- package/dist/pipeline-metrics.js.map +1 -0
- package/dist/pipeline-traversal.d.ts +43 -0
- package/dist/pipeline-traversal.d.ts.map +1 -0
- package/dist/pipeline-traversal.js +68 -0
- package/dist/pipeline-traversal.js.map +1 -0
- package/dist/plan-parser.d.ts +76 -0
- package/dist/plan-parser.d.ts.map +1 -0
- package/dist/plan-parser.js +223 -0
- package/dist/plan-parser.js.map +1 -0
- package/dist/planning-phase.d.ts +52 -0
- package/dist/planning-phase.d.ts.map +1 -0
- package/dist/planning-phase.js +444 -0
- package/dist/planning-phase.js.map +1 -0
- package/dist/planning-prompt.d.ts +64 -0
- package/dist/planning-prompt.d.ts.map +1 -0
- package/dist/planning-prompt.js +251 -0
- package/dist/planning-prompt.js.map +1 -0
- package/dist/planning.d.ts +16 -0
- package/dist/planning.d.ts.map +1 -0
- package/dist/planning.js +17 -0
- package/dist/planning.js.map +1 -0
- package/dist/process-runner.d.ts +41 -0
- package/dist/process-runner.d.ts.map +1 -0
- package/dist/process-runner.js +81 -0
- package/dist/process-runner.js.map +1 -0
- package/dist/product-config.d.ts +34 -0
- package/dist/product-config.d.ts.map +1 -0
- package/dist/product-config.js +43 -0
- package/dist/product-config.js.map +1 -0
- package/dist/queries/cycle-evaluations.d.ts +23 -0
- package/dist/queries/cycle-evaluations.d.ts.map +1 -0
- package/dist/queries/cycle-evaluations.js +37 -0
- package/dist/queries/cycle-evaluations.js.map +1 -0
- package/dist/queries/escalations.d.ts +30 -0
- package/dist/queries/escalations.d.ts.map +1 -0
- package/dist/queries/escalations.js +42 -0
- package/dist/queries/escalations.js.map +1 -0
- package/dist/queries/execution-units.d.ts +76 -0
- package/dist/queries/execution-units.d.ts.map +1 -0
- package/dist/queries/execution-units.js +109 -0
- package/dist/queries/execution-units.js.map +1 -0
- package/dist/queries/gate-results.d.ts +32 -0
- package/dist/queries/gate-results.d.ts.map +1 -0
- package/dist/queries/gate-results.js +44 -0
- package/dist/queries/gate-results.js.map +1 -0
- package/dist/queries/instances.d.ts +51 -0
- package/dist/queries/instances.d.ts.map +1 -0
- package/dist/queries/instances.js +77 -0
- package/dist/queries/instances.js.map +1 -0
- package/dist/queries/sessions.d.ts +50 -0
- package/dist/queries/sessions.d.ts.map +1 -0
- package/dist/queries/sessions.js +81 -0
- package/dist/queries/sessions.js.map +1 -0
- package/dist/queries/shared.d.ts +38 -0
- package/dist/queries/shared.d.ts.map +1 -0
- package/dist/queries/shared.js +119 -0
- package/dist/queries/shared.js.map +1 -0
- package/dist/queries/specs.d.ts +12 -0
- package/dist/queries/specs.d.ts.map +1 -0
- package/dist/queries/specs.js +21 -0
- package/dist/queries/specs.js.map +1 -0
- package/dist/queries/strategies.d.ts +14 -0
- package/dist/queries/strategies.d.ts.map +1 -0
- package/dist/queries/strategies.js +18 -0
- package/dist/queries/strategies.js.map +1 -0
- package/dist/queries/work-units.d.ts +42 -0
- package/dist/queries/work-units.d.ts.map +1 -0
- package/dist/queries/work-units.js +57 -0
- package/dist/queries/work-units.js.map +1 -0
- package/dist/queries/workflows.d.ts +29 -0
- package/dist/queries/workflows.d.ts.map +1 -0
- package/dist/queries/workflows.js +103 -0
- package/dist/queries/workflows.js.map +1 -0
- package/dist/remediation-units.d.ts +40 -0
- package/dist/remediation-units.d.ts.map +1 -0
- package/dist/remediation-units.js +263 -0
- package/dist/remediation-units.js.map +1 -0
- package/dist/replanning.d.ts +72 -0
- package/dist/replanning.d.ts.map +1 -0
- package/dist/replanning.js +403 -0
- package/dist/replanning.js.map +1 -0
- package/dist/resource-limits.d.ts +62 -0
- package/dist/resource-limits.d.ts.map +1 -0
- package/dist/resource-limits.js +322 -0
- package/dist/resource-limits.js.map +1 -0
- package/dist/scheduler.d.ts +98 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +203 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/session-adapter.d.ts +89 -0
- package/dist/session-adapter.d.ts.map +1 -0
- package/dist/session-adapter.js +108 -0
- package/dist/session-adapter.js.map +1 -0
- package/dist/sop-generator.d.ts +29 -0
- package/dist/sop-generator.d.ts.map +1 -0
- package/dist/sop-generator.js +235 -0
- package/dist/sop-generator.js.map +1 -0
- package/dist/spec-profiles.d.ts +41 -0
- package/dist/spec-profiles.d.ts.map +1 -0
- package/dist/spec-profiles.js +131 -0
- package/dist/spec-profiles.js.map +1 -0
- package/dist/strategy-design-graph.d.ts +23 -0
- package/dist/strategy-design-graph.d.ts.map +1 -0
- package/dist/strategy-design-graph.js +205 -0
- package/dist/strategy-design-graph.js.map +1 -0
- package/dist/strategy-design-prompt.d.ts +28 -0
- package/dist/strategy-design-prompt.d.ts.map +1 -0
- package/dist/strategy-design-prompt.js +108 -0
- package/dist/strategy-design-prompt.js.map +1 -0
- package/dist/strategy-design-schema.d.ts +767 -0
- package/dist/strategy-design-schema.d.ts.map +1 -0
- package/dist/strategy-design-schema.js +126 -0
- package/dist/strategy-design-schema.js.map +1 -0
- package/dist/strategy-design.d.ts +69 -0
- package/dist/strategy-design.d.ts.map +1 -0
- package/dist/strategy-design.js +411 -0
- package/dist/strategy-design.js.map +1 -0
- package/dist/strategy-gating.d.ts +31 -0
- package/dist/strategy-gating.d.ts.map +1 -0
- package/dist/strategy-gating.js +276 -0
- package/dist/strategy-gating.js.map +1 -0
- package/dist/team-prompt-builder.d.ts +47 -0
- package/dist/team-prompt-builder.d.ts.map +1 -0
- package/dist/team-prompt-builder.js +362 -0
- package/dist/team-prompt-builder.js.map +1 -0
- package/dist/trace-engine.d.ts +40 -0
- package/dist/trace-engine.d.ts.map +1 -0
- package/dist/trace-engine.js +344 -0
- package/dist/trace-engine.js.map +1 -0
- package/dist/types.d.ts +612 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/unit-session-lifecycle.d.ts +78 -0
- package/dist/unit-session-lifecycle.d.ts.map +1 -0
- package/dist/unit-session-lifecycle.js +141 -0
- package/dist/unit-session-lifecycle.js.map +1 -0
- package/dist/unit-session.d.ts +30 -0
- package/dist/unit-session.d.ts.map +1 -0
- package/dist/unit-session.js +370 -0
- package/dist/unit-session.js.map +1 -0
- package/dist/watchdogs.d.ts +33 -0
- package/dist/watchdogs.d.ts.map +1 -0
- package/dist/watchdogs.js +170 -0
- package/dist/watchdogs.js.map +1 -0
- package/dist/work-unit-scheduler.d.ts +34 -0
- package/dist/work-unit-scheduler.d.ts.map +1 -0
- package/dist/work-unit-scheduler.js +91 -0
- package/dist/work-unit-scheduler.js.map +1 -0
- package/dist/workflow-transition.d.ts +90 -0
- package/dist/workflow-transition.d.ts.map +1 -0
- package/dist/workflow-transition.js +340 -0
- package/dist/workflow-transition.js.map +1 -0
- 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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAMzD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,IAAI,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAC;AACvN,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,sEAAsE;AACtE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgC,CAAC;AAEhE,iDAAiD;AACjD,IAAI,MAAM,GAAyB,IAAI,CAAC;AAExC,gDAAgD;AAChD,IAAI,YAAY,GAA0C,IAAI,CAAC;AAE/D,gDAAgD;AAChD,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,0EAA0E;AAC1E,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,gFAAgF;AAChF,IAAI,QAAQ,GAA4B,IAAI,CAAC;AAE7C,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,aAA4B;IACxD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,GAAG,aAAa,CAAC;IACvB,YAAY,GAAG,KAAK,CAAC;IAErB,8CAA8C;IAC9C,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,QAAQ,EAAE,CAAC;QACb,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,4EAA4E;IAC5E,QAAQ,EAAE,CAAC;IAEX,YAAY,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE;QACrC,MAAM,QAAQ,EAAE,CAAC;IACnB,CAAC,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CACT,sCAAsC,gBAAgB,GAAG,IAAI,KAAK;QAClE,OAAO,MAAM,CAAC,sBAAsB,wBAAwB,CAC7D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,YAAY,EAAE,CAAC;QACjB,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5B,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,YAAY,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;AACxF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAqB;IACtD,QAAQ,GAAG,GAAG,CAAC;IACf,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;GAOG;AACH,KAAK,UAAU,QAAQ;IACrB,IAAI,YAAY;QAAE,OAAO;IAEzB,yDAAyD;IACzD,IAAI,YAAY;QAAE,OAAO;IACzB,YAAY,GAAG,IAAI,CAAC;IAEpB,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,sBAAsB,EAAE,CAAC;QAE/B,2EAA2E;QAC3E,2DAA2D;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjE,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;oBACzC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAAE,SAAS;oBAC/C,sEAAsE;oBACtE,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8DAA8D,OAAO,CAAC,EAAE,GAAG,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACvH,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAE/C,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,6DAA6D;QAC7D,MAAM,gBAAgB,GAAoD,EAAE,CAAC;QAC7E,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7D,gBAAgB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CACT,mBAAmB,gBAAgB,CAAC,MAAM,+BAA+B,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;YAC9G,GAAG,QAAQ,GAAG,YAAY,oBAAoB,CAC/C,CAAC;QAEF,2CAA2C;QAC3C,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,eAAe,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBACzE,MAAM;YACR,CAAC;YAED,2DAA2D;YAC3D,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;IACpF,CAAC;YAAS,CAAC;QACT,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;AACH,CAAC;AAiBD;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,QAAyB,EACzB,SAA4C,EAC5C,QAA0C,EAC1C,SAAiC,EACjC,yBAA4E;IAE5E,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI;QACnC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI;QAC/B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,sBAAsB,EAAE,SAAS,CAAC,sBAAsB;QACxD,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,SAAS;QACT,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,IAAI;QAC9C,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;QACtD,QAAQ;QACR,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,qBAAqB,EAAE,IAAI,GAAG,EAAE;QAChC,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,wBAAwB,EAAE,CAAC;QAC3B,mBAAmB,EAAE,IAAI,GAAG,EAAkB;QAC9C,yBAAyB;KAC1B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,QAAyB;IAC1D,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE9D,qDAAqD;QACrD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAEhE,6DAA6D;QAC7D,MAAM,GAAG,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAChC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAC9D,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CACT,sBAAsB,QAAQ,CAAC,EAAE,oDAAoD,CACtF,CAAC;YACF,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,MAAM,qBAAqB,GAAG,SAAS,CAAC,aAAa;YACnD,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC;QAET,iFAAiF;QACjF,MAAM,eAAe,GAA4B;YAC/C,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC7C,CAAC;QACF,IAAI,qBAAqB,EAAE,CAAC;YAC1B,eAAe,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAChE,CAAC;QACD,MAAM,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QAEtE,sCAAsC;QACtC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,2BAA2B,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QACzE,CAAC;QAED,yEAAyE;QACzE,MAAM,yBAAyB,GAAG,MAAM,mCAAmC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElH,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC9D,MAAM,EAAE,WAAW;YACnB,sBAAsB,EAAE,WAAW,CAAC,UAAU,IAAI,QAAQ,CAAC,sBAAsB,IAAI,IAAI;YACzF,qBAAqB,EAAE,qBAAqB;YAC5C,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC;SACZ,EAAE,yBAAyB,CAAC,CAAC;QAE9B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe;YACxE,CAAC,CAAC,KAAK,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;YAC9E,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CACT,sBAAsB,QAAQ,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,GAAG;YAChE,eAAe,SAAS,CAAC,IAAI,iCAAiC,CAC/D,CAAC;QAEF,gEAAgE;QAChE,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CACX,2CAA2C,KAAK,CAAC,UAAU,GAAG,EAC7D,KAAe,CAAC,OAAO,CACzB,CAAC;YACF,qBAAqB,CAAC,KAAK,EAAE,qBAAsB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,wCAAwC,QAAQ,CAAC,EAAE,GAAG,EACrD,KAAe,CAAC,OAAO,CACzB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAAC,QAAyB;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAEhE,6EAA6E;QAC7E,MAAM,uBAAuB,GAAG,QAAQ,CAAC,qBAAqB;eACzD,CAAC,SAAS,CAAC,aAAa;gBACzB,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC7E,CAAC,CAAC,IAAI,CAAC,CAAC;QAEZ,yEAAyE;QACzE,MAAM,yBAAyB,GAAG,MAAM,mCAAmC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElH,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC9D,MAAM,EAAE,QAAQ,CAAC,MAAwC;YACzD,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,IAAI,IAAI;YAC/D,qBAAqB,EAAE,uBAAuB;YAC9C,SAAS,EAAE,QAAQ,CAAC,kBAAkB;gBACpC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACvC,CAAC,CAAC,IAAI,IAAI,EAAE;YACd,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;YACzC,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,CAAC;YACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC;SACjC,EAAE,yBAAyB,CAAC,CAAC;QAE9B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CACT,qCAAqC,QAAQ,CAAC,EAAE,GAAG;YACnD,eAAe,SAAS,CAAC,IAAI,aAAa,QAAQ,CAAC,MAAM,GAAG,CAC7D,CAAC;QAEF,4EAA4E;QAC5E,kEAAkE;QAClE,yEAAyE;QACzE,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,6CAA6C,QAAQ,CAAC,EAAE,GAAG,EAC1D,KAAe,CAAC,OAAO,CACzB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,sBAAsB;IACnC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,WAAW;oBACd,8DAA8D;oBAC9D,MAAM;gBAER,KAAK,UAAU;oBACb,4DAA4D;oBAC5D,MAAM;gBAER,KAAK,UAAU;oBACb,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;oBAC3B,MAAM;gBAER,KAAK,WAAW,CAAC;gBACjB,KAAK,QAAQ,CAAC;gBACd,KAAK,WAAW;oBACd,iDAAiD;oBACjD,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CACT,sBAAsB,UAAU,0CAA0C,KAAK,CAAC,MAAM,GAAG,CAC1F,CAAC;oBACF,MAAM;gBAER,KAAK,QAAQ;oBACX,iEAAiE;oBACjE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM;gBAER;oBACE,mCAAmC;oBACnC,OAAO,CAAC,IAAI,CACV,sBAAsB,UAAU,2BAA2B,KAAK,CAAC,MAAgB,EAAE,CACpF,CAAC;oBACF,MAAM;YACV,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,uCAAuC,UAAU,GAAG,EACnD,KAAe,CAAC,OAAO,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -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"}
|