@fieldwangai/agentflow 0.1.160 → 0.1.163
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/bin/lib/auth.mjs +231 -14
- package/bin/lib/catalog-flows.mjs +2 -0
- package/bin/lib/cli-auth-page.mjs +103 -0
- package/bin/lib/flow-dsl/codegen.mjs +23 -2
- package/bin/lib/flow-dsl/lint.mjs +44 -0
- package/bin/lib/flow-dsl/parser.mjs +68 -1
- package/bin/lib/marketplace-usage.mjs +218 -0
- package/bin/lib/marketplace.mjs +183 -3
- package/bin/lib/node-package-manifest.mjs +1 -1
- package/bin/lib/skill-runtime.mjs +6 -0
- package/bin/lib/spaces.mjs +200 -0
- package/bin/lib/table.mjs +2 -3
- package/bin/lib/ui-server.mjs +471 -84
- package/bin/lib/workspace-draft.mjs +74 -0
- package/bin/lib/workspace-routes.mjs +484 -4
- package/bin/lib/workspace-server.mjs +373 -30
- package/bin/lib/workspace-state.mjs +2 -1
- package/builtin/nodes/agent_subAgent.md +5 -1
- package/builtin/nodes/context_bundle.md +44 -0
- package/builtin/nodes/context_knowledge.md +29 -0
- package/builtin/nodes/context_skills.md +29 -0
- package/builtin/nodes/context_workspace.md +36 -0
- package/builtin/nodes/control_while.md +12 -5
- package/builtin/nodes/tool_git_worktree_load.md +4 -3
- package/builtin/pipelines/new/workspace.flow.js +1 -1
- package/builtin/web-ui/dist/assets/{WorkflowAssistantThread-Bfo9Ythw.js → WorkflowAssistantThread-DmhIgoD7.js} +1 -1
- package/builtin/web-ui/dist/assets/index-CI9J6Unt.js +873 -0
- package/builtin/web-ui/dist/assets/index-DY5vE7v1.css +1 -0
- package/builtin/web-ui/dist/index.html +2 -2
- package/package.json +5 -1
- package/shared/slot-types.js +1 -0
- package/skills/agentflow-author-flow/SKILL.md +81 -8
- package/skills/agentflow-author-flow/agents/openai.yaml +3 -3
- package/skills/agentflow-cli/SKILL.md +179 -27
- package/skills/agentflow-cli/agents/openai.yaml +2 -2
- package/skills/agentflow-cli/runtime/bin/lib/skill-runtime.mjs +14879 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/agent_subAgent.md +38 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/context_bundle.md +44 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/context_knowledge.md +29 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/context_skills.md +29 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/context_workspace.md +36 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_agent_toBool.md +26 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_anyOne.md +19 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_cancelled.md +26 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_cd_workspace.md +50 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_delay.md +31 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_end.md +13 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_if.md +21 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_interval_loop.md +55 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_load_mcp.md +24 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_load_skills.md +35 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_parse_json.md +25 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_start.md +13 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_subflow_call.md +27 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_toBool.md +27 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_user_workspace.md +24 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_wait_until.md +34 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/control_while.md +131 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_ascii.md +24 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_chart.md +32 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_code.md +39 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_html.md +32 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_image.md +36 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_markdown.md +24 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_mermaid.md +24 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_react_app.md +53 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/display_table.md +32 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/provide_bool.md +14 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/provide_file.md +14 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/provide_json.md +14 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/provide_password.md +14 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/provide_str.md +14 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_display_share_link.md +47 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_get_env.md +20 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_git_checkout.md +70 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_git_worktree_load.md +74 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_git_worktree_unload.md +52 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_gitlab_create_mr.md +114 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_jenkins_build.md +67 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_load_key.md +26 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_nodejs.md +52 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_print.md +21 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_save_key.md +26 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_set_run_env.md +38 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_user_ask.md +27 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_user_check.md +26 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_wecom_send_app_markdown.md +57 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/tool_wecom_send_group_markdown.md +45 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/workspace_one_click_task.md +44 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/workspace_run.md +16 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/workspace_scheduled_run.md +16 -0
- package/skills/agentflow-cli/runtime/builtin/nodes/workspace_subflow_input.md +14 -0
- package/skills/agentflow-cli/runtime/package.json +6 -0
- package/skills/agentflow-cli/scripts/agentflow-auth-store.mjs +113 -0
- package/skills/agentflow-cli/scripts/agentflow-cli.mjs +457 -28
- package/skills/agentflow-cli/scripts/agentflow-runtime.mjs +11 -4
- package/skills/agentflow-flow-add-instances/SKILL.md +2 -2
- package/skills/agentflow-flow-dsl/SKILL.md +73 -8
- package/skills/agentflow-flow-dsl/agents/openai.yaml +2 -2
- package/skills/agentflow-flow-dsl/references/node-calls.md +6 -2
- package/skills/agentflow-flow-dsl/references/subflow-authoring.md +34 -7
- package/skills/agentflow-flow-edit-node-fields/SKILL.md +3 -3
- package/skills/agentflow-flow-recipes/SKILL.md +1 -1
- package/skills/agentflow-flow-recipes/references/recipes.md +1 -2
- package/skills/agentflow-flow-sync-ui/SKILL.md +1 -1
- package/skills/agentflow-node-dsl/SKILL.md +5 -13
- package/skills/agentflow-node-reference/references/builtin-nodes.md +37 -5
- package/skills/agentflow-workspace-markdown/SKILL.md +1 -1
- package/builtin/web-ui/dist/assets/index-XbeI5foV.js +0 -872
- package/builtin/web-ui/dist/assets/index-e1omCEau.css +0 -1
- package/skills/agentflow-workspace-graph/SKILL.md +0 -85
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:While 单步推进
|
|
3
|
+
runtime: native
|
|
4
|
+
description: |
|
|
5
|
+
Repeatedly execute either an explicit Condition/Body subflow pair or one legacy deterministic
|
|
6
|
+
step command (`script` or `scriptRef`) without adding a cycle to the Workspace graph. A Run
|
|
7
|
+
restarted after `wait` resumes from the saved output state.
|
|
8
|
+
|
|
9
|
+
Preferred DSL form:
|
|
10
|
+
`control.while("Advance", { state, maxIterations, timeout }, conditionFlow, bodyFlow)`.
|
|
11
|
+
An optional typed `context` input is captured once before iteration and forwarded only to
|
|
12
|
+
Condition/Body subflows that explicitly declare `flow.input("context", "context")`. Context is
|
|
13
|
+
never copied into business state, history, or checkpoints.
|
|
14
|
+
Condition must accept `state` and `iteration`, and return `decision` plus optional `summary`.
|
|
15
|
+
Only `continue` invokes Body. Body must accept `state`, `iteration`, and `idempotencyKey`, and
|
|
16
|
+
return the next `state` plus optional `summary`. `wait`, `done`, and `fail` skip Body.
|
|
17
|
+
|
|
18
|
+
In legacy script mode, the command runs once per iteration and stdout must be exactly one JSON object:
|
|
19
|
+
`{"decision":"continue|wait|done|fail","state":{},"summary":"..."}`.
|
|
20
|
+
`continue` starts another iteration, `wait` pauses this Run before downstream nodes, `done`
|
|
21
|
+
continues downstream, and `fail` fails the node. A missing `state` keeps the previous state.
|
|
22
|
+
|
|
23
|
+
Each step receives `AGENTFLOW_WHILE_STATE` (JSON), the absolute
|
|
24
|
+
`AGENTFLOW_WHILE_ITERATION`, `AGENTFLOW_WHILE_MAX_ITERATIONS`,
|
|
25
|
+
`AGENTFLOW_WHILE_TIMEOUT_MS`, and a stable per-iteration
|
|
26
|
+
`AGENTFLOW_WHILE_IDEMPOTENCY_KEY`. Pass the idempotency key to external write APIs when they
|
|
27
|
+
support one. Write progress logs to stderr because stdout is reserved for the decision object.
|
|
28
|
+
The command also supports the same runtime placeholders as `tool.nodejs`, including
|
|
29
|
+
`${flowDir}` and `${workspaceRoot}`.
|
|
30
|
+
|
|
31
|
+
A waiting checkpoint retains state, history, elapsed active time, and the next absolute
|
|
32
|
+
iteration. `maxIterations` and `timeout` are cumulative across resumes. A changed input resets
|
|
33
|
+
the checkpoint; a matching but malformed checkpoint fails closed. Step output is schema-strict
|
|
34
|
+
and bounded: unknown fields are rejected, state/stdout are limited to 1 MiB, stderr to 256 KiB,
|
|
35
|
+
and summary to 4000 characters.
|
|
36
|
+
displayName: While
|
|
37
|
+
ui:
|
|
38
|
+
card:
|
|
39
|
+
template: state-machine
|
|
40
|
+
icon: repeat
|
|
41
|
+
tone: purple
|
|
42
|
+
sections:
|
|
43
|
+
- type: binding
|
|
44
|
+
label: State input
|
|
45
|
+
input: state
|
|
46
|
+
- type: loop
|
|
47
|
+
label: Loop execution
|
|
48
|
+
field: script
|
|
49
|
+
- type: decision
|
|
50
|
+
label: Decision status
|
|
51
|
+
output: decision
|
|
52
|
+
source: step.stdout.decision
|
|
53
|
+
options:
|
|
54
|
+
- value: continue
|
|
55
|
+
label: continue
|
|
56
|
+
tone: purple
|
|
57
|
+
description: 保存 state 并立即进入下一轮
|
|
58
|
+
- value: wait
|
|
59
|
+
label: wait
|
|
60
|
+
tone: amber
|
|
61
|
+
description: 保存 checkpoint,暂停当前 Run
|
|
62
|
+
- value: done
|
|
63
|
+
label: done
|
|
64
|
+
tone: green
|
|
65
|
+
description: 结束循环并继续下游
|
|
66
|
+
- value: fail
|
|
67
|
+
label: fail
|
|
68
|
+
tone: red
|
|
69
|
+
description: 终止并标记节点失败
|
|
70
|
+
- type: metrics
|
|
71
|
+
label: Limits and progress
|
|
72
|
+
items:
|
|
73
|
+
- label: Iteration
|
|
74
|
+
output: iterations
|
|
75
|
+
maxInput: maxIterations
|
|
76
|
+
- label: Timeout
|
|
77
|
+
input: timeout
|
|
78
|
+
- type: summary
|
|
79
|
+
label: Latest outcome
|
|
80
|
+
output: summary
|
|
81
|
+
- type: history
|
|
82
|
+
label: Iteration history
|
|
83
|
+
output: history
|
|
84
|
+
limit: 3
|
|
85
|
+
input:
|
|
86
|
+
- type: node
|
|
87
|
+
name: prev
|
|
88
|
+
default: ""
|
|
89
|
+
- type: context
|
|
90
|
+
name: context
|
|
91
|
+
default: ""
|
|
92
|
+
showOnNode: true
|
|
93
|
+
- type: json
|
|
94
|
+
name: state
|
|
95
|
+
default: "null"
|
|
96
|
+
- type: text
|
|
97
|
+
name: maxIterations
|
|
98
|
+
default: "20"
|
|
99
|
+
- type: text
|
|
100
|
+
name: timeout
|
|
101
|
+
default: "30m"
|
|
102
|
+
output:
|
|
103
|
+
- type: node
|
|
104
|
+
name: next
|
|
105
|
+
default: ""
|
|
106
|
+
- type: json
|
|
107
|
+
name: result
|
|
108
|
+
default: ""
|
|
109
|
+
- type: json
|
|
110
|
+
name: state
|
|
111
|
+
default: "null"
|
|
112
|
+
- type: text
|
|
113
|
+
name: decision
|
|
114
|
+
default: ""
|
|
115
|
+
showOnNode: true
|
|
116
|
+
- type: text
|
|
117
|
+
name: iterations
|
|
118
|
+
default: "0"
|
|
119
|
+
showOnNode: true
|
|
120
|
+
- type: text
|
|
121
|
+
name: summary
|
|
122
|
+
default: ""
|
|
123
|
+
showOnNode: true
|
|
124
|
+
- type: json
|
|
125
|
+
name: history
|
|
126
|
+
default: "[]"
|
|
127
|
+
- type: text
|
|
128
|
+
name: checkpointFingerprint
|
|
129
|
+
default: ""
|
|
130
|
+
---
|
|
131
|
+
${USER_PROMPT}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:ASCII 图展示
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display ASCII diagram content in workspace canvas; passes diagram text downstream as text
|
|
5
|
+
displayName: ASCII Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
output:
|
|
16
|
+
- type: text
|
|
17
|
+
name: content
|
|
18
|
+
default: ""
|
|
19
|
+
showOnNode: true
|
|
20
|
+
- type: node
|
|
21
|
+
name: next
|
|
22
|
+
default: ""
|
|
23
|
+
---
|
|
24
|
+
${content}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Built-in node: Chart Display
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display a JSON ChartSpec with ECharts in workspace canvas; passes the JSON downstream as text
|
|
5
|
+
displayName: Chart Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
- type: file
|
|
16
|
+
name: filePath
|
|
17
|
+
default: ""
|
|
18
|
+
showOnNode: false
|
|
19
|
+
- type: text
|
|
20
|
+
name: workspaceContext
|
|
21
|
+
default: ""
|
|
22
|
+
showOnNode: false
|
|
23
|
+
output:
|
|
24
|
+
- type: text
|
|
25
|
+
name: content
|
|
26
|
+
default: ""
|
|
27
|
+
showOnNode: true
|
|
28
|
+
- type: node
|
|
29
|
+
name: next
|
|
30
|
+
default: ""
|
|
31
|
+
---
|
|
32
|
+
${content}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:代码展示
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display source code with language highlighting, line numbers, copy, wrap, and download controls; passes content downstream as text
|
|
5
|
+
displayName: Code Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
- type: text
|
|
16
|
+
name: language
|
|
17
|
+
default: ""
|
|
18
|
+
description: Syntax language such as javascript, typescript, python, kotlin, java, shell, json, yaml, html, css, or sql
|
|
19
|
+
showOnNode: false
|
|
20
|
+
- type: text
|
|
21
|
+
name: fileName
|
|
22
|
+
default: ""
|
|
23
|
+
description: Optional file name used when downloading
|
|
24
|
+
showOnNode: false
|
|
25
|
+
- type: bool
|
|
26
|
+
name: wrap
|
|
27
|
+
default: "false"
|
|
28
|
+
description: Wrap long source lines by default
|
|
29
|
+
showOnNode: false
|
|
30
|
+
output:
|
|
31
|
+
- type: text
|
|
32
|
+
name: content
|
|
33
|
+
default: ""
|
|
34
|
+
showOnNode: true
|
|
35
|
+
- type: node
|
|
36
|
+
name: next
|
|
37
|
+
default: ""
|
|
38
|
+
---
|
|
39
|
+
${content}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Built-in node: HTML Display
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display HTML content in workspace canvas; passes HTML downstream as text
|
|
5
|
+
displayName: HTML Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
- type: file
|
|
16
|
+
name: filePath
|
|
17
|
+
default: ""
|
|
18
|
+
showOnNode: false
|
|
19
|
+
- type: text
|
|
20
|
+
name: workspaceContext
|
|
21
|
+
default: ""
|
|
22
|
+
showOnNode: false
|
|
23
|
+
output:
|
|
24
|
+
- type: text
|
|
25
|
+
name: content
|
|
26
|
+
default: ""
|
|
27
|
+
showOnNode: true
|
|
28
|
+
- type: node
|
|
29
|
+
name: next
|
|
30
|
+
default: ""
|
|
31
|
+
---
|
|
32
|
+
${content}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Built-in node: Image Display
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display an image URL, data URL, or image path in workspace canvas; passes source downstream as text
|
|
5
|
+
displayName: Image Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: src
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
- type: file
|
|
16
|
+
name: filePath
|
|
17
|
+
default: ""
|
|
18
|
+
showOnNode: false
|
|
19
|
+
- type: text
|
|
20
|
+
name: alt
|
|
21
|
+
default: ""
|
|
22
|
+
showOnNode: false
|
|
23
|
+
- type: text
|
|
24
|
+
name: workspaceContext
|
|
25
|
+
default: ""
|
|
26
|
+
showOnNode: false
|
|
27
|
+
output:
|
|
28
|
+
- type: text
|
|
29
|
+
name: src
|
|
30
|
+
default: ""
|
|
31
|
+
showOnNode: true
|
|
32
|
+
- type: node
|
|
33
|
+
name: next
|
|
34
|
+
default: ""
|
|
35
|
+
---
|
|
36
|
+
${src}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:Markdown 展示
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display Markdown content in workspace canvas; passes content downstream as text
|
|
5
|
+
displayName: Markdown Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
output:
|
|
16
|
+
- type: text
|
|
17
|
+
name: content
|
|
18
|
+
default: ""
|
|
19
|
+
showOnNode: true
|
|
20
|
+
- type: node
|
|
21
|
+
name: next
|
|
22
|
+
default: ""
|
|
23
|
+
---
|
|
24
|
+
${content}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:Mermaid 展示
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display Mermaid diagram source in workspace canvas; passes diagram source downstream as text
|
|
5
|
+
displayName: Mermaid Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
output:
|
|
16
|
+
- type: text
|
|
17
|
+
name: content
|
|
18
|
+
default: ""
|
|
19
|
+
showOnNode: true
|
|
20
|
+
- type: node
|
|
21
|
+
name: next
|
|
22
|
+
default: ""
|
|
23
|
+
---
|
|
24
|
+
${content}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Built-in node: React App Display
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display a small React project in a sandboxed workspace iframe and pass the project JSON downstream
|
|
5
|
+
displayName: React App
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
- type: file
|
|
16
|
+
name: filePath
|
|
17
|
+
default: ""
|
|
18
|
+
showOnNode: false
|
|
19
|
+
- type: text
|
|
20
|
+
name: workspaceContext
|
|
21
|
+
default: ""
|
|
22
|
+
showOnNode: false
|
|
23
|
+
output:
|
|
24
|
+
- type: text
|
|
25
|
+
name: content
|
|
26
|
+
default: ""
|
|
27
|
+
showOnNode: true
|
|
28
|
+
- type: node
|
|
29
|
+
name: next
|
|
30
|
+
default: ""
|
|
31
|
+
---
|
|
32
|
+
{
|
|
33
|
+
"title": "React App",
|
|
34
|
+
"entry": "src/App.jsx",
|
|
35
|
+
"packageJson": {
|
|
36
|
+
"scripts": {
|
|
37
|
+
"dev": "vite --host 0.0.0.0",
|
|
38
|
+
"build": "vite build"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@vitejs/plugin-react": "latest",
|
|
42
|
+
"vite": "latest",
|
|
43
|
+
"react": "latest",
|
|
44
|
+
"react-dom": "latest"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {}
|
|
47
|
+
},
|
|
48
|
+
"files": {
|
|
49
|
+
"src/App.jsx": "export default function App() {\\n return (\\n <main>\\n <h1>React App</h1>\\n <p>Ask an Agent to replace this with a React project.</p>\\n </main>\\n );\\n}\\n",
|
|
50
|
+
"src/styles.css": "body { margin: 0; background: #111112; color: #f4f0ff; font-family: Inter, system-ui, sans-serif; }\\nmain { min-height: 100vh; padding: 24px; }\\nh1 { margin: 0 0 8px; font-size: 28px; }\\np { margin: 0; color: rgba(244, 240, 255, 0.68); }\\n"
|
|
51
|
+
},
|
|
52
|
+
"inputs": {}
|
|
53
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Built-in node: Table Display
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Display table data in workspace canvas; accepts JSON, Markdown table, CSV, or TSV and passes the text downstream
|
|
5
|
+
displayName: Table Display
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: content
|
|
12
|
+
default: ""
|
|
13
|
+
required: true
|
|
14
|
+
showOnNode: true
|
|
15
|
+
- type: file
|
|
16
|
+
name: filePath
|
|
17
|
+
default: ""
|
|
18
|
+
showOnNode: false
|
|
19
|
+
- type: text
|
|
20
|
+
name: workspaceContext
|
|
21
|
+
default: ""
|
|
22
|
+
showOnNode: false
|
|
23
|
+
output:
|
|
24
|
+
- type: text
|
|
25
|
+
name: content
|
|
26
|
+
default: ""
|
|
27
|
+
showOnNode: true
|
|
28
|
+
- type: node
|
|
29
|
+
name: next
|
|
30
|
+
default: ""
|
|
31
|
+
---
|
|
32
|
+
${content}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:直接提供布尔值
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Provide a boolean value directly, value will be passed to downstream as true or false
|
|
5
|
+
displayName: Boolean
|
|
6
|
+
input: []
|
|
7
|
+
output:
|
|
8
|
+
- type: bool
|
|
9
|
+
name: value
|
|
10
|
+
default: "false"
|
|
11
|
+
required: true
|
|
12
|
+
showOnNode: true
|
|
13
|
+
---
|
|
14
|
+
${USER_PROMPT}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:直接提供文件
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Provide file path or content directly, value will be passed to downstream as-is
|
|
5
|
+
displayName: File
|
|
6
|
+
input: []
|
|
7
|
+
output:
|
|
8
|
+
- type: file
|
|
9
|
+
name: value
|
|
10
|
+
default: ""
|
|
11
|
+
required: true
|
|
12
|
+
showOnNode: true
|
|
13
|
+
---
|
|
14
|
+
${USER_PROMPT}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Built-in node: directly provide a hidden password/secret value
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Provide a secret text value without showing it on the node card
|
|
5
|
+
displayName: Password
|
|
6
|
+
input: []
|
|
7
|
+
output:
|
|
8
|
+
- type: text
|
|
9
|
+
name: value
|
|
10
|
+
default: ""
|
|
11
|
+
required: true
|
|
12
|
+
showOnNode: true
|
|
13
|
+
---
|
|
14
|
+
${USER_PROMPT}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:直接提供文本
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Provide a text value directly, value will be passed to downstream as-is
|
|
5
|
+
displayName: String
|
|
6
|
+
input: []
|
|
7
|
+
output:
|
|
8
|
+
- type: text
|
|
9
|
+
name: value
|
|
10
|
+
default: ""
|
|
11
|
+
required: true
|
|
12
|
+
showOnNode: true
|
|
13
|
+
---
|
|
14
|
+
${USER_PROMPT}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Built-in node: create share link for Display nodes
|
|
3
|
+
runtime: native
|
|
4
|
+
description: Create a public share link for upstream Display nodes
|
|
5
|
+
displayName: Display Share Link
|
|
6
|
+
input:
|
|
7
|
+
- type: node
|
|
8
|
+
name: prev
|
|
9
|
+
default: ""
|
|
10
|
+
- type: text
|
|
11
|
+
name: title
|
|
12
|
+
default: ""
|
|
13
|
+
description: "可选。分享页标题;只影响打开分享页后的页面标题,不影响输出 URL。为空时使用 AgentFlow Display。"
|
|
14
|
+
showOnNode: true
|
|
15
|
+
- type: text
|
|
16
|
+
name: layout
|
|
17
|
+
default: "single"
|
|
18
|
+
description: "可选。分享页布局:single、gallery、slides、document、canvas。通常保持默认 single。"
|
|
19
|
+
showOnNode: false
|
|
20
|
+
- type: text
|
|
21
|
+
name: nodeIds
|
|
22
|
+
default: ""
|
|
23
|
+
description: "可选。逗号或空格分隔的 Display 节点 ID;为空时自动分享连接到本节点的上游 Display 节点。"
|
|
24
|
+
showOnNode: false
|
|
25
|
+
- type: text
|
|
26
|
+
name: baseUrl
|
|
27
|
+
default: ""
|
|
28
|
+
description: "可选。分享站点地址,例如 https://agentflow.example.com;为空时优先使用环境变量,其次使用当前访问地址。"
|
|
29
|
+
showOnNode: false
|
|
30
|
+
output:
|
|
31
|
+
- type: node
|
|
32
|
+
name: next
|
|
33
|
+
default: ""
|
|
34
|
+
- type: text
|
|
35
|
+
name: url
|
|
36
|
+
default: ""
|
|
37
|
+
showOnNode: true
|
|
38
|
+
- type: text
|
|
39
|
+
name: shareId
|
|
40
|
+
default: ""
|
|
41
|
+
showOnNode: false
|
|
42
|
+
- type: text
|
|
43
|
+
name: expiresAt
|
|
44
|
+
default: ""
|
|
45
|
+
showOnNode: false
|
|
46
|
+
---
|
|
47
|
+
Create a share link for connected Display nodes. Connect a Display node to this node, optionally set title, and use the url output.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:按 key 读取环境/配置
|
|
3
|
+
runtime: none
|
|
4
|
+
palette: hidden
|
|
5
|
+
description: Get environment variable value
|
|
6
|
+
displayName: GetEnv
|
|
7
|
+
input:
|
|
8
|
+
- type: text
|
|
9
|
+
name: key
|
|
10
|
+
default: ""
|
|
11
|
+
required: true
|
|
12
|
+
showOnNode: true
|
|
13
|
+
output:
|
|
14
|
+
- type: text
|
|
15
|
+
name: value
|
|
16
|
+
default: ""
|
|
17
|
+
required: true
|
|
18
|
+
showOnNode: true
|
|
19
|
+
---
|
|
20
|
+
${USER_PROMPT}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
# 内置节点:Git Checkout
|
|
3
|
+
runtime: native
|
|
4
|
+
description: |
|
|
5
|
+
Clone or update a Git repository and expose it as a workspace context for downstream nodes.
|
|
6
|
+
|
|
7
|
+
- `repoUrl` is required.
|
|
8
|
+
- `targetDir` may be absolute or relative to the current workspace context.
|
|
9
|
+
- If `targetDir` is empty, the repository is cloned into `${pipelineWorkspace}/.workspace/agentflow/git-repos/<repo-name>`. For user pipelines, `${pipelineWorkspace}` follows the Admin Settings AgentFlow Data Root.
|
|
10
|
+
- Set `includeSubmodules` to `true` to clone/update Git submodules recursively.
|
|
11
|
+
- The `workspaceContext` output can be connected to CD Workspace, Load Skills, agent, or tool nodes.
|
|
12
|
+
- The `gitContext` output can be connected to Worktree, GitLab MR, or other Git nodes.
|
|
13
|
+
displayName: Git Checkout
|
|
14
|
+
input:
|
|
15
|
+
- type: node
|
|
16
|
+
name: prev
|
|
17
|
+
default: ""
|
|
18
|
+
- type: text
|
|
19
|
+
name: repoUrl
|
|
20
|
+
default: ""
|
|
21
|
+
required: true
|
|
22
|
+
showOnNode: true
|
|
23
|
+
- type: text
|
|
24
|
+
name: branch
|
|
25
|
+
default: ""
|
|
26
|
+
- type: text
|
|
27
|
+
name: targetDir
|
|
28
|
+
default: ""
|
|
29
|
+
- type: bool
|
|
30
|
+
name: pullIfExists
|
|
31
|
+
default: "true"
|
|
32
|
+
- type: bool
|
|
33
|
+
name: includeSubmodules
|
|
34
|
+
default: "false"
|
|
35
|
+
- type: text
|
|
36
|
+
name: remote
|
|
37
|
+
default: "origin"
|
|
38
|
+
- type: text
|
|
39
|
+
name: workspaceContext
|
|
40
|
+
default: ""
|
|
41
|
+
required: true
|
|
42
|
+
showOnNode: true
|
|
43
|
+
output:
|
|
44
|
+
- type: node
|
|
45
|
+
name: next
|
|
46
|
+
default: ""
|
|
47
|
+
- type: file
|
|
48
|
+
name: repoPath
|
|
49
|
+
default: ""
|
|
50
|
+
- type: text
|
|
51
|
+
name: branch
|
|
52
|
+
default: ""
|
|
53
|
+
- type: text
|
|
54
|
+
name: commit
|
|
55
|
+
default: ""
|
|
56
|
+
- type: bool
|
|
57
|
+
name: changed
|
|
58
|
+
default: ""
|
|
59
|
+
- type: text
|
|
60
|
+
name: workspaceContext
|
|
61
|
+
default: ""
|
|
62
|
+
required: true
|
|
63
|
+
showOnNode: true
|
|
64
|
+
- type: text
|
|
65
|
+
name: gitContext
|
|
66
|
+
default: ""
|
|
67
|
+
required: true
|
|
68
|
+
showOnNode: true
|
|
69
|
+
---
|
|
70
|
+
Clone or update `${repoUrl}` and output workspace/git contexts for the checked-out repository.
|