@rigkit/engine 0.1.8

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/src/types.ts ADDED
@@ -0,0 +1,604 @@
1
+ export type JsonValue =
2
+ | null
3
+ | boolean
4
+ | number
5
+ | string
6
+ | JsonValue[]
7
+ | { [key: string]: JsonValue };
8
+
9
+ export type JsonObject = { [key: string]: JsonValue };
10
+
11
+ export type MaybePromise<T> = T | Promise<T>;
12
+
13
+ export type EnvResolver = {
14
+ (name: string, fallback?: string): string;
15
+ secret(name: string, fallback?: string): string;
16
+ };
17
+
18
+ export type Resolvable<T> = T | (() => MaybePromise<T>);
19
+
20
+ export type ResolvableObject<T> = {
21
+ [Key in keyof T]: T[Key] extends object
22
+ ? T[Key] extends (...args: any[]) => unknown
23
+ ? Resolvable<T[Key]>
24
+ : T[Key] extends readonly unknown[]
25
+ ? Resolvable<T[Key]>
26
+ : ResolvableObject<T[Key]> | Resolvable<T[Key]>
27
+ : Resolvable<T[Key]>;
28
+ };
29
+
30
+ export type ExecOutputStream = "stdout" | "stderr";
31
+
32
+ export type ExecOutputChunk = {
33
+ stream: ExecOutputStream;
34
+ data: string;
35
+ };
36
+
37
+ export type ExecOptions = {
38
+ cwd?: string;
39
+ env?: Record<string, string | undefined>;
40
+ timeoutMs?: number;
41
+ onOutput?: (chunk: ExecOutputChunk) => MaybePromise<void>;
42
+ };
43
+
44
+ export type ExecResult = {
45
+ stdout: string;
46
+ stderr: string;
47
+ exitCode: number;
48
+ ok: boolean;
49
+ };
50
+
51
+ export type CommandOptions = ExecOptions & {
52
+ name?: string;
53
+ };
54
+
55
+ export type ProviderWorkspaceContext = object;
56
+
57
+ export type LocalWorkspaceRuntime = {
58
+ open(target: string): MaybePromise<void>;
59
+ command?(input: LocalCommandRequest): MaybePromise<LocalCommandResult>;
60
+ requestCapability?<Result = unknown>(capability: string, params: unknown): MaybePromise<Result>;
61
+ requestCapabilitySession?<Result = unknown>(
62
+ capability: string,
63
+ params: unknown,
64
+ ): MaybePromise<HostCapabilitySession<Result>>;
65
+ };
66
+
67
+ export type HostCapabilitySession<Result = unknown> = {
68
+ result: Result;
69
+ closed: Promise<void>;
70
+ };
71
+
72
+ export type LocalCommandRequest = {
73
+ argv: string[];
74
+ cwd?: string;
75
+ env?: Record<string, string | undefined>;
76
+ stdin?: string | null;
77
+ mode?: "capture" | "interactive";
78
+ reason?: string;
79
+ presentation?: {
80
+ visible?: boolean;
81
+ label?: string;
82
+ };
83
+ };
84
+
85
+ export type LocalCommandResult = {
86
+ exitCode: number;
87
+ stdout: string | null;
88
+ stderr: string | null;
89
+ };
90
+
91
+ export type WorkflowLogStream = "stdout" | "stderr" | "info";
92
+
93
+ export type WorkflowProviderDefinition<
94
+ ProviderId extends string = string,
95
+ Config extends object = Record<string, unknown>,
96
+ Runtime = unknown,
97
+ WorkspaceContext extends ProviderWorkspaceContext = ProviderWorkspaceContext,
98
+ > = {
99
+ readonly kind: "rigkit.provider";
100
+ readonly providerId: ProviderId;
101
+ readonly config: ResolvableObject<Config>;
102
+ readonly plugin?: unknown;
103
+ readonly __runtime?: Runtime;
104
+ readonly __workspaceContext?: WorkspaceContext;
105
+ };
106
+
107
+ export type DevProviderDefinition<
108
+ ProviderId extends string = string,
109
+ Config extends object = Record<string, unknown>,
110
+ Runtime = unknown,
111
+ WorkspaceContext extends ProviderWorkspaceContext = ProviderWorkspaceContext,
112
+ > = WorkflowProviderDefinition<ProviderId, Config, Runtime, WorkspaceContext>;
113
+
114
+ export type LoadedProviderDefinition<
115
+ ProviderId extends string = string,
116
+ Config extends object = Record<string, unknown>,
117
+ > = {
118
+ providerId: ProviderId;
119
+ config: Config;
120
+ plugin?: unknown;
121
+ };
122
+
123
+ export type WorkflowProviderMap = Record<string, WorkflowProviderDefinition<string, any, any, any>>;
124
+
125
+ export type ProviderRuntimeOf<Provider> =
126
+ Provider extends WorkflowProviderDefinition<any, any, infer Runtime, any>
127
+ ? Runtime
128
+ : never;
129
+
130
+ export type ProviderWorkspaceContextOf<Provider> =
131
+ Provider extends WorkflowProviderDefinition<any, any, any, infer WorkspaceContext extends ProviderWorkspaceContext>
132
+ ? WorkspaceContext
133
+ : ProviderWorkspaceContext;
134
+
135
+ export type ProviderRuntimeMap<Providers extends WorkflowProviderMap> = {
136
+ readonly [Key in keyof Providers]: ProviderRuntimeOf<Providers[Key]>;
137
+ };
138
+
139
+ export type WorkflowRuntimeHelpers = {
140
+ readonly workflow: string;
141
+ readonly nodePath: string;
142
+ metadata(metadata: JsonObject): void;
143
+ log(data: string, options?: { stream?: WorkflowLogStream; label?: string }): void;
144
+ };
145
+
146
+ export type WorkflowTaskRuntime<
147
+ Providers extends WorkflowProviderMap,
148
+ Context extends JsonObject,
149
+ > = ProviderRuntimeMap<Providers> & {
150
+ readonly providers: ProviderRuntimeMap<Providers>;
151
+ readonly ctx: Readonly<Context>;
152
+ readonly runtime: WorkflowRuntimeHelpers;
153
+ };
154
+
155
+ export type WorkflowTaskResult = void | undefined | JsonObject;
156
+
157
+ export type WorkflowTaskHandler<
158
+ Providers extends WorkflowProviderMap,
159
+ Context extends JsonObject,
160
+ Result extends WorkflowTaskResult = WorkflowTaskResult,
161
+ > = (context: WorkflowTaskRuntime<Providers, Context>) => MaybePromise<Result>;
162
+
163
+ export type WorkflowCreateRuntime<
164
+ Providers extends WorkflowProviderMap,
165
+ Context extends JsonObject,
166
+ > = ProviderRuntimeMap<Providers> & {
167
+ readonly ctx: Readonly<Context>;
168
+ readonly name: string;
169
+ readonly providers: ProviderRuntimeMap<Providers>;
170
+ readonly local: LocalWorkspaceRuntime;
171
+ readonly workflow: string;
172
+ };
173
+
174
+ export type WorkflowCreateResult = JsonObject;
175
+
176
+ export type WorkflowCreateHandler<
177
+ Providers extends WorkflowProviderMap,
178
+ Context extends JsonObject,
179
+ Result extends WorkflowCreateResult = WorkflowCreateResult,
180
+ > = (context: WorkflowCreateRuntime<Providers, Context>) => MaybePromise<Result>;
181
+
182
+ export type WorkflowCreateDefinition<
183
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
184
+ Context extends JsonObject = JsonObject,
185
+ > = {
186
+ readonly handler: WorkflowCreateHandler<Providers, Context, any>;
187
+ };
188
+
189
+ export type WorkflowInputFieldKind = "workspace" | "string" | "boolean" | "number";
190
+
191
+ export type WorkflowInputFieldDefinition<Value = unknown> = {
192
+ readonly kind: WorkflowInputFieldKind;
193
+ readonly name: string;
194
+ readonly description?: string;
195
+ readonly position?: number;
196
+ readonly required?: boolean;
197
+ readonly defaultValue?: Value;
198
+ readonly __value?: Value;
199
+ };
200
+
201
+ export type WorkflowOperationWorkspaceInput<Name extends string> = {
202
+ [Key in Name]: WorkspaceRuntimeRecord & {
203
+ data: Record<string, JsonValue>;
204
+ };
205
+ };
206
+
207
+ export type WorkflowInputShape = Record<string, WorkflowInputFieldDefinition<any>>;
208
+
209
+ export type WorkflowInputShapeContext<Shape extends WorkflowInputShape> = Simplify<{
210
+ [Key in keyof Shape & string]:
211
+ Shape[Key] extends WorkflowInputFieldDefinition<infer Value>
212
+ ? Value
213
+ : unknown;
214
+ }>;
215
+
216
+ export type WorkflowOperationInputBuilder<Input extends object = {}> = {
217
+ readonly fields: readonly WorkflowInputFieldDefinition[];
218
+ readonly __input?: Input;
219
+ extend<const Shape extends WorkflowInputShape>(
220
+ shape: Shape,
221
+ ): WorkflowOperationInputBuilder<Simplify<Input & WorkflowInputShapeContext<Shape>>>;
222
+ };
223
+
224
+ export type WorkflowOperationInputHelpers = {
225
+ workspaceInput<const Name extends string>(options: {
226
+ name: Name;
227
+ description?: string;
228
+ position?: number;
229
+ required?: boolean;
230
+ }): WorkflowOperationInputBuilder<WorkflowOperationWorkspaceInput<Name>>;
231
+
232
+ string<const Name extends string>(options: {
233
+ name?: Name;
234
+ description?: string;
235
+ position?: number;
236
+ required?: boolean;
237
+ defaultValue?: string;
238
+ }): WorkflowInputFieldDefinition<string>;
239
+
240
+ boolean<const Name extends string>(options: {
241
+ name?: Name;
242
+ description?: string;
243
+ position?: number;
244
+ required?: boolean;
245
+ defaultValue?: boolean;
246
+ }): WorkflowInputFieldDefinition<boolean>;
247
+
248
+ number<const Name extends string>(options: {
249
+ name?: Name;
250
+ description?: string;
251
+ position?: number;
252
+ required?: boolean;
253
+ defaultValue?: number;
254
+ }): WorkflowInputFieldDefinition<number>;
255
+ };
256
+
257
+ export type WorkflowOperationRuntime<
258
+ Providers extends WorkflowProviderMap,
259
+ Input extends object,
260
+ > = ProviderRuntimeMap<Providers> & {
261
+ readonly input: Readonly<Input>;
262
+ readonly providers: ProviderRuntimeMap<Providers>;
263
+ readonly local: LocalWorkspaceRuntime;
264
+ readonly workflow: string;
265
+ };
266
+
267
+ export type WorkflowOperationResult = void | undefined | JsonValue;
268
+
269
+ export type WorkflowOperationHandler<
270
+ Providers extends WorkflowProviderMap,
271
+ Input extends object,
272
+ Result extends WorkflowOperationResult = WorkflowOperationResult,
273
+ > = (context: WorkflowOperationRuntime<Providers, Input>) => MaybePromise<Result>;
274
+
275
+ export type WorkflowHostMethodRequirement = {
276
+ readonly id: string;
277
+ readonly modes?: readonly string[];
278
+ };
279
+
280
+ export type WorkflowHostCapabilityRequirement = {
281
+ readonly id: string;
282
+ readonly schemaHash?: string;
283
+ };
284
+
285
+ export type WorkflowOperationOptions<
286
+ Providers extends WorkflowProviderMap,
287
+ Input extends object = {},
288
+ > = {
289
+ title?: string;
290
+ description?: string;
291
+ createsWorkspace?: boolean;
292
+ requiredHostMethods?: readonly WorkflowHostMethodRequirement[];
293
+ requiredHostCapabilities?: readonly WorkflowHostCapabilityRequirement[];
294
+ input?: WorkflowOperationInputBuilder<Input> | ((workflow: WorkflowOperationInputHelpers) => WorkflowOperationInputBuilder<Input>);
295
+ run: WorkflowOperationHandler<Providers, Input>;
296
+ };
297
+
298
+ export type WorkflowOperationDefinition<
299
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
300
+ Input extends object = object,
301
+ > = {
302
+ readonly id: string;
303
+ readonly title?: string;
304
+ readonly description?: string;
305
+ readonly createsWorkspace?: boolean;
306
+ readonly requiredHostMethods?: readonly WorkflowHostMethodRequirement[];
307
+ readonly requiredHostCapabilities?: readonly WorkflowHostCapabilityRequirement[];
308
+ readonly input?: WorkflowOperationInputBuilder<Input>;
309
+ readonly run: WorkflowOperationHandler<Providers, Input>;
310
+ };
311
+
312
+ export type OutputSchema<Output extends JsonObject = JsonObject> =
313
+ | { parse(value: unknown): Output }
314
+ | {
315
+ safeParse(value: unknown):
316
+ | { success: true; data: Output }
317
+ | { success: false; error: unknown };
318
+ };
319
+
320
+ export type OutputSchemaValue<Schema> =
321
+ Schema extends { parse(value: unknown): infer Output }
322
+ ? Output
323
+ : Schema extends { safeParse(value: unknown): infer Result }
324
+ ? Result extends { success: true; data: infer Output }
325
+ ? Output
326
+ : never
327
+ : never;
328
+
329
+ export type WorkflowTaskOptions<Output extends JsonObject = JsonObject> = {
330
+ output?: OutputSchema<Output>;
331
+ version?: string;
332
+ };
333
+
334
+ export type WorkflowNodeKind = "task" | "sequence" | "parallel";
335
+
336
+ export type WorkflowDefinition<
337
+ Name extends string = string,
338
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
339
+ > = {
340
+ readonly kind: "rigkit.workflow";
341
+ readonly name: Name;
342
+ readonly providers: Providers;
343
+
344
+ sequence<InputContext extends JsonObject = {}>(name: string): WorkflowSequenceBuilder<
345
+ Providers,
346
+ InputContext,
347
+ InputContext
348
+ >;
349
+
350
+ task<Result extends WorkflowTaskResult>(
351
+ name: string,
352
+ handler: WorkflowTaskHandler<Providers, {}, Result>,
353
+ ): WorkflowTaskNode<Providers, {}, TaskReturnContext<Result>>;
354
+
355
+ task<Schema extends OutputSchema<JsonObject>, Result extends MaybePromise<OutputSchemaValue<Schema> | void>>(
356
+ name: string,
357
+ options: WorkflowTaskOptions<OutputSchemaValue<Schema>>,
358
+ handler: WorkflowTaskHandler<Providers, {}, Awaited<Result> & WorkflowTaskResult>,
359
+ ): WorkflowTaskNode<Providers, {}, TaskReturnContext<Result>>;
360
+
361
+ step<Result extends WorkflowTaskResult>(
362
+ name: string,
363
+ handler: WorkflowTaskHandler<Providers, {}, Result>,
364
+ ): WorkflowTaskNode<Providers, {}, TaskReturnContext<Result>>;
365
+
366
+ step<Schema extends OutputSchema<JsonObject>, Result extends MaybePromise<OutputSchemaValue<Schema> | void>>(
367
+ name: string,
368
+ options: WorkflowTaskOptions<OutputSchemaValue<Schema>>,
369
+ handler: WorkflowTaskHandler<Providers, {}, Awaited<Result> & WorkflowTaskResult>,
370
+ ): WorkflowTaskNode<Providers, {}, TaskReturnContext<Result>>;
371
+ };
372
+
373
+ export type RigkitConfigDefinition<
374
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
375
+ Workflows extends Record<string, WorkflowNodeDefinition<any, any, any>> = Record<string, WorkflowNodeDefinition<any, any, any>>,
376
+ > = {
377
+ readonly kind: "rigkit.config";
378
+ readonly providers: Providers;
379
+ readonly workflows: Workflows;
380
+ };
381
+
382
+ export type WorkflowNodeDefinition<
383
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
384
+ InputContext extends JsonObject = JsonObject,
385
+ OutputContext extends JsonObject = JsonObject,
386
+ > = {
387
+ readonly kind: "rigkit.workflow-node";
388
+ readonly nodeKind: WorkflowNodeKind;
389
+ readonly name: string;
390
+ readonly workflow: WorkflowDefinition<string, Providers>;
391
+ readonly workspaceDefinition?: WorkflowWorkspaceDefinition<Providers, OutputContext>;
392
+ readonly createDefinition?: WorkflowCreateDefinition<Providers, OutputContext>;
393
+ readonly operations?: readonly WorkflowOperationDefinition<Providers, any>[];
394
+ readonly __providers?: Providers;
395
+ readonly __input?: InputContext;
396
+ readonly __output?: OutputContext;
397
+ };
398
+
399
+ export type WorkflowTaskNode<
400
+ Providers extends WorkflowProviderMap,
401
+ InputContext extends JsonObject,
402
+ OutputContext extends JsonObject,
403
+ > = WorkflowNodeDefinition<Providers, InputContext, OutputContext> & {
404
+ readonly nodeKind: "task";
405
+ readonly options?: WorkflowTaskOptions;
406
+ readonly handler: WorkflowTaskHandler<Providers, InputContext, any>;
407
+ };
408
+
409
+ export type WorkflowSequenceBuilder<
410
+ Providers extends WorkflowProviderMap,
411
+ InputContext extends JsonObject,
412
+ OutputContext extends JsonObject,
413
+ > = WorkflowNodeDefinition<Providers, InputContext, OutputContext> & {
414
+ readonly nodeKind: "sequence";
415
+ readonly children: readonly WorkflowNodeDefinition<Providers, any, any>[];
416
+
417
+ task<Result extends WorkflowTaskResult>(
418
+ name: string,
419
+ handler: WorkflowTaskHandler<Providers, OutputContext, Result>,
420
+ ): WorkflowSequenceBuilder<Providers, InputContext, Merge<OutputContext, TaskReturnContext<Result>>>;
421
+
422
+ task<Schema extends OutputSchema<JsonObject>, Result extends MaybePromise<OutputSchemaValue<Schema> | void>>(
423
+ name: string,
424
+ options: WorkflowTaskOptions<OutputSchemaValue<Schema>>,
425
+ handler: WorkflowTaskHandler<Providers, OutputContext, Awaited<Result> & WorkflowTaskResult>,
426
+ ): WorkflowSequenceBuilder<Providers, InputContext, Merge<OutputContext, TaskReturnContext<Result>>>;
427
+
428
+ step<Result extends WorkflowTaskResult>(
429
+ name: string,
430
+ handler: WorkflowTaskHandler<Providers, OutputContext, Result>,
431
+ ): WorkflowSequenceBuilder<Providers, InputContext, Merge<OutputContext, TaskReturnContext<Result>>>;
432
+
433
+ step<Schema extends OutputSchema<JsonObject>, Result extends MaybePromise<OutputSchemaValue<Schema> | void>>(
434
+ name: string,
435
+ options: WorkflowTaskOptions<OutputSchemaValue<Schema>>,
436
+ handler: WorkflowTaskHandler<Providers, OutputContext, Awaited<Result> & WorkflowTaskResult>,
437
+ ): WorkflowSequenceBuilder<Providers, InputContext, Merge<OutputContext, TaskReturnContext<Result>>>;
438
+
439
+ add<Node extends WorkflowNodeDefinition<Providers, any, any>>(
440
+ node: OutputContext extends WorkflowNodeInput<Node> ? Node : never,
441
+ ): WorkflowSequenceBuilder<Providers, InputContext, Merge<OutputContext, WorkflowNodeOutput<Node>>>;
442
+
443
+ parallel<const Branches extends Record<string, WorkflowNodeDefinition<Providers, any, any>>>(
444
+ branches: {
445
+ readonly [Key in keyof Branches]: OutputContext extends WorkflowNodeInput<Branches[Key]>
446
+ ? Branches[Key]
447
+ : never;
448
+ },
449
+ ): WorkflowSequenceBuilder<Providers, InputContext, Merge<OutputContext, ParallelOutput<Branches>>>;
450
+
451
+ workspace(
452
+ definition: WorkflowWorkspaceDefinition<Providers, OutputContext>,
453
+ ): WorkflowSequenceBuilder<Providers, InputContext, OutputContext>;
454
+
455
+ create<Result extends WorkflowCreateResult>(
456
+ handler: WorkflowCreateHandler<Providers, OutputContext, Result>,
457
+ ): WorkflowSequenceBuilder<Providers, InputContext, OutputContext>;
458
+
459
+ operation<const Id extends string, Input extends object = {}>(
460
+ id: Id,
461
+ options: WorkflowOperationOptions<Providers, Input>,
462
+ ): WorkflowSequenceBuilder<Providers, InputContext, OutputContext>;
463
+ };
464
+
465
+ export type WorkflowNodeInput<Node> =
466
+ Node extends WorkflowNodeDefinition<any, infer Input extends JsonObject, any>
467
+ ? Input
468
+ : never;
469
+
470
+ export type WorkflowNodeOutput<Node> =
471
+ Node extends WorkflowNodeDefinition<any, any, infer Output extends JsonObject>
472
+ ? Output
473
+ : never;
474
+
475
+ export type ParallelOutput<Branches extends Record<string, WorkflowNodeDefinition<any, any, any>>> = {
476
+ [Key in keyof Branches & string]: WorkflowNodeOutput<Branches[Key]>;
477
+ };
478
+
479
+ export type TaskReturnContext<Return> = Exclude<Awaited<Return>, void | undefined> extends infer Context
480
+ ? [Context] extends [never]
481
+ ? {}
482
+ : Context extends JsonObject
483
+ ? Context
484
+ : never
485
+ : {};
486
+
487
+ export type Merge<Left extends JsonObject, Right extends JsonObject> =
488
+ Simplify<Omit<Left, keyof Right> & Right>;
489
+
490
+ export type Simplify<Value> = { [Key in keyof Value]: Value[Key] } & {};
491
+
492
+ export type WorkflowWorkspaceDefinition<
493
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
494
+ Context extends JsonObject = JsonObject,
495
+ > = {
496
+ source?: (ctx: Readonly<Context>) => JsonValue;
497
+ cwd?: string | ((ctx: Readonly<Context>) => string | undefined);
498
+ ports?: readonly number[];
499
+ onCreated?: (context: WorkflowWorkspaceCreatedContext<Providers, Context>) => MaybePromise<void>;
500
+ onOpen?: (context: WorkflowWorkspaceOpenContext<Providers, Context>) => MaybePromise<void>;
501
+ };
502
+
503
+ export type WorkflowWorkspaceCreatedContext<
504
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
505
+ Context extends JsonObject = JsonObject,
506
+ > = WorkflowWorkspaceLifecycleContext<Providers, Context>;
507
+
508
+ export type WorkflowWorkspaceOpenContext<
509
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
510
+ Context extends JsonObject = JsonObject,
511
+ > = WorkflowWorkspaceLifecycleContext<Providers, Context>;
512
+
513
+ export type WorkflowWorkspaceLifecycleContext<
514
+ Providers extends WorkflowProviderMap = WorkflowProviderMap,
515
+ Context extends JsonObject = JsonObject,
516
+ > = {
517
+ workspace: WorkspaceRuntimeRecord;
518
+ ctx: Readonly<Context>;
519
+ providers: ProviderRuntimeMap<Providers>;
520
+ providerContext: ProviderWorkspaceContext;
521
+ local: LocalWorkspaceRuntime;
522
+ };
523
+
524
+ export type LoadedWorkflow = {
525
+ name: string;
526
+ providers: Record<string, LoadedProviderDefinition>;
527
+ root: WorkflowNodeDefinition<any, any, any>;
528
+ workspace?: WorkflowWorkspaceDefinition<any, any>;
529
+ create?: WorkflowCreateDefinition<any, any>;
530
+ operations: readonly WorkflowOperationDefinition<any, any>[];
531
+ };
532
+
533
+ export type WorkflowPlanNode = {
534
+ index: number;
535
+ path: string;
536
+ name: string;
537
+ status: "cached" | "pending";
538
+ reason?: string;
539
+ runId?: string;
540
+ upstreamRunIds: string[];
541
+ };
542
+
543
+ export type WorkflowPlan = {
544
+ workflow: string;
545
+ providerFingerprint: string;
546
+ cachedNodeCount: number;
547
+ nodeCount: number;
548
+ nodes: WorkflowPlanNode[];
549
+ finalContext?: Record<string, JsonValue>;
550
+ };
551
+
552
+ export type MachinePlan = WorkflowPlan;
553
+
554
+ export type WorkspaceRecord = {
555
+ id: string;
556
+ name: string;
557
+ providerId: string;
558
+ workflow: string;
559
+ resourceId: string;
560
+ snapshotId?: string;
561
+ sourceRef: JsonValue;
562
+ context: Record<string, JsonValue>;
563
+ createdAt: string;
564
+ updatedAt: string;
565
+ metadata: Record<string, JsonValue>;
566
+ };
567
+
568
+ export type WorkspaceRuntimeRecord = WorkspaceRecord & {
569
+ cwd?: string;
570
+ };
571
+
572
+ export type WorkflowEvent =
573
+ | { type: "definition.loaded"; workflow: string }
574
+ | { type: "plan.created"; workflow: string; cachedNodeCount: number; nodeCount: number }
575
+ | { type: "node.cached"; nodePath: string; runId: string }
576
+ | { type: "node.started"; nodePath: string }
577
+ | { type: "node.completed"; nodePath: string; runId: string }
578
+ | { type: "vm.created"; providerId: string; vmId: string; fromSnapshotId?: string }
579
+ | { type: "command.started"; nodePath?: string; commandName: string; command: string }
580
+ | { type: "command.output"; nodePath?: string; commandName: string; stream: ExecOutputStream; data: string }
581
+ | { type: "command.completed"; nodePath?: string; commandName: string; exitCode: number }
582
+ | { type: "log.output"; nodePath: string; stream: WorkflowLogStream; label?: string; data: string }
583
+ | {
584
+ type: "interaction.awaiting_user";
585
+ nodePath: string;
586
+ interactionId: string;
587
+ label: string;
588
+ title: string;
589
+ url: string;
590
+ instructions?: string;
591
+ }
592
+ | {
593
+ type: "interaction.completed";
594
+ nodePath: string;
595
+ interactionId: string;
596
+ label: string;
597
+ title: string;
598
+ }
599
+ | { type: "artifact.created"; nodePath: string; providerId: string; kind: string; ref: JsonValue }
600
+ | { type: "workspace.ready"; workspaceId: string; providerId: string; resourceId: string; snapshotId?: string };
601
+
602
+ export type DevMachineEvent = WorkflowEvent;
603
+
604
+ export type EventHandler = (event: WorkflowEvent) => void;
package/src/version.ts ADDED
@@ -0,0 +1 @@
1
+ export const RIGKIT_ENGINE_VERSION = "0.1.8";