@aikirun/types 0.17.0 → 0.18.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/dist/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ScheduleApi } from './schedule-api.js';
2
2
  import { WorkflowMeta } from './workflow.js';
3
- import { WorkflowRun, WorkflowRunId } from './workflow-run.js';
3
+ import { WorkflowRunId, WorkflowRun } from './workflow-run.js';
4
4
  import { WorkflowRunApi } from './workflow-run-api.js';
5
5
  import { INTERNAL } from './symbols.js';
6
6
  import './schedule.js';
@@ -12,6 +12,7 @@ import './serializable.js';
12
12
  import './sleep.js';
13
13
  import './task.js';
14
14
  import './trigger.js';
15
+ import './state-transition.js';
15
16
 
16
17
  interface ClientParams<AppContext = unknown> {
17
18
  url: string;
package/dist/event.d.ts CHANGED
@@ -6,22 +6,22 @@ type EventName = string & {
6
6
  };
7
7
  declare const EVENT_WAIT_STATUSES: readonly ["received", "timeout"];
8
8
  type EventWaitStatus = (typeof EVENT_WAIT_STATUSES)[number];
9
- interface EventWaitStateBase {
9
+ interface EventWaitBase {
10
10
  status: EventWaitStatus;
11
11
  }
12
- interface EventWaitStateReceived<Data> extends EventWaitStateBase {
12
+ interface EventWaitReceived<Data> extends EventWaitBase {
13
13
  status: "received";
14
14
  data?: Data;
15
15
  receivedAt: number;
16
16
  reference?: EventReferenceOptions;
17
17
  }
18
- interface EventWaitStateTimeout extends EventWaitStateBase {
18
+ interface EventWaitTimeout extends EventWaitBase {
19
19
  status: "timeout";
20
20
  timedOutAt: number;
21
21
  }
22
- type EventWaitState<Data> = EventWaitStateReceived<Data> | EventWaitStateTimeout;
22
+ type EventWait<Data> = EventWaitReceived<Data> | EventWaitTimeout;
23
23
  interface EventWaitQueue<Data> {
24
- eventWaits: EventWaitState<Data>[];
24
+ eventWaits: EventWait<Data>[];
25
25
  }
26
26
  interface EventWaitOptions<Timed extends boolean> {
27
27
  timeout?: Timed extends true ? DurationObject : never;
@@ -41,4 +41,4 @@ interface EventReferenceOptions {
41
41
  id: string;
42
42
  }
43
43
 
44
- export { EVENT_WAIT_STATUSES, type EventName, type EventReferenceOptions, type EventSendOptions, type EventWaitOptions, type EventWaitQueue, type EventWaitResult, type EventWaitState, type EventWaitStateReceived, type EventWaitStateTimeout, type EventWaitStatus };
44
+ export { EVENT_WAIT_STATUSES, type EventName, type EventReferenceOptions, type EventSendOptions, type EventWait, type EventWaitOptions, type EventWaitQueue, type EventWaitReceived, type EventWaitResult, type EventWaitStatus, type EventWaitTimeout };
@@ -0,0 +1,5 @@
1
+ type NamespaceId = string & {
2
+ _brand: "namespace_id";
3
+ };
4
+
5
+ export type { NamespaceId };
File without changes
@@ -0,0 +1,5 @@
1
+ type OrganizationId = string & {
2
+ _brand: "organization_id";
3
+ };
4
+
5
+ export type { OrganizationId };
File without changes
@@ -1,12 +1,13 @@
1
1
  import { ScheduleSpec, ScheduleActivateOptions, Schedule, ScheduleStatus } from './schedule.js';
2
+ import { WorkflowSource } from './workflow.js';
2
3
 
3
4
  interface ScheduleApi {
4
5
  activateV1: (_: ScheduleActivateRequestV1) => Promise<ScheduleActivateResponseV1>;
5
6
  getByIdV1: (_: ScheduleGetByIdRequestV1) => Promise<ScheduleGetByIdResponseV1>;
6
7
  getByReferenceIdV1: (_: ScheduleGetByReferenceIdRequestV1) => Promise<ScheduleGetByReferenceIdResponseV1>;
7
8
  listV1: (_: ScheduleListRequestV1) => Promise<ScheduleListResponseV1>;
8
- pauseV1: (_: SchedulePauseRequestV1) => Promise<SchedulePauseResponseV1>;
9
- resumeV1: (_: ScheduleResumeRequestV1) => Promise<ScheduleResumeResponseV1>;
9
+ pauseV1: (_: SchedulePauseRequestV1) => Promise<void>;
10
+ resumeV1: (_: ScheduleResumeRequestV1) => Promise<void>;
10
11
  deleteV1: (_: ScheduleDeleteRequestV1) => Promise<void>;
11
12
  }
12
13
  interface ScheduleActivateRequestV1 {
@@ -24,16 +25,19 @@ interface ScheduleGetByIdRequestV1 {
24
25
  }
25
26
  interface ScheduleGetByIdResponseV1 {
26
27
  schedule: Schedule;
28
+ runCount: number;
27
29
  }
28
30
  interface ScheduleGetByReferenceIdRequestV1 {
29
31
  referenceId: string;
30
32
  }
31
33
  interface ScheduleGetByReferenceIdResponseV1 {
32
34
  schedule: Schedule;
35
+ runCount: number;
33
36
  }
34
37
  interface ScheduleWorkflowFilter {
35
- name?: string;
38
+ name: string;
36
39
  versionId?: string;
40
+ source: WorkflowSource;
37
41
  }
38
42
  interface ScheduleListRequestV1 {
39
43
  limit?: number;
@@ -46,23 +50,20 @@ interface ScheduleListRequestV1 {
46
50
  };
47
51
  }
48
52
  interface ScheduleListResponseV1 {
49
- schedules: Schedule[];
53
+ schedules: {
54
+ schedule: Schedule;
55
+ runCount: number;
56
+ }[];
50
57
  total: number;
51
58
  }
52
59
  interface SchedulePauseRequestV1 {
53
60
  id: string;
54
61
  }
55
- interface SchedulePauseResponseV1 {
56
- schedule: Schedule;
57
- }
58
62
  interface ScheduleResumeRequestV1 {
59
63
  id: string;
60
64
  }
61
- interface ScheduleResumeResponseV1 {
62
- schedule: Schedule;
63
- }
64
65
  interface ScheduleDeleteRequestV1 {
65
66
  id: string;
66
67
  }
67
68
 
68
- export type { ScheduleActivateRequestV1, ScheduleActivateResponseV1, ScheduleApi, ScheduleDeleteRequestV1, ScheduleGetByIdRequestV1, ScheduleGetByIdResponseV1, ScheduleGetByReferenceIdRequestV1, ScheduleGetByReferenceIdResponseV1, ScheduleListRequestV1, ScheduleListResponseV1, SchedulePauseRequestV1, SchedulePauseResponseV1, ScheduleResumeRequestV1, ScheduleResumeResponseV1, ScheduleWorkflowFilter };
69
+ export type { ScheduleActivateRequestV1, ScheduleActivateResponseV1, ScheduleApi, ScheduleDeleteRequestV1, ScheduleGetByIdRequestV1, ScheduleGetByIdResponseV1, ScheduleGetByReferenceIdRequestV1, ScheduleGetByReferenceIdResponseV1, ScheduleListRequestV1, ScheduleListResponseV1, SchedulePauseRequestV1, ScheduleResumeRequestV1, ScheduleWorkflowFilter };
@@ -42,7 +42,6 @@ interface Schedule {
42
42
  updatedAt: number;
43
43
  lastOccurrence?: number;
44
44
  nextRunAt: number;
45
- runCount: number;
46
45
  }
47
46
 
48
47
  export { type CronScheduleSpec, type IntervalScheduleSpec, SCHEDULE_CONFLICT_POLICIES, SCHEDULE_OVERLAP_POLICIES, SCHEDULE_STATUSES, SCHEDULE_TYPES, type Schedule, type ScheduleActivateOptions, type ScheduleConflictPolicy, type ScheduleId, type ScheduleOverlapPolicy, type ScheduleReferenceOptions, type ScheduleSpec, type ScheduleStatus, type ScheduleType };
package/dist/sleep.d.ts CHANGED
@@ -3,28 +3,28 @@ type SleepName = string & {
3
3
  };
4
4
  declare const SLEEP_STATUSES: readonly ["sleeping", "completed", "cancelled"];
5
5
  type SleepStatus = (typeof SLEEP_STATUSES)[number];
6
- interface SleepStateBase {
6
+ interface SleepBase {
7
7
  status: SleepStatus;
8
8
  }
9
- interface SleepStateSleeping extends SleepStateBase {
9
+ interface SleepSleeping extends SleepBase {
10
10
  status: "sleeping";
11
11
  awakeAt: number;
12
12
  }
13
- interface SleepStateCompleted extends SleepStateBase {
13
+ interface SleepCompleted extends SleepBase {
14
14
  status: "completed";
15
15
  durationMs: number;
16
16
  completedAt: number;
17
17
  }
18
- interface SleepStateCancelled extends SleepStateBase {
18
+ interface SleepCancelled extends SleepBase {
19
19
  status: "cancelled";
20
20
  cancelledAt: number;
21
21
  }
22
- type SleepState = SleepStateSleeping | SleepStateCompleted | SleepStateCancelled;
22
+ type Sleep = SleepSleeping | SleepCompleted | SleepCancelled;
23
23
  interface SleepQueue {
24
- sleeps: SleepState[];
24
+ sleeps: Sleep[];
25
25
  }
26
26
  interface SleepResult {
27
27
  cancelled: boolean;
28
28
  }
29
29
 
30
- export { SLEEP_STATUSES, type SleepName, type SleepQueue, type SleepResult, type SleepState, type SleepStateCancelled, type SleepStateCompleted, type SleepStateSleeping, type SleepStatus };
30
+ export { SLEEP_STATUSES, type Sleep, type SleepCancelled, type SleepCompleted, type SleepName, type SleepQueue, type SleepResult, type SleepSleeping, type SleepStatus };
@@ -0,0 +1,29 @@
1
+ import { TaskState } from './task.js';
2
+ import { WorkflowRunState } from './workflow-run.js';
3
+ import './retry.js';
4
+ import './serializable.js';
5
+ import './utils.js';
6
+ import './event.js';
7
+ import './duration.js';
8
+ import './sleep.js';
9
+ import './trigger.js';
10
+
11
+ declare const STATE_TRANSITION_TYPES: readonly ["workflow_run", "task"];
12
+ type StateTransitionType = (typeof STATE_TRANSITION_TYPES)[number];
13
+ interface StateTransitionBase {
14
+ id: string;
15
+ createdAt: number;
16
+ type: StateTransitionType;
17
+ }
18
+ interface WorkflowRunStateTransition extends StateTransitionBase {
19
+ type: "workflow_run";
20
+ state: WorkflowRunState;
21
+ }
22
+ interface TaskStateTransition extends StateTransitionBase {
23
+ type: "task";
24
+ taskId: string;
25
+ taskState: TaskState;
26
+ }
27
+ type StateTransition = WorkflowRunStateTransition | TaskStateTransition;
28
+
29
+ export { STATE_TRANSITION_TYPES, type StateTransition, type StateTransitionBase, type StateTransitionType, type TaskStateTransition, type WorkflowRunStateTransition };
@@ -0,0 +1,5 @@
1
+ // state-transition.ts
2
+ var STATE_TRANSITION_TYPES = ["workflow_run", "task"];
3
+ export {
4
+ STATE_TRANSITION_TYPES
5
+ };
package/dist/task.d.ts CHANGED
@@ -17,13 +17,6 @@ interface TaskDefinitionOptions {
17
17
  retry?: RetryStrategy;
18
18
  }
19
19
  interface TaskStartOptions extends TaskDefinitionOptions {
20
- reference?: TaskReferenceOptions;
21
- }
22
- declare const TASK_CONFLICT_POLICIES: readonly ["error", "return_existing"];
23
- type TaskConflictPolicy = (typeof TASK_CONFLICT_POLICIES)[number];
24
- interface TaskReferenceOptions {
25
- id: string;
26
- conflictPolicy?: TaskConflictPolicy;
27
20
  }
28
21
  interface TaskStateBase {
29
22
  status: TaskStatus;
@@ -58,7 +51,7 @@ interface TaskInfo {
58
51
  }
59
52
  interface TransitionTaskStateBase {
60
53
  id: string;
61
- expectedRevision: number;
54
+ expectedWorkflowRunRevision: number;
62
55
  }
63
56
  interface TransitionTaskStateToRunningCreate extends TransitionTaskStateBase {
64
57
  type: "create";
@@ -89,6 +82,9 @@ interface TransitionTaskStateToAwaitingRetry extends TransitionTaskStateBase {
89
82
  type TaskStateAwaitingRetryRequest = Omit<TaskStateAwaitingRetry, "nextAttemptAt"> & {
90
83
  nextAttemptInMs: number;
91
84
  };
85
+ interface TaskQueue {
86
+ tasks: TaskInfo[];
87
+ }
92
88
  declare class TaskFailedError extends Error {
93
89
  readonly taskId: TaskId;
94
90
  readonly attempts: number;
@@ -96,4 +92,4 @@ declare class TaskFailedError extends Error {
96
92
  constructor(taskId: TaskId, attempts: number, reason: string);
97
93
  }
98
94
 
99
- export { TASK_CONFLICT_POLICIES, TASK_STATUSES, type TaskAddress, type TaskConflictPolicy, type TaskDefinitionOptions, TaskFailedError, type TaskId, type TaskInfo, type TaskName, type TaskReferenceOptions, type TaskStartOptions, type TaskState, type TaskStateAwaitingRetry, type TaskStateAwaitingRetryRequest, type TaskStateCompleted, type TaskStateCompletedRequest, type TaskStateFailed, type TaskStateRunning, type TaskStateRunningRequest, type TaskStatus, type TransitionTaskStateBase, type TransitionTaskStateToAwaitingRetry, type TransitionTaskStateToCompleted, type TransitionTaskStateToFailed, type TransitionTaskStateToRunningCreate, type TransitionTaskStateToRunningRetry };
95
+ export { TASK_STATUSES, type TaskAddress, type TaskDefinitionOptions, TaskFailedError, type TaskId, type TaskInfo, type TaskName, type TaskQueue, type TaskStartOptions, type TaskState, type TaskStateAwaitingRetry, type TaskStateAwaitingRetryRequest, type TaskStateCompleted, type TaskStateCompletedRequest, type TaskStateFailed, type TaskStateRunning, type TaskStateRunningRequest, type TaskStatus, type TransitionTaskStateBase, type TransitionTaskStateToAwaitingRetry, type TransitionTaskStateToCompleted, type TransitionTaskStateToFailed, type TransitionTaskStateToRunningCreate, type TransitionTaskStateToRunningRetry };
package/dist/task.js CHANGED
@@ -1,6 +1,5 @@
1
1
  // task.ts
2
2
  var TASK_STATUSES = ["running", "awaiting_retry", "completed", "failed"];
3
- var TASK_CONFLICT_POLICIES = ["error", "return_existing"];
4
3
  var TaskFailedError = class extends Error {
5
4
  taskId;
6
5
  attempts;
@@ -14,7 +13,6 @@ var TaskFailedError = class extends Error {
14
13
  }
15
14
  };
16
15
  export {
17
- TASK_CONFLICT_POLICIES,
18
16
  TASK_STATUSES,
19
17
  TaskFailedError
20
18
  };
@@ -1,3 +1,4 @@
1
+ import { WorkflowSource } from './workflow.js';
1
2
  import { WorkflowRunStatus } from './workflow-run.js';
2
3
  import './event.js';
3
4
  import './duration.js';
@@ -9,22 +10,12 @@ import './task.js';
9
10
  import './trigger.js';
10
11
 
11
12
  interface WorkflowApi {
12
- getStatsV1: (_: WorkflowGetStatsRequestV1) => Promise<WorkflowGetStatsResponseV1>;
13
13
  listV1: (_: WorkflowListRequestV1) => Promise<WorkflowListResponseV1>;
14
14
  listVersionsV1: (_: WorkflowListVersionsRequestV1) => Promise<WorkflowListVersionsResponseV1>;
15
- }
16
- interface WorkflowGetStatsRequestV1 {
17
- name?: string;
18
- versionId?: string;
19
- }
20
- interface WorkflowGetStatsResponseV1 {
21
- stats: WorkflowStats;
22
- }
23
- interface WorkflowStats {
24
- totalRuns: number;
25
- runsByStatus: Record<WorkflowRunStatus, number>;
15
+ getStatsV1: (_: WorkflowGetStatsRequestV1) => Promise<WorkflowGetStatsResponseV1>;
26
16
  }
27
17
  interface WorkflowListRequestV1 {
18
+ source: WorkflowSource;
28
19
  limit?: number;
29
20
  offset?: number;
30
21
  sort?: {
@@ -34,6 +25,7 @@ interface WorkflowListRequestV1 {
34
25
  }
35
26
  interface WorkflowListItem {
36
27
  name: string;
28
+ source: WorkflowSource;
37
29
  runCount: number;
38
30
  lastRunAt: number | null;
39
31
  }
@@ -43,6 +35,7 @@ interface WorkflowListResponseV1 {
43
35
  }
44
36
  interface WorkflowListVersionsRequestV1 {
45
37
  name: string;
38
+ source: WorkflowSource;
46
39
  limit?: number;
47
40
  offset?: number;
48
41
  sort?: {
@@ -60,5 +53,16 @@ interface WorkflowListVersionsResponseV1 {
60
53
  versions: WorkflowVersionItem[];
61
54
  total: number;
62
55
  }
56
+ type WorkflowGetStatsRequestV1 = {
57
+ name: string;
58
+ source: WorkflowSource;
59
+ versionId?: string;
60
+ } | undefined;
61
+ interface WorkflowGetStatsResponseV1 {
62
+ stats: WorkflowStats;
63
+ }
64
+ interface WorkflowStats {
65
+ runsByStatus: Record<WorkflowRunStatus, number>;
66
+ }
63
67
 
64
68
  export type { WorkflowApi, WorkflowGetStatsRequestV1, WorkflowGetStatsResponseV1, WorkflowListItem, WorkflowListRequestV1, WorkflowListResponseV1, WorkflowListVersionsRequestV1, WorkflowListVersionsResponseV1, WorkflowStats, WorkflowVersionItem };
@@ -1,7 +1,9 @@
1
1
  import { EventSendOptions } from './event.js';
2
- import { TransitionTaskStateToRunningCreate, TransitionTaskStateToRunningRetry, TransitionTaskStateToCompleted, TransitionTaskStateToFailed, TransitionTaskStateToAwaitingRetry, TaskStateCompleted, TaskStateFailed } from './task.js';
2
+ import { StateTransition } from './state-transition.js';
3
+ import { TransitionTaskStateToRunningCreate, TransitionTaskStateToRunningRetry, TransitionTaskStateToCompleted, TransitionTaskStateToFailed, TransitionTaskStateToAwaitingRetry, TaskInfo, TaskStateCompleted, TaskStateFailed } from './task.js';
3
4
  import { DistributiveOmit, OptionalProp } from './utils.js';
4
- import { WorkflowRunStatus, WorkflowRun, WorkflowRunState, WorkflowStartOptions, WorkflowRunStateScheduled, WorkflowRunStateSleeping, WorkflowRunStateAwaitingEvent, WorkflowRunStateAwaitingRetry, WorkflowRunStateAwaitingChildWorkflow, WorkflowRunStateCompleted, WorkflowRunStatePaused, WorkflowRunStateCancelled, WorkflowRunTransition } from './workflow-run.js';
5
+ import { WorkflowSource } from './workflow.js';
6
+ import { WorkflowRunStatus, WorkflowRun, WorkflowRunState, WorkflowStartOptions, WorkflowRunStateScheduled, WorkflowRunStateSleeping, WorkflowRunStateAwaitingEvent, WorkflowRunStateAwaitingRetry, WorkflowRunStateAwaitingChildWorkflow, WorkflowRunStateCompleted, WorkflowRunStatePaused, WorkflowRunStateCancelled } from './workflow-run.js';
5
7
  import './duration.js';
6
8
  import './retry.js';
7
9
  import './serializable.js';
@@ -16,10 +18,13 @@ interface WorkflowRunApi {
16
18
  createV1: (_: WorkflowRunCreateRequestV1) => Promise<WorkflowRunCreateResponseV1>;
17
19
  transitionStateV1: (_: WorkflowRunTransitionStateRequestV1) => Promise<WorkflowRunTransitionStateResponseV1>;
18
20
  transitionTaskStateV1: (_: WorkflowRunTransitionTaskStateRequestV1) => Promise<WorkflowRunTransitionTaskStateResponseV1>;
19
- setTaskStateV1: (_: WorkflowRunSetTaskStateRequestV1) => Promise<WorkflowRunSetTaskStateResponseV1>;
21
+ setTaskStateV1: (_: WorkflowRunSetTaskStateRequestV1) => Promise<void>;
20
22
  listTransitionsV1: (_: WorkflowRunListTransitionsRequestV1) => Promise<WorkflowRunListTransitionsResponseV1>;
21
- sendEventV1: (_: WorkflowRunSendEventRequestV1) => Promise<WorkflowRunSendEventResponseV1>;
23
+ sendEventV1: (_: WorkflowRunSendEventRequestV1) => Promise<void>;
22
24
  multicastEventV1: (_: WorkflowRunMulticastEventRequestV1) => Promise<void>;
25
+ multicastEventByReferenceV1: (_: WorkflowRunMulticastEventByReferenceRequestV1) => Promise<void>;
26
+ listChildRunsV1: (_: WorkflowRunListChildRunsRequestV1) => Promise<WorkflowRunListChildRunsResponseV1>;
27
+ cancelByIdsV1: (_: WorkflowRunCancelByIdsRequestV1) => Promise<WorkflowRunCancelByIdsResponseV1>;
23
28
  }
24
29
  interface WorkflowRunListRequestV1 {
25
30
  limit?: number;
@@ -27,18 +32,25 @@ interface WorkflowRunListRequestV1 {
27
32
  filters?: {
28
33
  id?: string;
29
34
  status?: WorkflowRunStatus[];
30
- workflows?: WorkflowFilter[];
35
+ workflow?: WorkflowFilter;
31
36
  };
32
37
  sort?: {
33
- field: "createdAt";
34
38
  order: "asc" | "desc";
35
39
  };
36
40
  }
37
- interface WorkflowFilter {
41
+ type WorkflowFilter = {
38
42
  name: string;
39
- versionId?: string;
40
- referenceId?: string;
41
- }
43
+ source: WorkflowSource;
44
+ } | {
45
+ name: string;
46
+ source: WorkflowSource;
47
+ versionId: string;
48
+ } | {
49
+ name: string;
50
+ source: WorkflowSource;
51
+ versionId: string;
52
+ referenceId: string;
53
+ };
42
54
  interface WorkflowRunListItem {
43
55
  id: string;
44
56
  name: string;
@@ -57,11 +69,12 @@ interface WorkflowRunGetByIdRequestV1 {
57
69
  interface WorkflowRunGetByIdResponseV1 {
58
70
  run: WorkflowRun;
59
71
  }
60
- interface WorkflowRunGetByReferenceIdRequestV1 {
72
+ interface WorkflowRunReference {
61
73
  name: string;
62
74
  versionId: string;
63
75
  referenceId: string;
64
76
  }
77
+ type WorkflowRunGetByReferenceIdRequestV1 = WorkflowRunReference;
65
78
  interface WorkflowRunGetByReferenceIdResponseV1 {
66
79
  run: WorkflowRun;
67
80
  }
@@ -79,7 +92,7 @@ interface WorkflowRunCreateRequestV1 {
79
92
  options?: WorkflowStartOptions;
80
93
  }
81
94
  interface WorkflowRunCreateResponseV1 {
82
- run: WorkflowRun;
95
+ id: string;
83
96
  }
84
97
  type WorkflowRunStateScheduledRequest = DistributiveOmit<WorkflowRunStateScheduled, "scheduledAt"> & {
85
98
  scheduledInMs: number;
@@ -124,22 +137,20 @@ interface WorkflowRunTransitionStateRequestPessimistic extends WorkflowRunTransi
124
137
  }
125
138
  type WorkflowRunTransitionStateRequestV1 = WorkflowRunTransitionStateRequestOptimistic | WorkflowRunTransitionStateRequestPessimistic;
126
139
  interface WorkflowRunTransitionStateResponseV1 {
127
- run: WorkflowRun;
140
+ revision: number;
141
+ state: WorkflowRunState;
142
+ attempts: number;
128
143
  }
129
144
  type TransitionTaskStateToRunning = TransitionTaskStateToRunningCreate | TransitionTaskStateToRunningRetry;
130
145
  type WorkflowRunTransitionTaskStateRequestV1 = TransitionTaskStateToRunning | TransitionTaskStateToCompleted | TransitionTaskStateToFailed | TransitionTaskStateToAwaitingRetry;
131
146
  interface WorkflowRunTransitionTaskStateResponseV1 {
132
- run: WorkflowRun;
133
- taskId: string;
147
+ taskInfo: TaskInfo;
134
148
  }
135
149
  interface WorkflowRunSetTaskStateRequestNew {
136
150
  type: "new";
137
151
  id: string;
138
152
  taskName: string;
139
153
  input?: unknown;
140
- reference?: {
141
- id: string;
142
- };
143
154
  state: DistributiveOmit<TaskStateCompleted<unknown> | TaskStateFailed, "attempts">;
144
155
  }
145
156
  interface WorkflowRunSetTaskStateRequestExisting {
@@ -149,20 +160,16 @@ interface WorkflowRunSetTaskStateRequestExisting {
149
160
  state: DistributiveOmit<TaskStateCompleted<unknown> | TaskStateFailed, "attempts">;
150
161
  }
151
162
  type WorkflowRunSetTaskStateRequestV1 = WorkflowRunSetTaskStateRequestNew | WorkflowRunSetTaskStateRequestExisting;
152
- interface WorkflowRunSetTaskStateResponseV1 {
153
- run: WorkflowRun;
154
- }
155
163
  interface WorkflowRunListTransitionsRequestV1 {
156
164
  id: string;
157
165
  limit?: number;
158
166
  offset?: number;
159
167
  sort?: {
160
- field: "createdAt";
161
168
  order: "asc" | "desc";
162
169
  };
163
170
  }
164
171
  interface WorkflowRunListTransitionsResponseV1 {
165
- transitions: WorkflowRunTransition[];
172
+ transitions: StateTransition[];
166
173
  total: number;
167
174
  }
168
175
  interface WorkflowRunSendEventRequestV1 {
@@ -171,14 +178,35 @@ interface WorkflowRunSendEventRequestV1 {
171
178
  data?: unknown;
172
179
  options?: EventSendOptions;
173
180
  }
174
- interface WorkflowRunSendEventResponseV1 {
175
- run: WorkflowRun;
176
- }
177
181
  interface WorkflowRunMulticastEventRequestV1 {
178
182
  ids: string[];
179
183
  eventName: string;
180
184
  data?: unknown;
181
185
  options?: EventSendOptions;
182
186
  }
187
+ interface WorkflowRunMulticastEventByReferenceRequestV1 {
188
+ references: WorkflowRunReference[];
189
+ eventName: string;
190
+ data?: unknown;
191
+ options?: EventSendOptions;
192
+ }
193
+ interface WorkflowRunListChildRunsRequestV1 {
194
+ parentRunId: string;
195
+ status?: WorkflowRunStatus[];
196
+ }
197
+ interface WorkflowRunListChildRunsResponseV1 {
198
+ runs: Array<{
199
+ id: string;
200
+ options?: {
201
+ shard?: string;
202
+ };
203
+ }>;
204
+ }
205
+ interface WorkflowRunCancelByIdsRequestV1 {
206
+ ids: string[];
207
+ }
208
+ interface WorkflowRunCancelByIdsResponseV1 {
209
+ cancelledIds: string[];
210
+ }
183
211
 
184
- export type { TransitionTaskStateToRunning, WorkflowFilter, WorkflowRunApi, WorkflowRunCreateRequestV1, WorkflowRunCreateResponseV1, WorkflowRunGetByIdRequestV1, WorkflowRunGetByIdResponseV1, WorkflowRunGetByReferenceIdRequestV1, WorkflowRunGetByReferenceIdResponseV1, WorkflowRunGetStateRequestV1, WorkflowRunGetStateResponseV1, WorkflowRunListItem, WorkflowRunListRequestV1, WorkflowRunListResponseV1, WorkflowRunListTransitionsRequestV1, WorkflowRunListTransitionsResponseV1, WorkflowRunMulticastEventRequestV1, WorkflowRunSendEventRequestV1, WorkflowRunSendEventResponseV1, WorkflowRunSetTaskStateRequestExisting, WorkflowRunSetTaskStateRequestNew, WorkflowRunSetTaskStateRequestV1, WorkflowRunSetTaskStateResponseV1, WorkflowRunStateAwaitingChildWorkflowRequest, WorkflowRunStateAwaitingEventRequest, WorkflowRunStateAwaitingRetryRequest, WorkflowRunStateCompletedRequest, WorkflowRunStateRequest, WorkflowRunStateScheduledRequest, WorkflowRunStateScheduledRequestOptimistic, WorkflowRunStateScheduledRequestPessimistic, WorkflowRunStateSleepingRequest, WorkflowRunTransitionStateRequestOptimistic, WorkflowRunTransitionStateRequestPessimistic, WorkflowRunTransitionStateRequestV1, WorkflowRunTransitionStateResponseV1, WorkflowRunTransitionTaskStateRequestV1, WorkflowRunTransitionTaskStateResponseV1 };
212
+ export type { TransitionTaskStateToRunning, WorkflowFilter, WorkflowRunApi, WorkflowRunCancelByIdsRequestV1, WorkflowRunCancelByIdsResponseV1, WorkflowRunCreateRequestV1, WorkflowRunCreateResponseV1, WorkflowRunGetByIdRequestV1, WorkflowRunGetByIdResponseV1, WorkflowRunGetByReferenceIdRequestV1, WorkflowRunGetByReferenceIdResponseV1, WorkflowRunGetStateRequestV1, WorkflowRunGetStateResponseV1, WorkflowRunListChildRunsRequestV1, WorkflowRunListChildRunsResponseV1, WorkflowRunListItem, WorkflowRunListRequestV1, WorkflowRunListResponseV1, WorkflowRunListTransitionsRequestV1, WorkflowRunListTransitionsResponseV1, WorkflowRunMulticastEventByReferenceRequestV1, WorkflowRunMulticastEventRequestV1, WorkflowRunReference, WorkflowRunSendEventRequestV1, WorkflowRunSetTaskStateRequestExisting, WorkflowRunSetTaskStateRequestNew, WorkflowRunSetTaskStateRequestV1, WorkflowRunStateAwaitingChildWorkflowRequest, WorkflowRunStateAwaitingEventRequest, WorkflowRunStateAwaitingRetryRequest, WorkflowRunStateCompletedRequest, WorkflowRunStateRequest, WorkflowRunStateScheduledRequest, WorkflowRunStateScheduledRequestOptimistic, WorkflowRunStateScheduledRequestPessimistic, WorkflowRunStateSleepingRequest, WorkflowRunTransitionStateRequestOptimistic, WorkflowRunTransitionStateRequestPessimistic, WorkflowRunTransitionStateRequestV1, WorkflowRunTransitionStateResponseV1, WorkflowRunTransitionTaskStateRequestV1, WorkflowRunTransitionTaskStateResponseV1 };
@@ -2,7 +2,7 @@ import { EventWaitQueue } from './event.js';
2
2
  import { RetryStrategy } from './retry.js';
3
3
  import { SerializableError } from './serializable.js';
4
4
  import { SleepQueue } from './sleep.js';
5
- import { TaskInfo, TaskState } from './task.js';
5
+ import { TaskQueue } from './task.js';
6
6
  import { TriggerStrategy } from './trigger.js';
7
7
  import './duration.js';
8
8
  import './utils.js';
@@ -17,6 +17,7 @@ declare const WORKFLOW_RUN_STATUSES: readonly ["scheduled", "queued", "running",
17
17
  type WorkflowRunStatus = (typeof WORKFLOW_RUN_STATUSES)[number];
18
18
  declare const TERMINAL_WORKFLOW_RUN_STATUSES: readonly ["cancelled", "completed", "failed"];
19
19
  type TerminalWorkflowRunStatus = (typeof TERMINAL_WORKFLOW_RUN_STATUSES)[number];
20
+ declare const NON_TERMINAL_WORKFLOW_RUN_STATUSES: ("paused" | "sleeping" | "completed" | "cancelled" | "running" | "awaiting_retry" | "failed" | "scheduled" | "queued" | "awaiting_event" | "awaiting_child_workflow")[];
20
21
  type NonTerminalWorkflowRunStatus = Exclude<WorkflowRunStatus, TerminalWorkflowRunStatus>;
21
22
  declare function isTerminalWorkflowRunStatus(status: WorkflowRunStatus): status is TerminalWorkflowRunStatus;
22
23
  declare const WORKFLOW_RUN_CONFLICT_POLICIES: readonly ["error", "return_existing"];
@@ -141,6 +142,9 @@ interface WorkflowRunStateFailedBySelf extends WorkflowRunStateFailedBase {
141
142
  type WorkflowRunStateFailed = WorkflowRunStateFailedByTask | WorkflowRunStateFailedByChildWorkflow | WorkflowRunStateFailedBySelf;
142
143
  type WorkflowRunStateInComplete = WorkflowRunStateScheduled | WorkflowRunStateQueued | WorkflowRunStateRunning | WorkflowRunStatePaused | WorkflowRunStateSleeping | WorkflowRunStateAwaitingEvent | WorkflowRunStateAwaitingRetry | WorkflowRunStateAwaitingChildWorkflow | WorkflowRunStateCancelled | WorkflowRunStateFailed;
143
144
  type WorkflowRunState<Output = unknown> = WorkflowRunStateInComplete | WorkflowRunStateCompleted<Output>;
145
+ type TerminalWorkflowRunState = Extract<WorkflowRunState, {
146
+ status: "cancelled" | "completed" | "failed";
147
+ }>;
144
148
  interface WorkflowRun<Input = unknown, Output = unknown> {
145
149
  id: string;
146
150
  name: string;
@@ -149,48 +153,43 @@ interface WorkflowRun<Input = unknown, Output = unknown> {
149
153
  revision: number;
150
154
  input?: Input;
151
155
  inputHash: string;
152
- address: string;
153
- options: WorkflowStartOptions;
156
+ options?: WorkflowStartOptions;
154
157
  attempts: number;
155
158
  state: WorkflowRunState<Output>;
156
- tasks: Record<string, TaskInfo>;
157
- sleepsQueue: Record<string, SleepQueue>;
159
+ taskQueues: Record<string, TaskQueue>;
160
+ sleepQueues: Record<string, SleepQueue>;
158
161
  eventWaitQueues: Record<string, EventWaitQueue<unknown>>;
159
- childWorkflowRuns: Record<string, ChildWorkflowRunInfo>;
162
+ childWorkflowRunQueues: Record<string, ChildWorkflowRunQueue>;
160
163
  parentWorkflowRunId?: string;
161
164
  }
165
+ interface ChildWorkflowRunQueue {
166
+ childWorkflowRuns: ChildWorkflowRunInfo[];
167
+ }
162
168
  interface ChildWorkflowRunInfo {
163
169
  id: string;
164
170
  name: string;
165
171
  versionId: string;
166
172
  inputHash: string;
167
- statusWaitResults: ChildWorkflowWaitResult[];
173
+ childWorkflowRunWaitQueues: Record<TerminalWorkflowRunStatus, ChildWorkflowRunWaitQueue>;
174
+ }
175
+ declare const CHILD_WORKFLOW_RUN_WAIT_STATUSES: readonly ["completed", "timeout"];
176
+ type ChildWorkflowRunWaitStatus = (typeof CHILD_WORKFLOW_RUN_WAIT_STATUSES)[number];
177
+ interface ChildWorkflowRunWaitBase {
178
+ status: ChildWorkflowRunWaitStatus;
168
179
  }
169
- type ChildWorkflowWaitResult = ChildWorkflowWaitResultCompleted | ChildWorkflowWaitResultTimeout;
170
- interface ChildWorkflowWaitResultCompleted {
180
+ interface ChildWorkflowRunWaitCompleted extends ChildWorkflowRunWaitBase {
171
181
  status: "completed";
172
182
  completedAt: number;
173
- childWorkflowRunState: WorkflowRunState;
183
+ childWorkflowRunState: TerminalWorkflowRunState;
174
184
  }
175
- interface ChildWorkflowWaitResultTimeout {
185
+ interface ChildWorkflowRunWaitTimeout extends ChildWorkflowRunWaitBase {
176
186
  status: "timeout";
177
187
  timedOutAt: number;
178
188
  }
179
- interface WorkflowRunTransitionBase {
180
- id: string;
181
- createdAt: number;
182
- type: "state" | "task_state";
183
- }
184
- interface WorkflowRunStateTransition extends WorkflowRunTransitionBase {
185
- type: "state";
186
- state: WorkflowRunState;
189
+ type ChildWorkflowRunWait = ChildWorkflowRunWaitCompleted | ChildWorkflowRunWaitTimeout;
190
+ interface ChildWorkflowRunWaitQueue {
191
+ childWorkflowRunWaits: ChildWorkflowRunWait[];
187
192
  }
188
- interface WorkflowRunTaskStateTransition extends WorkflowRunTransitionBase {
189
- type: "task_state";
190
- taskId: string;
191
- taskState: TaskState;
192
- }
193
- type WorkflowRunTransition = WorkflowRunStateTransition | WorkflowRunTaskStateTransition;
194
193
  declare class WorkflowRunNotExecutableError extends Error {
195
194
  readonly id: WorkflowRunId;
196
195
  readonly status: WorkflowRunStatus;
@@ -210,5 +209,17 @@ declare class WorkflowRunRevisionConflictError extends Error {
210
209
  readonly id: WorkflowRunId;
211
210
  constructor(id: WorkflowRunId);
212
211
  }
212
+ declare class NonDeterminismError extends Error {
213
+ readonly id: WorkflowRunId;
214
+ readonly attempts: number;
215
+ readonly unconsumedManifestEntries: {
216
+ taskIds: string[];
217
+ childWorkflowRunIds: string[];
218
+ };
219
+ constructor(id: WorkflowRunId, attempts: number, unconsumedManifestEntries: {
220
+ taskIds: string[];
221
+ childWorkflowRunIds: string[];
222
+ });
223
+ }
213
224
 
214
- export { type ChildWorkflowRunInfo, type ChildWorkflowWaitResult, type ChildWorkflowWaitResultCompleted, type ChildWorkflowWaitResultTimeout, type NonTerminalWorkflowRunStatus, type TerminalWorkflowRunStatus, WORKFLOW_RUN_CONFLICT_POLICIES, WORKFLOW_RUN_FAILURE_CAUSE, WORKFLOW_RUN_SCHEDULED_REASON, WORKFLOW_RUN_STATUSES, type WorkflowDefinitionOptions, type WorkflowReferenceOptions, type WorkflowRun, type WorkflowRunAddress, type WorkflowRunConflictPolicy, WorkflowRunFailedError, type WorkflowRunFailureCause, type WorkflowRunId, WorkflowRunNotExecutableError, WorkflowRunRevisionConflictError, type WorkflowRunScheduledReason, type WorkflowRunState, type WorkflowRunStateAwaitingChildWorkflow, type WorkflowRunStateAwaitingEvent, type WorkflowRunStateAwaitingRetry, type WorkflowRunStateAwaitingRetryBase, type WorkflowRunStateAwaitingRetryCausedByChildWorkflow, type WorkflowRunStateAwaitingRetryCausedBySelf, type WorkflowRunStateAwaitingRetryCausedByTask, type WorkflowRunStateCancelled, type WorkflowRunStateCompleted, type WorkflowRunStateFailed, type WorkflowRunStateFailedByChildWorkflow, type WorkflowRunStateFailedBySelf, type WorkflowRunStateFailedByTask, type WorkflowRunStateInComplete, type WorkflowRunStatePaused, type WorkflowRunStateQueued, type WorkflowRunStateRunning, type WorkflowRunStateScheduled, type WorkflowRunStateScheduledBase, type WorkflowRunStateScheduledByAwake, type WorkflowRunStateScheduledByAwakeEarly, type WorkflowRunStateScheduledByChildWorkflow, type WorkflowRunStateScheduledByEvent, type WorkflowRunStateScheduledByNew, type WorkflowRunStateScheduledByResume, type WorkflowRunStateScheduledByRetry, type WorkflowRunStateScheduledByTaskRetry, type WorkflowRunStateSleeping, type WorkflowRunStateTransition, type WorkflowRunStatus, WorkflowRunSuspendedError, type WorkflowRunTaskStateTransition, type WorkflowRunTransition, type WorkflowRunTransitionBase, type WorkflowStartOptions, isTerminalWorkflowRunStatus };
225
+ export { CHILD_WORKFLOW_RUN_WAIT_STATUSES, type ChildWorkflowRunInfo, type ChildWorkflowRunQueue, type ChildWorkflowRunWait, type ChildWorkflowRunWaitBase, type ChildWorkflowRunWaitCompleted, type ChildWorkflowRunWaitQueue, type ChildWorkflowRunWaitStatus, type ChildWorkflowRunWaitTimeout, NON_TERMINAL_WORKFLOW_RUN_STATUSES, NonDeterminismError, type NonTerminalWorkflowRunStatus, TERMINAL_WORKFLOW_RUN_STATUSES, type TerminalWorkflowRunState, type TerminalWorkflowRunStatus, WORKFLOW_RUN_CONFLICT_POLICIES, WORKFLOW_RUN_FAILURE_CAUSE, WORKFLOW_RUN_SCHEDULED_REASON, WORKFLOW_RUN_STATUSES, type WorkflowDefinitionOptions, type WorkflowReferenceOptions, type WorkflowRun, type WorkflowRunAddress, type WorkflowRunConflictPolicy, WorkflowRunFailedError, type WorkflowRunFailureCause, type WorkflowRunId, WorkflowRunNotExecutableError, WorkflowRunRevisionConflictError, type WorkflowRunScheduledReason, type WorkflowRunState, type WorkflowRunStateAwaitingChildWorkflow, type WorkflowRunStateAwaitingEvent, type WorkflowRunStateAwaitingRetry, type WorkflowRunStateAwaitingRetryBase, type WorkflowRunStateAwaitingRetryCausedByChildWorkflow, type WorkflowRunStateAwaitingRetryCausedBySelf, type WorkflowRunStateAwaitingRetryCausedByTask, type WorkflowRunStateCancelled, type WorkflowRunStateCompleted, type WorkflowRunStateFailed, type WorkflowRunStateFailedByChildWorkflow, type WorkflowRunStateFailedBySelf, type WorkflowRunStateFailedByTask, type WorkflowRunStateInComplete, type WorkflowRunStatePaused, type WorkflowRunStateQueued, type WorkflowRunStateRunning, type WorkflowRunStateScheduled, type WorkflowRunStateScheduledBase, type WorkflowRunStateScheduledByAwake, type WorkflowRunStateScheduledByAwakeEarly, type WorkflowRunStateScheduledByChildWorkflow, type WorkflowRunStateScheduledByEvent, type WorkflowRunStateScheduledByNew, type WorkflowRunStateScheduledByResume, type WorkflowRunStateScheduledByRetry, type WorkflowRunStateScheduledByTaskRetry, type WorkflowRunStateSleeping, type WorkflowRunStatus, WorkflowRunSuspendedError, type WorkflowStartOptions, isTerminalWorkflowRunStatus };
@@ -13,6 +13,9 @@ var WORKFLOW_RUN_STATUSES = [
13
13
  "failed"
14
14
  ];
15
15
  var TERMINAL_WORKFLOW_RUN_STATUSES = ["cancelled", "completed", "failed"];
16
+ var NON_TERMINAL_WORKFLOW_RUN_STATUSES = WORKFLOW_RUN_STATUSES.filter(
17
+ (status) => !TERMINAL_WORKFLOW_RUN_STATUSES.includes(status)
18
+ );
16
19
  function isTerminalWorkflowRunStatus(status) {
17
20
  for (const terminalStatus of TERMINAL_WORKFLOW_RUN_STATUSES) {
18
21
  if (status === terminalStatus) {
@@ -33,6 +36,7 @@ var WORKFLOW_RUN_SCHEDULED_REASON = [
33
36
  "child_workflow"
34
37
  ];
35
38
  var WORKFLOW_RUN_FAILURE_CAUSE = ["task", "child_workflow", "self"];
39
+ var CHILD_WORKFLOW_RUN_WAIT_STATUSES = ["completed", "timeout"];
36
40
  var WorkflowRunNotExecutableError = class extends Error {
37
41
  id;
38
42
  status;
@@ -72,7 +76,23 @@ var WorkflowRunRevisionConflictError = class extends Error {
72
76
  this.id = id;
73
77
  }
74
78
  };
79
+ var NonDeterminismError = class extends Error {
80
+ id;
81
+ attempts;
82
+ unconsumedManifestEntries;
83
+ constructor(id, attempts, unconsumedManifestEntries) {
84
+ super(`Replay divergence for Workflow run ${id}`);
85
+ this.name = "NonDeterminismError";
86
+ this.id = id;
87
+ this.attempts = attempts;
88
+ this.unconsumedManifestEntries = unconsumedManifestEntries;
89
+ }
90
+ };
75
91
  export {
92
+ CHILD_WORKFLOW_RUN_WAIT_STATUSES,
93
+ NON_TERMINAL_WORKFLOW_RUN_STATUSES,
94
+ NonDeterminismError,
95
+ TERMINAL_WORKFLOW_RUN_STATUSES,
76
96
  WORKFLOW_RUN_CONFLICT_POLICIES,
77
97
  WORKFLOW_RUN_FAILURE_CAUSE,
78
98
  WORKFLOW_RUN_SCHEDULED_REASON,
@@ -4,6 +4,8 @@ type WorkflowName = string & {
4
4
  type WorkflowVersionId = string & {
5
5
  _brand: "workflow_version_id";
6
6
  };
7
+ declare const WORKFLOW_SOURCES: readonly ["user", "system"];
8
+ type WorkflowSource = (typeof WORKFLOW_SOURCES)[number];
7
9
  interface WorkflowMeta {
8
10
  name: WorkflowName;
9
11
  versionId: WorkflowVersionId;
@@ -20,4 +22,4 @@ interface Workflow {
20
22
  lastRunAt: number;
21
23
  }
22
24
 
23
- export type { Workflow, WorkflowMeta, WorkflowName, WorkflowVersionId, WorkflowVersionStats };
25
+ export { WORKFLOW_SOURCES, type Workflow, type WorkflowMeta, type WorkflowName, type WorkflowSource, type WorkflowVersionId, type WorkflowVersionStats };
package/dist/workflow.js CHANGED
@@ -0,0 +1,5 @@
1
+ // workflow.ts
2
+ var WORKFLOW_SOURCES = ["user", "system"];
3
+ export {
4
+ WORKFLOW_SOURCES
5
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aikirun/types",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "Core type definitions for Aiki - including workflow, task, client, and trigger types",
5
5
  "type": "module",
6
6
  "exports": {
@@ -20,10 +20,18 @@
20
20
  "types": "./dist/event.d.ts",
21
21
  "import": "./dist/event.js"
22
22
  },
23
+ "./namespace": {
24
+ "types": "./dist/namespace.d.ts",
25
+ "import": "./dist/namespace.js"
26
+ },
23
27
  "./namespace-api": {
24
28
  "types": "./dist/namespace-api.d.ts",
25
29
  "import": "./dist/namespace-api.js"
26
30
  },
31
+ "./organization": {
32
+ "types": "./dist/organization.d.ts",
33
+ "import": "./dist/organization.js"
34
+ },
27
35
  "./retry": {
28
36
  "types": "./dist/retry.d.ts",
29
37
  "import": "./dist/retry.js"
@@ -44,6 +52,10 @@
44
52
  "types": "./dist/sleep.d.ts",
45
53
  "import": "./dist/sleep.js"
46
54
  },
55
+ "./state-transition": {
56
+ "types": "./dist/state-transition.d.ts",
57
+ "import": "./dist/state-transition.js"
58
+ },
47
59
  "./symbols": {
48
60
  "types": "./dist/symbols.d.ts",
49
61
  "import": "./dist/symbols.js"