@orbytautomation/engine 0.8.3 → 0.9.0

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 (100) hide show
  1. package/README.md +127 -108
  2. package/dist/core/EngineConfig.d.ts +1 -1
  3. package/dist/core/EngineConfig.d.ts.map +1 -1
  4. package/dist/core/EngineConfig.js +55 -0
  5. package/dist/core/EngineConfig.js.map +1 -1
  6. package/dist/core/OrbytEngine.d.ts +27 -1
  7. package/dist/core/OrbytEngine.d.ts.map +1 -1
  8. package/dist/core/OrbytEngine.js +475 -6
  9. package/dist/core/OrbytEngine.js.map +1 -1
  10. package/dist/distributed/DistributedStepWorker.d.ts +40 -0
  11. package/dist/distributed/DistributedStepWorker.d.ts.map +1 -0
  12. package/dist/distributed/DistributedStepWorker.js +96 -0
  13. package/dist/distributed/DistributedStepWorker.js.map +1 -0
  14. package/dist/distributed/DistributedWorkflowOrchestrator.d.ts +51 -0
  15. package/dist/distributed/DistributedWorkflowOrchestrator.d.ts.map +1 -0
  16. package/dist/distributed/DistributedWorkflowOrchestrator.js +430 -0
  17. package/dist/distributed/DistributedWorkflowOrchestrator.js.map +1 -0
  18. package/dist/distributed/FileDistributedJobQueue.d.ts +29 -0
  19. package/dist/distributed/FileDistributedJobQueue.d.ts.map +1 -0
  20. package/dist/distributed/FileDistributedJobQueue.js +170 -0
  21. package/dist/distributed/FileDistributedJobQueue.js.map +1 -0
  22. package/dist/distributed/InMemoryDistributedJobQueue.d.ts +26 -0
  23. package/dist/distributed/InMemoryDistributedJobQueue.d.ts.map +1 -0
  24. package/dist/distributed/InMemoryDistributedJobQueue.js +130 -0
  25. package/dist/distributed/InMemoryDistributedJobQueue.js.map +1 -0
  26. package/dist/distributed/index.d.ts +5 -0
  27. package/dist/distributed/index.d.ts.map +1 -0
  28. package/dist/distributed/index.js +5 -0
  29. package/dist/distributed/index.js.map +1 -0
  30. package/dist/errors/FieldRegistry.d.ts +6 -2
  31. package/dist/errors/FieldRegistry.d.ts.map +1 -1
  32. package/dist/errors/FieldRegistry.js +11 -0
  33. package/dist/errors/FieldRegistry.js.map +1 -1
  34. package/dist/execution/ExecutionEngine.d.ts.map +1 -1
  35. package/dist/execution/ExecutionEngine.js +2 -1
  36. package/dist/execution/ExecutionEngine.js.map +1 -1
  37. package/dist/execution/InternalExecutionContext.d.ts.map +1 -1
  38. package/dist/execution/InternalExecutionContext.js +3 -1
  39. package/dist/execution/InternalExecutionContext.js.map +1 -1
  40. package/dist/execution/WorkflowExecutor.d.ts +5 -0
  41. package/dist/execution/WorkflowExecutor.d.ts.map +1 -1
  42. package/dist/execution/WorkflowExecutor.js +195 -7
  43. package/dist/execution/WorkflowExecutor.js.map +1 -1
  44. package/dist/explanation/ExplanationGenerator.d.ts.map +1 -1
  45. package/dist/explanation/ExplanationGenerator.js +6 -0
  46. package/dist/explanation/ExplanationGenerator.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/parser/SchemaValidator.d.ts +13 -0
  52. package/dist/parser/SchemaValidator.d.ts.map +1 -1
  53. package/dist/parser/SchemaValidator.js +175 -1
  54. package/dist/parser/SchemaValidator.js.map +1 -1
  55. package/dist/parser/WorkflowParser.d.ts +5 -0
  56. package/dist/parser/WorkflowParser.d.ts.map +1 -1
  57. package/dist/parser/WorkflowParser.js +20 -0
  58. package/dist/parser/WorkflowParser.js.map +1 -1
  59. package/dist/scheduling/JobScheduler.d.ts +12 -0
  60. package/dist/scheduling/JobScheduler.d.ts.map +1 -1
  61. package/dist/scheduling/JobScheduler.js +136 -20
  62. package/dist/scheduling/JobScheduler.js.map +1 -1
  63. package/dist/scheduling/Scheduler.d.ts +3 -0
  64. package/dist/scheduling/Scheduler.d.ts.map +1 -1
  65. package/dist/scheduling/Scheduler.js +3 -0
  66. package/dist/scheduling/Scheduler.js.map +1 -1
  67. package/dist/scheduling/workers/workflow-worker.js +59 -3
  68. package/dist/scheduling/workers/workflow-worker.js.map +1 -1
  69. package/dist/storage/CheckpointStore.d.ts +59 -0
  70. package/dist/storage/CheckpointStore.d.ts.map +1 -0
  71. package/dist/storage/CheckpointStore.js +62 -0
  72. package/dist/storage/CheckpointStore.js.map +1 -0
  73. package/dist/storage/index.d.ts +1 -0
  74. package/dist/storage/index.d.ts.map +1 -1
  75. package/dist/storage/index.js +1 -0
  76. package/dist/storage/index.js.map +1 -1
  77. package/dist/testing/integration/distributed/distributed-smoke.d.ts +3 -0
  78. package/dist/testing/integration/distributed/distributed-smoke.d.ts.map +1 -0
  79. package/dist/testing/integration/distributed/distributed-smoke.js +80 -0
  80. package/dist/testing/integration/distributed/distributed-smoke.js.map +1 -0
  81. package/dist/types/core-types.d.ts +278 -1
  82. package/dist/types/core-types.d.ts.map +1 -1
  83. package/dist/types/core-types.js.map +1 -1
  84. package/dist/usage/FileSpoolUsageCollector.d.ts +74 -0
  85. package/dist/usage/FileSpoolUsageCollector.d.ts.map +1 -0
  86. package/dist/usage/FileSpoolUsageCollector.js +225 -0
  87. package/dist/usage/FileSpoolUsageCollector.js.map +1 -0
  88. package/dist/usage/NoOpUsageCollector.d.ts +35 -0
  89. package/dist/usage/NoOpUsageCollector.d.ts.map +1 -0
  90. package/dist/usage/NoOpUsageCollector.js +40 -0
  91. package/dist/usage/NoOpUsageCollector.js.map +1 -0
  92. package/dist/usage/UsageEventFactory.d.ts +80 -0
  93. package/dist/usage/UsageEventFactory.d.ts.map +1 -0
  94. package/dist/usage/UsageEventFactory.js +117 -0
  95. package/dist/usage/UsageEventFactory.js.map +1 -0
  96. package/dist/usage/index.d.ts +11 -0
  97. package/dist/usage/index.d.ts.map +1 -0
  98. package/dist/usage/index.js +11 -0
  99. package/dist/usage/index.js.map +1 -0
  100. package/package.json +7 -3
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # @orbytautomation/engine
2
2
 
3
- Execution runtime for Orbyt workflows.
3
+ Orbyt's TypeScript automation runtime.
4
4
 
5
5
  ## Package Info
6
6
 
7
- - Name: @orbytautomation/engine
8
- - Version: 0.8.0
9
- - Node: >= 22
7
+ - Name: `@orbytautomation/engine`
8
+ - Version: `0.8.4`
9
+ - Node: `>=22`
10
10
 
11
11
  ## Install
12
12
 
@@ -14,179 +14,198 @@ Execution runtime for Orbyt workflows.
14
14
  npm install @orbytautomation/engine
15
15
  ```
16
16
 
17
- ## Core Concepts
17
+ ## What This Engine Provides
18
18
 
19
- - OrbytEngine: primary runtime class
20
- - WorkflowLoader: load and validate workflow inputs
21
- - run: execute one workflow
22
- - runMany: preload, resolve mode, then execute many workflows
23
- - validate: verify workflow correctness without execution
24
- - explain: build and return execution plan without running steps
19
+ - Workflow loading and validation (`WorkflowLoader`)
20
+ - Single-workflow execution (`run`)
21
+ - Multi-workflow orchestration (`runMany`)
22
+ - Dry-run and explain support (`validate`, `explain`)
23
+ - Retry/timeout execution control
24
+ - Built-in adapters: `cli`, `shell`, `http`, `fs`
25
+ - Event bus and lifecycle hooks
26
+ - Usage telemetry emission through standardized `UsageCollector`
27
+ - Durable local usage spool with optional periodic billing push
28
+ - Checkpoint snapshots and resume support (`resumeFromRunId`)
25
29
 
26
- Built-in adapters are registered by default:
30
+ ## Primary APIs
27
31
 
28
- - cli
29
- - shell
30
- - http
31
- - fs
32
-
33
- ## Quick Start
32
+ ### Run one workflow
34
33
 
35
34
  ```ts
36
- import { OrbytEngine, WorkflowLoader } from "@orbytautomation/engine";
35
+ import { OrbytEngine } from '@orbytautomation/engine';
37
36
 
38
- const engine = new OrbytEngine({ logLevel: "info" });
39
- const workflow = await WorkflowLoader.fromFile("./workflow.yaml");
37
+ const engine = new OrbytEngine({ logLevel: 'info' });
40
38
 
41
- const result = await engine.run(workflow, {
42
- variables: { target: "prod" },
39
+ const result = await engine.run('./workflow.yaml', {
40
+ variables: { region: 'us-east-1' },
41
+ env: { NODE_ENV: 'production' },
42
+ secrets: { TOKEN: process.env.TOKEN },
43
43
  timeout: 300000,
44
+ continueOnError: false,
45
+ triggeredBy: 'manual',
44
46
  });
45
47
 
46
48
  console.log(result.status);
47
49
  ```
48
50
 
49
- ## Single Workflow API
50
-
51
- Accepted workflow inputs:
51
+ Accepted workflow input formats:
52
52
 
53
53
  - file path string
54
54
  - YAML string
55
55
  - JSON string
56
56
  - parsed workflow object
57
57
 
58
+ ### Resume a workflow run
59
+
58
60
  ```ts
59
- const result = await engine.run("./workflow.yaml", {
60
- variables: { region: "us-east-1" },
61
- env: { NODE_ENV: "production" },
62
- secrets: { TOKEN: process.env.TOKEN },
63
- continueOnError: false,
64
- dryRun: false,
61
+ const resumed = await engine.run('./workflow.yaml', {
62
+ resumeFromRunId: 'exec-1712345678901-abc123xyz',
63
+ resumePolicy: 'strict', // 'strict' | 'best-effort'
64
+ triggeredBy: 'scheduler',
65
65
  });
66
66
  ```
67
67
 
68
- ## Batch Execution API (runMany)
68
+ Resume behavior:
69
69
 
70
- runMany behavior:
70
+ - loads checkpoint by run id
71
+ - restores previous step outputs/context
72
+ - skips already successful/skipped steps
73
+ - continues unfinished work
74
+ - emits `workflow.resumed`
71
75
 
72
- 1. Preload and validate all workflows first
73
- 2. Resolve execution mode
74
- 3. Execute in sequential, parallel, or mixed orchestration
75
- 4. Return per-workflow and aggregate result data
76
+ ### Run many workflows
76
77
 
77
78
  ```ts
78
79
  const batch = await engine.runMany([
79
- "./w1.yaml",
80
- "./w2.yaml",
81
- "./w3.yaml",
80
+ './w1.yaml',
81
+ './w2.yaml',
82
+ './w3.yaml',
82
83
  ], {
83
- executionMode: "parallel", // sequential | parallel | mixed
84
+ executionMode: 'mixed', // sequential | parallel | mixed
84
85
  maxParallelWorkflows: 3,
85
86
  mixedBatchSize: 2,
86
87
  failFast: false,
87
88
  });
88
89
 
89
- console.log(batch.mode);
90
- console.log(batch.totalWorkflows, batch.successfulWorkflows, batch.failedWorkflows);
90
+ console.log(batch.mode, batch.successfulWorkflows, batch.failedWorkflows);
91
91
  ```
92
92
 
93
- Mode resolution precedence:
94
-
95
- 1. Explicit executionMode option
96
- 2. Workflow strategy.type declaration
97
- 3. Default sequential
98
-
99
- For details see:
93
+ Execution mode precedence:
100
94
 
101
- - ../docs/execution-modes.md
95
+ 1. explicit `executionMode`
96
+ 2. workflow `strategy.type`
97
+ 3. default `sequential`
102
98
 
103
- ## validate and explain
99
+ ## Validation and Explain
104
100
 
105
101
  ```ts
106
- const ok = await engine.validate("./workflow.yaml");
107
- const plan = await engine.explain("./workflow.yaml");
102
+ const valid = await engine.validate('./workflow.yaml');
103
+ const explanation = await engine.explain('./workflow.yaml');
108
104
  ```
109
105
 
110
- - validate returns true or throws on invalid input
111
- - explain returns an execution explanation object
106
+ - `validate` returns `true` or throws
107
+ - `explain` returns execution analysis without running steps
108
+
109
+ ## Usage and Billing Telemetry
110
+
111
+ The engine emits usage facts through the `UsageCollector` interface from `@dev-ecosystem/core`.
112
+
113
+ Default collector behavior when `usageCollector` is not provided:
112
114
 
113
- ## Configuration (OrbytEngineConfig)
115
+ - uses built-in `FileSpoolUsageCollector`
116
+ - writes durable local spool under `~/.orbyt/usage`
117
+ - optionally sends periodic batches via HTTP transport
114
118
 
115
- Common options:
119
+ Usage events emitted:
116
120
 
117
- - maxConcurrentWorkflows
118
- - maxConcurrentSteps
119
- - defaultTimeout
120
- - mode (local | distributed | dry-run)
121
- - enableScheduler
122
- - adapters
123
- - hooks
124
- - logLevel
125
- - verbose
126
- - stateDir
127
- - logDir
128
- - cacheDir
129
- - runtimeDir
130
- - workingDirectory
121
+ - `usage.workflow.run`
122
+ - `usage.step.execute`
123
+ - `usage.adapter.call`
124
+ - `usage.trigger.fire` (for non-manual trigger sources)
131
125
 
132
- Example:
126
+ ### Configure usage spool
133
127
 
134
128
  ```ts
135
129
  const engine = new OrbytEngine({
136
- mode: "local",
137
- logLevel: "info",
138
- maxConcurrentWorkflows: 10,
139
- maxConcurrentSteps: 10,
140
- defaultTimeout: 300000,
141
- enableScheduler: true,
130
+ usageSpool: {
131
+ enabled: true,
132
+ baseDir: '/home/user/.orbyt/usage',
133
+ batchSize: 200,
134
+ flushIntervalMs: 60000,
135
+ maxRetryAttempts: 10,
136
+ billingEndpoint: process.env.BILLING_INGEST_URL,
137
+ billingApiKey: process.env.BILLING_API_KEY,
138
+ requestTimeoutMs: 10000,
139
+ },
142
140
  });
143
141
  ```
144
142
 
145
- ## Events and Hooks
143
+ ## Checkpointing (Phase 3) and Resume (Phase 4)
144
+
145
+ Checkpoint snapshots are persisted to `~/.orbyt/state/checkpoints` (or configured state path) at:
146
+
147
+ - workflow started
148
+ - step updated
149
+ - workflow completed
150
+ - workflow failed
151
+ - workflow timeout
152
+ - workflow resumed
153
+
154
+ Snapshots include:
155
+
156
+ - workflow run status
157
+ - per-step state and outputs
158
+ - runtime context snapshot
159
+ - metadata with checkpoint reason and timestamps
160
+
161
+ ## Key Configuration Options
146
162
 
147
- Event bus:
163
+ - `maxConcurrentWorkflows`
164
+ - `maxConcurrentSteps`
165
+ - `defaultTimeout`
166
+ - `mode` (`local` | `distributed` | `dry-run`)
167
+ - `enableScheduler`
168
+ - `adapters`
169
+ - `hooks`
170
+ - `logLevel`, `verbose`
171
+ - `stateDir`, `logDir`, `cacheDir`, `runtimeDir`
172
+ - `usageCollector`
173
+ - `usageSpool`
174
+
175
+ ## Event Bus and Hooks
148
176
 
149
177
  ```ts
150
178
  const events = engine.getEventBus();
151
- events.on("workflow.completed", (event) => {
152
- console.log(event.workflowName, event.executionId);
179
+ events.on('workflow.completed', (event) => {
180
+ console.log(event.type, event.runId);
153
181
  });
154
- ```
155
-
156
- Hooks:
157
182
 
158
- ```ts
159
183
  engine.registerHook({
160
- name: "audit-hook",
184
+ name: 'audit-hook',
161
185
  beforeStep: async (ctx) => {
162
- // custom behavior
186
+ // custom logic
163
187
  },
164
188
  });
165
189
  ```
166
190
 
167
- ## Minimal Workflow Example
191
+ ## Runtime Directories
168
192
 
169
- ```yaml
170
- version: "1.0"
171
- kind: workflow
193
+ At startup, engine prepares directories under `~/.orbyt` (or configured equivalents), including:
172
194
 
173
- metadata:
174
- name: simple-shell
195
+ - `state/` (executions, checkpoints, schedules, workflows)
196
+ - `cache/`
197
+ - `runtime/`
198
+ - `usage/`
199
+ - `config/`
175
200
 
176
- workflow:
177
- steps:
178
- - id: step1
179
- uses: shell.exec
180
- with:
181
- command: echo "hello"
182
- ```
201
+ On first use, engine also creates `~/.orbyt/config/config.json`.
183
202
 
184
- ## Related
203
+ ## Related Docs
185
204
 
186
- - ../README.md
187
- - ../docs/execution-modes.md
188
- - ../WORKFLOW_SCHEMA.md
205
+ - `../README.md`
206
+ - `../docs/execution-modes.md`
207
+ - `../WORKFLOW_SCHEMA.md`
189
208
 
190
209
  ## License
191
210
 
192
- MIT
211
+ MIT
@@ -13,7 +13,7 @@ import { OrbytEngineConfig } from "../types/core-types.js";
13
13
  * @param config - User-provided configuration
14
14
  * @returns Configuration with defaults applied
15
15
  */
16
- export declare function applyConfigDefaults(config?: OrbytEngineConfig): Required<Omit<OrbytEngineConfig, 'queue' | 'retryPolicy' | 'timeoutManager' | 'adapters' | 'hooks' | 'metadata'>> & Pick<OrbytEngineConfig, 'queue' | 'retryPolicy' | 'timeoutManager' | 'adapters' | 'hooks' | 'metadata'>;
16
+ export declare function applyConfigDefaults(config?: OrbytEngineConfig): Required<Omit<OrbytEngineConfig, 'queue' | 'retryPolicy' | 'timeoutManager' | 'adapters' | 'hooks' | 'metadata' | 'usageCollector' | 'usageSpool' | 'scheduler' | 'distributed'>> & Pick<OrbytEngineConfig, 'queue' | 'retryPolicy' | 'timeoutManager' | 'adapters' | 'hooks' | 'metadata' | 'usageCollector' | 'usageSpool' | 'scheduler' | 'distributed'>;
17
17
  /**
18
18
  * Validate engine configuration
19
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EngineConfig.d.ts","sourceRoot":"","sources":["../../src/core/EngineConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,iBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC,CAyB/R;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAwB9D"}
1
+ {"version":3,"file":"EngineConfig.d.ts","sourceRoot":"","sources":["../../src/core/EngineConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,iBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC,CAqD/Z;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CA4D9D"}
@@ -39,7 +39,35 @@ export function applyConfigDefaults(config = {}) {
39
39
  sandboxMode: config.sandboxMode ?? 'basic',
40
40
  workingDirectory: config.workingDirectory ?? process.cwd(),
41
41
  experimental: config.experimental ?? false,
42
+ scheduler: {
43
+ job: {
44
+ workerCount: config.scheduler?.job?.workerCount ?? 4,
45
+ workerBackend: config.scheduler?.job?.workerBackend ?? 'node',
46
+ tokioWorkerCommand: config.scheduler?.job?.tokioWorkerCommand ?? 'orbyt-tokio-worker',
47
+ tokioWorkerArgs: config.scheduler?.job?.tokioWorkerArgs ?? [],
48
+ },
49
+ },
50
+ distributed: {
51
+ jobQueue: config.distributed?.jobQueue,
52
+ queueBackend: config.distributed?.queueBackend ?? 'memory',
53
+ fileQueueStateDir: config.distributed?.fileQueueStateDir ?? join(ORBYT_HOME, 'distributed-queue'),
54
+ workerCount: config.distributed?.workerCount ?? config.scheduler?.job?.workerCount ?? 4,
55
+ pollIntervalMs: config.distributed?.pollIntervalMs ?? 50,
56
+ leaseMs: config.distributed?.leaseMs ?? 30_000,
57
+ leaseExtensionMs: config.distributed?.leaseExtensionMs ?? 5_000,
58
+ },
42
59
  metadata: config.metadata,
60
+ usageCollector: config.usageCollector,
61
+ usageSpool: {
62
+ enabled: config.usageSpool?.enabled ?? true,
63
+ baseDir: config.usageSpool?.baseDir ?? join(ORBYT_HOME, 'usage'),
64
+ batchSize: config.usageSpool?.batchSize ?? 200,
65
+ flushIntervalMs: config.usageSpool?.flushIntervalMs ?? 60_000,
66
+ maxRetryAttempts: config.usageSpool?.maxRetryAttempts ?? 10,
67
+ billingEndpoint: config.usageSpool?.billingEndpoint,
68
+ billingApiKey: config.usageSpool?.billingApiKey,
69
+ requestTimeoutMs: config.usageSpool?.requestTimeoutMs ?? 10_000,
70
+ }
43
71
  };
44
72
  }
45
73
  /**
@@ -67,5 +95,32 @@ export function validateConfig(config) {
67
95
  if (config.sandboxMode && !['none', 'basic', 'strict'].includes(config.sandboxMode)) {
68
96
  throw new Error(`Invalid sandboxMode: ${config.sandboxMode}`);
69
97
  }
98
+ if (config.usageSpool?.batchSize !== undefined && config.usageSpool.batchSize < 1) {
99
+ throw new Error('usageSpool.batchSize must be at least 1');
100
+ }
101
+ if (config.usageSpool?.flushIntervalMs !== undefined && config.usageSpool.flushIntervalMs < 1000) {
102
+ throw new Error('usageSpool.flushIntervalMs must be at least 1000ms');
103
+ }
104
+ if (config.usageSpool?.maxRetryAttempts !== undefined && config.usageSpool.maxRetryAttempts < 1) {
105
+ throw new Error('usageSpool.maxRetryAttempts must be at least 1');
106
+ }
107
+ if (config.scheduler?.job?.workerBackend !== undefined && !['node', 'tokio'].includes(config.scheduler.job.workerBackend)) {
108
+ throw new Error("scheduler.job.workerBackend must be either 'node' or 'tokio'");
109
+ }
110
+ if (config.distributed?.queueBackend !== undefined && !['memory', 'file'].includes(config.distributed.queueBackend)) {
111
+ throw new Error("distributed.queueBackend must be either 'memory' or 'file'");
112
+ }
113
+ if (config.distributed?.workerCount !== undefined && config.distributed.workerCount < 1) {
114
+ throw new Error('distributed.workerCount must be at least 1');
115
+ }
116
+ if (config.distributed?.pollIntervalMs !== undefined && config.distributed.pollIntervalMs < 10) {
117
+ throw new Error('distributed.pollIntervalMs must be at least 10ms');
118
+ }
119
+ if (config.distributed?.leaseMs !== undefined && config.distributed.leaseMs < 1000) {
120
+ throw new Error('distributed.leaseMs must be at least 1000ms');
121
+ }
122
+ if (config.distributed?.leaseExtensionMs !== undefined && config.distributed.leaseExtensionMs < 500) {
123
+ throw new Error('distributed.leaseExtensionMs must be at least 500ms');
124
+ }
70
125
  }
71
126
  //# sourceMappingURL=EngineConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EngineConfig.js","sourceRoot":"","sources":["../../src/core/EngineConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EngineConfig.js","sourceRoot":"","sources":["../../src/core/EngineConfig.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,7 @@ import { type EngineLogger } from '../logging/index.js';
69
69
  import { EventBus } from '../events/EventBus.js';
70
70
  import type { Adapter } from '@dev-ecosystem/core';
71
71
  import type { LifecycleHook } from '../hooks/LifecycleHooks.js';
72
- import { EngineContext, ExecutionExplanation, OrbytEngineConfig, OwnershipContext, ParsedWorkflow, WorkflowBatchResult, WorkflowBatchRunOptions, WorkflowResult, WorkflowRunOptions } from '../types/core-types.js';
72
+ import { EngineContext, EngineUsageQueryOptions, EngineUsageQueryResult, ExecutionExplanation, OrbytEngineConfig, OwnershipContext, ParsedWorkflow, WorkflowBatchResult, WorkflowBatchRunOptions, WorkflowResult, WorkflowRunOptions } from '../types/core-types.js';
73
73
  import { ExecutionStore } from '../storage/ExecutionStore.js';
74
74
  import { WorkflowStore } from '../storage/WorkflowStore.js';
75
75
  import { ScheduleStore } from '../storage/ScheduleStore.js';
@@ -217,6 +217,7 @@ export declare class OrbytEngine {
217
217
  private workflowParseCache;
218
218
  private adapterMetadataCache;
219
219
  private runtimeArtifactStore;
220
+ private usageCollector;
220
221
  constructor(config?: OrbytEngineConfig);
221
222
  /**
222
223
  * Wire engine components together
@@ -227,6 +228,13 @@ export declare class OrbytEngine {
227
228
  * This keeps later store/cache writes simple and predictable.
228
229
  */
229
230
  private bootstrapRuntimeDirectories;
231
+ /**
232
+ * Ensure a first-run config file exists at ~/.orbyt/config/config.json.
233
+ *
234
+ * This file is created once and then preserved as the local runtime config
235
+ * snapshot for visibility and tooling introspection.
236
+ */
237
+ private ensureFirstRunConfigFile;
230
238
  /**
231
239
  * Register built-in adapters
232
240
  * These are the core adapters shipped with Orbyt
@@ -327,6 +335,7 @@ export declare class OrbytEngine {
327
335
  * Core single-workflow execution logic used by run() and runMany().
328
336
  */
329
337
  private executeParsedWorkflow;
338
+ private executeDistributedWorkflow;
330
339
  /**
331
340
  * Create isolated per-workflow execution runtime.
332
341
  *
@@ -343,6 +352,16 @@ export declare class OrbytEngine {
343
352
  * INTERNAL: Used to track usage and send billing data to analytics bridge
344
353
  */
345
354
  private onWorkflowBillingComplete;
355
+ /**
356
+ * Safe usage event recording
357
+ *
358
+ * Records a usage event through the configured collector.
359
+ * Failures are logged but never propagate (non-fatal).
360
+ * Called asynchronously and does not block execution.
361
+ *
362
+ * @param event - Usage event to record
363
+ */
364
+ private recordUsageEvent;
346
365
  /**
347
366
  * Validate a workflow without executing it
348
367
  *
@@ -463,6 +482,13 @@ export declare class OrbytEngine {
463
482
  * Get engine runtime version.
464
483
  */
465
484
  getVersion(): string;
485
+ /**
486
+ * Query usage events from the local spool archive and return aggregated metrics.
487
+ */
488
+ getUsage(options?: EngineUsageQueryOptions): Promise<EngineUsageQueryResult>;
489
+ private matchesUsageQuery;
490
+ private resolveUsageGroupKey;
491
+ private resolveTriggerKey;
466
492
  /**
467
493
  * Internal logging method
468
494
  *
@@ -1 +1 @@
1
- {"version":3,"file":"OrbytEngine.d.ts","sourceRoot":"","sources":["../../src/core/OrbytEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrbytEngine.d.ts","sourceRoot":"","sources":["../../src/core/OrbytEngine.ts"],"names":[],"mappings":"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"}