@orbytautomation/engine 0.6.2 → 0.7.1

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 (40) hide show
  1. package/dist/adapters/AdapterRegistry.d.ts.map +1 -1
  2. package/dist/adapters/AdapterRegistry.js +2 -1
  3. package/dist/adapters/AdapterRegistry.js.map +1 -1
  4. package/dist/adapters/builtins/CLIAdapter.d.ts.map +1 -1
  5. package/dist/adapters/builtins/CLIAdapter.js +6 -5
  6. package/dist/adapters/builtins/CLIAdapter.js.map +1 -1
  7. package/dist/core/EngineConfig.d.ts.map +1 -1
  8. package/dist/core/EngineConfig.js +6 -2
  9. package/dist/core/EngineConfig.js.map +1 -1
  10. package/dist/core/OrbytEngine.d.ts +19 -0
  11. package/dist/core/OrbytEngine.d.ts.map +1 -1
  12. package/dist/core/OrbytEngine.js +36 -0
  13. package/dist/core/OrbytEngine.js.map +1 -1
  14. package/dist/execution/StepExecutor.d.ts.map +1 -1
  15. package/dist/execution/StepExecutor.js +11 -9
  16. package/dist/execution/StepExecutor.js.map +1 -1
  17. package/dist/execution/WorkflowExecutor.d.ts +6 -0
  18. package/dist/execution/WorkflowExecutor.d.ts.map +1 -1
  19. package/dist/execution/WorkflowExecutor.js +27 -5
  20. package/dist/execution/WorkflowExecutor.js.map +1 -1
  21. package/dist/storage/ExecutionStore.d.ts +102 -1
  22. package/dist/storage/ExecutionStore.d.ts.map +1 -1
  23. package/dist/storage/ExecutionStore.js +188 -1
  24. package/dist/storage/ExecutionStore.js.map +1 -1
  25. package/dist/storage/ScheduleStore.d.ts +154 -1
  26. package/dist/storage/ScheduleStore.d.ts.map +1 -1
  27. package/dist/storage/ScheduleStore.js +208 -1
  28. package/dist/storage/ScheduleStore.js.map +1 -1
  29. package/dist/storage/WorkflowStore.d.ts +82 -1
  30. package/dist/storage/WorkflowStore.d.ts.map +1 -1
  31. package/dist/storage/WorkflowStore.js +183 -1
  32. package/dist/storage/WorkflowStore.js.map +1 -1
  33. package/dist/storage/index.d.ts +3 -1
  34. package/dist/storage/index.d.ts.map +1 -1
  35. package/dist/storage/index.js +3 -4
  36. package/dist/storage/index.js.map +1 -1
  37. package/dist/types/core-types.d.ts +2 -0
  38. package/dist/types/core-types.d.ts.map +1 -1
  39. package/dist/types/core-types.js.map +1 -1
  40. package/package.json +1 -1
@@ -17,6 +17,9 @@ import { ContextStore } from '../context/ContextStore.js';
17
17
  import { createEvent } from '../events/EngineEvents.js';
18
18
  import { LoggerManager } from '../logging/LoggerManager.js';
19
19
  import { EngineEventType } from '../types/core-types.js';
20
+ import { performance } from 'node:perf_hooks';
21
+ import { join } from 'node:path';
22
+ import { ExecutionStore } from '../storage/ExecutionStore.js';
20
23
  /**
21
24
  * Workflow executor
22
25
  */
@@ -26,6 +29,7 @@ export class WorkflowExecutor {
26
29
  contextStore;
27
30
  eventBus;
28
31
  hookManager;
32
+ stateDir = join(process.cwd(), '.orbyt', 'executions');
29
33
  constructor(stepExecutor) {
30
34
  this.stepExecutor = stepExecutor;
31
35
  this.executionId = this.generateExecutionId();
@@ -42,6 +46,13 @@ export class WorkflowExecutor {
42
46
  setHookManager(hookManager) {
43
47
  this.hookManager = hookManager;
44
48
  }
49
+ /**
50
+ * Set the directory where execution state JSON files are written.
51
+ * Defaults to <cwd>/.orbyt/executions
52
+ */
53
+ setStateDir(dir) {
54
+ this.stateDir = dir;
55
+ }
45
56
  /**
46
57
  * Execute a complete workflow
47
58
  *
@@ -50,9 +61,15 @@ export class WorkflowExecutor {
50
61
  * @returns Workflow execution result
51
62
  */
52
63
  async execute(workflow, options = {}) {
64
+ // Regenerate execution ID for each run so concurrent/sequential runs are distinct
65
+ this.executionId = this.generateExecutionId();
53
66
  const startedAt = new Date();
67
+ const workflowStart = performance.now();
54
68
  const stepResults = new Map();
55
69
  const workflowName = workflow.metadata?.name || workflow.name || 'unnamed';
70
+ // Initialise state store (best-effort — never throws)
71
+ const stateStore = new ExecutionStore(this.stateDir);
72
+ stateStore.begin(this.executionId, workflowName, startedAt);
56
73
  // Log workflow execution started
57
74
  LoggerManager.getLogger().workflowStarted(workflowName, {
58
75
  executionId: this.executionId,
@@ -135,7 +152,9 @@ export class WorkflowExecutor {
135
152
  await this.executeWorkflowPlan(workflow, plan, context, stepResults, options, stepMap);
136
153
  }
137
154
  const completedAt = new Date();
138
- const result = this.buildResult(workflow, stepResults, 'success', startedAt, completedAt, plan);
155
+ const result = this.buildResult(workflow, stepResults, 'success', startedAt, completedAt, plan, undefined, Math.round(performance.now() - workflowStart));
156
+ // Persist final state
157
+ stateStore.finalize(this.executionId, 'completed', completedAt, Array.from(stepResults.values()), Math.round(performance.now() - workflowStart));
139
158
  // Emit workflow.completed event
140
159
  if (this.eventBus) {
141
160
  await this.eventBus.emit(createEvent(EngineEventType.WORKFLOW_COMPLETED, {
@@ -168,7 +187,7 @@ export class WorkflowExecutor {
168
187
  workflowName,
169
188
  runId: this.executionId,
170
189
  error: workflowError.message,
171
- durationMs: completedAt.getTime() - startedAt.getTime(),
190
+ durationMs: Math.round(performance.now() - workflowStart),
172
191
  }, {
173
192
  workflowId: workflow.name || this.executionId,
174
193
  runId: this.executionId,
@@ -178,7 +197,9 @@ export class WorkflowExecutor {
178
197
  if (this.hookManager) {
179
198
  await this.hookManager.runOnError(hookContext, workflowError);
180
199
  }
181
- return this.buildResult(workflow, stepResults, status, startedAt, completedAt, plan, workflowError);
200
+ // Persist final state
201
+ stateStore.finalize(this.executionId, status === 'timeout' ? 'timeout' : 'failed', completedAt, Array.from(stepResults.values()), Math.round(performance.now() - workflowStart), workflowError);
202
+ return this.buildResult(workflow, stepResults, status, startedAt, completedAt, plan, workflowError, Math.round(performance.now() - workflowStart));
182
203
  }
183
204
  }
184
205
  /**
@@ -319,13 +340,14 @@ export class WorkflowExecutor {
319
340
  /**
320
341
  * Build workflow execution result
321
342
  */
322
- buildResult(workflow, stepResults, status, startedAt, completedAt, plan, error) {
343
+ buildResult(workflow, stepResults, status, startedAt, completedAt, plan, error, durationMs) {
323
344
  const results = Array.from(stepResults.values());
324
345
  return {
325
346
  workflowName: workflow.name || 'unnamed-workflow',
347
+ executionId: this.executionId,
326
348
  status,
327
349
  stepResults,
328
- duration: completedAt.getTime() - startedAt.getTime(),
350
+ duration: durationMs ?? completedAt.getTime() - startedAt.getTime(),
329
351
  startedAt,
330
352
  completedAt,
331
353
  error,
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowExecutor.js","sourceRoot":"","sources":["../../src/execution/WorkflowExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowExecutor.js","sourceRoot":"","sources":["../../src/execution/WorkflowExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,103 @@
1
- export {};
1
+ /**
2
+ * Execution Store
3
+ *
4
+ * Persists workflow execution state as JSON files under .orbyt/executions/.
5
+ *
6
+ * Lifecycle:
7
+ * begin() — called at workflow start; writes status:"running" immediately
8
+ * so a process crash is always visible in the file.
9
+ * stepUpdate() — called after each step completes; updates the file in real-time
10
+ * so partial progress is always observable.
11
+ * finalize() — called on workflow end; writes final status, summary, and duration.
12
+ *
13
+ * All methods are non-fatal (errors are swallowed) — the store must never
14
+ * interrupt actual workflow execution.
15
+ *
16
+ * @module storage
17
+ */
18
+ import type { StepResult } from '../types/core-types.js';
19
+ export interface PersistedStepState {
20
+ /** Step identifier */
21
+ id: string;
22
+ /** Execution status */
23
+ status: 'success' | 'failure' | 'skipped' | 'timeout' | 'running';
24
+ /** Elapsed duration in milliseconds (monotonic) */
25
+ duration: number;
26
+ /** ISO 8601 wall-clock start timestamp */
27
+ startedAt: string;
28
+ /** ISO 8601 wall-clock end timestamp */
29
+ finishedAt: string;
30
+ /** Number of attempts made (1 = no retry) */
31
+ attempts: number;
32
+ /** Error message if the step failed */
33
+ error?: string;
34
+ }
35
+ export interface ExecutionSummary {
36
+ totalSteps: number;
37
+ successfulSteps: number;
38
+ failedSteps: number;
39
+ skippedSteps: number;
40
+ timedOutSteps: number;
41
+ /** Total wall-time of the entire workflow in milliseconds */
42
+ totalDurationMs: number;
43
+ }
44
+ export interface PersistedExecution {
45
+ /** Unique execution identifier (e.g. exec-1773167099155-rd81x4y4q) */
46
+ executionId: string;
47
+ /** Workflow name */
48
+ workflow: string;
49
+ /** Current execution status */
50
+ status: 'running' | 'completed' | 'failed' | 'timeout';
51
+ /** ISO 8601 start timestamp */
52
+ startedAt: string;
53
+ /** ISO 8601 end timestamp (absent while running) */
54
+ finishedAt?: string;
55
+ /** Monotonic duration in ms (absent while running) */
56
+ totalDurationMs?: number;
57
+ /** Per-step results (updated in real-time) */
58
+ steps: PersistedStepState[];
59
+ /** Aggregate counts (populated on finalize) */
60
+ summary?: ExecutionSummary;
61
+ /** Top-level error message if the workflow failed */
62
+ error?: string;
63
+ }
64
+ /**
65
+ * File-based execution state store.
66
+ *
67
+ * One JSON file per execution run, stored in the configured directory.
68
+ * An in-memory cache avoids re-reading the file on every step update.
69
+ */
70
+ export declare class ExecutionStore {
71
+ private readonly dir;
72
+ /** In-memory cache: executionId → current state */
73
+ private readonly cache;
74
+ constructor(dir: string);
75
+ /**
76
+ * Initialise the execution record with status "running".
77
+ * Creates the storage directory if it does not exist.
78
+ */
79
+ begin(executionId: string, workflowName: string, startedAt: Date): void;
80
+ /**
81
+ * Update a single step's result in the persisted record.
82
+ * Called after each step completes so partial progress is always visible.
83
+ */
84
+ stepUpdate(executionId: string, step: StepResult): void;
85
+ /**
86
+ * Write the final execution record with status, summary, and total duration.
87
+ * Deletes the in-memory cache entry after writing to free memory.
88
+ */
89
+ finalize(executionId: string, status: 'completed' | 'failed' | 'timeout', finishedAt: Date, stepResults: StepResult[], totalDurationMs: number, error?: Error): void;
90
+ /**
91
+ * Read a persisted execution record by ID.
92
+ * Returns null if the record does not exist or cannot be read.
93
+ */
94
+ read(executionId: string): PersistedExecution | null;
95
+ /**
96
+ * List all execution IDs present in the store, sorted newest-first by filename.
97
+ */
98
+ list(): string[];
99
+ private _getOrLoad;
100
+ private _filePath;
101
+ private _write;
102
+ }
2
103
  //# sourceMappingURL=ExecutionStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutionStore.d.ts","sourceRoot":"","sources":["../../src/storage/ExecutionStore.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ExecutionStore.d.ts","sourceRoot":"","sources":["../../src/storage/ExecutionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAClE,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvD,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;gBAEnD,GAAG,EAAE,MAAM;IAMvB;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI;IAiBvE;;;OAGG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IA6BvD;;;OAGG;IACH,QAAQ,CACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,EAC1C,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,UAAU,EAAE,EACzB,eAAe,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,KAAK,GACZ,IAAI;IAyCP;;;OAGG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAapD;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAehB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM;CAGf"}
@@ -1,2 +1,189 @@
1
- export {};
1
+ /**
2
+ * Execution Store
3
+ *
4
+ * Persists workflow execution state as JSON files under .orbyt/executions/.
5
+ *
6
+ * Lifecycle:
7
+ * begin() — called at workflow start; writes status:"running" immediately
8
+ * so a process crash is always visible in the file.
9
+ * stepUpdate() — called after each step completes; updates the file in real-time
10
+ * so partial progress is always observable.
11
+ * finalize() — called on workflow end; writes final status, summary, and duration.
12
+ *
13
+ * All methods are non-fatal (errors are swallowed) — the store must never
14
+ * interrupt actual workflow execution.
15
+ *
16
+ * @module storage
17
+ */
18
+ import { mkdirSync, writeFileSync, readFileSync, existsSync, readdirSync } from 'fs';
19
+ import { join, basename } from 'node:path';
20
+ // ─── ExecutionStore ───────────────────────────────────────────────────────────
21
+ /**
22
+ * File-based execution state store.
23
+ *
24
+ * One JSON file per execution run, stored in the configured directory.
25
+ * An in-memory cache avoids re-reading the file on every step update.
26
+ */
27
+ export class ExecutionStore {
28
+ dir;
29
+ /** In-memory cache: executionId → current state */
30
+ cache = new Map();
31
+ constructor(dir) {
32
+ this.dir = dir;
33
+ }
34
+ // ─── Write API ─────────────────────────────────────────────────────────────
35
+ /**
36
+ * Initialise the execution record with status "running".
37
+ * Creates the storage directory if it does not exist.
38
+ */
39
+ begin(executionId, workflowName, startedAt) {
40
+ try {
41
+ mkdirSync(this.dir, { recursive: true });
42
+ const state = {
43
+ executionId,
44
+ workflow: workflowName,
45
+ status: 'running',
46
+ startedAt: startedAt.toISOString(),
47
+ steps: [],
48
+ };
49
+ this.cache.set(executionId, state);
50
+ this._write(executionId, state);
51
+ }
52
+ catch {
53
+ // Non-fatal
54
+ }
55
+ }
56
+ /**
57
+ * Update a single step's result in the persisted record.
58
+ * Called after each step completes so partial progress is always visible.
59
+ */
60
+ stepUpdate(executionId, step) {
61
+ try {
62
+ const state = this._getOrLoad(executionId);
63
+ if (!state)
64
+ return;
65
+ const entry = {
66
+ id: step.stepId,
67
+ status: step.status,
68
+ duration: step.duration,
69
+ startedAt: step.startedAt.toISOString(),
70
+ finishedAt: step.completedAt.toISOString(),
71
+ attempts: step.attempts,
72
+ ...(step.error ? { error: step.error.message } : {}),
73
+ };
74
+ const idx = state.steps.findIndex(s => s.id === step.stepId);
75
+ if (idx === -1) {
76
+ state.steps.push(entry);
77
+ }
78
+ else {
79
+ state.steps[idx] = entry;
80
+ }
81
+ this.cache.set(executionId, state);
82
+ this._write(executionId, state);
83
+ }
84
+ catch {
85
+ // Non-fatal
86
+ }
87
+ }
88
+ /**
89
+ * Write the final execution record with status, summary, and total duration.
90
+ * Deletes the in-memory cache entry after writing to free memory.
91
+ */
92
+ finalize(executionId, status, finishedAt, stepResults, totalDurationMs, error) {
93
+ try {
94
+ const state = this._getOrLoad(executionId) ?? {
95
+ executionId,
96
+ workflow: 'unknown',
97
+ status: 'running',
98
+ startedAt: finishedAt.toISOString(),
99
+ steps: [],
100
+ };
101
+ state.status = status;
102
+ state.finishedAt = finishedAt.toISOString();
103
+ state.totalDurationMs = totalDurationMs;
104
+ state.steps = stepResults.map(r => ({
105
+ id: r.stepId,
106
+ status: r.status,
107
+ duration: r.duration,
108
+ startedAt: r.startedAt.toISOString(),
109
+ finishedAt: r.completedAt.toISOString(),
110
+ attempts: r.attempts,
111
+ ...(r.error ? { error: r.error.message } : {}),
112
+ }));
113
+ state.summary = {
114
+ totalSteps: stepResults.length,
115
+ successfulSteps: stepResults.filter(r => r.status === 'success').length,
116
+ failedSteps: stepResults.filter(r => r.status === 'failure').length,
117
+ skippedSteps: stepResults.filter(r => r.status === 'skipped').length,
118
+ timedOutSteps: stepResults.filter(r => r.status === 'timeout').length,
119
+ totalDurationMs,
120
+ };
121
+ if (error)
122
+ state.error = error.message;
123
+ this._write(executionId, state);
124
+ this.cache.delete(executionId); // Release memory — execution is done
125
+ }
126
+ catch {
127
+ // Non-fatal
128
+ }
129
+ }
130
+ // ─── Read API ──────────────────────────────────────────────────────────────
131
+ /**
132
+ * Read a persisted execution record by ID.
133
+ * Returns null if the record does not exist or cannot be read.
134
+ */
135
+ read(executionId) {
136
+ try {
137
+ const cached = this.cache.get(executionId);
138
+ if (cached)
139
+ return { ...cached }; // Return a copy
140
+ const filePath = this._filePath(executionId);
141
+ if (!existsSync(filePath))
142
+ return null;
143
+ return JSON.parse(readFileSync(filePath, 'utf-8'));
144
+ }
145
+ catch {
146
+ return null;
147
+ }
148
+ }
149
+ /**
150
+ * List all execution IDs present in the store, sorted newest-first by filename.
151
+ */
152
+ list() {
153
+ try {
154
+ mkdirSync(this.dir, { recursive: true });
155
+ return readdirSync(this.dir)
156
+ .filter(f => f.endsWith('.json'))
157
+ .map(f => basename(f, '.json'))
158
+ .sort()
159
+ .reverse();
160
+ }
161
+ catch {
162
+ return [];
163
+ }
164
+ }
165
+ // ─── Internal helpers ──────────────────────────────────────────────────────
166
+ _getOrLoad(executionId) {
167
+ const cached = this.cache.get(executionId);
168
+ if (cached)
169
+ return cached;
170
+ const filePath = this._filePath(executionId);
171
+ if (!existsSync(filePath))
172
+ return null;
173
+ try {
174
+ const state = JSON.parse(readFileSync(filePath, 'utf-8'));
175
+ this.cache.set(executionId, state);
176
+ return state;
177
+ }
178
+ catch {
179
+ return null;
180
+ }
181
+ }
182
+ _filePath(executionId) {
183
+ return join(this.dir, `${executionId}.json`);
184
+ }
185
+ _write(executionId, state) {
186
+ writeFileSync(this._filePath(executionId), JSON.stringify(state, null, 2), 'utf-8');
187
+ }
188
+ }
2
189
  //# sourceMappingURL=ExecutionStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutionStore.js","sourceRoot":"","sources":["../../src/storage/ExecutionStore.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ExecutionStore.js","sourceRoot":"","sources":["../../src/storage/ExecutionStore.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,155 @@
1
- export {};
1
+ /**
2
+ * Schedule Store
3
+ *
4
+ * Persists workflow schedule state under .orbyt/schedules/.
5
+ * One JSON file per schedule; enables restart recovery so the scheduler
6
+ * can reload all known schedules without re-registration by callers.
7
+ *
8
+ * Layout:
9
+ * .orbyt/schedules/<scheduleId>.json
10
+ *
11
+ * Primary purposes:
12
+ * - Persist cron/interval schedules so they survive process restarts
13
+ * - Track last-run / next-run timestamps for missed-run recovery
14
+ * - Record consecutive error counts for circuit-breaker logic
15
+ *
16
+ * All methods are non-fatal (errors are swallowed) — the store must never
17
+ * interrupt the scheduler or workflow execution.
18
+ *
19
+ * @module storage
20
+ */
21
+ import type { ScheduleStatus, ScheduleTriggerType } from '../types/core-types.js';
22
+ export interface PersistedSchedule {
23
+ /** Unique schedule identifier */
24
+ scheduleId: string;
25
+ /** Identifier of the workflow this schedule triggers */
26
+ workflowId: string;
27
+ /** Human-readable workflow name (for display only) */
28
+ workflowName: string;
29
+ /**
30
+ * Trigger type — covers all scheduling modalities:
31
+ * 'cron' — cron expression (cronExpression field required)
32
+ * 'interval' — fixed interval (intervalMs field required)
33
+ * 'once' — one-shot at a future time (nextRunAt used as fire time)
34
+ * 'event' — external event bus trigger (eventSource field required)
35
+ * 'webhook' — inbound HTTP call (webhookEndpoint + optional webhookSecret)
36
+ * 'manual' — user-triggered; stored for replay/audit history
37
+ */
38
+ triggerType: ScheduleTriggerType;
39
+ /** Cron expression (required when triggerType is 'cron') */
40
+ cronExpression?: string;
41
+ /** Interval in milliseconds (required when triggerType is 'interval') */
42
+ intervalMs?: number;
43
+ /** Timezone for cron evaluation (default: UTC) */
44
+ timezone?: string;
45
+ /**
46
+ * Event source identifier (required when triggerType is 'event').
47
+ * E.g. 'analytics.report.ready', 'billing.invoice.created'.
48
+ */
49
+ eventSource?: string;
50
+ /** Optional filter expression evaluated against the event payload */
51
+ eventFilter?: string;
52
+ /**
53
+ * Inbound webhook path / endpoint (required when triggerType is 'webhook').
54
+ * E.g. '/hooks/deploy' or 'https://hooks.example.com/deploy'.
55
+ */
56
+ webhookEndpoint?: string;
57
+ /**
58
+ * HMAC secret used for payload signature verification.
59
+ * Stored as-is; callers should pass an already-encrypted value.
60
+ */
61
+ webhookSecret?: string;
62
+ /** HTTP method expected on the webhook endpoint (default: POST) */
63
+ webhookMethod?: 'GET' | 'POST' | 'PUT' | 'PATCH';
64
+ /**
65
+ * Current schedule status.
66
+ * 'active' — running normally
67
+ * 'paused' — temporarily disabled (can be re-enabled)
68
+ * 'disabled' — permanently disabled
69
+ * 'expired' — end date passed or maxExecutions reached
70
+ */
71
+ status: ScheduleStatus;
72
+ /** ISO 8601 timestamp of when this schedule was first created */
73
+ createdAt: string;
74
+ /** ISO 8601 timestamp of when this schedule was last updated */
75
+ updatedAt: string;
76
+ /** ISO 8601 timestamp of the last trigger fire */
77
+ lastRunAt?: string;
78
+ /** Result of the last execution */
79
+ lastStatus?: 'completed' | 'failed' | 'timeout';
80
+ /** ISO 8601 timestamp of the next scheduled trigger (cron/interval/once) */
81
+ nextRunAt?: string;
82
+ /** Hard stop date — schedule will not fire after this (ISO 8601) */
83
+ endDate?: string;
84
+ /** Maximum number of executions (undefined = unlimited) */
85
+ maxExecutions?: number;
86
+ /** Number of times the schedule has fired */
87
+ executionCount: number;
88
+ /** Consecutive error count — reset to 0 on success */
89
+ errorCount: number;
90
+ /** Error message from the most recent failure */
91
+ lastError?: string;
92
+ /** Static input data merged into each triggered execution */
93
+ input?: Record<string, any>;
94
+ }
95
+ /**
96
+ * File-based schedule state store.
97
+ *
98
+ * An in-memory cache avoids re-reading files on every access.
99
+ * The cache is always the source of truth for in-flight updates;
100
+ * the file acts as the durable record for restarts.
101
+ */
102
+ export declare class ScheduleStore {
103
+ private readonly dir;
104
+ /** In-memory cache: scheduleId → current state */
105
+ private readonly cache;
106
+ constructor(dir: string);
107
+ /**
108
+ * Persist a schedule record.
109
+ * Creates the storage directory on first call.
110
+ * If the schedule already exists it is fully replaced.
111
+ */
112
+ save(schedule: PersistedSchedule): void;
113
+ /**
114
+ * Record the outcome of a schedule trigger.
115
+ *
116
+ * - Updates `lastRunAt`, `lastStatus`, `nextRunAt`
117
+ * - Increments `executionCount`
118
+ * - On success: resets `errorCount` and clears `lastError`
119
+ * - On failure: increments `errorCount` and stores `lastError`
120
+ */
121
+ updateLastRun(scheduleId: string, status: 'completed' | 'failed' | 'timeout', runAt: Date, nextRunAt?: Date, error?: string): void;
122
+ /**
123
+ * Mark a schedule as active.
124
+ * No-op if the schedule does not exist.
125
+ */
126
+ enable(scheduleId: string): void;
127
+ /**
128
+ * Mark a schedule as paused — it will not fire until re-enabled.
129
+ * No-op if the schedule does not exist.
130
+ */
131
+ disable(scheduleId: string): void;
132
+ /**
133
+ * Remove a schedule from both the cache and disk.
134
+ * Safe to call if the schedule does not exist.
135
+ */
136
+ delete(scheduleId: string): void;
137
+ /**
138
+ * Read a single schedule by ID.
139
+ * Returns null if not found.
140
+ */
141
+ load(scheduleId: string): PersistedSchedule | null;
142
+ /**
143
+ * Return all persisted schedules, sorted by `createdAt` ascending.
144
+ */
145
+ list(): PersistedSchedule[];
146
+ /**
147
+ * Return only schedules that are currently active.
148
+ */
149
+ listEnabled(): PersistedSchedule[];
150
+ private _setStatus;
151
+ private _getOrLoad;
152
+ private _filePath;
153
+ private _write;
154
+ }
2
155
  //# sourceMappingURL=ScheduleStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleStore.d.ts","sourceRoot":"","sources":["../../src/storage/ScheduleStore.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ScheduleStore.d.ts","sourceRoot":"","sources":["../../src/storage/ScheduleStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlF,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,WAAW,EAAE,mBAAmB,CAAC;IAGjC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAGjD;;;;;;OAMG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAGlB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAID;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;gBAElD,GAAG,EAAE,MAAM;IAMvB;;;;OAIG;IACH,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAcvC;;;;;;;OAOG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,EAC1C,KAAK,EAAE,IAAI,EACX,SAAS,CAAC,EAAE,IAAI,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;IA0BP;;;OAGG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIhC;;;OAGG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIjC;;;OAGG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYhC;;;OAGG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAalD;;OAEG;IACH,IAAI,IAAI,iBAAiB,EAAE;IAoB3B;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE;IAMlC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM;CAGf"}