@solidactions/sdk 0.1.1 → 0.2.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 (52) hide show
  1. package/README.md +25 -4
  2. package/dist/src/cli/cli.js +0 -0
  3. package/dist/src/testing/index.d.ts +13 -0
  4. package/dist/src/testing/index.d.ts.map +1 -0
  5. package/dist/src/testing/index.js +19 -0
  6. package/dist/src/testing/index.js.map +1 -0
  7. package/dist/src/testing/mock_server.d.ts +134 -0
  8. package/dist/src/testing/mock_server.d.ts.map +1 -0
  9. package/dist/src/testing/mock_server.js +613 -0
  10. package/dist/src/testing/mock_server.js.map +1 -0
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/docs/sdk-reference.md +1207 -0
  13. package/package.json +6 -1
  14. package/.claude/settings.local.json +0 -7
  15. package/dist/dbos-config.schema.json +0 -132
  16. package/dist/src/cli/commands.d.ts +0 -3
  17. package/dist/src/cli/commands.d.ts.map +0 -1
  18. package/dist/src/cli/commands.js +0 -46
  19. package/dist/src/cli/commands.js.map +0 -1
  20. package/dist/src/datasource.d.ts +0 -109
  21. package/dist/src/datasource.d.ts.map +0 -1
  22. package/dist/src/datasource.js +0 -204
  23. package/dist/src/datasource.js.map +0 -1
  24. package/dist/src/dbos-executor.d.ts +0 -189
  25. package/dist/src/dbos-executor.d.ts.map +0 -1
  26. package/dist/src/dbos-executor.js +0 -817
  27. package/dist/src/dbos-executor.js.map +0 -1
  28. package/dist/src/dbos.d.ts +0 -519
  29. package/dist/src/dbos.d.ts.map +0 -1
  30. package/dist/src/dbos.js +0 -1282
  31. package/dist/src/dbos.js.map +0 -1
  32. package/dist/src/debouncer.d.ts +0 -33
  33. package/dist/src/debouncer.d.ts.map +0 -1
  34. package/dist/src/debouncer.js +0 -170
  35. package/dist/src/debouncer.js.map +0 -1
  36. package/dist/src/scheduler/crontab.d.ts +0 -14
  37. package/dist/src/scheduler/crontab.d.ts.map +0 -1
  38. package/dist/src/scheduler/crontab.js +0 -308
  39. package/dist/src/scheduler/crontab.js.map +0 -1
  40. package/dist/src/scheduler/scheduler.d.ts +0 -41
  41. package/dist/src/scheduler/scheduler.d.ts.map +0 -1
  42. package/dist/src/scheduler/scheduler.js +0 -165
  43. package/dist/src/scheduler/scheduler.js.map +0 -1
  44. package/dist/src/wfqueue.d.ts +0 -64
  45. package/dist/src/wfqueue.d.ts.map +0 -1
  46. package/dist/src/wfqueue.js +0 -147
  47. package/dist/src/wfqueue.js.map +0 -1
  48. package/docs/api-schema.md +0 -1441
  49. package/docs/migration-guide.md +0 -460
  50. package/docs/phase-14-changes.md +0 -156
  51. package/docs/solidsteps-ai-prompt.md +0 -534
  52. package/solidactions-ai-prompt.md +0 -1504
package/README.md CHANGED
@@ -165,11 +165,32 @@ await client.cancelWorkflow(workflowId);
165
165
  await client.resumeWorkflow(workflowId);
166
166
  ```
167
167
 
168
+ ## Deploying Workflows
169
+
170
+ Use the [`@solidactions/cli`](https://www.npmjs.com/package/@solidactions/cli) to deploy your workflows:
171
+
172
+ ```bash
173
+ npm install -g @solidactions/cli
174
+
175
+ # Authenticate
176
+ solidactions init <api-key>
177
+
178
+ # Deploy your project
179
+ solidactions deploy <project-name> <path>
180
+ ```
181
+
182
+ The CLI handles project creation, source upload, Docker builds, environment variables, and scheduling. See the [CLI repo](https://github.com/SolidActions/solidactions-cli) for full documentation.
183
+
168
184
  ## Documentation
169
185
 
170
- See `solidactions-ai-prompt.md` for comprehensive SDK documentation including:
186
+ See [`docs/sdk-reference.md`](docs/sdk-reference.md) for comprehensive SDK documentation including:
171
187
 
172
- - Workflow and step patterns
173
- - Durable sleep, messaging, and events
174
- - Queues and concurrency control
188
+ - Lifecycle: `SolidActions.run()`, `setConfig()`/`launch()`/`shutdown()`, `getInput()`
189
+ - Workflows: registration, determinism rules, IDs and idempotency, timeouts, child workflows
190
+ - Steps: `runStep()`, configurable retries, parallel execution with `Promise.allSettled()`
191
+ - Durable primitives: `sleep()`, `now()`, `randomUUID()`
192
+ - Communication: `send()`/`recv()` messaging, `setEvent()`/`getEvent()` events, streaming, `respond()`
193
+ - Workflow handles and management: `listWorkflows()`, `cancelWorkflow()`, `forkWorkflow()`
194
+ - SolidActionsClient: standalone HTTP client for external workflow queries
195
+ - Configuration, custom serialization, testing, and error classes
175
196
  - Recovery and versioning
File without changes
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SolidActions SDK Testing Utilities
3
+ *
4
+ * Import from '@solidactions/sdk/testing' to use the mock server
5
+ * for local development and testing without a real backend.
6
+ *
7
+ * Usage:
8
+ * import { createMockServer } from '@solidactions/sdk/testing';
9
+ * const server = await createMockServer();
10
+ * console.log(server.baseUrl); // http://127.0.0.1:<port>
11
+ */
12
+ export { MockHttpServer, MockStore, createMockServer } from './mock_server';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * SolidActions SDK Testing Utilities
4
+ *
5
+ * Import from '@solidactions/sdk/testing' to use the mock server
6
+ * for local development and testing without a real backend.
7
+ *
8
+ * Usage:
9
+ * import { createMockServer } from '@solidactions/sdk/testing';
10
+ * const server = await createMockServer();
11
+ * console.log(server.baseUrl); // http://127.0.0.1:<port>
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.createMockServer = exports.MockStore = exports.MockHttpServer = void 0;
15
+ var mock_server_1 = require("./mock_server");
16
+ Object.defineProperty(exports, "MockHttpServer", { enumerable: true, get: function () { return mock_server_1.MockHttpServer; } });
17
+ Object.defineProperty(exports, "MockStore", { enumerable: true, get: function () { return mock_server_1.MockStore; } });
18
+ Object.defineProperty(exports, "createMockServer", { enumerable: true, get: function () { return mock_server_1.createMockServer; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,6CAA4E;AAAnE,6GAAA,cAAc,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,+GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Mock HTTP Server for SolidActions SDK Testing & Local Development
3
+ *
4
+ * Provides an in-memory HTTP server that implements the SolidActions API
5
+ * for testing and running workflows locally without a real backend.
6
+ *
7
+ * Usage:
8
+ * import { createMockServer } from '@solidactions/sdk/testing';
9
+ * const server = await createMockServer();
10
+ * // server.baseUrl is now available (e.g., http://127.0.0.1:12345)
11
+ */
12
+ interface MockWorkflow {
13
+ workflowUUID: string;
14
+ status: string;
15
+ workflowName: string;
16
+ workflowClassName: string;
17
+ workflowConfigName: string;
18
+ authenticatedUser: string;
19
+ assumedRole: string;
20
+ authenticatedRoles: string[];
21
+ request: object;
22
+ executorId: string;
23
+ applicationVersion?: string;
24
+ applicationID: string;
25
+ input: string | null;
26
+ output: string | null;
27
+ error: string | null;
28
+ createdAt: number;
29
+ updatedAt: number;
30
+ queueName?: string;
31
+ recoveryAttempts: number;
32
+ timeoutMS?: number;
33
+ deadlineEpochMS?: number;
34
+ deduplicationID?: string;
35
+ priority: number;
36
+ queuePartitionKey?: string;
37
+ forkedFrom?: string;
38
+ }
39
+ interface MockOperation {
40
+ workflowUUID: string;
41
+ functionId?: number;
42
+ functionID?: number;
43
+ functionName: string;
44
+ output: string | null;
45
+ error: string | null;
46
+ childWorkflowId?: string | null;
47
+ childWorkflowID?: string | null;
48
+ startedAtEpochMs?: number;
49
+ startTimeEpochMs?: number;
50
+ completedAtEpochMs?: number;
51
+ endTimeEpochMs?: number;
52
+ checkConflict?: boolean;
53
+ }
54
+ interface MockMessage {
55
+ destinationUUID: string;
56
+ topic: string | null;
57
+ message: string | null;
58
+ consumed: boolean;
59
+ }
60
+ interface MockEvent {
61
+ workflowUUID: string;
62
+ key: string;
63
+ value: string | null;
64
+ }
65
+ interface MockStream {
66
+ workflowUUID: string;
67
+ key: string;
68
+ values: unknown[];
69
+ closed: boolean;
70
+ }
71
+ /**
72
+ * In-memory storage for mock server
73
+ */
74
+ export declare class MockStore {
75
+ workflows: Map<string, MockWorkflow>;
76
+ operations: Map<string, MockOperation[]>;
77
+ messages: MockMessage[];
78
+ events: Map<string, MockEvent>;
79
+ streams: Map<string, MockStream>;
80
+ eventDispatch: Map<string, object>;
81
+ clear(): void;
82
+ }
83
+ /**
84
+ * Mock HTTP Server for testing
85
+ */
86
+ export declare class MockHttpServer {
87
+ private server;
88
+ private port;
89
+ store: MockStore;
90
+ requestLog: Array<{
91
+ method: string;
92
+ path: string;
93
+ body?: unknown;
94
+ }>;
95
+ constructor(port?: number);
96
+ start(): Promise<number>;
97
+ stop(): Promise<void>;
98
+ get baseUrl(): string;
99
+ private handleRequest;
100
+ private readBody;
101
+ private route;
102
+ private createWorkflow;
103
+ private getWorkflow;
104
+ private listWorkflows;
105
+ private recordOutput;
106
+ private recordError;
107
+ private getResult;
108
+ private setWorkflowStatus;
109
+ private cancelWorkflow;
110
+ private resumeWorkflow;
111
+ private checkCancelled;
112
+ private getPendingWorkflows;
113
+ private forkWorkflow;
114
+ private getOperations;
115
+ private getOperation;
116
+ private recordOperation;
117
+ private sendMessage;
118
+ private receiveMessage;
119
+ private setEvent;
120
+ private getEvent;
121
+ private startQueuedWorkflows;
122
+ private getDeduplicatedWorkflow;
123
+ private writeStream;
124
+ private readStream;
125
+ private closeStream;
126
+ private getEventDispatch;
127
+ private upsertEventDispatch;
128
+ }
129
+ /**
130
+ * Helper function to create and start a mock server
131
+ */
132
+ export declare function createMockServer(port?: number): Promise<MockHttpServer>;
133
+ export {};
134
+ //# sourceMappingURL=mock_server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock_server.d.ts","sourceRoot":"","sources":["../../../src/testing/mock_server.ts"],"names":[],"mappings":"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"}