@voyantjs/workflow-runs 0.41.3 → 0.44.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.
- package/README.md +39 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/routes.d.ts +1 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +68 -0
- package/dist/runner.d.ts +18 -0
- package/dist/runner.d.ts.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ export function WorkflowsRoute() {
|
|
|
29
29
|
|
|
30
30
|
## Mount the admin routes
|
|
31
31
|
|
|
32
|
-
`mountWorkflowRunsAdminRoutes` adds the workflow-run list, detail, rerun, and resume endpoints under `/v1/admin/workflow-runs`.
|
|
32
|
+
`mountWorkflowRunsAdminRoutes` adds the workflow-run list, detail, rerun, and resume endpoints under `/v1/admin/workflow-runs`, plus an explicit trigger endpoint at `POST /v1/admin/workflows/:name/runs`.
|
|
33
33
|
|
|
34
34
|
```ts
|
|
35
35
|
import { mountWorkflowRunsAdminRoutes, WorkflowRunnerRegistry } from "@voyantjs/workflow-runs"
|
|
@@ -45,6 +45,15 @@ workflowRunnerRegistry.register({
|
|
|
45
45
|
idempotency: "unsafe",
|
|
46
46
|
description:
|
|
47
47
|
"Confirms the booking and issues the final invoice. Use Resume to retry from a failed step.",
|
|
48
|
+
trigger: async (input, ctx) => {
|
|
49
|
+
const saved = await workflowServer.trigger({
|
|
50
|
+
workflowId: "checkout-finalize",
|
|
51
|
+
input,
|
|
52
|
+
tags: ctx.tags,
|
|
53
|
+
triggeredByUserId: ctx.triggeredByUserId,
|
|
54
|
+
})
|
|
55
|
+
return { runId: saved.id }
|
|
56
|
+
},
|
|
48
57
|
rerun: async (input, ctx) => {
|
|
49
58
|
const saved = await workflowServer.trigger({
|
|
50
59
|
workflowId: "checkout-finalize",
|
|
@@ -71,6 +80,32 @@ mountWorkflowRunsAdminRoutes(hono, {
|
|
|
71
80
|
})
|
|
72
81
|
```
|
|
73
82
|
|
|
83
|
+
Triggerable workflows must opt in by implementing `trigger(...)` on their registered runner. This keeps rerun/resume-only workflows closed to arbitrary admin dispatch while still allowing operators, cron jobs, queues, and API keys with `workflows:trigger` permission to call:
|
|
84
|
+
|
|
85
|
+
```http
|
|
86
|
+
POST /v1/admin/workflows/checkout-finalize/runs
|
|
87
|
+
Content-Type: application/json
|
|
88
|
+
|
|
89
|
+
{
|
|
90
|
+
"input": { "bookingId": "bk_123" },
|
|
91
|
+
"idempotencyKey": "checkout-finalize:bk_123",
|
|
92
|
+
"correlationId": "bk_123",
|
|
93
|
+
"tags": ["source:admin"]
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The route returns `202 Accepted` with the queued run id:
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"data": {
|
|
102
|
+
"runId": "wfrn_...",
|
|
103
|
+
"workflowName": "checkout-finalize",
|
|
104
|
+
"status": "queued"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
74
109
|
For self-hosted workflow services, keep runner registration close to the code that mounts the workflow service. The registry should dispatch to your external workflow server instead of importing worker-only runtime code into the admin API process. The resume path sends `ctx.resumeFromStep` plus `ctx.seedResults`; the self-host server starts a new run, pre-populates the journal with the seeded step outputs, and executes from the failed step onward.
|
|
75
110
|
|
|
76
111
|
## Record `@voyantjs/workflows` executions
|
|
@@ -117,6 +152,6 @@ export const syncCatalogWorkflow = recordedWorkflow(
|
|
|
117
152
|
)
|
|
118
153
|
```
|
|
119
154
|
|
|
120
|
-
This helper only records observability data.
|
|
121
|
-
`WorkflowRunnerRegistry` registration so apps can choose which
|
|
122
|
-
safe to dispatch from the admin UI.
|
|
155
|
+
This helper only records observability data. Trigger, rerun, and resume support
|
|
156
|
+
still uses `WorkflowRunnerRegistry` registration so apps can choose which
|
|
157
|
+
workflows are safe to dispatch from the admin UI.
|
package/dist/index.d.ts
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
export { type BeginWorkflowRunInput, beginWorkflowRun, type WorkflowRunRecorder, } from "./recorder.js";
|
|
20
20
|
export { mountWorkflowRunsAdminRoutes } from "./routes.js";
|
|
21
|
-
export { type WorkflowIdempotency, type WorkflowRerunContext, type WorkflowResumeContext, type WorkflowRunner, WorkflowRunnerRegistry, } from "./runner.js";
|
|
21
|
+
export { type WorkflowIdempotency, type WorkflowRerunContext, type WorkflowResumeContext, type WorkflowRunner, WorkflowRunnerRegistry, type WorkflowTriggerContext, } from "./runner.js";
|
|
22
22
|
export { type NewWorkflowRun, type NewWorkflowRunStep, type WorkflowRun, type WorkflowRunErrorPayload, type WorkflowRunStep, workflowRunStatusEnum, workflowRunStepStatusEnum, workflowRunSteps, workflowRuns, } from "./schema.js";
|
|
23
23
|
export { type ListWorkflowRunsQuery, type ListWorkflowRunsResult, workflowRunsService, } from "./service.js";
|
|
24
24
|
export { type RecordedWorkflowOptions, type RecordedWorkflowResultContext, type RecordedWorkflowRunContext, recordedWorkflow, } from "./workflows.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,sBAAsB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,gBAAgB,GACjB,MAAM,gBAAgB,CAAA"}
|
package/dist/routes.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* GET /v1/admin/workflow-runs → list (filter by workflow / status / tag)
|
|
5
5
|
* GET /v1/admin/workflow-runs/:id → run + ordered steps
|
|
6
|
+
* POST /v1/admin/workflows/:name/runs → trigger registered workflow by name
|
|
6
7
|
* POST /v1/admin/workflow-runs/:id/rerun → fresh run with the recorded input
|
|
7
8
|
* POST /v1/admin/workflow-runs/:id/resume → re-run starting at the failed step
|
|
8
9
|
*
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAGhC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AA2CzD,MAAM,WAAW,mCAAmC;IAClD;;;;OAIG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAA;CAC9C;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,mCAAwC,GAC7C,IAAI,CAsRN"}
|
package/dist/routes.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* GET /v1/admin/workflow-runs → list (filter by workflow / status / tag)
|
|
5
5
|
* GET /v1/admin/workflow-runs/:id → run + ordered steps
|
|
6
|
+
* POST /v1/admin/workflows/:name/runs → trigger registered workflow by name
|
|
6
7
|
* POST /v1/admin/workflow-runs/:id/rerun → fresh run with the recorded input
|
|
7
8
|
* POST /v1/admin/workflow-runs/:id/resume → re-run starting at the failed step
|
|
8
9
|
*
|
|
@@ -13,6 +14,7 @@
|
|
|
13
14
|
* provided (or doesn't have a runner for the workflow), those
|
|
14
15
|
* endpoints return 501 with a clear error.
|
|
15
16
|
*/
|
|
17
|
+
import { handleApiError, parseJsonBody } from "@voyantjs/hono";
|
|
16
18
|
import { z } from "zod";
|
|
17
19
|
import { workflowRunsService } from "./service.js";
|
|
18
20
|
const listQuerySchema = z.object({
|
|
@@ -27,6 +29,27 @@ const rerunBodySchema = z.object({
|
|
|
27
29
|
/** Required when runner.idempotency === "unsafe". */
|
|
28
30
|
confirm: z.boolean().optional(),
|
|
29
31
|
});
|
|
32
|
+
const triggerWorkflowBodySchema = z
|
|
33
|
+
.object({
|
|
34
|
+
input: z.unknown().optional(),
|
|
35
|
+
idempotencyKey: z.string().trim().min(1).max(255).optional(),
|
|
36
|
+
correlationId: z.string().trim().min(1).max(255).optional(),
|
|
37
|
+
tags: z.array(z.string().trim().min(1).max(128)).max(50).optional(),
|
|
38
|
+
})
|
|
39
|
+
.strict();
|
|
40
|
+
function hasWorkflowTriggerScope(scopes) {
|
|
41
|
+
if (!Array.isArray(scopes) || !scopes.every((scope) => typeof scope === "string")) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return scopes.some((scope) => {
|
|
45
|
+
const normalized = scope.trim().toLowerCase();
|
|
46
|
+
return (normalized === "*" ||
|
|
47
|
+
normalized === "*:*" ||
|
|
48
|
+
normalized === "*:trigger" ||
|
|
49
|
+
normalized === "workflows:*" ||
|
|
50
|
+
normalized === "workflows:trigger");
|
|
51
|
+
});
|
|
52
|
+
}
|
|
30
53
|
export function mountWorkflowRunsAdminRoutes(hono, opts = {}) {
|
|
31
54
|
hono.get("/v1/admin/workflow-runs", async (c) => {
|
|
32
55
|
const params = Object.fromEntries(new URL(c.req.url).searchParams);
|
|
@@ -71,6 +94,51 @@ export function mountWorkflowRunsAdminRoutes(hono, opts = {}) {
|
|
|
71
94
|
}, 500);
|
|
72
95
|
}
|
|
73
96
|
});
|
|
97
|
+
hono.post("/v1/admin/workflows/:name/runs", async (c) => {
|
|
98
|
+
if (!opts.runners) {
|
|
99
|
+
return c.json({ error: "trigger_not_configured", detail: "no WorkflowRunnerRegistry mounted" }, 501);
|
|
100
|
+
}
|
|
101
|
+
let body;
|
|
102
|
+
try {
|
|
103
|
+
body = await parseJsonBody(c, triggerWorkflowBodySchema);
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
return handleApiError(err, c);
|
|
107
|
+
}
|
|
108
|
+
const workflowName = c.req.param("name");
|
|
109
|
+
const runner = opts.runners.get(workflowName);
|
|
110
|
+
if (!runner) {
|
|
111
|
+
return c.json({
|
|
112
|
+
error: "runner_not_registered",
|
|
113
|
+
detail: `No runner registered for workflow "${workflowName}"`,
|
|
114
|
+
}, 404);
|
|
115
|
+
}
|
|
116
|
+
if (!runner.trigger) {
|
|
117
|
+
return c.json({
|
|
118
|
+
error: "trigger_not_supported",
|
|
119
|
+
detail: `Workflow "${runner.name}" does not expose admin trigger support.`,
|
|
120
|
+
}, 501);
|
|
121
|
+
}
|
|
122
|
+
const auth = c;
|
|
123
|
+
if (auth.get("callerType") === "api_key" && !hasWorkflowTriggerScope(auth.get("scopes"))) {
|
|
124
|
+
return c.json({ error: "Forbidden: API key missing workflows:trigger permission" }, 403);
|
|
125
|
+
}
|
|
126
|
+
const userId = opts.resolveUserId?.(c) ?? null;
|
|
127
|
+
try {
|
|
128
|
+
const input = Object.hasOwn(body, "input") ? body.input : {};
|
|
129
|
+
const { runId } = await runner.trigger(input, {
|
|
130
|
+
triggeredByUserId: userId,
|
|
131
|
+
correlationId: body.correlationId ?? null,
|
|
132
|
+
tags: body.tags ?? [],
|
|
133
|
+
idempotencyKey: body.idempotencyKey ?? null,
|
|
134
|
+
});
|
|
135
|
+
return c.json({ data: { runId, workflowName: runner.name, status: "queued" } }, 202);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
console.error("[workflow-runs] trigger failed", err);
|
|
139
|
+
return c.json({ error: "trigger_failed", detail: err instanceof Error ? err.message : String(err) }, 500);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
74
142
|
hono.post("/v1/admin/workflow-runs/:id/rerun", async (c) => {
|
|
75
143
|
// biome-ignore lint/suspicious/noExplicitAny: Hono's c.var.db is loosely typed
|
|
76
144
|
const db = c.var.db;
|
package/dist/runner.d.ts
CHANGED
|
@@ -45,6 +45,16 @@ export interface WorkflowResumeContext extends WorkflowRerunContext {
|
|
|
45
45
|
*/
|
|
46
46
|
seedResults: Record<string, unknown>;
|
|
47
47
|
}
|
|
48
|
+
export interface WorkflowTriggerContext {
|
|
49
|
+
/** User or API key actor that triggered the workflow, when available. */
|
|
50
|
+
triggeredByUserId: string | null;
|
|
51
|
+
/** Optional correlation id supplied by the caller. */
|
|
52
|
+
correlationId: string | null;
|
|
53
|
+
/** Tags supplied by the caller for observability and filtering. */
|
|
54
|
+
tags: ReadonlyArray<string>;
|
|
55
|
+
/** Optional caller-supplied idempotency key forwarded to the runner. */
|
|
56
|
+
idempotencyKey: string | null;
|
|
57
|
+
}
|
|
48
58
|
export interface WorkflowRunner {
|
|
49
59
|
/** Workflow name — must match `workflow_runs.workflow_name`. */
|
|
50
60
|
name: string;
|
|
@@ -55,6 +65,14 @@ export interface WorkflowRunner {
|
|
|
55
65
|
idempotency: WorkflowIdempotency;
|
|
56
66
|
/** Human-friendly label shown in the rerun confirm dialog. */
|
|
57
67
|
description?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Trigger the workflow by name from an admin/internal route. Runners that
|
|
70
|
+
* expose this method are intentionally triggerable; missing methods keep
|
|
71
|
+
* rerun/resume-only workflows closed to arbitrary dispatch.
|
|
72
|
+
*/
|
|
73
|
+
trigger?(input: unknown, ctx: WorkflowTriggerContext): Promise<{
|
|
74
|
+
runId: string;
|
|
75
|
+
}>;
|
|
58
76
|
/**
|
|
59
77
|
* Run the workflow fresh with the recorded input. Returns the new
|
|
60
78
|
* run's id (the recorder's `runId`).
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEnE,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,sFAAsF;IACtF,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,WAAW,EAAE,mBAAmB,CAAA;IAChC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5E;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9E;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACrF;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAE5D,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAOtC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIxC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,aAAa,CAAC,cAAc,CAAC;CAGtC"}
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEnE,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,sFAAsF;IACtF,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,sDAAsD;IACtD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,mEAAmE;IACnE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,wEAAwE;IACxE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,WAAW,EAAE,mBAAmB,CAAA;IAChC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjF;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5E;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9E;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACrF;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAE5D,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAOtC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIxC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,IAAI,IAAI,aAAa,CAAC,cAAc,CAAC;CAGtC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/workflow-runs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.0",
|
|
4
4
|
"description": "Workflow run recording, admin routes, and rerun/resume dispatch primitives for Voyant operator apps.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -40,16 +40,16 @@
|
|
|
40
40
|
"drizzle-orm": "^0.45.2",
|
|
41
41
|
"hono": "^4.12.10",
|
|
42
42
|
"zod": "^4.3.6",
|
|
43
|
-
"@voyantjs/core": "0.
|
|
44
|
-
"@voyantjs/db": "0.
|
|
45
|
-
"@voyantjs/hono": "0.
|
|
46
|
-
"@voyantjs/workflows": "0.
|
|
43
|
+
"@voyantjs/core": "0.44.0",
|
|
44
|
+
"@voyantjs/db": "0.44.0",
|
|
45
|
+
"@voyantjs/hono": "0.44.0",
|
|
46
|
+
"@voyantjs/workflows": "0.44.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"typescript": "^6.0.2",
|
|
50
50
|
"vitest": "^4.1.2",
|
|
51
51
|
"@voyantjs/voyant-typescript-config": "0.1.0",
|
|
52
|
-
"@voyantjs/workflows-orchestrator": "0.
|
|
52
|
+
"@voyantjs/workflows-orchestrator": "0.44.0"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"dist"
|