@solidactions/sdk 0.1.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 (167) hide show
  1. package/.claude/settings.local.json +7 -0
  2. package/.clavix/outputs/dbos-http-sdk/full-prd.md +142 -0
  3. package/.clavix/outputs/dbos-http-sdk/quick-prd.md +12 -0
  4. package/.clavix/outputs/dbos-http-sdk/tasks.md +630 -0
  5. package/.clavix/outputs/prompts/dbos-http-api-20260110-033219.md +91 -0
  6. package/.husky/pre-commit +1 -0
  7. package/.prettierignore +3 -0
  8. package/.prettierrc +9 -0
  9. package/CODE_OF_CONDUCT.md +49 -0
  10. package/CONTRIBUTING.md +47 -0
  11. package/LICENSE +21 -0
  12. package/README.md +172 -0
  13. package/dist/dbos-config.schema.json +132 -0
  14. package/dist/schemas/system_db_schema.d.ts +73 -0
  15. package/dist/schemas/system_db_schema.d.ts.map +1 -0
  16. package/dist/schemas/system_db_schema.js +3 -0
  17. package/dist/schemas/system_db_schema.js.map +1 -0
  18. package/dist/src/adminserver.d.ts +79 -0
  19. package/dist/src/adminserver.d.ts.map +1 -0
  20. package/dist/src/adminserver.js +495 -0
  21. package/dist/src/adminserver.js.map +1 -0
  22. package/dist/src/authdecorators.d.ts +2 -0
  23. package/dist/src/authdecorators.d.ts.map +1 -0
  24. package/dist/src/authdecorators.js +48 -0
  25. package/dist/src/authdecorators.js.map +1 -0
  26. package/dist/src/cli/cli.d.ts +9 -0
  27. package/dist/src/cli/cli.d.ts.map +1 -0
  28. package/dist/src/cli/cli.js +116 -0
  29. package/dist/src/cli/cli.js.map +1 -0
  30. package/dist/src/cli/commands.d.ts +3 -0
  31. package/dist/src/cli/commands.d.ts.map +1 -0
  32. package/dist/src/cli/commands.js +46 -0
  33. package/dist/src/cli/commands.js.map +1 -0
  34. package/dist/src/client.d.ts +85 -0
  35. package/dist/src/client.d.ts.map +1 -0
  36. package/dist/src/client.js +186 -0
  37. package/dist/src/client.js.map +1 -0
  38. package/dist/src/conductor/conductor.d.ts +28 -0
  39. package/dist/src/conductor/conductor.d.ts.map +1 -0
  40. package/dist/src/conductor/conductor.js +376 -0
  41. package/dist/src/conductor/conductor.js.map +1 -0
  42. package/dist/src/conductor/protocol.d.ts +238 -0
  43. package/dist/src/conductor/protocol.d.ts.map +1 -0
  44. package/dist/src/conductor/protocol.js +353 -0
  45. package/dist/src/conductor/protocol.js.map +1 -0
  46. package/dist/src/config.d.ts +91 -0
  47. package/dist/src/config.d.ts.map +1 -0
  48. package/dist/src/config.js +199 -0
  49. package/dist/src/config.js.map +1 -0
  50. package/dist/src/context.d.ts +62 -0
  51. package/dist/src/context.d.ts.map +1 -0
  52. package/dist/src/context.js +118 -0
  53. package/dist/src/context.js.map +1 -0
  54. package/dist/src/database_utils.d.ts +17 -0
  55. package/dist/src/database_utils.d.ts.map +1 -0
  56. package/dist/src/database_utils.js +53 -0
  57. package/dist/src/database_utils.js.map +1 -0
  58. package/dist/src/datasource.d.ts +109 -0
  59. package/dist/src/datasource.d.ts.map +1 -0
  60. package/dist/src/datasource.js +204 -0
  61. package/dist/src/datasource.js.map +1 -0
  62. package/dist/src/dbos-executor.d.ts +189 -0
  63. package/dist/src/dbos-executor.d.ts.map +1 -0
  64. package/dist/src/dbos-executor.js +817 -0
  65. package/dist/src/dbos-executor.js.map +1 -0
  66. package/dist/src/dbos.d.ts +519 -0
  67. package/dist/src/dbos.d.ts.map +1 -0
  68. package/dist/src/dbos.js +1282 -0
  69. package/dist/src/dbos.js.map +1 -0
  70. package/dist/src/debouncer.d.ts +33 -0
  71. package/dist/src/debouncer.d.ts.map +1 -0
  72. package/dist/src/debouncer.js +170 -0
  73. package/dist/src/debouncer.js.map +1 -0
  74. package/dist/src/debugpoint.d.ts +26 -0
  75. package/dist/src/debugpoint.d.ts.map +1 -0
  76. package/dist/src/debugpoint.js +65 -0
  77. package/dist/src/debugpoint.js.map +1 -0
  78. package/dist/src/decorators.d.ts +219 -0
  79. package/dist/src/decorators.d.ts.map +1 -0
  80. package/dist/src/decorators.js +873 -0
  81. package/dist/src/decorators.js.map +1 -0
  82. package/dist/src/error.d.ts +130 -0
  83. package/dist/src/error.d.ts.map +1 -0
  84. package/dist/src/error.js +290 -0
  85. package/dist/src/error.js.map +1 -0
  86. package/dist/src/http_client.d.ts +82 -0
  87. package/dist/src/http_client.d.ts.map +1 -0
  88. package/dist/src/http_client.js +286 -0
  89. package/dist/src/http_client.js.map +1 -0
  90. package/dist/src/http_system_database.d.ts +84 -0
  91. package/dist/src/http_system_database.d.ts.map +1 -0
  92. package/dist/src/http_system_database.js +429 -0
  93. package/dist/src/http_system_database.js.map +1 -0
  94. package/dist/src/index.d.ts +14 -0
  95. package/dist/src/index.d.ts.map +1 -0
  96. package/dist/src/index.js +53 -0
  97. package/dist/src/index.js.map +1 -0
  98. package/dist/src/scheduler/crontab.d.ts +14 -0
  99. package/dist/src/scheduler/crontab.d.ts.map +1 -0
  100. package/dist/src/scheduler/crontab.js +308 -0
  101. package/dist/src/scheduler/crontab.js.map +1 -0
  102. package/dist/src/scheduler/scheduler.d.ts +41 -0
  103. package/dist/src/scheduler/scheduler.d.ts.map +1 -0
  104. package/dist/src/scheduler/scheduler.js +165 -0
  105. package/dist/src/scheduler/scheduler.js.map +1 -0
  106. package/dist/src/serialization.d.ts +57 -0
  107. package/dist/src/serialization.d.ts.map +1 -0
  108. package/dist/src/serialization.js +306 -0
  109. package/dist/src/serialization.js.map +1 -0
  110. package/dist/src/solidactions-executor.d.ts +177 -0
  111. package/dist/src/solidactions-executor.d.ts.map +1 -0
  112. package/dist/src/solidactions-executor.js +817 -0
  113. package/dist/src/solidactions-executor.js.map +1 -0
  114. package/dist/src/solidactions.d.ts +519 -0
  115. package/dist/src/solidactions.d.ts.map +1 -0
  116. package/dist/src/solidactions.js +1284 -0
  117. package/dist/src/solidactions.js.map +1 -0
  118. package/dist/src/step.d.ts +16 -0
  119. package/dist/src/step.d.ts.map +1 -0
  120. package/dist/src/step.js +3 -0
  121. package/dist/src/step.js.map +1 -0
  122. package/dist/src/system_database.d.ts +141 -0
  123. package/dist/src/system_database.d.ts.map +1 -0
  124. package/dist/src/system_database.js +25 -0
  125. package/dist/src/system_database.js.map +1 -0
  126. package/dist/src/telemetry/collector.d.ts +13 -0
  127. package/dist/src/telemetry/collector.d.ts.map +1 -0
  128. package/dist/src/telemetry/collector.js +63 -0
  129. package/dist/src/telemetry/collector.js.map +1 -0
  130. package/dist/src/telemetry/exporters.d.ts +13 -0
  131. package/dist/src/telemetry/exporters.d.ts.map +1 -0
  132. package/dist/src/telemetry/exporters.js +101 -0
  133. package/dist/src/telemetry/exporters.js.map +1 -0
  134. package/dist/src/telemetry/logs.d.ts +52 -0
  135. package/dist/src/telemetry/logs.d.ts.map +1 -0
  136. package/dist/src/telemetry/logs.js +287 -0
  137. package/dist/src/telemetry/logs.js.map +1 -0
  138. package/dist/src/telemetry/traces.d.ts +52 -0
  139. package/dist/src/telemetry/traces.d.ts.map +1 -0
  140. package/dist/src/telemetry/traces.js +150 -0
  141. package/dist/src/telemetry/traces.js.map +1 -0
  142. package/dist/src/utils.d.ts +26 -0
  143. package/dist/src/utils.d.ts.map +1 -0
  144. package/dist/src/utils.js +136 -0
  145. package/dist/src/utils.js.map +1 -0
  146. package/dist/src/wfqueue.d.ts +64 -0
  147. package/dist/src/wfqueue.d.ts.map +1 -0
  148. package/dist/src/wfqueue.js +147 -0
  149. package/dist/src/wfqueue.js.map +1 -0
  150. package/dist/src/workflow.d.ts +154 -0
  151. package/dist/src/workflow.d.ts.map +1 -0
  152. package/dist/src/workflow.js +99 -0
  153. package/dist/src/workflow.js.map +1 -0
  154. package/dist/src/workflow_management.d.ts +15 -0
  155. package/dist/src/workflow_management.d.ts.map +1 -0
  156. package/dist/src/workflow_management.js +87 -0
  157. package/dist/src/workflow_management.js.map +1 -0
  158. package/dist/tsconfig.tsbuildinfo +1 -0
  159. package/docs/api-schema.md +1441 -0
  160. package/docs/migration-guide.md +460 -0
  161. package/docs/phase-14-changes.md +156 -0
  162. package/docs/solidsteps-ai-prompt.md +534 -0
  163. package/eslint.config.cjs +50 -0
  164. package/package.json +84 -0
  165. package/solidactions-ai-prompt.md +1504 -0
  166. package/solidactions-config.schema.json +132 -0
  167. package/solidactions-test-config.yaml +15 -0
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapHttpError = exports.HttpClient = void 0;
4
+ const error_1 = require("./error");
5
+ /**
6
+ * HTTP Client for SolidActions SDK with retry logic and error handling.
7
+ *
8
+ * Features:
9
+ * - Exponential backoff with jitter for retries
10
+ * - Only retries on 5xx and network errors (not 4xx)
11
+ * - Respects Retry-After header
12
+ * - Configurable timeout and retry count
13
+ */
14
+ class HttpClient {
15
+ baseUrl;
16
+ apiKey;
17
+ timeout;
18
+ maxRetries;
19
+ retryDelay;
20
+ logger;
21
+ constructor(config, logger) {
22
+ this.baseUrl = config.baseUrl.replace(/\/$/, ''); // Remove trailing slash
23
+ this.apiKey = config.apiKey;
24
+ this.timeout = config.timeout ?? 30000;
25
+ this.maxRetries = config.maxRetries ?? 3;
26
+ this.retryDelay = config.retryDelay ?? 1000;
27
+ this.logger = logger;
28
+ }
29
+ /**
30
+ * Set the logger instance (useful when logger is created after HttpClient)
31
+ */
32
+ setLogger(logger) {
33
+ this.logger = logger;
34
+ }
35
+ /**
36
+ * Make an HTTP request with retry logic
37
+ */
38
+ async request(method, path, body, options) {
39
+ const url = `${this.baseUrl}${path.startsWith('/') ? path : `/${path}`}`;
40
+ let lastError;
41
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
42
+ try {
43
+ const response = await this.executeRequest(method, url, body, options);
44
+ // Success - parse and return response
45
+ if (response.ok) {
46
+ const contentType = response.headers.get('content-type');
47
+ if (contentType?.includes('application/json')) {
48
+ return (await response.json());
49
+ }
50
+ // For non-JSON responses, return empty object or text
51
+ const text = await response.text();
52
+ if (text === '') {
53
+ return {};
54
+ }
55
+ try {
56
+ return JSON.parse(text);
57
+ }
58
+ catch {
59
+ return { data: text };
60
+ }
61
+ }
62
+ // Handle HTTP errors
63
+ const responseBody = await this.parseErrorBody(response);
64
+ // 4xx errors - don't retry, throw immediately
65
+ if (response.status >= 400 && response.status < 500) {
66
+ this.mapHttpErrorToException(response.status, responseBody);
67
+ }
68
+ // 5xx errors - retry with backoff
69
+ if (response.status >= 500) {
70
+ lastError = new error_1.SolidActionsServerError(responseBody?.message ?? `Server error: ${response.status}`, response.status, responseBody);
71
+ if (attempt < this.maxRetries) {
72
+ const delay = this.calculateRetryDelay(attempt, response);
73
+ this.logger?.warn(`HTTP request failed with status ${response.status}, retrying in ${delay}ms (attempt ${attempt + 1}/${this.maxRetries})`);
74
+ await this.sleep(delay);
75
+ continue;
76
+ }
77
+ // Max retries exhausted for 5xx - throw the server error
78
+ throw lastError;
79
+ }
80
+ // Unknown error status - throw
81
+ throw new error_1.SolidActionsHttpError(responseBody?.message ?? `HTTP error: ${response.status}`, response.status, responseBody);
82
+ }
83
+ catch (error) {
84
+ // Handle network errors and other exceptions
85
+ if (error instanceof error_1.SolidActionsHttpError) {
86
+ throw error; // Re-throw HTTP errors (4xx) immediately
87
+ }
88
+ // Network errors - retry with backoff
89
+ if (this.isNetworkError(error)) {
90
+ lastError = new error_1.SolidActionsNetworkError(error instanceof Error ? error.message : 'Network error');
91
+ if (attempt < this.maxRetries) {
92
+ const delay = this.calculateRetryDelay(attempt);
93
+ this.logger?.warn(`Network error during HTTP request, retrying in ${delay}ms (attempt ${attempt + 1}/${this.maxRetries}): ${lastError.message}`);
94
+ await this.sleep(delay);
95
+ continue;
96
+ }
97
+ // Max retries exhausted for network errors - throw the network error
98
+ throw lastError;
99
+ }
100
+ else {
101
+ // Unknown error type - throw immediately
102
+ throw error;
103
+ }
104
+ }
105
+ }
106
+ // All retries exhausted
107
+ throw lastError ?? new error_1.SolidActionsNetworkError('Request failed after all retries');
108
+ }
109
+ /**
110
+ * Convenience methods for common HTTP methods
111
+ */
112
+ async get(path, options) {
113
+ return this.request('GET', path, undefined, options);
114
+ }
115
+ async post(path, body, options) {
116
+ return this.request('POST', path, body, options);
117
+ }
118
+ async put(path, body, options) {
119
+ return this.request('PUT', path, body, options);
120
+ }
121
+ async delete(path, options) {
122
+ return this.request('DELETE', path, undefined, options);
123
+ }
124
+ async patch(path, body, options) {
125
+ return this.request('PATCH', path, body, options);
126
+ }
127
+ /**
128
+ * Execute a single HTTP request with timeout
129
+ */
130
+ async executeRequest(method, url, body, options) {
131
+ const controller = new AbortController();
132
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
133
+ try {
134
+ const headers = {
135
+ Authorization: `Bearer ${this.apiKey}`,
136
+ 'Content-Type': 'application/json',
137
+ Accept: 'application/json',
138
+ ...options?.headers,
139
+ };
140
+ // Add worker session ID header if available (for linking operations to workers)
141
+ const workerSessionId = process.env.SOLIDACTIONS_WORKER_SESSION_ID;
142
+ if (workerSessionId) {
143
+ headers['X-Worker-Session-ID'] = workerSessionId;
144
+ }
145
+ const fetchOptions = {
146
+ method,
147
+ headers,
148
+ signal: options?.signal ?? controller.signal,
149
+ };
150
+ if (body !== undefined && method !== 'GET' && method !== 'HEAD') {
151
+ fetchOptions.body = JSON.stringify(body);
152
+ }
153
+ return await fetch(url, fetchOptions);
154
+ }
155
+ finally {
156
+ clearTimeout(timeoutId);
157
+ }
158
+ }
159
+ /**
160
+ * Parse error response body
161
+ */
162
+ async parseErrorBody(response) {
163
+ try {
164
+ const text = await response.text();
165
+ if (text) {
166
+ return JSON.parse(text);
167
+ }
168
+ }
169
+ catch {
170
+ // Ignore parse errors
171
+ }
172
+ return undefined;
173
+ }
174
+ /**
175
+ * Map HTTP status codes to appropriate SDK exceptions
176
+ */
177
+ mapHttpErrorToException(status, body) {
178
+ const message = body?.message ?? `HTTP error ${status}`;
179
+ switch (status) {
180
+ case 400:
181
+ throw new error_1.SolidActionsDataValidationError(message);
182
+ case 401:
183
+ throw new error_1.SolidActionsUnauthorizedError(message);
184
+ case 403:
185
+ throw new error_1.SolidActionsForbiddenError(message);
186
+ case 404:
187
+ // Check if this is a workflow not found error
188
+ if (body?.type === 'workflow_not_found') {
189
+ throw new error_1.SolidActionsNonExistentWorkflowError(message);
190
+ }
191
+ throw new error_1.SolidActionsNotFoundError(message);
192
+ case 409:
193
+ // Workflow conflict
194
+ throw new error_1.SolidActionsWorkflowConflictError(body?.workflowID ?? 'unknown');
195
+ case 429:
196
+ throw new error_1.SolidActionsRateLimitedError(message, body?.retryAfter);
197
+ default:
198
+ if (status >= 500) {
199
+ throw new error_1.SolidActionsServerError(message, status, body);
200
+ }
201
+ throw new error_1.SolidActionsHttpError(message, status, body);
202
+ }
203
+ }
204
+ /**
205
+ * Calculate retry delay with exponential backoff and jitter
206
+ * Formula: delay * 2^attempt + random(0, delay * 0.5)
207
+ */
208
+ calculateRetryDelay(attempt, response) {
209
+ // Check for Retry-After header
210
+ if (response) {
211
+ const retryAfter = response.headers.get('Retry-After');
212
+ if (retryAfter) {
213
+ // Retry-After can be seconds or HTTP date
214
+ const seconds = parseInt(retryAfter, 10);
215
+ if (!isNaN(seconds)) {
216
+ return seconds * 1000;
217
+ }
218
+ // Try parsing as date
219
+ const date = Date.parse(retryAfter);
220
+ if (!isNaN(date)) {
221
+ return Math.max(0, date - Date.now());
222
+ }
223
+ }
224
+ }
225
+ // Exponential backoff with jitter
226
+ const baseDelay = this.retryDelay * Math.pow(2, attempt);
227
+ const jitter = Math.random() * (this.retryDelay * 0.5);
228
+ return baseDelay + jitter;
229
+ }
230
+ /**
231
+ * Check if an error is a network error
232
+ */
233
+ isNetworkError(error) {
234
+ if (error instanceof TypeError) {
235
+ // fetch throws TypeError for network errors
236
+ return true;
237
+ }
238
+ if (error instanceof Error) {
239
+ const message = error.message.toLowerCase();
240
+ return (message.includes('network') ||
241
+ message.includes('fetch') ||
242
+ message.includes('econnrefused') ||
243
+ message.includes('enotfound') ||
244
+ message.includes('etimedout') ||
245
+ message.includes('abort'));
246
+ }
247
+ return false;
248
+ }
249
+ /**
250
+ * Sleep helper
251
+ */
252
+ sleep(ms) {
253
+ return new Promise((resolve) => setTimeout(resolve, ms));
254
+ }
255
+ }
256
+ exports.HttpClient = HttpClient;
257
+ /**
258
+ * Map HTTP response to SDK error (exported for use elsewhere)
259
+ */
260
+ function mapHttpError(status, body) {
261
+ const message = body?.message ?? `HTTP error ${status}`;
262
+ switch (status) {
263
+ case 400:
264
+ throw new error_1.SolidActionsDataValidationError(message);
265
+ case 401:
266
+ throw new error_1.SolidActionsUnauthorizedError(message);
267
+ case 403:
268
+ throw new error_1.SolidActionsForbiddenError(message);
269
+ case 404:
270
+ if (body?.type === 'workflow_not_found') {
271
+ throw new error_1.SolidActionsNonExistentWorkflowError(message);
272
+ }
273
+ throw new error_1.SolidActionsNotFoundError(message);
274
+ case 409:
275
+ throw new error_1.SolidActionsWorkflowConflictError(body?.workflowID ?? 'unknown');
276
+ case 429:
277
+ throw new error_1.SolidActionsRateLimitedError(message, body?.retryAfter);
278
+ default:
279
+ if (status >= 500) {
280
+ throw new error_1.SolidActionsServerError(message, status, body);
281
+ }
282
+ throw new error_1.SolidActionsHttpError(message, status, body);
283
+ }
284
+ }
285
+ exports.mapHttpError = mapHttpError;
286
+ //# sourceMappingURL=http_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http_client.js","sourceRoot":"","sources":["../../src/http_client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { SystemDatabase, WorkflowStatusInternal, SystemDatabaseStoredResult, MetricData } from './system_database';
2
+ import { SolidActionsHttpConfig } from './config';
3
+ import { GlobalLogger } from './telemetry/logs';
4
+ import { GetPendingWorkflowsOutput, GetWorkflowsInput, StatusString } from './workflow';
5
+ import { operation_outputs } from '../schemas/system_db_schema';
6
+ import { SolidActionsExternalState } from './solidactions-executor';
7
+ import { SolidActionsSerializer } from './serialization';
8
+ /**
9
+ * HTTP-based implementation of SystemDatabase.
10
+ *
11
+ * This class replaces PostgresSystemDatabase and communicates with
12
+ * the Laravel backend via HTTP API calls instead of direct database access.
13
+ */
14
+ export declare class HttpSystemDatabase implements SystemDatabase {
15
+ private client;
16
+ private executorID;
17
+ private appVersion;
18
+ private logger;
19
+ private readonly serializer;
20
+ private readonly runningWorkflows;
21
+ private readonly workflowCancellationMap;
22
+ private readonly pollIntervalMs;
23
+ private readonly eventPollIntervalMs;
24
+ constructor(config: SolidActionsHttpConfig, executorID: string, appVersion: string, logger: GlobalLogger, serializer: SolidActionsSerializer);
25
+ getSerializer(): SolidActionsSerializer;
26
+ init(_debugMode?: boolean): Promise<void>;
27
+ destroy(): Promise<void>;
28
+ initWorkflowStatus(initStatus: WorkflowStatusInternal, ownerXid: string | null, options?: {
29
+ isRecoveryRequest?: boolean;
30
+ isDequeuedRequest?: boolean;
31
+ maxRetries?: number;
32
+ }): Promise<{
33
+ status: string;
34
+ shouldExecuteOnThisExecutor: boolean;
35
+ deadlineEpochMS?: number;
36
+ }>;
37
+ recordWorkflowOutput(workflowID: string, status: WorkflowStatusInternal): Promise<void>;
38
+ recordWorkflowError(workflowID: string, status: WorkflowStatusInternal): Promise<void>;
39
+ getWorkflowStatus(workflowID: string, callerID?: string, callerFN?: number): Promise<WorkflowStatusInternal | null>;
40
+ getPendingWorkflows(executorID: string, appVersion: string): Promise<GetPendingWorkflowsOutput[]>;
41
+ listWorkflows(input: GetWorkflowsInput): Promise<WorkflowStatusInternal[]>;
42
+ getOperationResultAndThrowIfCancelled(workflowID: string, functionID: number): Promise<SystemDatabaseStoredResult | undefined>;
43
+ getAllOperationResults(workflowID: string): Promise<operation_outputs[]>;
44
+ recordOperationResult(workflowID: string, functionID: number, functionName: string, checkConflict: boolean, startTimeEpochMs: number, options?: {
45
+ childWorkflowID?: string | null;
46
+ output?: string | null;
47
+ error?: string | null;
48
+ }): Promise<void>;
49
+ awaitWorkflowResult(workflowID: string, timeoutSeconds?: number, callerID?: string, timerFuncID?: number): Promise<SystemDatabaseStoredResult | undefined>;
50
+ setWorkflowStatus(workflowID: string, status: (typeof StatusString)[keyof typeof StatusString], resetRecoveryAttempts: boolean): Promise<void>;
51
+ cancelWorkflow(workflowID: string): Promise<void>;
52
+ resumeWorkflow(workflowID: string): Promise<void>;
53
+ forkWorkflow(workflowID: string, startStep: number, options?: {
54
+ newWorkflowID?: string;
55
+ applicationVersion?: string;
56
+ timeoutMS?: number;
57
+ }): Promise<string>;
58
+ checkIfCanceled(workflowID: string): Promise<void>;
59
+ registerRunningWorkflow(workflowID: string, workflowPromise: Promise<unknown>): void;
60
+ checkForRunningWorkflow(workflowID: string): boolean;
61
+ awaitRunningWorkflows(): Promise<void>;
62
+ send(workflowID: string, functionID: number, destinationID: string, message: string | null, topic?: string): Promise<void>;
63
+ recv(workflowID: string, functionID: number, timeoutFunctionID: number, topic?: string, timeoutSeconds?: number): Promise<string | null>;
64
+ durableSleepms(workflowID: string, functionID: number, duration: number): Promise<void>;
65
+ setEvent(workflowID: string, functionID: number, key: string, value: string | null): Promise<void>;
66
+ getEvent(workflowID: string, key: string, timeoutSeconds: number, callerWorkflow?: {
67
+ workflowID: string;
68
+ functionID: number;
69
+ timeoutFunctionID: number;
70
+ }): Promise<string | null>;
71
+ getEventDispatchState(service: string, workflowFnName: string, key: string): Promise<SolidActionsExternalState | undefined>;
72
+ upsertEventDispatchState(state: SolidActionsExternalState): Promise<SolidActionsExternalState>;
73
+ writeStreamFromWorkflow(workflowID: string, functionID: number, key: string, value: unknown): Promise<void>;
74
+ writeStreamFromStep(workflowID: string, key: string, value: unknown): Promise<void>;
75
+ closeStream(workflowID: string, functionID: number, key: string): Promise<void>;
76
+ readStream(workflowID: string, key: string, offset: number): Promise<unknown>;
77
+ garbageCollect(cutoffEpochTimestampMs?: number, rowsThreshold?: number): Promise<void>;
78
+ getMetrics(startTime: string, endTime: string): Promise<MetricData[]>;
79
+ checkPatch(workflowID: string, functionID: number, patchName: string, deprecated: boolean): Promise<{
80
+ isPatched: boolean;
81
+ hasEntry: boolean;
82
+ }>;
83
+ }
84
+ //# sourceMappingURL=http_system_database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http_system_database.d.ts","sourceRoot":"","sources":["../../src/http_system_database.ts"],"names":[],"mappings":"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"}