@oomol-lab/open-flow 0.1.0-beta.2 → 0.1.0-beta.20

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 (93) hide show
  1. package/dist/browser/{_virtual_open-flow-twemoji-DJwKsM_w.js → _virtual_open-flow-twemoji-CpHJOEsk.js} +4028 -2
  2. package/dist/browser/carbon-Cn-DTyjG.js +54 -0
  3. package/dist/browser/createResourceDialog-DlrAMxmo.js +110 -0
  4. package/dist/browser/dist-B_T-OpQp.js +4 -0
  5. package/dist/browser/{dist-DWADUsVB.js → dist-By46o5UV.js} +47 -47
  6. package/dist/browser/{dist-CPuF50D9.js → dist-D1VYgicl.js} +426 -305
  7. package/dist/browser/dist-DSe6KRsr.js +1224 -0
  8. package/dist/browser/dist-DYjIVIZC.js +795 -0
  9. package/dist/browser/{dist-3Mj8q8Pr.js → dist-DmuE3M0R.js} +53 -54
  10. package/dist/browser/{dist-BN4ZCyOB.js → dist-DpDLsYtO.js} +14 -15
  11. package/dist/browser/{dist-CJpzJrLM.js → dist-DwvhuMxw.js} +894 -895
  12. package/dist/browser/dist-DxahK_I8.js +2688 -0
  13. package/dist/browser/{dist-C46JByB-.js → dist-Dz6Nglsd.js} +61 -61
  14. package/dist/browser/{dist-DUzA0Ukh.js → dist-TJfrvoIQ.js} +141 -142
  15. package/dist/browser/{esm-B_PbUobB.js → esm-B7A42FzW.js} +68 -59
  16. package/dist/browser/flow-authoring-module.d.ts +2 -2
  17. package/dist/browser/flow-authoring-node.d.ts +20 -6
  18. package/dist/browser/flow-authoring.d.ts +1 -1
  19. package/dist/browser/flow-authoring.js +5405 -286
  20. package/dist/browser/flow-change-schema.d.ts +6 -0
  21. package/dist/browser/flow-change.d.ts +173 -14
  22. package/dist/browser/flow-change.js +5271 -114
  23. package/dist/browser/flow-notifications.d.ts +5 -0
  24. package/dist/browser/flowChanges-jX3KYcb0.js +11020 -0
  25. package/dist/browser/{flowRunInputEditorStore-BeyUSWpO.js → flowRunInputEditorStore-BBqQIOCR.js} +1020 -4104
  26. package/dist/browser/flowWorkspace-BIYwslVl.js +148497 -0
  27. package/dist/browser/host-conformance.d.ts +7 -0
  28. package/dist/browser/host-conformance.js +33 -0
  29. package/dist/browser/{diagnostics-giPSzyMo.js → i18n-CVBh0Ni1.js} +3390 -5715
  30. package/dist/browser/inputValues-BWfRHJWC.js +43 -0
  31. package/dist/browser/{languages-DgJehE1g.js → languages-C0zQ4GSo.js} +5 -25
  32. package/dist/browser/licenses.md +149 -700
  33. package/dist/browser/main-BDnNHhkU.js +50 -0
  34. package/dist/browser/{markdownContent-DdlIRN3_.js → markdownContent-BBgH9ZIV.js} +41 -41
  35. package/dist/browser/theme.css +461 -34
  36. package/dist/browser/{typeScriptSession-mPCiA9sV.js → typeScriptSession-DnAmJCzu.js} +70 -71
  37. package/dist/browser/ui-input.d.ts +3 -0
  38. package/dist/browser/ui-label.d.ts +3 -0
  39. package/dist/browser/ui-textarea.d.ts +3 -0
  40. package/dist/browser/ui.css +2 -0
  41. package/dist/browser/ui.css.d.ts +1 -0
  42. package/dist/browser/ui.d.ts +12 -0
  43. package/dist/browser/ui.js +2598 -0
  44. package/dist/browser/useValueChanged-BY05Usw-.js +2944 -0
  45. package/dist/browser/workbench-contract.d.ts +8 -2
  46. package/dist/browser/workbench.css +1 -1
  47. package/dist/browser/workbench.d.ts +1 -0
  48. package/dist/browser/workbench.js +2043 -1327
  49. package/dist/browser/workbenchSelect-CwP6rphY.js +11666 -0
  50. package/dist/common/control-api-conformance.d.ts +7 -0
  51. package/dist/common/control-api-conformance.js +5568 -166
  52. package/dist/common/control-api-errors.d.ts +9 -0
  53. package/dist/common/control-api.d.ts +309 -38
  54. package/dist/common/control-api.js +5817 -576
  55. package/dist/common/control-requests.d.ts +68 -0
  56. package/dist/common/control-requests.js +4950 -0
  57. package/dist/common/engine-contract.d.ts +3 -1
  58. package/dist/common/flow-agent.d.ts +10 -0
  59. package/dist/common/flow-encoding.d.ts +5 -2
  60. package/dist/common/flow-encoding.js +4820 -66
  61. package/dist/common/flow-graph.d.ts +6 -0
  62. package/dist/common/flow-json.d.ts +2 -0
  63. package/dist/common/flow-modules.d.ts +20 -0
  64. package/dist/common/flow-notifications.d.ts +5 -0
  65. package/dist/common/flow-schema.d.ts +8 -0
  66. package/dist/common/flow-semantics.d.ts +10 -6
  67. package/dist/common/flow-semantics.js +9982 -1701
  68. package/dist/common/integration-trigger.d.ts +24 -1
  69. package/dist/common/integration-trigger.js +188 -52
  70. package/dist/common/mcp-conformance.d.ts +2 -0
  71. package/dist/common/mcp.d.ts +765 -0
  72. package/dist/common/mcp.js +6477 -0
  73. package/dist/common/provider-triggers.js +5996 -993
  74. package/dist/common/run-events.d.ts +2 -2
  75. package/dist/common/run-events.js +12 -17
  76. package/dist/common/run-lifecycle.d.ts +21 -2
  77. package/dist/common/run-lifecycle.js +83 -2
  78. package/dist/common/run-results.d.ts +57 -0
  79. package/dist/common/runtime-contract.d.ts +36 -3
  80. package/dist/common/runtime-contract.js +227 -19
  81. package/dist/common/scheduler.d.ts +77 -18
  82. package/dist/common/scheduler.js +8259 -248
  83. package/dist/index.d.ts +6 -5
  84. package/package.json +21 -1
  85. package/dist/browser/carbon-DMCVsjHo.js +0 -53
  86. package/dist/browser/createResourceDialog-BkZns-oZ.js +0 -504
  87. package/dist/browser/dist-BMqL-qR5.js +0 -1894
  88. package/dist/browser/dist-BpopSHwP.js +0 -1543
  89. package/dist/browser/dist-CUSrALSX.js +0 -1620
  90. package/dist/browser/flowWorkspace-DAMLVMcF.js +0 -47584
  91. package/dist/browser/getPseudoElementBounds-ESJExRFX.js +0 -7642
  92. package/dist/browser/main-DmjVyuWr.js +0 -76
  93. package/dist/browser/workbenchSelect-B2s1HV-Y.js +0 -1374
@@ -0,0 +1,6 @@
1
+ import type { ChangeOperation, FlowDocument, JsonValue, RevisionContent } from './flow-change.js';
2
+ export declare function decodeFlowDocument(value: unknown): FlowDocument;
3
+ export declare function decodeRevisionContent(value: unknown): RevisionContent;
4
+ export declare function decodeRevisionEnvelope(value: unknown): RevisionContent;
5
+ export declare function decodeChangeOperations(value: unknown): readonly ChangeOperation[];
6
+ export declare function changeOperationsSchema(kind?: string): JsonValue;
@@ -1,3 +1,4 @@
1
+ export { changeOperationsSchema, decodeChangeOperations } from './flow-change-schema.js';
1
2
  export type JsonValue = null | boolean | number | string | readonly JsonValue[] | {
2
3
  readonly [key: string]: JsonValue;
3
4
  };
@@ -48,7 +49,6 @@ export interface OutputMapping {
48
49
  readonly sources: readonly (FlowSource | NodeSource)[];
49
50
  }
50
51
  interface GraphNodeBase {
51
- readonly concurrency: number;
52
52
  readonly description?: string;
53
53
  readonly icon?: string;
54
54
  readonly inputs: Readonly<Record<string, InputMapping>>;
@@ -63,6 +63,19 @@ export interface ValueNode extends GraphNodeBase {
63
63
  readonly kind: 'value';
64
64
  readonly values: readonly InputPort[];
65
65
  }
66
+ export type WaitAction = 'approve' | 'continue' | 'reject';
67
+ export interface WaitNode extends GraphNodeBase {
68
+ readonly actions: readonly ['continue'] | readonly ['approve', 'reject'];
69
+ readonly input: InputPort;
70
+ readonly kind: 'wait';
71
+ readonly notification?: {
72
+ readonly inputs: Readonly<Record<string, InputMapping>>;
73
+ readonly messageHandle: string;
74
+ readonly taskId: string;
75
+ };
76
+ readonly prompt: string;
77
+ readonly timeoutMs?: never;
78
+ }
66
79
  export type ConditionOperator = '!=' | '<' | '<=' | '==' | '>' | '>=' | 'contains' | 'endsWith' | 'hasKey' | 'hasValue' | 'isEmpty' | 'isFalse' | 'isNotEmpty' | 'isNotNull' | 'isNull' | 'isTrue' | 'notContains' | 'notHasKey' | 'notHasValue' | 'startsWith';
67
80
  export interface ConditionExpression {
68
81
  readonly input: string;
@@ -87,12 +100,54 @@ export type ManagedTaskExecutor = {
87
100
  } | {
88
101
  readonly kind: 'llm';
89
102
  readonly mode: 'chat' | 'json';
103
+ } | {
104
+ readonly kind: 'agent';
105
+ readonly code?: boolean;
106
+ readonly model: string;
107
+ readonly prompt: Exclude<AgentInput, {
108
+ readonly kind: 'model';
109
+ }>;
110
+ readonly system: string;
111
+ readonly maxRounds: number;
112
+ readonly tools: readonly AgentTool[];
113
+ readonly notification?: {
114
+ readonly taskId: string;
115
+ readonly messageHandle: string;
116
+ readonly inputs: Readonly<Record<string, Exclude<AgentInput, {
117
+ readonly kind: 'model';
118
+ }>>>;
119
+ };
120
+ };
121
+ export type AgentInput = {
122
+ readonly kind: 'value';
123
+ readonly value: JsonValue;
124
+ } | {
125
+ readonly kind: 'input';
126
+ readonly input: string;
127
+ } | {
128
+ readonly kind: 'model';
90
129
  };
130
+ export interface AgentTool {
131
+ readonly id: string;
132
+ readonly name: string;
133
+ readonly description: string;
134
+ readonly action: string;
135
+ readonly connectionId?: string;
136
+ readonly approval: boolean;
137
+ readonly inputs: readonly (InputPort & {
138
+ readonly source: AgentInput;
139
+ })[];
140
+ }
91
141
  export interface ConnectorCapability {
92
142
  readonly action: string;
93
- readonly connectionId: string;
143
+ readonly connections: readonly {
144
+ readonly connectionId: string;
145
+ readonly alias?: string;
146
+ }[];
147
+ readonly connectionId?: string;
94
148
  readonly kind: 'connector';
95
149
  }
150
+ export declare function decodeConnectorCapabilities(value: unknown): readonly ConnectorCapability[];
96
151
  interface TaskDefinitionBase {
97
152
  readonly inputs: readonly (InputPort | Group)[];
98
153
  readonly name: string;
@@ -109,13 +164,16 @@ export type TaskDefinition = InlineTaskDefinition | ManagedTaskDefinition;
109
164
  export type TaskNode = GraphNodeBase & {
110
165
  readonly kind: 'task';
111
166
  } & ({
167
+ readonly additionalInputs?: readonly InputPort[];
112
168
  readonly task: InlineTaskDefinition;
113
169
  readonly taskId?: never;
114
170
  } | {
171
+ readonly additionalInputs?: readonly InputPort[];
115
172
  readonly task?: never;
116
173
  readonly taskId: string;
117
174
  });
118
175
  export interface Graph {
176
+ readonly edges: readonly GraphEdge[];
119
177
  readonly nodes: Readonly<Record<string, GraphNode>>;
120
178
  }
121
179
  export type TriggerSchedule = {
@@ -170,6 +228,8 @@ interface TriggerNodeBase {
170
228
  readonly name: string;
171
229
  }
172
230
  export type TriggerNode = (TriggerNodeBase & {
231
+ readonly kind: 'manual';
232
+ }) | (TriggerNodeBase & {
173
233
  readonly inputsDef: readonly WebhookInputDefinition[];
174
234
  readonly kind: 'webhook';
175
235
  readonly options?: WebhookOptions;
@@ -192,7 +252,7 @@ export type TriggerNode = (TriggerNodeBase & {
192
252
  };
193
253
  readonly kind: 'integration';
194
254
  });
195
- export type GraphNode = ConditionNode | SubflowNode | TaskNode | TriggerNode | ValueNode;
255
+ export type GraphNode = ConditionNode | SubflowNode | TaskNode | TriggerNode | ValueNode | WaitNode;
196
256
  export interface FlowDocument {
197
257
  readonly bindings: Readonly<Record<string, {
198
258
  readonly kind: 'connection' | 'variable';
@@ -225,21 +285,30 @@ export type GraphTarget = {
225
285
  };
226
286
  export interface GraphEdge {
227
287
  readonly source: string;
228
- readonly sourceHandle: string;
288
+ readonly sourceHandle?: string;
229
289
  readonly target: string;
230
- readonly targetHandle: string;
231
290
  }
291
+ export declare function normalizeNodeName(value: string): string;
292
+ export declare function nextNodeName(value: string, names: Iterable<string>): string;
293
+ export declare function nodeNameIssue(graph: Graph, nodeId: string, value: string): 'duplicate' | 'empty' | undefined;
232
294
  export type ChangeOperation = {
295
+ readonly before?: readonly ConnectorCapability[];
296
+ readonly kind: 'graph.node.task.capabilities.set';
297
+ readonly nodeId: string;
298
+ readonly target: GraphTarget;
299
+ readonly value?: readonly ConnectorCapability[];
300
+ } | {
233
301
  readonly binding: FlowDocument['bindings'][string];
234
302
  readonly bindingId: string;
235
303
  readonly kind: 'binding.create';
236
304
  } | {
237
- readonly binding: FlowDocument['bindings'][string];
238
305
  readonly bindingId: string;
239
- readonly kind: 'binding.replace';
306
+ readonly kind: 'binding.delete';
240
307
  } | {
308
+ readonly before: string;
241
309
  readonly bindingId: string;
242
- readonly kind: 'binding.delete';
310
+ readonly kind: 'binding.target.set';
311
+ readonly value: string;
243
312
  } | {
244
313
  readonly kind: 'graph.edge.connect';
245
314
  readonly edge: GraphEdge;
@@ -248,6 +317,18 @@ export type ChangeOperation = {
248
317
  readonly kind: 'graph.edge.disconnect';
249
318
  readonly edge: GraphEdge;
250
319
  readonly target: GraphTarget;
320
+ } | {
321
+ readonly before?: readonly InputPort[];
322
+ readonly kind: 'graph.node.additional-inputs.set';
323
+ readonly nodeId: string;
324
+ readonly target: GraphTarget;
325
+ readonly value?: readonly InputPort[];
326
+ } | {
327
+ readonly before: Pick<ConditionNode, 'cases' | 'defaultOutput' | 'input'>;
328
+ readonly kind: 'graph.node.condition.set';
329
+ readonly nodeId: string;
330
+ readonly target: GraphTarget;
331
+ readonly value: Pick<ConditionNode, 'cases' | 'defaultOutput' | 'input'>;
251
332
  } | {
252
333
  readonly kind: 'graph.node.create';
253
334
  readonly node: GraphNode;
@@ -258,10 +339,68 @@ export type ChangeOperation = {
258
339
  readonly nodeId: string;
259
340
  readonly target: GraphTarget;
260
341
  } | {
261
- readonly kind: 'graph.node.replace';
262
- readonly node: GraphNode;
342
+ readonly before?: number | string;
343
+ readonly field: 'description' | 'icon' | 'name' | 'timeoutMs';
344
+ readonly kind: 'graph.node.field.set';
345
+ readonly nodeId: string;
346
+ readonly target: GraphTarget;
347
+ readonly value?: number | string;
348
+ } | {
349
+ readonly before?: InputMapping;
350
+ readonly handle: string;
351
+ readonly kind: 'graph.node.input.set';
352
+ readonly nodeId: string;
353
+ readonly target: GraphTarget;
354
+ readonly value?: InputMapping;
355
+ } | {
356
+ readonly before: Pick<InlineTaskDefinition, 'inputs' | 'outputs'>;
357
+ readonly kind: 'graph.node.task.ports.set';
263
358
  readonly nodeId: string;
264
359
  readonly target: GraphTarget;
360
+ readonly value: Pick<InlineTaskDefinition, 'inputs' | 'outputs'>;
361
+ } | {
362
+ readonly before: string;
363
+ readonly kind: 'graph.node.task.name.set';
364
+ readonly nodeId: string;
365
+ readonly target: GraphTarget;
366
+ readonly value: string;
367
+ } | {
368
+ readonly before: readonly InputPort[];
369
+ readonly kind: 'graph.node.values.set';
370
+ readonly nodeId: string;
371
+ readonly target: GraphTarget;
372
+ readonly value: readonly InputPort[];
373
+ } | {
374
+ readonly before: Pick<WaitNode, 'actions' | 'notification' | 'prompt'>;
375
+ readonly kind: 'graph.node.wait.set';
376
+ readonly nodeId: string;
377
+ readonly target: Extract<GraphTarget, {
378
+ readonly kind: 'flow';
379
+ }>;
380
+ readonly value: Pick<WaitNode, 'actions' | 'notification' | 'prompt'>;
381
+ } | {
382
+ readonly before: Pick<Extract<TriggerNode, {
383
+ readonly kind: 'webhook';
384
+ }>, 'inputsDef' | 'options'>;
385
+ readonly kind: 'graph.node.webhook.set';
386
+ readonly nodeId: string;
387
+ readonly target: Extract<GraphTarget, {
388
+ readonly kind: 'flow';
389
+ }>;
390
+ readonly value: Pick<Extract<TriggerNode, {
391
+ readonly kind: 'webhook';
392
+ }>, 'inputsDef' | 'options'>;
393
+ } | {
394
+ readonly before?: JsonValue;
395
+ readonly kind: 'graph.trigger.config.set';
396
+ readonly name: string;
397
+ readonly nodeId: string;
398
+ readonly value?: JsonValue;
399
+ } | {
400
+ readonly before: readonly TriggerSchedule[];
401
+ readonly kind: 'graph.trigger.schedule.set';
402
+ readonly nodeId: string;
403
+ readonly value: readonly TriggerSchedule[];
265
404
  } | {
266
405
  readonly kind: 'module.create';
267
406
  readonly module: CodeModule;
@@ -270,10 +409,13 @@ export type ChangeOperation = {
270
409
  readonly kind: 'module.delete';
271
410
  readonly moduleId: string;
272
411
  } | {
412
+ readonly before: string;
273
413
  readonly kind: 'module.rename';
274
414
  readonly moduleId: string;
275
415
  readonly name: string;
276
416
  } | {
417
+ readonly beforeImports: readonly string[];
418
+ readonly beforeSource: string;
277
419
  readonly imports: readonly string[];
278
420
  readonly kind: 'module.source.replace';
279
421
  readonly moduleId: string;
@@ -283,8 +425,9 @@ export type ChangeOperation = {
283
425
  readonly subflow: FlowDocument['subflows'][string];
284
426
  readonly subflowId: string;
285
427
  } | {
428
+ readonly before: Omit<FlowDocument['subflows'][string], 'graph'>;
286
429
  readonly definition: Omit<FlowDocument['subflows'][string], 'graph'>;
287
- readonly kind: 'subflow.definition.replace';
430
+ readonly kind: 'subflow.definition.set';
288
431
  readonly subflowId: string;
289
432
  } | {
290
433
  readonly kind: 'subflow.delete';
@@ -293,15 +436,31 @@ export type ChangeOperation = {
293
436
  readonly kind: 'task.create';
294
437
  readonly task: FlowDocument['tasks'][string];
295
438
  readonly taskId: string;
439
+ } | {
440
+ readonly before?: string;
441
+ readonly kind: 'task.connector.connection.set';
442
+ readonly taskId: string;
443
+ readonly value?: string;
296
444
  } | {
297
445
  readonly kind: 'task.delete';
298
446
  readonly taskId: string;
299
447
  } | {
300
- readonly kind: 'task.replace';
301
- readonly task: FlowDocument['tasks'][string];
448
+ readonly before: ManagedTaskDefinition;
449
+ readonly kind: 'task.agent.set';
450
+ readonly taskId: string;
451
+ readonly value: ManagedTaskDefinition;
452
+ } | {
453
+ readonly before: 'chat' | 'json';
454
+ readonly kind: 'task.llm.mode.set';
455
+ readonly taskId: string;
456
+ readonly value: 'chat' | 'json';
457
+ } | {
458
+ readonly before: string;
459
+ readonly kind: 'task.name.set';
302
460
  readonly taskId: string;
461
+ readonly value: string;
303
462
  };
304
463
  export declare class FlowChangeError extends Error {
464
+ constructor(message: string);
305
465
  }
306
466
  export declare function applyFlowChanges(content: RevisionContent, operations: readonly ChangeOperation[]): RevisionContent;
307
- export {};