@oomol-lab/open-flow 0.1.0-beta.62 → 0.1.0-beta.63

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 (51) hide show
  1. package/dist/browser/{createResourceDialog-DZgJsr3e.js → createResourceDialog-BAJXbzNH.js} +20 -7
  2. package/dist/browser/flow-authoring.js +8 -7
  3. package/dist/browser/flow-change-schema.d.ts +1 -0
  4. package/dist/browser/flow-change.d.ts +1 -0
  5. package/dist/browser/flow-change.js +8 -7
  6. package/dist/browser/{flowChanges-CzYIVevI.js → flowChanges-DpZOQuJE.js} +784 -443
  7. package/dist/browser/{flowRunInputEditorStore-Dsxyfwae.js → flowRunInputEditorStore-B2Rw4VsT.js} +1 -1
  8. package/dist/browser/{flowWorkspace-BgZaFKZm.js → flowWorkspace-B7a5NNA_.js} +41 -29
  9. package/dist/browser/{icons-CajfDpy_.js → icons-Db2Jb2iX.js} +30 -10
  10. package/dist/browser/preview.css +5 -6
  11. package/dist/browser/preview.js +437 -402
  12. package/dist/browser/{typeScriptSession-fXPMFGjW.js → typeScriptSession-D0bjYDeg.js} +1 -1
  13. package/dist/browser/ui.css +4 -5
  14. package/dist/browser/ui.js +2 -2
  15. package/dist/browser/{value-DL_poNiC.js → value-BADHeZ9I.js} +12 -1
  16. package/dist/browser/workbench-contract.d.ts +10 -0
  17. package/dist/browser/workbench.css +5 -6
  18. package/dist/browser/workbench.d.ts +5 -3
  19. package/dist/browser/workbench.js +198 -171
  20. package/dist/browser/{workbenchSelect-H9wzEFkH.js → workbenchSelect-C-jf6NIM.js} +1 -1
  21. package/dist/command/index.js +40 -39
  22. package/dist/common/authoringSchema.d.ts +1 -0
  23. package/dist/common/connector-action.d.ts +1 -0
  24. package/dist/common/connector-action.js +15 -12
  25. package/dist/common/control-api-conformance.js +107 -8
  26. package/dist/common/control-api.d.ts +8 -0
  27. package/dist/common/control-api.js +47 -8
  28. package/dist/common/control-requests.d.ts +6 -0
  29. package/dist/common/control-requests.js +41 -18
  30. package/dist/common/decision.js +8 -7
  31. package/dist/common/flow-connectionUsage.d.ts +1 -0
  32. package/dist/common/flow-encoding.d.ts +1 -0
  33. package/dist/common/flow-encoding.js +202 -10
  34. package/dist/common/flow-semantics.js +64 -46
  35. package/dist/common/flow-workflowFile.d.ts +23 -0
  36. package/dist/common/integration-trigger.js +8 -7
  37. package/dist/common/localization.d.ts +1 -0
  38. package/dist/common/localization.js +12 -1
  39. package/dist/common/mcp.d.ts +61 -0
  40. package/dist/common/mcp.js +92 -9
  41. package/dist/common/openapi.js +8 -7
  42. package/dist/common/poll-trigger.js +8 -7
  43. package/dist/common/runtime-contract.js +1 -1
  44. package/dist/common/scheduler.d.ts +22 -2
  45. package/dist/common/scheduler.js +354 -83
  46. package/dist/common/trigger-config.d.ts +2 -0
  47. package/dist/common/webhook-trigger.js +8 -7
  48. package/dist/index.d.ts +2 -2
  49. package/package.json +1 -1
  50. package/skills/open-flow/SKILL.md +1 -1
  51. package/skills/open-flow/references/flow-authoring.md +20 -0
@@ -5924,7 +5924,8 @@ var managedFields = object({
5924
5924
  object({
5925
5925
  kind: literal("connector"),
5926
5926
  action: text,
5927
- connectionId: text.optional()
5927
+ connectionId: text.optional(),
5928
+ outputMode: literal("value").optional()
5928
5929
  }),
5929
5930
  object({
5930
5931
  kind: literal("openapi"),
@@ -7309,10 +7310,10 @@ function compileEnumAndConst(context, enumList, constValue, schema) {
7309
7310
  }
7310
7311
  if (compiledEnum.length === 0) recordWarn(context, "all of elements from list is rejected by currently schema object", "enum");
7311
7312
  }
7312
- if (constValue && valid(schema, constValue) === ValidResult.Invalid) isNever = true;
7313
+ if (constValue !== void 0 && valid(schema, constValue) === ValidResult.Invalid) isNever = true;
7313
7314
  if (compiledEnum) {
7314
7315
  if (compiledEnum.length === 0) isNever = true;
7315
- else if (constValue) {
7316
+ else if (constValue !== void 0) {
7316
7317
  let foundEquals = false;
7317
7318
  for (const enumValue of compiledEnum) if (isDeepEquals(enumValue, constValue)) {
7318
7319
  foundEquals = true;
@@ -7325,7 +7326,7 @@ function compileEnumAndConst(context, enumList, constValue, schema) {
7325
7326
  const compiledSchema = {};
7326
7327
  if (schema.type) compiledSchema.type = schema.type;
7327
7328
  if (compiledEnum) compiledSchema.enum = compiledEnum;
7328
- if (constValue) compiledSchema.const = wrapCompiledValue(deepCopy(constValue));
7329
+ if (constValue !== void 0) compiledSchema.const = wrapCompiledValue(deepCopy(constValue));
7329
7330
  return wrapCompiledSchema(kind, compiledSchema, context.delegate, context.path);
7330
7331
  }
7331
7332
  //#endregion
@@ -7720,7 +7721,7 @@ function compileSchema(context, schema) {
7720
7721
  let targetSchema = schema;
7721
7722
  let shouldHandleEnumAndConst = false;
7722
7723
  const { enum: enumList, const: constValue } = schema;
7723
- if (enumList || constValue) {
7724
+ if (enumList || constValue !== void 0) {
7724
7725
  const { enum: _0, const: _1, ...rest } = schema;
7725
7726
  targetSchema = rest;
7726
7727
  shouldHandleEnumAndConst = true;
@@ -8310,7 +8311,7 @@ function schemaEqualsChecker(extendsContext) {
8310
8311
  }
8311
8312
  function isValueEquals(value1, value2) {
8312
8313
  if (value1 === value2) return true;
8313
- if (value1 === null) return false;
8314
+ if (value1 === null || value2 === null) return false;
8314
8315
  if (typeof value1 !== "object") return false;
8315
8316
  if (typeof value1 !== typeof value2) return false;
8316
8317
  if (isCompiledSchema(value1) && isCompiledSchema(value2)) return isCompiledSchemaEquals(value1, value2);
@@ -8876,7 +8877,7 @@ function findMismatchPath(source, target) {
8876
8877
  if ((sourceSchema.maxProperties ?? Number.POSITIVE_INFINITY) > (targetSchema.maxProperties ?? Number.POSITIVE_INFINITY)) return [...targetPath, "maxProperties"];
8877
8878
  break;
8878
8879
  }
8879
- case CompiledKind.EnumOrConst: return [...targetPath, targetSchema.const == null ? "enum" : "const"];
8880
+ case CompiledKind.EnumOrConst: return [...targetPath, targetSchema.const === void 0 ? "enum" : "const"];
8880
8881
  }
8881
8882
  return targetPath;
8882
8883
  }
package/dist/index.d.ts CHANGED
@@ -75,8 +75,8 @@ export interface TaskContext<Actions extends object = Record<string, never>> {
75
75
  readonly artifact: ArtifactCapability;
76
76
  readonly fetch: typeof fetch;
77
77
  readonly logger: TaskLogger;
78
- /** Reads the node that triggered this invocation, or null for a graph root. */
79
- getPrevious(): Promise<PreviousNode | null>;
78
+ /** Reads the selected direct predecessors, sorted by node ID; empty for a graph root. */
79
+ getPrevious(): Promise<readonly PreviousNode[]>;
80
80
  preview(payload: PreviewPayload, id?: string): Promise<void>;
81
81
  reportProgress(progress: number): Promise<void>;
82
82
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oomol-lab/open-flow",
3
- "version": "0.1.0-beta.62",
3
+ "version": "0.1.0-beta.63",
4
4
  "description": "TypeScript contracts and Browser runtime for Open Flow.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -9,7 +9,7 @@ Use `<!-- agentic:var flowCommand -->` to operate the selected deployment.
9
9
  Consult the references relevant to the task:
10
10
 
11
11
  - [Flow capabilities and examples](references/flow-authoring.md): inspect, edit,
12
- connect, validate, run and publish; online entries and Flow enable/disable;
12
+ connect, validate, run and publish; import/export workflow templates; online entries and Flow enable/disable;
13
13
  concurrency and Run diagnostics.
14
14
  - [n8n conversion](references/flow-n8n-conversion.md): represent collections,
15
15
  branches, provider operations and state while preserving source behavior.
@@ -22,6 +22,26 @@ text. It builds internal definitions, ports and Module identities for you.
22
22
  `schema TYPE` supplies the current contract and a node example; `schema edit`
23
23
  supplies the edit operations. Use these when a configuration is unfamiliar.
24
24
 
25
+ ## Share a workflow template
26
+
27
+ ```bash
28
+ <!-- agentic:var flowCommand --> export FLOW_ID > template.openflow.json
29
+ <!-- agentic:var flowCommand --> import --file template.openflow.json --name "Imported workflow" --idempotency-key IMPORT_KEY --json
30
+ ```
31
+
32
+ Export writes only JSON to stdout. Import also accepts `--file -` for stdin and creates
33
+ a new unpublished Draft; it never overwrites the source Flow. Keep the same file, name,
34
+ and idempotency key when retrying an uncertain import. MCP equivalents are `flow_export`
35
+ with `flowId`, and `flow_import` with the JSON `file`, `idempotencyKey`, optional `name`
36
+ and optional target `teamId`.
37
+
38
+ Both operations clear structured accounts, Variables, error-source workflows and
39
+ Trigger resource selections. Graphs, shared code Modules, fixed inputs, prompts, model
40
+ choices and layout remain. Inspect the imported Draft, configure missing resources with
41
+ the normal editor or authoring interface, and check it before running or publishing.
42
+ Code, prompts and business JSON may still contain literal sensitive data. Review the
43
+ file before sharing; cleanup does not rewrite arbitrary strings.
44
+
25
45
  ## Find a Flow or a relevant part
26
46
 
27
47
  ```bash