@workplane/dbos 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +120 -1
- package/dist/index.js +47 -28
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,124 @@
|
|
|
1
1
|
import { ServerWorkflows, CreateTaskInput, TaskRecord, RunStatus, RunRecord, RunLogInput, ArtifactInput, ArtifactRecord, AppendInputEventInput, RunInputEvent } from '@workplane/types';
|
|
2
2
|
|
|
3
|
+
type WorkplanRunStatus = "running" | "step_failed" | "completed" | "failed" | "cancelled";
|
|
4
|
+
interface WorkplanScheduleRecord {
|
|
5
|
+
id: string;
|
|
6
|
+
planId: string;
|
|
7
|
+
name: string;
|
|
8
|
+
cronExpression: string;
|
|
9
|
+
timezone: string;
|
|
10
|
+
inputs: Record<string, unknown>;
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
lastRunAt: string | null;
|
|
13
|
+
nextRunAt: string | null;
|
|
14
|
+
createdBy: string | null;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
updatedAt: string;
|
|
17
|
+
}
|
|
18
|
+
interface WorkplanRunRecord {
|
|
19
|
+
id: string;
|
|
20
|
+
scheduleId: string | null;
|
|
21
|
+
planId: string;
|
|
22
|
+
planName: string;
|
|
23
|
+
status: WorkplanRunStatus;
|
|
24
|
+
idempotencyKey: string | null;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
endedAt: string | null;
|
|
27
|
+
error: string | null;
|
|
28
|
+
}
|
|
29
|
+
interface WorkplanStepResultInput {
|
|
30
|
+
stepId: string;
|
|
31
|
+
stepName: string;
|
|
32
|
+
output?: string;
|
|
33
|
+
exitCode?: number;
|
|
34
|
+
durationMs?: number;
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
type WorkplanStatus = "running" | "step_failed" | "completed" | "failed" | "cancelled";
|
|
39
|
+
type StepOutputDest = "stdout" | "artifact" | "next";
|
|
40
|
+
interface StepOutput {
|
|
41
|
+
dest: StepOutputDest;
|
|
42
|
+
format?: "text" | "json";
|
|
43
|
+
artifactName?: string;
|
|
44
|
+
}
|
|
45
|
+
interface WorkplanStep {
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
adapter: string;
|
|
49
|
+
payload: Record<string, unknown>;
|
|
50
|
+
requires?: string[];
|
|
51
|
+
provider?: string;
|
|
52
|
+
model?: string;
|
|
53
|
+
output?: StepOutput;
|
|
54
|
+
dependsOn?: string[];
|
|
55
|
+
continueOnError?: boolean;
|
|
56
|
+
}
|
|
57
|
+
interface Workplan {
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
steps: WorkplanStep[];
|
|
62
|
+
}
|
|
63
|
+
interface StepResult {
|
|
64
|
+
stepId: string;
|
|
65
|
+
output: string;
|
|
66
|
+
exitCode: number;
|
|
67
|
+
durationMs: number;
|
|
68
|
+
metadata?: Record<string, unknown>;
|
|
69
|
+
}
|
|
70
|
+
interface WorkplanResult {
|
|
71
|
+
planId: string;
|
|
72
|
+
status: WorkplanStatus;
|
|
73
|
+
steps: StepResult[];
|
|
74
|
+
succeeded: boolean;
|
|
75
|
+
}
|
|
76
|
+
interface NodeHandle {
|
|
77
|
+
execute(step: WorkplanStep): Promise<StepResult>;
|
|
78
|
+
}
|
|
79
|
+
interface WorkplanRunContext {
|
|
80
|
+
resolveNode(requires: string[], provider?: string): Promise<NodeHandle>;
|
|
81
|
+
emitResult(stepId: string, stepName: string, output: string): void;
|
|
82
|
+
}
|
|
83
|
+
interface WorkplanRunner {
|
|
84
|
+
run(plan: Workplan, ctx: WorkplanRunContext): Promise<WorkplanResult>;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
interface ScheduleStore {
|
|
88
|
+
listDueWorkplanSchedules(asOf: string): Promise<WorkplanScheduleRecord[]>;
|
|
89
|
+
getWorkplanSchedule(scheduleId: string): Promise<WorkplanScheduleRecord | null>;
|
|
90
|
+
markWorkplanScheduleRan(scheduleId: string, lastRunAt: string, nextRunAt: string): Promise<void>;
|
|
91
|
+
tryCreateWorkplanRun(input: {
|
|
92
|
+
scheduleId?: string;
|
|
93
|
+
planId: string;
|
|
94
|
+
planName: string;
|
|
95
|
+
idempotencyKey?: string;
|
|
96
|
+
}): Promise<WorkplanRunRecord | null>;
|
|
97
|
+
updateWorkplanRun(runId: string, status: WorkplanRunRecord["status"], error?: string, endedAt?: string): Promise<WorkplanRunRecord | null>;
|
|
98
|
+
appendWorkplanStepResults(runId: string, steps: WorkplanStepResultInput[]): Promise<unknown>;
|
|
99
|
+
}
|
|
100
|
+
interface PlanResolver {
|
|
101
|
+
resolve(planId: string, inputs: Record<string, unknown>): Workplan;
|
|
102
|
+
}
|
|
103
|
+
interface ExecuteScheduleOptions {
|
|
104
|
+
advanceSchedule?: boolean;
|
|
105
|
+
idempotencyKey?: string;
|
|
106
|
+
}
|
|
107
|
+
declare class WorkplanScheduler {
|
|
108
|
+
private readonly store;
|
|
109
|
+
private readonly resolver;
|
|
110
|
+
private readonly contextFactory;
|
|
111
|
+
private readonly runner;
|
|
112
|
+
constructor(store: ScheduleStore, resolver: PlanResolver, contextFactory: () => WorkplanRunContext, runner?: WorkplanRunner);
|
|
113
|
+
tick(now?: Date): Promise<WorkplanRunRecord[]>;
|
|
114
|
+
runNow(scheduleId: string): Promise<WorkplanRunRecord | null>;
|
|
115
|
+
executeSchedule(schedule: WorkplanScheduleRecord, options: ExecuteScheduleOptions & {
|
|
116
|
+
scheduledTime: string;
|
|
117
|
+
}): Promise<WorkplanRunRecord | null>;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
declare function registerDbosSchedulerTick(scheduler: WorkplanScheduler): void;
|
|
121
|
+
|
|
3
122
|
declare class DbosWorkflows implements ServerWorkflows {
|
|
4
123
|
private readonly registered;
|
|
5
124
|
constructor(store: ServerWorkflows);
|
|
@@ -21,4 +140,4 @@ declare class DbosWorkflows implements ServerWorkflows {
|
|
|
21
140
|
}
|
|
22
141
|
declare function createDbosWorkflows(store: ServerWorkflows): DbosWorkflows;
|
|
23
142
|
|
|
24
|
-
export { DbosWorkflows, createDbosWorkflows };
|
|
143
|
+
export { DbosWorkflows, createDbosWorkflows, registerDbosSchedulerTick };
|
package/dist/index.js
CHANGED
|
@@ -1,38 +1,56 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
+
import { DBOS as DBOS2 } from "@dbos-inc/dbos-sdk";
|
|
3
|
+
|
|
4
|
+
// src/scheduler.ts
|
|
2
5
|
import { DBOS } from "@dbos-inc/dbos-sdk";
|
|
6
|
+
var registered = false;
|
|
7
|
+
function registerDbosSchedulerTick(scheduler) {
|
|
8
|
+
if (registered) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
DBOS.registerScheduled(
|
|
12
|
+
async () => {
|
|
13
|
+
await scheduler.tick();
|
|
14
|
+
},
|
|
15
|
+
{ crontab: "* * * * *" }
|
|
16
|
+
);
|
|
17
|
+
registered = true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
3
21
|
var DbosWorkflows = class {
|
|
4
22
|
registered;
|
|
5
23
|
constructor(store) {
|
|
6
|
-
const createTask =
|
|
7
|
-
async (input) =>
|
|
24
|
+
const createTask = DBOS2.registerWorkflow(
|
|
25
|
+
async (input) => DBOS2.runStep(() => store.createTask(input), { name: "store-create-task" }),
|
|
8
26
|
{ name: "createTaskWorkflow" }
|
|
9
27
|
);
|
|
10
|
-
const retryTask =
|
|
11
|
-
async (taskId) =>
|
|
28
|
+
const retryTask = DBOS2.registerWorkflow(
|
|
29
|
+
async (taskId) => DBOS2.runStep(() => store.retryTask(taskId), { name: "store-retry-task" }),
|
|
12
30
|
{ name: "retryTaskWorkflow" }
|
|
13
31
|
);
|
|
14
|
-
const cancelTask =
|
|
15
|
-
async (taskId) =>
|
|
32
|
+
const cancelTask = DBOS2.registerWorkflow(
|
|
33
|
+
async (taskId) => DBOS2.runStep(() => store.cancelTask(taskId), { name: "store-cancel-task" }),
|
|
16
34
|
{ name: "cancelTaskWorkflow" }
|
|
17
35
|
);
|
|
18
|
-
const updateRunStatus =
|
|
19
|
-
async (runId, status, error) =>
|
|
36
|
+
const updateRunStatus = DBOS2.registerWorkflow(
|
|
37
|
+
async (runId, status, error) => DBOS2.runStep(() => store.updateRunStatus(runId, status, error), { name: "store-update-run-status" }),
|
|
20
38
|
{ name: "updateRunStatusWorkflow" }
|
|
21
39
|
);
|
|
22
|
-
const appendRunLogs =
|
|
23
|
-
async (runId, logs) =>
|
|
40
|
+
const appendRunLogs = DBOS2.registerWorkflow(
|
|
41
|
+
async (runId, logs) => DBOS2.runStep(() => store.appendRunLogs(runId, logs), { name: "store-append-run-logs" }),
|
|
24
42
|
{ name: "appendRunLogsWorkflow" }
|
|
25
43
|
);
|
|
26
|
-
const createArtifact =
|
|
27
|
-
async (runId, input) =>
|
|
44
|
+
const createArtifact = DBOS2.registerWorkflow(
|
|
45
|
+
async (runId, input) => DBOS2.runStep(() => store.createArtifact(runId, input), { name: "store-create-artifact" }),
|
|
28
46
|
{ name: "createArtifactWorkflow" }
|
|
29
47
|
);
|
|
30
|
-
const appendInputEvent =
|
|
31
|
-
async (runId, input) =>
|
|
48
|
+
const appendInputEvent = DBOS2.registerWorkflow(
|
|
49
|
+
async (runId, input) => DBOS2.runStep(() => store.appendInputEvent(runId, input), { name: "store-append-input-event" }),
|
|
32
50
|
{ name: "appendInputEventWorkflow" }
|
|
33
51
|
);
|
|
34
|
-
const markInputDelivered =
|
|
35
|
-
async (runId, sequence) =>
|
|
52
|
+
const markInputDelivered = DBOS2.registerWorkflow(
|
|
53
|
+
async (runId, sequence) => DBOS2.runStep(() => store.markInputDelivered(runId, sequence), { name: "store-mark-input-delivered" }),
|
|
36
54
|
{ name: "markInputDeliveredWorkflow" }
|
|
37
55
|
);
|
|
38
56
|
this.registered = {
|
|
@@ -47,48 +65,48 @@ var DbosWorkflows = class {
|
|
|
47
65
|
};
|
|
48
66
|
}
|
|
49
67
|
async launch(options) {
|
|
50
|
-
|
|
68
|
+
DBOS2.setConfig({
|
|
51
69
|
name: options.appName,
|
|
52
70
|
systemDatabaseUrl: options.systemDatabaseUrl
|
|
53
71
|
});
|
|
54
|
-
await
|
|
72
|
+
await DBOS2.launch({
|
|
55
73
|
conductorKey: options.conductorKey,
|
|
56
74
|
conductorURL: options.conductorUrl
|
|
57
75
|
});
|
|
58
76
|
}
|
|
59
77
|
async shutdown() {
|
|
60
|
-
await
|
|
78
|
+
await DBOS2.shutdown();
|
|
61
79
|
}
|
|
62
80
|
async createTask(input) {
|
|
63
|
-
const handle = await
|
|
81
|
+
const handle = await DBOS2.startWorkflow(this.registered.createTask)(input);
|
|
64
82
|
return handle.getResult();
|
|
65
83
|
}
|
|
66
84
|
async retryTask(taskId) {
|
|
67
|
-
const handle = await
|
|
85
|
+
const handle = await DBOS2.startWorkflow(this.registered.retryTask)(taskId);
|
|
68
86
|
return handle.getResult();
|
|
69
87
|
}
|
|
70
88
|
async cancelTask(taskId) {
|
|
71
|
-
const handle = await
|
|
89
|
+
const handle = await DBOS2.startWorkflow(this.registered.cancelTask)(taskId);
|
|
72
90
|
return handle.getResult();
|
|
73
91
|
}
|
|
74
92
|
async updateRunStatus(runId, status, error) {
|
|
75
|
-
const handle = await
|
|
93
|
+
const handle = await DBOS2.startWorkflow(this.registered.updateRunStatus)(runId, status, error);
|
|
76
94
|
return handle.getResult();
|
|
77
95
|
}
|
|
78
96
|
async appendRunLogs(runId, logs) {
|
|
79
|
-
const handle = await
|
|
97
|
+
const handle = await DBOS2.startWorkflow(this.registered.appendRunLogs)(runId, logs);
|
|
80
98
|
return handle.getResult();
|
|
81
99
|
}
|
|
82
100
|
async createArtifact(runId, input) {
|
|
83
|
-
const handle = await
|
|
101
|
+
const handle = await DBOS2.startWorkflow(this.registered.createArtifact)(runId, input);
|
|
84
102
|
return handle.getResult();
|
|
85
103
|
}
|
|
86
104
|
async appendInputEvent(runId, input) {
|
|
87
|
-
const handle = await
|
|
105
|
+
const handle = await DBOS2.startWorkflow(this.registered.appendInputEvent)(runId, input);
|
|
88
106
|
return handle.getResult();
|
|
89
107
|
}
|
|
90
108
|
async markInputDelivered(runId, sequence) {
|
|
91
|
-
const handle = await
|
|
109
|
+
const handle = await DBOS2.startWorkflow(this.registered.markInputDelivered)(runId, sequence);
|
|
92
110
|
await handle.getResult();
|
|
93
111
|
}
|
|
94
112
|
};
|
|
@@ -97,6 +115,7 @@ function createDbosWorkflows(store) {
|
|
|
97
115
|
}
|
|
98
116
|
export {
|
|
99
117
|
DbosWorkflows,
|
|
100
|
-
createDbosWorkflows
|
|
118
|
+
createDbosWorkflows,
|
|
119
|
+
registerDbosSchedulerTick
|
|
101
120
|
};
|
|
102
121
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { DBOS } from \"@dbos-inc/dbos-sdk\";\nimport type {\n AppendInputEventInput,\n ArtifactInput,\n ArtifactRecord,\n CreateTaskInput,\n RunInputEvent,\n RunLogInput,\n RunRecord,\n RunStatus,\n ServerWorkflows,\n TaskRecord,\n} from \"@workplane/types\";\n\nexport class DbosWorkflows implements ServerWorkflows {\n private readonly registered: ServerWorkflows;\n\n constructor(store: ServerWorkflows) {\n const createTask = DBOS.registerWorkflow(\n async (input: CreateTaskInput) =>\n DBOS.runStep(() => store.createTask(input), { name: \"store-create-task\" }),\n { name: \"createTaskWorkflow\" },\n );\n\n const retryTask = DBOS.registerWorkflow(\n async (taskId: string) =>\n DBOS.runStep(() => store.retryTask(taskId), { name: \"store-retry-task\" }),\n { name: \"retryTaskWorkflow\" },\n );\n\n const cancelTask = DBOS.registerWorkflow(\n async (taskId: string) =>\n DBOS.runStep(() => store.cancelTask(taskId), { name: \"store-cancel-task\" }),\n { name: \"cancelTaskWorkflow\" },\n );\n\n const updateRunStatus = DBOS.registerWorkflow(\n async (runId: string, status: RunStatus, error?: string) =>\n DBOS.runStep(() => store.updateRunStatus(runId, status, error), { name: \"store-update-run-status\" }),\n { name: \"updateRunStatusWorkflow\" },\n );\n\n const appendRunLogs = DBOS.registerWorkflow(\n async (runId: string, logs: RunLogInput[]) =>\n DBOS.runStep(() => store.appendRunLogs(runId, logs), { name: \"store-append-run-logs\" }),\n { name: \"appendRunLogsWorkflow\" },\n );\n\n const createArtifact = DBOS.registerWorkflow(\n async (runId: string, input: ArtifactInput) =>\n DBOS.runStep(() => store.createArtifact(runId, input), { name: \"store-create-artifact\" }),\n { name: \"createArtifactWorkflow\" },\n );\n\n const appendInputEvent = DBOS.registerWorkflow(\n async (runId: string, input: AppendInputEventInput) =>\n DBOS.runStep(() => store.appendInputEvent(runId, input), { name: \"store-append-input-event\" }),\n { name: \"appendInputEventWorkflow\" },\n );\n\n const markInputDelivered = DBOS.registerWorkflow(\n async (runId: string, sequence: number) =>\n DBOS.runStep(() => store.markInputDelivered(runId, sequence), { name: \"store-mark-input-delivered\" }),\n { name: \"markInputDeliveredWorkflow\" },\n );\n\n this.registered = {\n createTask,\n retryTask,\n cancelTask,\n updateRunStatus,\n appendRunLogs,\n createArtifact,\n appendInputEvent,\n markInputDelivered,\n };\n }\n\n async launch(options: {\n appName: string;\n systemDatabaseUrl: string;\n conductorKey?: string;\n conductorUrl?: string;\n }): Promise<void> {\n DBOS.setConfig({\n name: options.appName,\n systemDatabaseUrl: options.systemDatabaseUrl,\n });\n await DBOS.launch({\n conductorKey: options.conductorKey,\n conductorURL: options.conductorUrl,\n });\n }\n\n async shutdown(): Promise<void> {\n await DBOS.shutdown();\n }\n\n async createTask(input: CreateTaskInput): Promise<TaskRecord> {\n const handle = await DBOS.startWorkflow(this.registered.createTask)(input);\n return handle.getResult();\n }\n\n async retryTask(taskId: string): Promise<TaskRecord | null> {\n const handle = await DBOS.startWorkflow(this.registered.retryTask)(taskId);\n return handle.getResult();\n }\n\n async cancelTask(taskId: string): Promise<TaskRecord | null> {\n const handle = await DBOS.startWorkflow(this.registered.cancelTask)(taskId);\n return handle.getResult();\n }\n\n async updateRunStatus(runId: string, status: RunStatus, error?: string): Promise<RunRecord | null> {\n const handle = await DBOS.startWorkflow(this.registered.updateRunStatus)(runId, status, error);\n return handle.getResult();\n }\n\n async appendRunLogs(runId: string, logs: RunLogInput[]): Promise<number> {\n const handle = await DBOS.startWorkflow(this.registered.appendRunLogs)(runId, logs);\n return handle.getResult();\n }\n\n async createArtifact(runId: string, input: ArtifactInput): Promise<ArtifactRecord> {\n const handle = await DBOS.startWorkflow(this.registered.createArtifact)(runId, input);\n return handle.getResult();\n }\n\n async appendInputEvent(runId: string, input: AppendInputEventInput): Promise<RunInputEvent> {\n const handle = await DBOS.startWorkflow(this.registered.appendInputEvent)(runId, input);\n return handle.getResult();\n }\n\n async markInputDelivered(runId: string, sequence: number): Promise<void> {\n const handle = await DBOS.startWorkflow(this.registered.markInputDelivered)(runId, sequence);\n await handle.getResult();\n }\n}\n\nexport function createDbosWorkflows(store: ServerWorkflows): DbosWorkflows {\n return new DbosWorkflows(store);\n}\n"],"mappings":";AAAA,SAAS,YAAY;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/scheduler.ts"],"sourcesContent":["import { DBOS } from \"@dbos-inc/dbos-sdk\";\nimport type {\n AppendInputEventInput,\n ArtifactInput,\n ArtifactRecord,\n CreateTaskInput,\n RunInputEvent,\n RunLogInput,\n RunRecord,\n RunStatus,\n ServerWorkflows,\n TaskRecord,\n} from \"@workplane/types\";\n\nexport class DbosWorkflows implements ServerWorkflows {\n private readonly registered: ServerWorkflows;\n\n constructor(store: ServerWorkflows) {\n const createTask = DBOS.registerWorkflow(\n async (input: CreateTaskInput) =>\n DBOS.runStep(() => store.createTask(input), { name: \"store-create-task\" }),\n { name: \"createTaskWorkflow\" },\n );\n\n const retryTask = DBOS.registerWorkflow(\n async (taskId: string) =>\n DBOS.runStep(() => store.retryTask(taskId), { name: \"store-retry-task\" }),\n { name: \"retryTaskWorkflow\" },\n );\n\n const cancelTask = DBOS.registerWorkflow(\n async (taskId: string) =>\n DBOS.runStep(() => store.cancelTask(taskId), { name: \"store-cancel-task\" }),\n { name: \"cancelTaskWorkflow\" },\n );\n\n const updateRunStatus = DBOS.registerWorkflow(\n async (runId: string, status: RunStatus, error?: string) =>\n DBOS.runStep(() => store.updateRunStatus(runId, status, error), { name: \"store-update-run-status\" }),\n { name: \"updateRunStatusWorkflow\" },\n );\n\n const appendRunLogs = DBOS.registerWorkflow(\n async (runId: string, logs: RunLogInput[]) =>\n DBOS.runStep(() => store.appendRunLogs(runId, logs), { name: \"store-append-run-logs\" }),\n { name: \"appendRunLogsWorkflow\" },\n );\n\n const createArtifact = DBOS.registerWorkflow(\n async (runId: string, input: ArtifactInput) =>\n DBOS.runStep(() => store.createArtifact(runId, input), { name: \"store-create-artifact\" }),\n { name: \"createArtifactWorkflow\" },\n );\n\n const appendInputEvent = DBOS.registerWorkflow(\n async (runId: string, input: AppendInputEventInput) =>\n DBOS.runStep(() => store.appendInputEvent(runId, input), { name: \"store-append-input-event\" }),\n { name: \"appendInputEventWorkflow\" },\n );\n\n const markInputDelivered = DBOS.registerWorkflow(\n async (runId: string, sequence: number) =>\n DBOS.runStep(() => store.markInputDelivered(runId, sequence), { name: \"store-mark-input-delivered\" }),\n { name: \"markInputDeliveredWorkflow\" },\n );\n\n this.registered = {\n createTask,\n retryTask,\n cancelTask,\n updateRunStatus,\n appendRunLogs,\n createArtifact,\n appendInputEvent,\n markInputDelivered,\n };\n }\n\n async launch(options: {\n appName: string;\n systemDatabaseUrl: string;\n conductorKey?: string;\n conductorUrl?: string;\n }): Promise<void> {\n DBOS.setConfig({\n name: options.appName,\n systemDatabaseUrl: options.systemDatabaseUrl,\n });\n await DBOS.launch({\n conductorKey: options.conductorKey,\n conductorURL: options.conductorUrl,\n });\n }\n\n async shutdown(): Promise<void> {\n await DBOS.shutdown();\n }\n\n async createTask(input: CreateTaskInput): Promise<TaskRecord> {\n const handle = await DBOS.startWorkflow(this.registered.createTask)(input);\n return handle.getResult();\n }\n\n async retryTask(taskId: string): Promise<TaskRecord | null> {\n const handle = await DBOS.startWorkflow(this.registered.retryTask)(taskId);\n return handle.getResult();\n }\n\n async cancelTask(taskId: string): Promise<TaskRecord | null> {\n const handle = await DBOS.startWorkflow(this.registered.cancelTask)(taskId);\n return handle.getResult();\n }\n\n async updateRunStatus(runId: string, status: RunStatus, error?: string): Promise<RunRecord | null> {\n const handle = await DBOS.startWorkflow(this.registered.updateRunStatus)(runId, status, error);\n return handle.getResult();\n }\n\n async appendRunLogs(runId: string, logs: RunLogInput[]): Promise<number> {\n const handle = await DBOS.startWorkflow(this.registered.appendRunLogs)(runId, logs);\n return handle.getResult();\n }\n\n async createArtifact(runId: string, input: ArtifactInput): Promise<ArtifactRecord> {\n const handle = await DBOS.startWorkflow(this.registered.createArtifact)(runId, input);\n return handle.getResult();\n }\n\n async appendInputEvent(runId: string, input: AppendInputEventInput): Promise<RunInputEvent> {\n const handle = await DBOS.startWorkflow(this.registered.appendInputEvent)(runId, input);\n return handle.getResult();\n }\n\n async markInputDelivered(runId: string, sequence: number): Promise<void> {\n const handle = await DBOS.startWorkflow(this.registered.markInputDelivered)(runId, sequence);\n await handle.getResult();\n }\n}\n\nexport function createDbosWorkflows(store: ServerWorkflows): DbosWorkflows {\n return new DbosWorkflows(store);\n}\n\nexport { registerDbosSchedulerTick } from \"./scheduler.js\";\n","import { DBOS } from \"@dbos-inc/dbos-sdk\";\nimport type { WorkplanScheduler } from \"../../workplans/src/scheduler.js\";\n\nlet registered = false;\n\nexport function registerDbosSchedulerTick(scheduler: WorkplanScheduler): void {\n if (registered) {\n return;\n }\n\n DBOS.registerScheduled(\n async () => {\n await scheduler.tick();\n },\n { crontab: \"* * * * *\" },\n );\n\n registered = true;\n}\n"],"mappings":"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","names":["DBOS","DBOS"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workplane/dbos",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@dbos-inc/dbos-sdk": "^4.18.10",
|
|
30
|
-
"@workplane/types": "0.4.
|
|
30
|
+
"@workplane/types": "0.4.2"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"build": "tsup"
|