@plumbus/core 0.8.0-beta.0 → 0.8.0-beta.10
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/CHANGELOG.md +197 -0
- package/README.md +8 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/ai/ai/cost-tracker.d.ts +22 -2
- package/dist/ai/ai/model-pricing.d.ts +8 -2
- package/dist/ai/ai/openai-strict-schema.d.ts +84 -0
- package/dist/ai/ai/provider.d.ts +90 -6
- package/dist/ai/ai-service.d.ts +53 -1
- package/dist/ai/ai-service.d.ts.map +1 -1
- package/dist/ai/ai-service.js +550 -119
- package/dist/ai/ai-service.js.map +1 -1
- package/dist/ai/cost-tracker.d.ts +22 -2
- package/dist/ai/cost-tracker.d.ts.map +1 -1
- package/dist/ai/cost-tracker.js +59 -20
- package/dist/ai/cost-tracker.js.map +1 -1
- package/dist/ai/explainability.d.ts +2 -1
- package/dist/ai/explainability.d.ts.map +1 -1
- package/dist/ai/explainability.js +1 -0
- package/dist/ai/explainability.js.map +1 -1
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/model-pricing.d.ts +8 -2
- package/dist/ai/model-pricing.d.ts.map +1 -1
- package/dist/ai/model-pricing.js +113 -15
- package/dist/ai/model-pricing.js.map +1 -1
- package/dist/ai/openai-strict-schema.d.ts +85 -0
- package/dist/ai/openai-strict-schema.d.ts.map +1 -0
- package/dist/ai/openai-strict-schema.js +730 -0
- package/dist/ai/openai-strict-schema.js.map +1 -0
- package/dist/ai/prompt-overrides.d.ts +19 -0
- package/dist/ai/prompt-overrides.d.ts.map +1 -0
- package/dist/ai/prompt-overrides.js +60 -0
- package/dist/ai/prompt-overrides.js.map +1 -0
- package/dist/ai/provider-failure.d.ts +9 -0
- package/dist/ai/provider-failure.d.ts.map +1 -0
- package/dist/ai/provider-failure.js +112 -0
- package/dist/ai/provider-failure.js.map +1 -0
- package/dist/ai/provider.d.ts +90 -6
- package/dist/ai/provider.d.ts.map +1 -1
- package/dist/ai/provider.js +546 -97
- package/dist/ai/provider.js.map +1 -1
- package/dist/ai/rag/pipeline.d.ts +21 -1
- package/dist/ai/rag/pipeline.d.ts.map +1 -1
- package/dist/ai/rag/pipeline.js +17 -1
- package/dist/ai/rag/pipeline.js.map +1 -1
- package/dist/ai/tool-loop.d.ts +8 -1
- package/dist/ai/tool-loop.d.ts.map +1 -1
- package/dist/ai/tool-loop.js +7 -0
- package/dist/ai/tool-loop.js.map +1 -1
- package/dist/ai/types/config.d.ts +13 -0
- package/dist/ai/types/fields.d.ts +6 -0
- package/dist/ai/types/prompt.d.ts +9 -0
- package/dist/ai/usage-validation.d.ts.map +1 -1
- package/dist/ai/usage-validation.js +6 -1
- package/dist/ai/usage-validation.js.map +1 -1
- package/dist/ai/validation.d.ts +7 -3
- package/dist/ai/validation.d.ts.map +1 -1
- package/dist/ai/validation.js +38 -25
- package/dist/ai/validation.js.map +1 -1
- package/dist/ai/zod-to-provider-schema.d.ts.map +1 -1
- package/dist/ai/zod-to-provider-schema.js +246 -16
- package/dist/ai/zod-to-provider-schema.js.map +1 -1
- package/dist/api/route-generator.d.ts +2 -12
- package/dist/api/route-generator.d.ts.map +1 -1
- package/dist/api/route-generator.js +33 -41
- package/dist/api/route-generator.js.map +1 -1
- package/dist/approvals/index.d.ts +1 -1
- package/dist/approvals/index.d.ts.map +1 -1
- package/dist/approvals/index.js.map +1 -1
- package/dist/approvals/memory-store.d.ts.map +1 -1
- package/dist/approvals/memory-store.js +22 -0
- package/dist/approvals/memory-store.js.map +1 -1
- package/dist/approvals/schema.d.ts +34 -0
- package/dist/approvals/schema.d.ts.map +1 -1
- package/dist/approvals/schema.js +2 -0
- package/dist/approvals/schema.js.map +1 -1
- package/dist/approvals/service.d.ts.map +1 -1
- package/dist/approvals/service.js +36 -0
- package/dist/approvals/service.js.map +1 -1
- package/dist/approvals/sql-store.d.ts.map +1 -1
- package/dist/approvals/sql-store.js +42 -1
- package/dist/approvals/sql-store.js.map +1 -1
- package/dist/approvals/types.d.ts +11 -0
- package/dist/approvals/types.d.ts.map +1 -1
- package/dist/approvals/types.js +1 -0
- package/dist/approvals/types.js.map +1 -1
- package/dist/audit/service.d.ts.map +1 -1
- package/dist/audit/service.js +22 -2
- package/dist/audit/service.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +2 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/browser-extension.d.ts +16 -0
- package/dist/cli/commands/browser-extension.d.ts.map +1 -1
- package/dist/cli/commands/browser-extension.js +16 -5
- package/dist/cli/commands/browser-extension.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +7 -1
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/e2e.d.ts +12 -0
- package/dist/cli/commands/e2e.d.ts.map +1 -1
- package/dist/cli/commands/e2e.js +11 -0
- package/dist/cli/commands/e2e.js.map +1 -1
- package/dist/cli/commands/generate-openapi-from-zod.d.ts.map +1 -1
- package/dist/cli/commands/generate-openapi-from-zod.js +9 -1
- package/dist/cli/commands/generate-openapi-from-zod.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +63 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +8 -14
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/payments.d.ts +56 -0
- package/dist/cli/commands/payments.d.ts.map +1 -0
- package/dist/cli/commands/payments.js +184 -0
- package/dist/cli/commands/payments.js.map +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +2 -7
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/seed.d.ts.map +1 -1
- package/dist/cli/commands/seed.js +2 -7
- package/dist/cli/commands/seed.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +9 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/worker.js +1 -1
- package/dist/cli/commands/worker.js.map +1 -1
- package/dist/cli/discover.d.ts +2 -0
- package/dist/cli/discover.d.ts.map +1 -1
- package/dist/cli/discover.js +39 -5
- package/dist/cli/discover.js.map +1 -1
- package/dist/config/loader.d.ts +4 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +112 -24
- package/dist/config/loader.js.map +1 -1
- package/dist/data/connection.d.ts +23 -0
- package/dist/data/connection.d.ts.map +1 -1
- package/dist/data/connection.js +23 -6
- package/dist/data/connection.js.map +1 -1
- package/dist/data/schema-generator.d.ts.map +1 -1
- package/dist/data/schema-generator.js +2 -2
- package/dist/data/schema-generator.js.map +1 -1
- package/dist/define/definePrompt.d.ts.map +1 -1
- package/dist/define/definePrompt.js +6 -0
- package/dist/define/definePrompt.js.map +1 -1
- package/dist/durable/index.d.ts +2 -2
- package/dist/durable/index.d.ts.map +1 -1
- package/dist/durable/index.js +2 -2
- package/dist/durable/index.js.map +1 -1
- package/dist/durable/postgres-persist.d.ts +47 -2
- package/dist/durable/postgres-persist.d.ts.map +1 -1
- package/dist/durable/postgres-persist.js +152 -6
- package/dist/durable/postgres-persist.js.map +1 -1
- package/dist/durable/spine-claim.d.ts +22 -1
- package/dist/durable/spine-claim.d.ts.map +1 -1
- package/dist/durable/spine-claim.js +54 -3
- package/dist/durable/spine-claim.js.map +1 -1
- package/dist/errors/http.d.ts.map +1 -1
- package/dist/errors/http.js +9 -1
- package/dist/errors/http.js.map +1 -1
- package/dist/events/dispatcher.d.ts +20 -0
- package/dist/events/dispatcher.d.ts.map +1 -1
- package/dist/events/dispatcher.js +61 -26
- package/dist/events/dispatcher.js.map +1 -1
- package/dist/events/pipeline-audit.d.ts +14 -0
- package/dist/events/pipeline-audit.d.ts.map +1 -0
- package/dist/events/pipeline-audit.js +29 -0
- package/dist/events/pipeline-audit.js.map +1 -0
- package/dist/events/worker.d.ts +3 -0
- package/dist/events/worker.d.ts.map +1 -1
- package/dist/events/worker.js +14 -14
- package/dist/events/worker.js.map +1 -1
- package/dist/execution/capability-error-hook.d.ts +24 -0
- package/dist/execution/capability-error-hook.d.ts.map +1 -0
- package/dist/execution/capability-error-hook.js +17 -0
- package/dist/execution/capability-error-hook.js.map +1 -0
- package/dist/execution/capability-executor.d.ts +2 -2
- package/dist/execution/capability-executor.d.ts.map +1 -1
- package/dist/execution/capability-executor.js +45 -7
- package/dist/execution/capability-executor.js.map +1 -1
- package/dist/execution/context-factory.d.ts.map +1 -1
- package/dist/execution/context-factory.js +9 -1
- package/dist/execution/context-factory.js.map +1 -1
- package/dist/execution/deferred-flow-service.d.ts.map +1 -1
- package/dist/execution/deferred-flow-service.js +7 -0
- package/dist/execution/deferred-flow-service.js.map +1 -1
- package/dist/execution/index.d.ts +1 -0
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js.map +1 -1
- package/dist/fields/index.d.ts +7 -0
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +10 -1
- package/dist/fields/index.js.map +1 -1
- package/dist/flows/dead-letter.d.ts +18 -1
- package/dist/flows/dead-letter.d.ts.map +1 -1
- package/dist/flows/dead-letter.js +17 -1
- package/dist/flows/dead-letter.js.map +1 -1
- package/dist/flows/engine.d.ts +16 -1
- package/dist/flows/engine.d.ts.map +1 -1
- package/dist/flows/engine.js +218 -29
- package/dist/flows/engine.js.map +1 -1
- package/dist/flows/flow-service.d.ts.map +1 -1
- package/dist/flows/flow-service.js +3 -0
- package/dist/flows/flow-service.js.map +1 -1
- package/dist/flows/step-executor.d.ts +8 -0
- package/dist/flows/step-executor.d.ts.map +1 -1
- package/dist/flows/step-executor.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +18 -1
- package/dist/runtime/bootstrap.d.ts.map +1 -1
- package/dist/runtime/bootstrap.js +36 -5
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/load-extensions.d.ts +2 -1
- package/dist/runtime/load-extensions.d.ts.map +1 -1
- package/dist/runtime/load-extensions.js +49 -1
- package/dist/runtime/load-extensions.js.map +1 -1
- package/dist/runtime/register-consumers.d.ts +3 -0
- package/dist/runtime/register-consumers.d.ts.map +1 -1
- package/dist/runtime/register-consumers.js +27 -6
- package/dist/runtime/register-consumers.js.map +1 -1
- package/dist/runtime/start-worker-pool.d.ts.map +1 -1
- package/dist/runtime/start-worker-pool.js +36 -15
- package/dist/runtime/start-worker-pool.js.map +1 -1
- package/dist/server/bootstrap.d.ts +42 -16
- package/dist/server/bootstrap.d.ts.map +1 -1
- package/dist/server/bootstrap.js +91 -21
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/testing/context.d.ts +2 -0
- package/dist/testing/context.d.ts.map +1 -1
- package/dist/testing/context.js +8 -3
- package/dist/testing/context.js.map +1 -1
- package/dist/testing/field-validation.d.ts.map +1 -1
- package/dist/testing/field-validation.js +3 -0
- package/dist/testing/field-validation.js.map +1 -1
- package/dist/types/config.d.ts +13 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/context.d.ts +70 -4
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/fields.d.ts +6 -0
- package/dist/types/fields.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/prompt.d.ts +9 -0
- package/dist/types/prompt.d.ts.map +1 -1
- package/dist/worker/bootstrap.d.ts +19 -0
- package/dist/worker/bootstrap.d.ts.map +1 -1
- package/dist/worker/bootstrap.js +156 -84
- package/dist/worker/bootstrap.js.map +1 -1
- package/instructions/README.md +4 -1
- package/instructions/ai-classification.md +132 -0
- package/instructions/ai.md +94 -15
- package/instructions/cli.md +19 -1
- package/instructions/entities.md +3 -1
- package/instructions/flows.md +6 -0
- package/instructions/framework.md +13 -3
- package/instructions/peer-dependencies.md +2 -1
- package/instructions/prompts.md +2 -1
- package/migrations/durable-tenant/0002_approval_cancellation.sql +3 -0
- package/migrations/durable-tenant/meta/_journal.json +7 -0
- package/package.json +5 -4
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.d.ts +0 -5
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.d.ts.map +0 -1
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.js +0 -15
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.js.map +0 -1
package/dist/flows/engine.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { and, eq, inArray, isNull, lte, or, sql } from 'drizzle-orm';
|
|
3
1
|
import { randomUUID } from 'node:crypto';
|
|
4
2
|
import { hostname } from 'node:os';
|
|
3
|
+
import { and, eq, inArray, isNull, lte, or, sql } from 'drizzle-orm';
|
|
4
|
+
import { z } from 'zod';
|
|
5
5
|
import { parseDurationToMs } from '../config/duration.js';
|
|
6
|
+
import { FRAMEWORK_SCHEMA } from '../data/schema-generator.js';
|
|
7
|
+
import { ackSpineDispatch, casAdvanceExecution, claimSpineDispatch, deadLetterSpineDispatch, extendSpineDispatchLease, findSpineDispatchTenantRoute, insertDispatchOutbox, loadExecutionState, markExecutionStateTerminal, markOutboxAckedBySpineRow, persistAcceptanceOnDb, persistRetryScheduleOnDb, publishOutboxToSpine, } from '../durable/index.js';
|
|
8
|
+
import { SpineDeliveryState } from '../durable/types.js';
|
|
6
9
|
import { FlowCancelledError, LeaseLostError, PlumbusError } from '../errors/index.js';
|
|
7
|
-
import { BUDGET_EXHAUSTED, consumeExecutionBudget, createExecutionBudgetLedger, writeExecutionBudget, } from './budget.js';
|
|
8
10
|
import { BackoffStrategy, ErrorCode, FlowStepType } from '../types/enums.js';
|
|
9
|
-
import {
|
|
10
|
-
import { ackSpineDispatch, casAdvanceExecution, claimSpineDispatch, insertDispatchOutbox, loadExecutionState, persistAcceptanceOnDb, publishOutboxToSpine, } from '../durable/index.js';
|
|
11
|
+
import { BUDGET_EXHAUSTED, consumeExecutionBudget, createExecutionBudgetLedger, writeExecutionBudget, } from './budget.js';
|
|
11
12
|
import { flowDefinitionId, hydrateCompiledFlow } from './compile-flow.js';
|
|
12
13
|
import { assertSupportedDefinitionStrategy, DefinitionInFlightStrategy, } from './definition-strategy.js';
|
|
13
14
|
import { flowExecutionsTable } from './schema.js';
|
|
@@ -89,8 +90,11 @@ export function createFlowEngine(config) {
|
|
|
89
90
|
const onFlowStepEnqueue = config.onFlowStepEnqueue;
|
|
90
91
|
const spineDispatch = config.spineDispatch;
|
|
91
92
|
const durableSchema = spineDispatch?.coreSchema ?? FRAMEWORK_SCHEMA;
|
|
93
|
+
const maxClaimAttempts = spineDispatch?.maxClaimAttempts ?? 10;
|
|
94
|
+
const untenantedOnControlPlane = spineDispatch?.untenanted === 'control-plane';
|
|
92
95
|
const executionStores = new Map();
|
|
93
96
|
const claimedHints = new Map();
|
|
97
|
+
const scheduledRetries = new Map();
|
|
94
98
|
const executionPins = new Map();
|
|
95
99
|
function restorePinFromRow(row) {
|
|
96
100
|
if (executionPins.has(row.id))
|
|
@@ -138,6 +142,35 @@ export function createFlowEngine(config) {
|
|
|
138
142
|
function storeFor(executionId) {
|
|
139
143
|
return executionStores.get(executionId) ?? db;
|
|
140
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Finds the plane an execution's row lives on when this engine did not start or claim it —
|
|
147
|
+
* a request-side engine reading, cancelling or resuming a flow another process placed on a
|
|
148
|
+
* tenant plane. The spine's dispatch hint names the tenant route; the resolver names the
|
|
149
|
+
* plane. Without a hint the execution is the engine's own (control-plane) row, or unknown,
|
|
150
|
+
* and `db` answers as before.
|
|
151
|
+
*/
|
|
152
|
+
async function locateStore(executionId) {
|
|
153
|
+
const cached = executionStores.get(executionId);
|
|
154
|
+
if (cached)
|
|
155
|
+
return cached;
|
|
156
|
+
if (!spineDispatch)
|
|
157
|
+
return db;
|
|
158
|
+
try {
|
|
159
|
+
const tenantRouteId = await findSpineDispatchTenantRoute(spineDispatch.db, executionId);
|
|
160
|
+
if (!tenantRouteId)
|
|
161
|
+
return db;
|
|
162
|
+
const handle = await spineDispatch.resolver.resolve(tenantRouteId);
|
|
163
|
+
executionStores.set(executionId, handle.db);
|
|
164
|
+
return handle.db;
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
logger?.warn('could not locate the plane of a dispatched execution; using the engine database', {
|
|
168
|
+
executionId,
|
|
169
|
+
error: error instanceof Error ? error.message : String(error),
|
|
170
|
+
});
|
|
171
|
+
return db;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
141
174
|
const onFlowDelayedSchedule = config.onFlowDelayedSchedule;
|
|
142
175
|
async function maybeEnqueueFlowStep(executionId, correlationId) {
|
|
143
176
|
if (onFlowStepEnqueue) {
|
|
@@ -194,11 +227,18 @@ export function createFlowEngine(config) {
|
|
|
194
227
|
let writeDb = db;
|
|
195
228
|
if (spineDispatch) {
|
|
196
229
|
if (!auth.tenantId) {
|
|
197
|
-
|
|
230
|
+
if (!untenantedOnControlPlane) {
|
|
231
|
+
throw new PlumbusError(ErrorCode.Forbidden, 'spine dispatch requires a tenant reference on flow start', { reason: 'untenanted-flow-start' });
|
|
232
|
+
}
|
|
233
|
+
// A control-plane flow: the classic row on the spine, claimed from there.
|
|
234
|
+
writeDb = spineDispatch.db;
|
|
235
|
+
executionStores.set(executionId, writeDb);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
const handle = await spineDispatch.resolver.resolve(auth.tenantId);
|
|
239
|
+
writeDb = handle.db;
|
|
240
|
+
executionStores.set(executionId, writeDb);
|
|
198
241
|
}
|
|
199
|
-
const handle = await spineDispatch.resolver.resolve(auth.tenantId);
|
|
200
|
-
writeDb = handle.db;
|
|
201
|
-
executionStores.set(executionId, writeDb);
|
|
202
242
|
}
|
|
203
243
|
await writeDb.insert(flowExecutionsTable).values({
|
|
204
244
|
id: executionId,
|
|
@@ -269,7 +309,7 @@ export function createFlowEngine(config) {
|
|
|
269
309
|
tenantState.terminal ||
|
|
270
310
|
tenantState.revision !== hint.expectedRevision ||
|
|
271
311
|
tenantState.tenantEpoch !== hint.tenantEpoch) {
|
|
272
|
-
await
|
|
312
|
+
await dropSpineHint(handle.db, hint.dispatchId);
|
|
273
313
|
continue;
|
|
274
314
|
}
|
|
275
315
|
const execRows = await handle.db
|
|
@@ -278,8 +318,16 @@ export function createFlowEngine(config) {
|
|
|
278
318
|
.where(eq(flowExecutionsTable.id, hint.executionId))
|
|
279
319
|
.limit(1);
|
|
280
320
|
const row = execRows[0];
|
|
281
|
-
|
|
282
|
-
|
|
321
|
+
// A row cancelled or otherwise closed outside the run loop keeps no claim on the
|
|
322
|
+
// hint that was published for it: drop the hint rather than revive the row.
|
|
323
|
+
if (!row || isTerminal(row.status)) {
|
|
324
|
+
await dropSpineHint(handle.db, hint.dispatchId);
|
|
325
|
+
continue;
|
|
326
|
+
}
|
|
327
|
+
// A row waiting for an event, or for a wake time that has not come, is not runnable
|
|
328
|
+
// whatever the hint says; leave the hint to lapse rather than run the wait step again.
|
|
329
|
+
if (row.status === FlowStatus.Waiting &&
|
|
330
|
+
(row.waitingForEvent !== null || (row.wakeAt !== null && row.wakeAt > new Date()))) {
|
|
283
331
|
continue;
|
|
284
332
|
}
|
|
285
333
|
executionStores.set(hint.executionId, handle.db);
|
|
@@ -303,16 +351,40 @@ export function createFlowEngine(config) {
|
|
|
303
351
|
logger?.error('spine claim failed closed for one dispatch', {
|
|
304
352
|
dispatchId: hint.dispatchId,
|
|
305
353
|
executionId: hint.executionId,
|
|
354
|
+
attempt: hint.attempt,
|
|
306
355
|
error: error instanceof Error ? error.message : String(error),
|
|
307
356
|
});
|
|
357
|
+
if (hint.attempt >= maxClaimAttempts) {
|
|
358
|
+
await deadLetterSpineDispatch(spineDispatch.db, hint.dispatchId, 'plane-unresolved');
|
|
359
|
+
logger?.warn('spine hint dead-lettered after repeated claim failures', {
|
|
360
|
+
dispatchId: hint.dispatchId,
|
|
361
|
+
executionId: hint.executionId,
|
|
362
|
+
tenantRouteId: hint.tenantRouteId,
|
|
363
|
+
attempt: hint.attempt,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
308
366
|
}
|
|
309
367
|
}
|
|
310
368
|
return rows;
|
|
311
369
|
}
|
|
312
370
|
async function claimNext(batchSize) {
|
|
313
371
|
if (spineDispatch) {
|
|
314
|
-
|
|
372
|
+
const fromSpine = await claimNextFromSpine(batchSize);
|
|
373
|
+
if (!untenantedOnControlPlane)
|
|
374
|
+
return fromSpine;
|
|
375
|
+
// Control-plane flows live on the spine's own `flow_executions`; claim what budget is
|
|
376
|
+
// left there, after the tenant hints.
|
|
377
|
+
const remaining = (batchSize ?? claimBatchSize) - fromSpine.length;
|
|
378
|
+
if (remaining <= 0)
|
|
379
|
+
return fromSpine;
|
|
380
|
+
const fromControlPlane = await claimNextFromOwnDb(remaining);
|
|
381
|
+
for (const row of fromControlPlane)
|
|
382
|
+
executionStores.set(row.id, spineDispatch.db);
|
|
383
|
+
return [...fromSpine, ...fromControlPlane];
|
|
315
384
|
}
|
|
385
|
+
return claimNextFromOwnDb(batchSize);
|
|
386
|
+
}
|
|
387
|
+
async function claimNextFromOwnDb(batchSize) {
|
|
316
388
|
const limit = batchSize ?? claimBatchSize;
|
|
317
389
|
const leaseDurationInterval = `${leaseDurationMs} milliseconds`;
|
|
318
390
|
const result = await db.execute(sql `
|
|
@@ -401,6 +473,22 @@ export function createFlowEngine(config) {
|
|
|
401
473
|
* capability can cooperatively stop its in-flight AI / HTTP work.
|
|
402
474
|
*/
|
|
403
475
|
async function extendLease(executionId) {
|
|
476
|
+
const hint = claimedHints.get(executionId);
|
|
477
|
+
if (spineDispatch && hint) {
|
|
478
|
+
const spineExtended = await extendSpineDispatchLease(spineDispatch.db, {
|
|
479
|
+
dispatchId: hint.dispatchId,
|
|
480
|
+
workerId,
|
|
481
|
+
leaseDurationMs,
|
|
482
|
+
});
|
|
483
|
+
if (!spineExtended) {
|
|
484
|
+
logger?.warn('extendSpineDispatchLease matched 0 rows', {
|
|
485
|
+
executionId,
|
|
486
|
+
dispatchId: hint.dispatchId,
|
|
487
|
+
expectedWorkerId: workerId,
|
|
488
|
+
});
|
|
489
|
+
return false;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
404
492
|
const leaseDurationInterval = `${leaseDurationMs} milliseconds`;
|
|
405
493
|
const result = await storeFor(executionId)
|
|
406
494
|
.update(flowExecutionsTable)
|
|
@@ -548,7 +636,11 @@ export function createFlowEngine(config) {
|
|
|
548
636
|
// Auto-thread `signal` into AI calls so capability authors don't have to
|
|
549
637
|
// pass it explicitly. An explicit `signal` in the call overrides the
|
|
550
638
|
// step default. See AIService type for the per-method signal parameter.
|
|
551
|
-
const scopedAi = ctx.ai.withContext?.({
|
|
639
|
+
const scopedAi = ctx.ai.withContext?.({
|
|
640
|
+
tenantId: flowAuth.tenantId,
|
|
641
|
+
actor: flowAuth.userId,
|
|
642
|
+
correlationId: row.correlationId ?? undefined,
|
|
643
|
+
}) ?? ctx.ai;
|
|
552
644
|
const flowAi = wrapAiWithDefaultSignal(scopedAi, stepAc.signal);
|
|
553
645
|
const flowCtx = {
|
|
554
646
|
...ctx,
|
|
@@ -824,7 +916,7 @@ export function createFlowEngine(config) {
|
|
|
824
916
|
* Resume a waiting flow (e.g., after an event arrives or approval granted).
|
|
825
917
|
*/
|
|
826
918
|
async function resume(executionId, signal) {
|
|
827
|
-
const rows = await
|
|
919
|
+
const rows = await (await locateStore(executionId))
|
|
828
920
|
.select()
|
|
829
921
|
.from(flowExecutionsTable)
|
|
830
922
|
.where(eq(flowExecutionsTable.id, executionId))
|
|
@@ -902,7 +994,7 @@ export function createFlowEngine(config) {
|
|
|
902
994
|
* run their compensation capability first (recovery CompensationState v1).
|
|
903
995
|
*/
|
|
904
996
|
async function cancel(executionId, opts) {
|
|
905
|
-
const rows = await
|
|
997
|
+
const rows = await (await locateStore(executionId))
|
|
906
998
|
.select()
|
|
907
999
|
.from(flowExecutionsTable)
|
|
908
1000
|
.where(eq(flowExecutionsTable.id, executionId))
|
|
@@ -932,6 +1024,7 @@ export function createFlowEngine(config) {
|
|
|
932
1024
|
stepHistory: history,
|
|
933
1025
|
completedAt: new Date(),
|
|
934
1026
|
});
|
|
1027
|
+
await closeSpineState(executionId, 'cancelled');
|
|
935
1028
|
if (audit) {
|
|
936
1029
|
await audit.record(`flow.cancelled.${row.flowName}`, {
|
|
937
1030
|
executionId,
|
|
@@ -1030,7 +1123,7 @@ export function createFlowEngine(config) {
|
|
|
1030
1123
|
* Get the current status of a flow execution.
|
|
1031
1124
|
*/
|
|
1032
1125
|
async function status(executionId) {
|
|
1033
|
-
const rows = await
|
|
1126
|
+
const rows = await (await locateStore(executionId))
|
|
1034
1127
|
.select()
|
|
1035
1128
|
.from(flowExecutionsTable)
|
|
1036
1129
|
.where(eq(flowExecutionsTable.id, executionId))
|
|
@@ -1045,13 +1138,31 @@ export function createFlowEngine(config) {
|
|
|
1045
1138
|
const retryCount = row.retryCount + 1;
|
|
1046
1139
|
const maxRetries = flow.retry?.attempts ?? 0;
|
|
1047
1140
|
if (retryCount <= maxRetries) {
|
|
1048
|
-
|
|
1049
|
-
|
|
1141
|
+
const delayMs = computeRetryDelay(retryCount, flow.retry?.backoff ?? BackoffStrategy.Fixed);
|
|
1142
|
+
const wakeAt = new Date(Date.now() + delayMs);
|
|
1143
|
+
const updated = await guardedUpdate(executionId, {
|
|
1144
|
+
status: FlowStatus.Waiting,
|
|
1050
1145
|
stepHistory: history,
|
|
1051
1146
|
retryCount,
|
|
1052
1147
|
lastError: error ?? null,
|
|
1148
|
+
waitingForEvent: null,
|
|
1149
|
+
wakeAt,
|
|
1150
|
+
leaseOwner: null,
|
|
1151
|
+
leaseExpiresAt: null,
|
|
1053
1152
|
});
|
|
1054
|
-
|
|
1153
|
+
if (!updated) {
|
|
1154
|
+
throw new LeaseLostError(`Lease lost scheduling retry for flow execution "${executionId}"`, { executionId, workerId, step: row.currentStep });
|
|
1155
|
+
}
|
|
1156
|
+
if (spineDispatch && row.currentStep) {
|
|
1157
|
+
scheduledRetries.set(executionId, {
|
|
1158
|
+
stepId: row.currentStep,
|
|
1159
|
+
notBefore: wakeAt.toISOString(),
|
|
1160
|
+
});
|
|
1161
|
+
}
|
|
1162
|
+
if (onFlowDelayedSchedule) {
|
|
1163
|
+
await onFlowDelayedSchedule(executionId, wakeAt, row.correlationId ?? executionId);
|
|
1164
|
+
}
|
|
1165
|
+
return { id: executionId, flowName: row.flowName, status: FlowStatus.Waiting };
|
|
1055
1166
|
}
|
|
1056
1167
|
// Exhausted retries — fail the flow
|
|
1057
1168
|
await failFlow(executionId, row.flowName, error, row);
|
|
@@ -1146,12 +1257,22 @@ export function createFlowEngine(config) {
|
|
|
1146
1257
|
FlowStatus.Waiting,
|
|
1147
1258
|
])));
|
|
1148
1259
|
const rowsAffected = getRowsAffected(result);
|
|
1149
|
-
if (rowsAffected > 0
|
|
1150
|
-
await
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1260
|
+
if (rowsAffected > 0) {
|
|
1261
|
+
await closeSpineState(executionId, 'failed');
|
|
1262
|
+
// The run never reached its sync: the hint this worker holds is dropped here.
|
|
1263
|
+
const hint = claimedHints.get(executionId);
|
|
1264
|
+
const tenantDb = executionStores.get(executionId);
|
|
1265
|
+
if (hint && tenantDb) {
|
|
1266
|
+
await dropSpineHint(tenantDb, hint.dispatchId);
|
|
1267
|
+
claimedHints.delete(executionId);
|
|
1268
|
+
}
|
|
1269
|
+
if (audit) {
|
|
1270
|
+
await audit.record('flow.runner.finalized', {
|
|
1271
|
+
executionId,
|
|
1272
|
+
workerId,
|
|
1273
|
+
error: message,
|
|
1274
|
+
});
|
|
1275
|
+
}
|
|
1155
1276
|
}
|
|
1156
1277
|
return rowsAffected > 0;
|
|
1157
1278
|
}
|
|
@@ -1168,6 +1289,47 @@ export function createFlowEngine(config) {
|
|
|
1168
1289
|
const rowsAffected = getRowsAffected(result);
|
|
1169
1290
|
return rowsAffected > 0;
|
|
1170
1291
|
}
|
|
1292
|
+
/** Acknowledges a hint on the spine and closes the outbox row behind it on the plane. */
|
|
1293
|
+
async function dropSpineHint(tenantDb, dispatchId) {
|
|
1294
|
+
if (!spineDispatch)
|
|
1295
|
+
return false;
|
|
1296
|
+
const acknowledged = await ackSpineDispatch(spineDispatch.db, dispatchId, workerId);
|
|
1297
|
+
if (!acknowledged)
|
|
1298
|
+
return false;
|
|
1299
|
+
try {
|
|
1300
|
+
await markOutboxAckedBySpineRow(tenantDb, dispatchId, new Date().toISOString(), durableSchema);
|
|
1301
|
+
}
|
|
1302
|
+
catch (error) {
|
|
1303
|
+
logger?.warn('acknowledged spine hint left its outbox row open', {
|
|
1304
|
+
dispatchId,
|
|
1305
|
+
error: error instanceof Error ? error.message : String(error),
|
|
1306
|
+
});
|
|
1307
|
+
}
|
|
1308
|
+
return true;
|
|
1309
|
+
}
|
|
1310
|
+
/**
|
|
1311
|
+
* A terminal transition taken outside the run loop — an operator cancel, the runner
|
|
1312
|
+
* finalising a run that threw — leaves the tenant's durable state open and, possibly, a
|
|
1313
|
+
* hint on the spine. Close the state so the next claim drops the hint. Rows on the engine's
|
|
1314
|
+
* own database (classic placement, control-plane flows) carry no durable state.
|
|
1315
|
+
*/
|
|
1316
|
+
async function closeSpineState(executionId, status) {
|
|
1317
|
+
if (!spineDispatch)
|
|
1318
|
+
return;
|
|
1319
|
+
const store = await locateStore(executionId);
|
|
1320
|
+
if (store === spineDispatch.db)
|
|
1321
|
+
return;
|
|
1322
|
+
try {
|
|
1323
|
+
await markExecutionStateTerminal(store, { executionId, status, nowIso: new Date().toISOString() }, durableSchema);
|
|
1324
|
+
}
|
|
1325
|
+
catch (error) {
|
|
1326
|
+
logger?.warn('could not close the durable state of a finished execution', {
|
|
1327
|
+
executionId,
|
|
1328
|
+
status,
|
|
1329
|
+
error: error instanceof Error ? error.message : String(error),
|
|
1330
|
+
});
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1171
1333
|
async function syncSpineAfterRun(executionId, result) {
|
|
1172
1334
|
if (!spineDispatch)
|
|
1173
1335
|
return;
|
|
@@ -1176,6 +1338,27 @@ export function createFlowEngine(config) {
|
|
|
1176
1338
|
if (!hint || !tenantDb)
|
|
1177
1339
|
return;
|
|
1178
1340
|
const nowIso = new Date().toISOString();
|
|
1341
|
+
const retry = scheduledRetries.get(executionId);
|
|
1342
|
+
if (retry) {
|
|
1343
|
+
try {
|
|
1344
|
+
const scheduled = await persistRetryScheduleOnDb(tenantDb, {
|
|
1345
|
+
executionId,
|
|
1346
|
+
expectedRevision: hint.expectedRevision,
|
|
1347
|
+
tenantEpoch: hint.tenantEpoch,
|
|
1348
|
+
stepId: retry.stepId,
|
|
1349
|
+
notBefore: retry.notBefore,
|
|
1350
|
+
}, nowIso, durableSchema);
|
|
1351
|
+
await dropSpineHint(tenantDb, hint.dispatchId);
|
|
1352
|
+
claimedHints.delete(executionId);
|
|
1353
|
+
if (scheduled.kind !== 'committed' || !scheduled.outbox)
|
|
1354
|
+
return;
|
|
1355
|
+
await publishOutboxToSpine(tenantDb, spineDispatch.db, scheduled.outbox, `disp:${executionId}:${scheduled.execution.revision}`, nowIso, durableSchema, { deliveryState: SpineDeliveryState.RetryScheduled });
|
|
1356
|
+
return;
|
|
1357
|
+
}
|
|
1358
|
+
finally {
|
|
1359
|
+
scheduledRetries.delete(executionId);
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1179
1362
|
const flowRow = (await tenantDb
|
|
1180
1363
|
.select({ currentStep: flowExecutionsTable.currentStep })
|
|
1181
1364
|
.from(flowExecutionsTable)
|
|
@@ -1201,7 +1384,7 @@ export function createFlowEngine(config) {
|
|
|
1201
1384
|
sideEffectKey: `${executionId}:${hint.stepId}:${hint.expectedRevision}`,
|
|
1202
1385
|
sideEffectLabel: `${executionId}:${hint.stepId}`,
|
|
1203
1386
|
}, durableSchema);
|
|
1204
|
-
await
|
|
1387
|
+
await dropSpineHint(tenantDb, hint.dispatchId);
|
|
1205
1388
|
claimedHints.delete(executionId);
|
|
1206
1389
|
if (cas !== 'ok' || terminal)
|
|
1207
1390
|
return;
|
|
@@ -1210,11 +1393,15 @@ export function createFlowEngine(config) {
|
|
|
1210
1393
|
return;
|
|
1211
1394
|
const nextStep = flowRow.currentStep;
|
|
1212
1395
|
const outbox = await insertDispatchOutbox(tenantDb, advanced, nextStep, nowIso, durableSchema);
|
|
1213
|
-
|
|
1396
|
+
// The worker that ran this step drains the next one without claiming again, so the hint
|
|
1397
|
+
// for it is born under this worker's lease; a worker that dies mid-drain lets it lapse
|
|
1398
|
+
// and another claims it. Keeping the hint lets the next sync advance the durable state.
|
|
1399
|
+
const next = await publishOutboxToSpine(tenantDb, spineDispatch.db, outbox, `disp:${executionId}:${advanced.revision}`, nowIso, durableSchema, { workerId, leaseExpiresAt: new Date(Date.now() + leaseDurationMs).toISOString() });
|
|
1400
|
+
claimedHints.set(executionId, next);
|
|
1214
1401
|
}
|
|
1215
1402
|
async function applyDefinitionStrategy(executionId, strategy) {
|
|
1216
1403
|
assertSupportedDefinitionStrategy(strategy);
|
|
1217
|
-
const rows = await
|
|
1404
|
+
const rows = await (await locateStore(executionId))
|
|
1218
1405
|
.select()
|
|
1219
1406
|
.from(flowExecutionsTable)
|
|
1220
1407
|
.where(eq(flowExecutionsTable.id, executionId))
|
|
@@ -1261,6 +1448,8 @@ function wrapAiWithDefaultSignal(ai, defaultSignal) {
|
|
|
1261
1448
|
signal: params.signal ?? defaultSignal,
|
|
1262
1449
|
});
|
|
1263
1450
|
return {
|
|
1451
|
+
features: ai.features,
|
|
1452
|
+
decide: (params) => ai.decide(withSignal(params)),
|
|
1264
1453
|
recordProviderCost: (entry, costContext) => ai.recordProviderCost(entry, costContext),
|
|
1265
1454
|
checkProviderCostBudget: (config) => ai.checkProviderCostBudget(config),
|
|
1266
1455
|
generate: (params) => ai.generate(withSignal(params)),
|
package/dist/flows/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/flows/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/flows/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-service.d.ts","sourceRoot":"","sources":["../../src/flows/flow-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkC,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EAC3C,IAAI,EAAE,WAAW,EACjB,QAAQ,CAAC,EAAE,YAAY,GACtB,WAAW,
|
|
1
|
+
{"version":3,"file":"flow-service.d.ts","sourceRoot":"","sources":["../../src/flows/flow-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkC,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EAC3C,IAAI,EAAE,WAAW,EACjB,QAAQ,CAAC,EAAE,YAAY,GACtB,WAAW,CA+Db"}
|
|
@@ -20,6 +20,9 @@ export function createFlowService(engine, auth, registry) {
|
|
|
20
20
|
async cancel(executionId) {
|
|
21
21
|
return engine.cancel(executionId);
|
|
22
22
|
},
|
|
23
|
+
async terminate(executionId) {
|
|
24
|
+
return engine.terminate(executionId);
|
|
25
|
+
},
|
|
23
26
|
async status(executionId) {
|
|
24
27
|
return engine.status(executionId);
|
|
25
28
|
},
|