@oomol-lab/open-flow 0.1.0-beta.62 → 0.1.0-beta.64
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/browser/{createResourceDialog-DZgJsr3e.js → createResourceDialog-BAJXbzNH.js} +20 -7
- package/dist/browser/flow-authoring.js +8 -7
- package/dist/browser/flow-change-schema.d.ts +1 -0
- package/dist/browser/flow-change.d.ts +1 -0
- package/dist/browser/flow-change.js +8 -7
- package/dist/browser/flow-notifications.d.ts +6 -0
- package/dist/browser/{flowChanges-CzYIVevI.js → flowChanges-BAMkSaKF.js} +1771 -1331
- package/dist/browser/{flowRunInputEditorStore-Dsxyfwae.js → flowRunInputEditorStore-B2Rw4VsT.js} +1 -1
- package/dist/browser/{flowWorkspace-BgZaFKZm.js → flowWorkspace-DxLc1Ybv.js} +429 -205
- package/dist/browser/{icons-CajfDpy_.js → icons-Db2Jb2iX.js} +30 -10
- package/dist/browser/preview.css +40 -52
- package/dist/browser/preview.js +7752 -7452
- package/dist/browser/theme.css +4 -0
- package/dist/browser/{typeScriptSession-fXPMFGjW.js → typeScriptSession-D0bjYDeg.js} +1 -1
- package/dist/browser/ui.css +39 -51
- package/dist/browser/ui.js +5 -5
- package/dist/browser/{value-DL_poNiC.js → value-BADHeZ9I.js} +12 -1
- package/dist/browser/workbench-contract.d.ts +10 -0
- package/dist/browser/workbench.css +43 -59
- package/dist/browser/workbench.d.ts +5 -3
- package/dist/browser/workbench.js +255 -216
- package/dist/browser/{workbenchSelect-H9wzEFkH.js → workbenchSelect-C-jf6NIM.js} +1 -1
- package/dist/command/index.js +49 -48
- package/dist/common/authoringSchema.d.ts +1 -0
- package/dist/common/canvas-commands.d.ts +19 -0
- package/dist/common/connector-action.d.ts +1 -0
- package/dist/common/connector-action.js +15 -12
- package/dist/common/control-api-conformance.js +127 -8
- package/dist/common/control-api.d.ts +16 -0
- package/dist/common/control-api.js +67 -8
- package/dist/common/control-requests.d.ts +23 -0
- package/dist/common/control-requests.js +64 -19
- package/dist/common/decision.js +8 -7
- package/dist/common/flow-connectionUsage.d.ts +1 -0
- package/dist/common/flow-encoding.d.ts +1 -0
- package/dist/common/flow-encoding.js +202 -10
- package/dist/common/flow-notifications.d.ts +6 -0
- package/dist/common/flow-semantics.js +64 -46
- package/dist/common/flow-workflowFile.d.ts +23 -0
- package/dist/common/integration-trigger.js +8 -7
- package/dist/common/localization.d.ts +1 -0
- package/dist/common/localization.js +12 -1
- package/dist/common/mcp.d.ts +103 -0
- package/dist/common/mcp.js +135 -11
- package/dist/common/openapi.js +8 -7
- package/dist/common/poll-trigger.js +8 -7
- package/dist/common/runtime-contract.js +1 -1
- package/dist/common/scheduler.d.ts +22 -2
- package/dist/common/scheduler.js +354 -83
- package/dist/common/trigger-config.d.ts +2 -0
- package/dist/common/webhook-trigger.js +8 -7
- package/dist/index.d.ts +2 -2
- package/package.json +1 -1
- package/skills/open-flow/SKILL.md +1 -1
- package/skills/open-flow/references/flow-authoring.md +49 -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
|
|
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
|
|
79
|
-
getPrevious(): Promise<PreviousNode
|
|
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
|
@@ -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
|
|
@@ -390,3 +410,32 @@ current online entries. The MCP equivalent is `flow_live({ flowId })`.
|
|
|
390
410
|
A useful completion report identifies the Flow and Revision, what changed,
|
|
391
411
|
what was actually checked or executed, and any remaining blocker. Its detail
|
|
392
412
|
should match the task.
|
|
413
|
+
|
|
414
|
+
## Workbench node annotations
|
|
415
|
+
|
|
416
|
+
Node annotations from the Codex browser show the node title as the annotation name.
|
|
417
|
+
Metadata contains `flowId`, `revisionId`, `nodeId`, and `syncState`, plus `description`
|
|
418
|
+
when nonempty. The identity fields are never truncated; `revisionId` identifies the
|
|
419
|
+
saved Revision. Descriptions may be shortened with an ellipsis to fit the annotation
|
|
420
|
+
limits; read full content
|
|
421
|
+
through the public API. The browser supplies the source page URL separately. Continue
|
|
422
|
+
using the configured deployment and verify it matches the referenced Flow.
|
|
423
|
+
Read the referenced node with the public read command before acting. Before editing,
|
|
424
|
+
read the current Draft and use its revision checks; a captured annotation may be older
|
|
425
|
+
than the current Draft. If the node no longer exists, report that instead of choosing
|
|
426
|
+
another node by name.
|
|
427
|
+
|
|
428
|
+
`syncState` describes the Workbench's known save state (`saved`, `dirty`, `saving`, or
|
|
429
|
+
`failed`). The revision always identifies saved data; pending local changes, including
|
|
430
|
+
unsaved code, are not part of that snapshot. An annotation does not save those changes
|
|
431
|
+
or establish a CLI/MCP connection. Missing or invalid metadata is not sufficient to
|
|
432
|
+
identify a node for editing.
|
|
433
|
+
|
|
434
|
+
A multi-node annotation carries the same `flowId`, `revisionId`, and `syncState`,
|
|
435
|
+
with `nodeIds` instead of `nodeId`. Parse `nodeIds` as a JSON-encoded string array
|
|
436
|
+
and read every referenced node. The group contains business nodes and Triggers;
|
|
437
|
+
Comment cards have no authoring node identity and are not included in this feature.
|
|
438
|
+
If the complete list exceeds the annotation limits, metadata contains `nodeCount`
|
|
439
|
+
and `error` instead of `nodeIds`. Ask for a smaller selection; never infer a partial
|
|
440
|
+
list or treat a missing list as the whole Flow. The annotation captures the selection
|
|
441
|
+
at creation time, not whichever nodes happen to be selected when the agent acts.
|