@oomol-lab/open-flow 0.1.0-beta.66 → 0.1.0-beta.68
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/ContentIcon-Sx9bywU-.js +11861 -0
- package/dist/browser/FlowCanvas-CXpaeurx.js +22721 -0
- package/dist/browser/{createResourceDialog-C-Si_cYs.js → createResourceDialog-BKmimKA_.js} +3 -2
- package/dist/browser/dialog-ZmfcwuMS.js +8785 -0
- package/dist/browser/event-sources.d.ts +4 -1
- package/dist/browser/exportSvg-D4CqCcx2.js +659 -0
- package/dist/browser/flow-authoring-node.d.ts +2 -0
- package/dist/browser/flow-authoring.js +6 -5
- package/dist/browser/flow-change.js +6 -5
- package/dist/browser/{flowChanges-T4_R5p1f.js → flowChanges-B5tZMcGr.js} +3440 -15004
- package/dist/browser/{flowRunInputEditorStore-DJqmR6Qh.js → flowRunInputEditorStore-ys1-w9GW.js} +2 -1
- package/dist/browser/{flowWorkspace-C0J5C0oM.js → flowWorkspace-zFBFtZPo.js} +1232 -23701
- package/dist/browser/languages-gYzoQqCi.js +68 -0
- package/dist/browser/licenses.md +24 -0
- package/dist/browser/preview.css +125 -55
- package/dist/browser/preview.js +16256 -15986
- package/dist/browser/theme.css +1 -0
- package/dist/browser/{icons-BD3m0RQq.js → tooltip-CJjYs_2I.js} +280 -9041
- package/dist/browser/ui.css +38 -4
- package/dist/browser/{value-BADHeZ9I.js → value-BbFQZZ_V.js} +1 -68
- package/dist/browser/workbench-contract.d.ts +1 -1
- package/dist/browser/workbench.css +2907 -2871
- package/dist/browser/workbench.d.ts +0 -1
- package/dist/browser/workbench.js +760 -461
- package/dist/browser/{workbenchSelect-B-PFpF_Q.js → workbenchSelect-CChdgugI.js} +2 -1
- package/dist/command/index.js +25 -25
- package/dist/common/authoringExamples.d.ts +2 -2
- package/dist/common/control-api-conformance.js +57 -12
- package/dist/common/control-api.d.ts +12 -2
- package/dist/common/control-api.js +41 -8
- package/dist/common/control-requests.js +7 -6
- package/dist/common/decision.js +5 -4
- package/dist/common/flow-encoding.js +7 -4
- package/dist/common/flow-semantics.js +11 -8
- package/dist/common/integration-trigger.js +5 -4
- package/dist/common/mcp.js +42 -9
- package/dist/common/openapi.js +5 -4
- package/dist/common/poll-trigger.js +5 -4
- package/dist/common/scheduler.js +5 -4
- package/dist/common/webhook-trigger.js +5 -4
- package/dist/common/workflow.js +5 -4
- package/package.json +1 -1
- package/skills/open-flow/SKILL.md +9 -0
- package/skills/open-flow/references/flow-authoring.md +2 -0
package/dist/common/mcp.js
CHANGED
|
@@ -6037,6 +6037,7 @@ function webhookSupportsBody(method) {
|
|
|
6037
6037
|
return method !== "GET";
|
|
6038
6038
|
}
|
|
6039
6039
|
var text = string$1();
|
|
6040
|
+
var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
|
|
6040
6041
|
var json$3 = json$4();
|
|
6041
6042
|
var strings$1 = array(text);
|
|
6042
6043
|
var port$1 = object({
|
|
@@ -6092,7 +6093,7 @@ var capability = union([
|
|
|
6092
6093
|
mode: literal("independent"),
|
|
6093
6094
|
actions: array(strictObject({
|
|
6094
6095
|
action: text,
|
|
6095
|
-
connectionId:
|
|
6096
|
+
connectionId: actionConnection.optional()
|
|
6096
6097
|
}))
|
|
6097
6098
|
}),
|
|
6098
6099
|
strictObject({
|
|
@@ -6152,7 +6153,7 @@ var managedFields = object({
|
|
|
6152
6153
|
object({
|
|
6153
6154
|
kind: literal("connector"),
|
|
6154
6155
|
action: text,
|
|
6155
|
-
connectionId:
|
|
6156
|
+
connectionId: actionConnection.optional(),
|
|
6156
6157
|
outputMode: literal("value").optional()
|
|
6157
6158
|
}),
|
|
6158
6159
|
object({
|
|
@@ -6192,13 +6193,13 @@ var managedFields = object({
|
|
|
6192
6193
|
name: text,
|
|
6193
6194
|
description: text,
|
|
6194
6195
|
action: text,
|
|
6195
|
-
connectionId:
|
|
6196
|
+
connectionId: actionConnection.optional(),
|
|
6196
6197
|
approval: boolean(),
|
|
6197
6198
|
inputs: array(input.extend({ source: agentInput }))
|
|
6198
6199
|
})),
|
|
6199
6200
|
notification: object({
|
|
6200
6201
|
action: text,
|
|
6201
|
-
connectionId:
|
|
6202
|
+
connectionId: actionConnection.optional(),
|
|
6202
6203
|
inputDefinitions: array(input),
|
|
6203
6204
|
messageHandle: text,
|
|
6204
6205
|
inputs: record$2(text, agentValue)
|
|
@@ -11093,6 +11094,15 @@ function flow$1(value) {
|
|
|
11093
11094
|
version: 1
|
|
11094
11095
|
};
|
|
11095
11096
|
}
|
|
11097
|
+
function flowListItem(value) {
|
|
11098
|
+
const source = record(value);
|
|
11099
|
+
const referenceCount = integer(source.referenceCount);
|
|
11100
|
+
if (referenceCount < 0) return invalidResponse();
|
|
11101
|
+
return {
|
|
11102
|
+
...flow$1(source),
|
|
11103
|
+
referenceCount
|
|
11104
|
+
};
|
|
11105
|
+
}
|
|
11096
11106
|
function flowPage(value) {
|
|
11097
11107
|
const source = record(value);
|
|
11098
11108
|
if (source.version != 1 || !Array.isArray(source.flows)) return invalidResponse();
|
|
@@ -11102,7 +11112,7 @@ function flowPage(value) {
|
|
|
11102
11112
|
if (total != null && !Number.isSafeInteger(total)) return invalidResponse();
|
|
11103
11113
|
return {
|
|
11104
11114
|
...nextCursor == null ? {} : { nextCursor },
|
|
11105
|
-
flows: source.flows.map(
|
|
11115
|
+
flows: source.flows.map(flowListItem),
|
|
11106
11116
|
...total == null ? {} : { total },
|
|
11107
11117
|
version: 1
|
|
11108
11118
|
};
|
|
@@ -11292,6 +11302,21 @@ function workflowIdentity(value) {
|
|
|
11292
11302
|
executionId: string(ref.executionId)
|
|
11293
11303
|
};
|
|
11294
11304
|
}
|
|
11305
|
+
function runInitiator(value) {
|
|
11306
|
+
const source = record(value);
|
|
11307
|
+
if (![
|
|
11308
|
+
"workbench",
|
|
11309
|
+
"cli",
|
|
11310
|
+
"mcp",
|
|
11311
|
+
"api",
|
|
11312
|
+
"trigger",
|
|
11313
|
+
"workflow"
|
|
11314
|
+
].includes(source.channel)) return invalidResponse();
|
|
11315
|
+
return {
|
|
11316
|
+
channel: source.channel,
|
|
11317
|
+
...source.actorId === void 0 ? {} : { actorId: string(source.actorId) }
|
|
11318
|
+
};
|
|
11319
|
+
}
|
|
11295
11320
|
function runDetails(value) {
|
|
11296
11321
|
const source = record(value);
|
|
11297
11322
|
const summary = run$1(source);
|
|
@@ -11313,6 +11338,7 @@ function runDetails(value) {
|
|
|
11313
11338
|
if (source.calls !== void 0 && !Array.isArray(source.calls)) return invalidResponse();
|
|
11314
11339
|
const details = {
|
|
11315
11340
|
...summary,
|
|
11341
|
+
...source.initiator === void 0 ? {} : { initiator: runInitiator(source.initiator) },
|
|
11316
11342
|
...errorHandling(source),
|
|
11317
11343
|
...source.triggerNodeId === void 0 ? {} : { triggerNodeId: string(source.triggerNodeId) },
|
|
11318
11344
|
...source.caller === void 0 ? {} : { caller: workflowIdentity(source.caller) },
|
|
@@ -11690,7 +11716,8 @@ function operationKey(operation) {
|
|
|
11690
11716
|
return `${operation}-${randomId()}`;
|
|
11691
11717
|
}
|
|
11692
11718
|
var ControlClient = class {
|
|
11693
|
-
constructor(requestControl) {
|
|
11719
|
+
constructor(requestControl, channel = "api") {
|
|
11720
|
+
this.channel = channel;
|
|
11694
11721
|
this.requestControl = requestControl;
|
|
11695
11722
|
}
|
|
11696
11723
|
async loadOpenApiDocument(url, signal) {
|
|
@@ -12210,7 +12237,10 @@ var ControlClient = class {
|
|
|
12210
12237
|
trigger: options.trigger,
|
|
12211
12238
|
version: 2
|
|
12212
12239
|
}),
|
|
12213
|
-
headers: {
|
|
12240
|
+
headers: {
|
|
12241
|
+
"idempotency-key": options.idempotencyKey ?? operationKey("run"),
|
|
12242
|
+
"x-open-flow-client": this.channel
|
|
12243
|
+
},
|
|
12214
12244
|
method: "POST"
|
|
12215
12245
|
}));
|
|
12216
12246
|
return created.source == "draft" ? created : invalidResponse();
|
|
@@ -12223,7 +12253,10 @@ var ControlClient = class {
|
|
|
12223
12253
|
publicationId,
|
|
12224
12254
|
version: 2
|
|
12225
12255
|
}),
|
|
12226
|
-
headers: {
|
|
12256
|
+
headers: {
|
|
12257
|
+
"idempotency-key": options.idempotencyKey ?? operationKey("run"),
|
|
12258
|
+
"x-open-flow-client": this.channel
|
|
12259
|
+
},
|
|
12227
12260
|
method: "POST"
|
|
12228
12261
|
}));
|
|
12229
12262
|
return created.source == "live" ? created : invalidResponse();
|
|
@@ -12565,7 +12598,7 @@ var mutationKey = id.max(256).describe("Stable identity for this mutation. Retry
|
|
|
12565
12598
|
var pageLimit = int().min(1).max(100).default(50);
|
|
12566
12599
|
var flow = id.describe("Exact Flow ID returned by flow_list or flow_create.");
|
|
12567
12600
|
var run = id.describe("Exact Run ID returned by flow_run or run_list.");
|
|
12568
|
-
var mcpInstructions = "Use flow_list, flow_read and flow_search to inspect root workflows. Read node type schemas with flow_schema. Use flow_edit with the observed baseRevision and a stable requestId. Node edits affect only the selected node. Text edits require exactly one match. Execution edges and input sources are independent. Legacy Subflow content is unsupported. Edits can save incomplete drafts; inspect returned diagnostics and use flow_check before running. Use flow_check before flow_run. Select an explicit Trigger node ID and fixed revision or publication. A new Flow has no Trigger until you add one. Before adding a Feishu Trigger, use event_source_list and compare its Connection IDs with connector_connections in the Flow scope. If no source is available, create and verify one in Workbench. Use flow_publish to publish a fixed Revision, then poll flow_publish_status until succeeded or failed. Use flow_live to inspect current online entries after publication. Use flow_set_enabled to enable or disable the observed Live publication. flow_run returns an accepted Run, not its final result. Find Runs with run_list, poll run_get and use run_result after terminal. Resolve a waiting Run only with an explicit run_resolve_wait action allowed by run_get. Use run_results and run_result_read to inspect stored Agent tool results; these are separate from the terminal Run result. Retry flow_edit with identical arguments and the same requestId. Retry flow_create, flow_import, flow_publish and flow_run only with identical arguments and the same idempotencyKey; a new key can execute the Flow again. Canvas commands are transient broadcasts without execution confirmation; never automatically retry flow_canvas because pan is relative. Other mutations use the same resource identity and arguments when retrying. Cancel a Run explicitly with run_cancel. Use nextCursor and nextAfter to read subsequent pages. Connector-backed deployments may require a Team; inspect connector_teams before creating a Flow.";
|
|
12601
|
+
var mcpInstructions = "Keep generated Flow and node names short enough to scan on the canvas. Aim for 2–4 English words or 4–8 Chinese characters, using the user's language unless the workflow has an established naming language. Name a Flow by its main purpose and a node by its action and object, such as \"AI Trend Digest\", \"Fetch trends\", \"Verify sources\", or \"发布文章\". Keep only qualifiers needed to distinguish similar nodes. Put detailed behavior in descriptions; avoid sentences, repeated workflow context, and obscure abbreviations. Preserve names explicitly supplied by the user, and do not rename unrelated existing nodes. Use flow_list, flow_read and flow_search to inspect root workflows. Read node type schemas with flow_schema. Use flow_edit with the observed baseRevision and a stable requestId. Node edits affect only the selected node. Text edits require exactly one match. Execution edges and input sources are independent. Legacy Subflow content is unsupported. Edits can save incomplete drafts; inspect returned diagnostics and use flow_check before running. Use flow_check before flow_run. Select an explicit Trigger node ID and fixed revision or publication. A new Flow has no Trigger until you add one. Before adding a Feishu Trigger, use event_source_list and compare its Connection IDs with connector_connections in the Flow scope. If no source is available, create and verify one in Workbench. Use flow_publish to publish a fixed Revision, then poll flow_publish_status until succeeded or failed. Use flow_live to inspect current online entries after publication. Use flow_set_enabled to enable or disable the observed Live publication. flow_run returns an accepted Run, not its final result. Find Runs with run_list, poll run_get and use run_result after terminal. Resolve a waiting Run only with an explicit run_resolve_wait action allowed by run_get. Use run_results and run_result_read to inspect stored Agent tool results; these are separate from the terminal Run result. Retry flow_edit with identical arguments and the same requestId. Retry flow_create, flow_import, flow_publish and flow_run only with identical arguments and the same idempotencyKey; a new key can execute the Flow again. Canvas commands are transient broadcasts without execution confirmation; never automatically retry flow_canvas because pan is relative. Other mutations use the same resource identity and arguments when retrying. Cancel a Run explicitly with run_cancel. Use nextCursor and nextAfter to read subsequent pages. Connector-backed deployments may require a Team; inspect connector_teams before creating a Flow.";
|
|
12569
12602
|
function tool(description, schema, readOnly, idempotent = true) {
|
|
12570
12603
|
return {
|
|
12571
12604
|
description,
|
package/dist/common/openapi.js
CHANGED
|
@@ -6687,6 +6687,7 @@ var webhookMethods = [
|
|
|
6687
6687
|
"DELETE"
|
|
6688
6688
|
];
|
|
6689
6689
|
var text = string();
|
|
6690
|
+
var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
|
|
6690
6691
|
var json = json$1();
|
|
6691
6692
|
var strings = array(text);
|
|
6692
6693
|
var port = object$1({
|
|
@@ -6742,7 +6743,7 @@ var capability = union([
|
|
|
6742
6743
|
mode: literal("independent"),
|
|
6743
6744
|
actions: array(strictObject({
|
|
6744
6745
|
action: text,
|
|
6745
|
-
connectionId:
|
|
6746
|
+
connectionId: actionConnection.optional()
|
|
6746
6747
|
}))
|
|
6747
6748
|
}),
|
|
6748
6749
|
strictObject({
|
|
@@ -6802,7 +6803,7 @@ var managedFields = object$1({
|
|
|
6802
6803
|
object$1({
|
|
6803
6804
|
kind: literal("connector"),
|
|
6804
6805
|
action: text,
|
|
6805
|
-
connectionId:
|
|
6806
|
+
connectionId: actionConnection.optional(),
|
|
6806
6807
|
outputMode: literal("value").optional()
|
|
6807
6808
|
}),
|
|
6808
6809
|
object$1({
|
|
@@ -6842,13 +6843,13 @@ var managedFields = object$1({
|
|
|
6842
6843
|
name: text,
|
|
6843
6844
|
description: text,
|
|
6844
6845
|
action: text,
|
|
6845
|
-
connectionId:
|
|
6846
|
+
connectionId: actionConnection.optional(),
|
|
6846
6847
|
approval: boolean(),
|
|
6847
6848
|
inputs: array(input.extend({ source: agentInput }))
|
|
6848
6849
|
})),
|
|
6849
6850
|
notification: object$1({
|
|
6850
6851
|
action: text,
|
|
6851
|
-
connectionId:
|
|
6852
|
+
connectionId: actionConnection.optional(),
|
|
6852
6853
|
inputDefinitions: array(input),
|
|
6853
6854
|
messageHandle: text,
|
|
6854
6855
|
inputs: record$1(text, agentValue)
|
|
@@ -6694,6 +6694,7 @@ var webhookMethods = [
|
|
|
6694
6694
|
"DELETE"
|
|
6695
6695
|
];
|
|
6696
6696
|
var text = string();
|
|
6697
|
+
var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
|
|
6697
6698
|
var json = json$1();
|
|
6698
6699
|
var strings = array(text);
|
|
6699
6700
|
var port = object({
|
|
@@ -6749,7 +6750,7 @@ var capability = union([
|
|
|
6749
6750
|
mode: literal("independent"),
|
|
6750
6751
|
actions: array(strictObject({
|
|
6751
6752
|
action: text,
|
|
6752
|
-
connectionId:
|
|
6753
|
+
connectionId: actionConnection.optional()
|
|
6753
6754
|
}))
|
|
6754
6755
|
}),
|
|
6755
6756
|
strictObject({
|
|
@@ -6809,7 +6810,7 @@ var managedFields = object({
|
|
|
6809
6810
|
object({
|
|
6810
6811
|
kind: literal("connector"),
|
|
6811
6812
|
action: text,
|
|
6812
|
-
connectionId:
|
|
6813
|
+
connectionId: actionConnection.optional(),
|
|
6813
6814
|
outputMode: literal("value").optional()
|
|
6814
6815
|
}),
|
|
6815
6816
|
object({
|
|
@@ -6849,13 +6850,13 @@ var managedFields = object({
|
|
|
6849
6850
|
name: text,
|
|
6850
6851
|
description: text,
|
|
6851
6852
|
action: text,
|
|
6852
|
-
connectionId:
|
|
6853
|
+
connectionId: actionConnection.optional(),
|
|
6853
6854
|
approval: boolean(),
|
|
6854
6855
|
inputs: array(input.extend({ source: agentInput }))
|
|
6855
6856
|
})),
|
|
6856
6857
|
notification: object({
|
|
6857
6858
|
action: text,
|
|
6858
|
-
connectionId:
|
|
6859
|
+
connectionId: actionConnection.optional(),
|
|
6859
6860
|
inputDefinitions: array(input),
|
|
6860
6861
|
messageHandle: text,
|
|
6861
6862
|
inputs: record$1(text, agentValue)
|
package/dist/common/scheduler.js
CHANGED
|
@@ -9496,6 +9496,7 @@ function webhookSupportsBody(method) {
|
|
|
9496
9496
|
return method !== "GET";
|
|
9497
9497
|
}
|
|
9498
9498
|
var text = string();
|
|
9499
|
+
var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
|
|
9499
9500
|
var json = json$1();
|
|
9500
9501
|
var strings = array(text);
|
|
9501
9502
|
var port = object({
|
|
@@ -9551,7 +9552,7 @@ var capability = union([
|
|
|
9551
9552
|
mode: literal("independent"),
|
|
9552
9553
|
actions: array(strictObject({
|
|
9553
9554
|
action: text,
|
|
9554
|
-
connectionId:
|
|
9555
|
+
connectionId: actionConnection.optional()
|
|
9555
9556
|
}))
|
|
9556
9557
|
}),
|
|
9557
9558
|
strictObject({
|
|
@@ -9611,7 +9612,7 @@ var managedFields = object({
|
|
|
9611
9612
|
object({
|
|
9612
9613
|
kind: literal("connector"),
|
|
9613
9614
|
action: text,
|
|
9614
|
-
connectionId:
|
|
9615
|
+
connectionId: actionConnection.optional(),
|
|
9615
9616
|
outputMode: literal("value").optional()
|
|
9616
9617
|
}),
|
|
9617
9618
|
object({
|
|
@@ -9651,13 +9652,13 @@ var managedFields = object({
|
|
|
9651
9652
|
name: text,
|
|
9652
9653
|
description: text,
|
|
9653
9654
|
action: text,
|
|
9654
|
-
connectionId:
|
|
9655
|
+
connectionId: actionConnection.optional(),
|
|
9655
9656
|
approval: boolean(),
|
|
9656
9657
|
inputs: array(input.extend({ source: agentInput$1 }))
|
|
9657
9658
|
})),
|
|
9658
9659
|
notification: object({
|
|
9659
9660
|
action: text,
|
|
9660
|
-
connectionId:
|
|
9661
|
+
connectionId: actionConnection.optional(),
|
|
9661
9662
|
inputDefinitions: array(input),
|
|
9662
9663
|
messageHandle: text,
|
|
9663
9664
|
inputs: record$1(text, agentValue)
|
|
@@ -5810,6 +5810,7 @@ function webhookSupportsBody(method) {
|
|
|
5810
5810
|
return method !== "GET";
|
|
5811
5811
|
}
|
|
5812
5812
|
var text = string();
|
|
5813
|
+
var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
|
|
5813
5814
|
var json = json$1();
|
|
5814
5815
|
var strings = array(text);
|
|
5815
5816
|
var port = object({
|
|
@@ -5865,7 +5866,7 @@ var capability = union([
|
|
|
5865
5866
|
mode: literal("independent"),
|
|
5866
5867
|
actions: array(strictObject({
|
|
5867
5868
|
action: text,
|
|
5868
|
-
connectionId:
|
|
5869
|
+
connectionId: actionConnection.optional()
|
|
5869
5870
|
}))
|
|
5870
5871
|
}),
|
|
5871
5872
|
strictObject({
|
|
@@ -5925,7 +5926,7 @@ var managedFields = object({
|
|
|
5925
5926
|
object({
|
|
5926
5927
|
kind: literal("connector"),
|
|
5927
5928
|
action: text,
|
|
5928
|
-
connectionId:
|
|
5929
|
+
connectionId: actionConnection.optional(),
|
|
5929
5930
|
outputMode: literal("value").optional()
|
|
5930
5931
|
}),
|
|
5931
5932
|
object({
|
|
@@ -5965,13 +5966,13 @@ var managedFields = object({
|
|
|
5965
5966
|
name: text,
|
|
5966
5967
|
description: text,
|
|
5967
5968
|
action: text,
|
|
5968
|
-
connectionId:
|
|
5969
|
+
connectionId: actionConnection.optional(),
|
|
5969
5970
|
approval: boolean(),
|
|
5970
5971
|
inputs: array(input.extend({ source: agentInput }))
|
|
5971
5972
|
})),
|
|
5972
5973
|
notification: object({
|
|
5973
5974
|
action: text,
|
|
5974
|
-
connectionId:
|
|
5975
|
+
connectionId: actionConnection.optional(),
|
|
5975
5976
|
inputDefinitions: array(input),
|
|
5976
5977
|
messageHandle: text,
|
|
5977
5978
|
inputs: record$1(text, agentValue)
|
package/dist/common/workflow.js
CHANGED
|
@@ -6687,6 +6687,7 @@ var webhookMethods = [
|
|
|
6687
6687
|
"DELETE"
|
|
6688
6688
|
];
|
|
6689
6689
|
var text = string();
|
|
6690
|
+
var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
|
|
6690
6691
|
var json = json$1();
|
|
6691
6692
|
var strings = array(text);
|
|
6692
6693
|
var port = object({
|
|
@@ -6742,7 +6743,7 @@ var capability = union([
|
|
|
6742
6743
|
mode: literal("independent"),
|
|
6743
6744
|
actions: array(strictObject({
|
|
6744
6745
|
action: text,
|
|
6745
|
-
connectionId:
|
|
6746
|
+
connectionId: actionConnection.optional()
|
|
6746
6747
|
}))
|
|
6747
6748
|
}),
|
|
6748
6749
|
strictObject({
|
|
@@ -6802,7 +6803,7 @@ var managedFields = object({
|
|
|
6802
6803
|
object({
|
|
6803
6804
|
kind: literal("connector"),
|
|
6804
6805
|
action: text,
|
|
6805
|
-
connectionId:
|
|
6806
|
+
connectionId: actionConnection.optional(),
|
|
6806
6807
|
outputMode: literal("value").optional()
|
|
6807
6808
|
}),
|
|
6808
6809
|
object({
|
|
@@ -6842,13 +6843,13 @@ var managedFields = object({
|
|
|
6842
6843
|
name: text,
|
|
6843
6844
|
description: text,
|
|
6844
6845
|
action: text,
|
|
6845
|
-
connectionId:
|
|
6846
|
+
connectionId: actionConnection.optional(),
|
|
6846
6847
|
approval: boolean(),
|
|
6847
6848
|
inputs: array(input.extend({ source: agentInput }))
|
|
6848
6849
|
})),
|
|
6849
6850
|
notification: object({
|
|
6850
6851
|
action: text,
|
|
6851
|
-
connectionId:
|
|
6852
|
+
connectionId: actionConnection.optional(),
|
|
6852
6853
|
inputDefinitions: array(input),
|
|
6853
6854
|
messageHandle: text,
|
|
6854
6855
|
inputs: record$1(text, agentValue)
|
package/package.json
CHANGED
|
@@ -14,6 +14,15 @@ Consult the references relevant to the task:
|
|
|
14
14
|
- [n8n conversion](references/flow-n8n-conversion.md): represent collections,
|
|
15
15
|
branches, provider operations and state while preserving source behavior.
|
|
16
16
|
|
|
17
|
+
Keep generated Flow and node names short enough to scan on the canvas. Aim for
|
|
18
|
+
2–4 English words or 4–8 Chinese characters, using the user's language unless
|
|
19
|
+
the workflow has an established naming language. Name a Flow by its main purpose
|
|
20
|
+
and a node by its action and object, such as `AI Trend Digest`, `Fetch trends`,
|
|
21
|
+
`Verify sources`, or `发布文章`. Keep only qualifiers needed to distinguish similar
|
|
22
|
+
nodes. Put detailed behavior in descriptions; avoid sentences, repeated workflow
|
|
23
|
+
context, and obscure abbreviations. Preserve names explicitly supplied by the
|
|
24
|
+
user, and do not rename unrelated existing nodes.
|
|
25
|
+
|
|
17
26
|
<!-- agentic:if localDevelopment -->
|
|
18
27
|
|
|
19
28
|
Run commands from this repository's root. The development CLI connects to the
|
|
@@ -289,6 +289,8 @@ unavailable action and an action lacking an active Connection are different
|
|
|
289
289
|
problems. Actions marked `authenticated: false` need no account. Connection
|
|
290
290
|
selection rules come from the selected node contract.
|
|
291
291
|
|
|
292
|
+
For Connector Tasks, independent Code Actions, Agent tools and notifications, an omitted `connectionId` means unconfigured; `connectionId: ""` explicitly defers account configuration. Deferred selections pass account readiness checks but fail with `connector.connection-required` if invoked. Deferred Agent tools are excluded from the callable tool set. Provider Triggers still require a nonempty account ID. Public edits and portable exports preserve the empty string; clear the field to return to the unconfigured state.
|
|
293
|
+
|
|
292
294
|
| Capability | Relevant schema and configuration |
|
|
293
295
|
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
294
296
|
| Provider read or write | `connector`: discovered `action`, optional `connectionId`, named input bindings. |
|