langflower 0.0.9 → 0.1.0

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 (223) hide show
  1. package/README.md +96 -70
  2. package/docs/public/README.md +2 -2
  3. package/docs/public/configuration.md +4 -0
  4. package/docs/public/extending.md +18 -2
  5. package/docs/public/getting-started.md +7 -0
  6. package/docs/public/how-it-works.md +18 -11
  7. package/docs/public/product.md +35 -25
  8. package/package.json +2 -2
  9. package/ui-dist/chunk-QI4IYILJ.js +4 -0
  10. package/ui-dist/{chunk-7UMVYN3A.js → chunk-UG3GFV4Y.js} +1 -1
  11. package/ui-dist/index.html +2 -2
  12. package/ui-dist/main-ODIDCCNX.js +315 -0
  13. package/ui-dist/styles-2JMBAQC3.css +1 -0
  14. package/vendor/common-nodes/dist/ai/features/llm-loop/llm-loop-reducer.js +0 -12
  15. package/vendor/common-nodes/dist/ai/features/llm-loop/llm-loop-types.d.ts +2 -7
  16. package/vendor/common-nodes/dist/ai/features/llm-loop/llm-loop-types.js +1 -1
  17. package/vendor/common-nodes/dist/ai/features/llm-loop/run-agent-loop.d.ts +0 -3
  18. package/vendor/common-nodes/dist/ai/features/llm-loop/run-agent-loop.js +22 -36
  19. package/vendor/common-nodes/dist/ai/features/llm-loop/run-llm-loop.d.ts +1 -7
  20. package/vendor/common-nodes/dist/ai/features/llm-loop/run-llm-loop.js +12 -35
  21. package/vendor/common-nodes/dist/ai/features/llm-session/llm-session-shell.d.ts +5 -12
  22. package/vendor/common-nodes/dist/ai/features/llm-session/llm-session-shell.js +48 -21
  23. package/vendor/common-nodes/dist/ai/features/llm-session/run-session-machine.d.ts +11 -0
  24. package/vendor/common-nodes/dist/ai/features/llm-session/run-session-machine.js +2 -2
  25. package/vendor/common-nodes/dist/ai/features/path-choice/run-reactive-path-choice-loop.d.ts +0 -3
  26. package/vendor/common-nodes/dist/ai/features/path-choice/run-reactive-path-choice-loop.js +2 -15
  27. package/vendor/common-nodes/dist/ai/features/run-host-services.d.ts +10 -0
  28. package/vendor/common-nodes/dist/ai/features/sub-agent-protocol.d.ts +1 -0
  29. package/vendor/common-nodes/dist/ai/features/sub-agent-protocol.js +1 -0
  30. package/vendor/common-nodes/dist/ai/features/ui-schema/llm-recovery-ui-schema.d.ts +1 -1
  31. package/vendor/common-nodes/dist/ai/features/ui-schema/llm-recovery-ui-schema.js +1 -1
  32. package/vendor/common-nodes/dist/ai/features/wait-for-subagent-result.d.ts +1 -0
  33. package/vendor/common-nodes/dist/ai/features/wait-for-subagent-result.js +1 -0
  34. package/vendor/common-nodes/dist/ai/nodes/critique/node.d.ts +3 -3
  35. package/vendor/common-nodes/dist/ai/nodes/critique/node.js +10 -19
  36. package/vendor/common-nodes/dist/ai/nodes/fake-llm/node.d.ts +3 -3
  37. package/vendor/common-nodes/dist/ai/nodes/fake-llm/node.js +10 -11
  38. package/vendor/common-nodes/dist/ai/nodes/openai-llm/node.d.ts +3 -3
  39. package/vendor/common-nodes/dist/ai/nodes/openai-llm/node.js +7 -10
  40. package/vendor/common-nodes/dist/ai/nodes/review/node.d.ts +3 -3
  41. package/vendor/common-nodes/dist/ai/nodes/review/node.js +12 -19
  42. package/vendor/common-nodes/dist/ai/nodes/sub-agent/node.d.ts +5 -5
  43. package/vendor/common-nodes/dist/ai/nodes/sub-agent/node.js +251 -96
  44. package/vendor/common-nodes/dist/catalog.js +12 -0
  45. package/vendor/common-nodes/dist/crawl/crawl/node.js +11 -3
  46. package/vendor/common-nodes/dist/crawl/crawl-tools/node.js +5 -1
  47. package/vendor/common-nodes/dist/crawl/extract-links/node.js +7 -1
  48. package/vendor/common-nodes/dist/crawl/fetch-url/node.js +13 -4
  49. package/vendor/common-nodes/dist/crawl/save-page/node.js +11 -3
  50. package/vendor/common-nodes/dist/embeddings/create-embedding.d.ts +39 -0
  51. package/vendor/common-nodes/dist/embeddings/create-embedding.js +154 -0
  52. package/vendor/common-nodes/dist/embeddings/embed-provider/node.d.ts +53 -0
  53. package/vendor/common-nodes/dist/embeddings/embed-provider/node.js +126 -0
  54. package/vendor/common-nodes/dist/embeddings/embed-similarity/node.d.ts +20 -0
  55. package/vendor/common-nodes/dist/embeddings/embed-similarity/node.js +81 -0
  56. package/vendor/common-nodes/dist/embeddings/embed-text/node.d.ts +53 -0
  57. package/vendor/common-nodes/dist/embeddings/embed-text/node.js +91 -0
  58. package/vendor/common-nodes/dist/embeddings/from-embedding.d.ts +8 -0
  59. package/vendor/common-nodes/dist/embeddings/from-embedding.js +24 -0
  60. package/vendor/common-nodes/dist/embeddings/resolve-embedding-provider-model.d.ts +11 -0
  61. package/vendor/common-nodes/dist/embeddings/resolve-embedding-provider-model.js +8 -0
  62. package/vendor/common-nodes/dist/flow/checkpoint/node.js +7 -3
  63. package/vendor/common-nodes/dist/flow/delay/node.d.ts +2 -6
  64. package/vendor/common-nodes/dist/flow/delay/node.js +13 -9
  65. package/vendor/common-nodes/dist/flow/loop/node.js +7 -1
  66. package/vendor/common-nodes/dist/flow/merge/node.js +7 -1
  67. package/vendor/common-nodes/dist/flow/repeat/node.js +5 -1
  68. package/vendor/common-nodes/dist/flow/router/node.js +7 -1
  69. package/vendor/common-nodes/dist/hitl/chat-input/node.d.ts +2 -2
  70. package/vendor/common-nodes/dist/hitl/chat-input/node.js +8 -4
  71. package/vendor/common-nodes/dist/hitl/review-gate/node.js +11 -5
  72. package/vendor/common-nodes/dist/langflower-tools/node.js +5 -1
  73. package/vendor/common-nodes/dist/logic/assert/node.js +7 -1
  74. package/vendor/common-nodes/dist/logic/compare/node.js +7 -1
  75. package/vendor/common-nodes/dist/logic/gate/node.js +7 -1
  76. package/vendor/common-nodes/dist/logic/if/node.js +7 -1
  77. package/vendor/common-nodes/dist/logic/switch/node.js +7 -1
  78. package/vendor/common-nodes/dist/mcp/mcp-http/node.d.ts +4 -4
  79. package/vendor/common-nodes/dist/mcp/mcp-http/node.js +61 -60
  80. package/vendor/common-nodes/dist/mcp/mcp-stdio/node.d.ts +4 -4
  81. package/vendor/common-nodes/dist/mcp/mcp-stdio/node.js +58 -57
  82. package/vendor/common-nodes/dist/memory/memory-tools/node.js +5 -1
  83. package/vendor/common-nodes/dist/output/finish/node.js +13 -1
  84. package/vendor/common-nodes/dist/output/preview/node.js +9 -2
  85. package/vendor/common-nodes/dist/primitives/boolean/node.js +7 -1
  86. package/vendor/common-nodes/dist/primitives/number/node.js +7 -1
  87. package/vendor/common-nodes/dist/primitives/string/node.js +7 -1
  88. package/vendor/common-nodes/dist/primitives/string-multiline/node.d.ts +17 -0
  89. package/vendor/common-nodes/dist/primitives/string-multiline/node.js +31 -0
  90. package/vendor/common-nodes/dist/text/append-file/node.js +11 -3
  91. package/vendor/common-nodes/dist/text/concat/node.js +5 -1
  92. package/vendor/common-nodes/dist/text/read-file/node.js +9 -3
  93. package/vendor/common-nodes/dist/text/split-paced/node.d.ts +21 -0
  94. package/vendor/common-nodes/dist/text/split-paced/node.js +93 -0
  95. package/vendor/common-nodes/dist/text/write-file/node.js +11 -3
  96. package/vendor/common-nodes/dist/tools/collect-agent-tool-handles.d.ts +4 -4
  97. package/vendor/common-nodes/dist/tools/collect-agent-tool-handles.js +3 -11
  98. package/vendor/common-nodes/dist/tools/inventory-tool-round.d.ts +0 -10
  99. package/vendor/common-nodes/dist/tools/inventory-tool-round.js +0 -84
  100. package/vendor/common-nodes/dist/tools/tool-collection/node.d.ts +20 -0
  101. package/vendor/common-nodes/dist/tools/tool-collection/node.js +45 -0
  102. package/vendor/common-nodes/package.json +5 -5
  103. package/vendor/compiler/package.json +1 -1
  104. package/vendor/node-sdk/dist/node-factory/define-embed/embed-handle.d.ts +25 -0
  105. package/vendor/node-sdk/dist/node-factory/define-embed/embed-handle.js +25 -0
  106. package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.d.ts +3 -7
  107. package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.js +4 -44
  108. package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.d.ts +3 -5
  109. package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.js +3 -5
  110. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.d.ts +1 -0
  111. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.js +1 -0
  112. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.d.ts +4 -4
  113. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.js +2 -1
  114. package/vendor/node-sdk/dist/node-factory/define-node/define-node.d.ts +2 -0
  115. package/vendor/node-sdk/dist/node-factory/define-node/define-node.js +4 -1
  116. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.d.ts +3 -1
  117. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.js +2 -1
  118. package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.d.ts +15 -0
  119. package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.js +17 -1
  120. package/vendor/node-sdk/dist/node-factory/define-reactive-node/port-meta.d.ts +17 -4
  121. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.js +4 -2
  122. package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.d.ts +6 -7
  123. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ui-schema-inference.d.ts +1 -1
  124. package/vendor/node-sdk/dist/testing/create-node-harness.d.ts +30 -0
  125. package/vendor/node-sdk/dist/testing/create-node-harness.js +68 -0
  126. package/vendor/node-sdk/package.json +5 -5
  127. package/vendor/runtime/dist/port-feed-override.d.ts +13 -0
  128. package/vendor/runtime/dist/port-feed-override.js +21 -0
  129. package/vendor/runtime/dist/port-signal-from-response.d.ts +15 -0
  130. package/vendor/runtime/dist/port-signal-from-response.js +48 -0
  131. package/vendor/runtime/dist/runtime-runner.d.ts +8 -3
  132. package/vendor/runtime/dist/runtime-runner.js +102 -81
  133. package/vendor/runtime/dist/runtime.d.ts +3 -2
  134. package/vendor/runtime/dist/runtime.js +1 -1
  135. package/vendor/runtime/dist/testing/workflows/workflow-events.d.ts +2 -0
  136. package/vendor/runtime/dist/testing/workflows/workflow-events.js +7 -5
  137. package/vendor/runtime/dist/types.d.ts +26 -9
  138. package/vendor/runtime/dist/types.js +3 -0
  139. package/vendor/runtime/package.json +1 -1
  140. package/vendor/server/dist/bootstrap/project-bootstrap.service.d.ts +1 -1
  141. package/vendor/server/dist/bootstrap/seed-skeleton.d.ts +2 -2
  142. package/vendor/server/dist/bootstrap/seed-skeleton.js +17 -2
  143. package/vendor/server/dist/bridge/bind-embed-context.d.ts +7 -0
  144. package/vendor/server/dist/bridge/bind-embed-context.js +16 -0
  145. package/vendor/server/dist/bridge/build-execution-context.d.ts +2 -2
  146. package/vendor/server/dist/bridge/build-execution-context.js +8 -4
  147. package/vendor/server/dist/bridge/emit-bootstrap.js +4 -1
  148. package/vendor/server/dist/bridge/get-live-wired-tools.d.ts +3 -2
  149. package/vendor/server/dist/bridge/get-live-wired-tools.js +8 -5
  150. package/vendor/server/dist/bridge/settings-draft-controller.js +7 -3
  151. package/vendor/server/dist/bridge/wire-config-handlers.js +2 -0
  152. package/vendor/server/dist/bridge/wire-editor-handlers.js +14 -0
  153. package/vendor/server/dist/bridge/wire-runner-handlers.js +2 -2
  154. package/vendor/server/dist/bridge/wire-workflow-handlers.js +23 -9
  155. package/vendor/server/dist/checkpoint/run-checkpoint-session.js +3 -3
  156. package/vendor/server/dist/config/langflower-config.service.d.ts +2 -0
  157. package/vendor/server/dist/config/langflower-config.service.js +30 -0
  158. package/vendor/server/dist/session/build-session-bootstrap.js +1 -0
  159. package/vendor/server/dist/session/langflower-session.d.ts +3 -1
  160. package/vendor/server/dist/session/langflower-session.js +3 -1
  161. package/vendor/server/dist/session/reset-session-execution-feed.d.ts +6 -0
  162. package/vendor/server/dist/session/reset-session-execution-feed.js +8 -0
  163. package/vendor/server/dist/workflow/apply-editor-mutation.js +6 -0
  164. package/vendor/server/dist/workflow/workflow-persisted-inputs.js +8 -6
  165. package/vendor/server/skeleton/instructions.md +15 -3
  166. package/vendor/server/skeleton/nodes/hello-embed/README.md +185 -0
  167. package/vendor/server/skeleton/nodes/hello-embed/hello-embed.nodes.test.ts +181 -0
  168. package/vendor/server/skeleton/nodes/hello-embed/ingest.ts +126 -0
  169. package/vendor/server/skeleton/nodes/hello-embed/lib/chunk-markdown.test.ts +40 -0
  170. package/vendor/server/skeleton/nodes/hello-embed/lib/chunk-markdown.ts +123 -0
  171. package/vendor/server/skeleton/nodes/hello-embed/lib/ingest-search.test.ts +180 -0
  172. package/vendor/server/skeleton/nodes/hello-embed/lib/ingest.ts +128 -0
  173. package/vendor/server/skeleton/nodes/hello-embed/lib/paths.test.ts +20 -0
  174. package/vendor/server/skeleton/nodes/hello-embed/lib/paths.ts +70 -0
  175. package/vendor/server/skeleton/nodes/hello-embed/lib/schema.ts +21 -0
  176. package/vendor/server/skeleton/nodes/hello-embed/lib/search.ts +254 -0
  177. package/vendor/server/skeleton/nodes/hello-embed/lib/text-embedder.ts +14 -0
  178. package/vendor/server/skeleton/nodes/hello-embed/lib/vectors.ts +126 -0
  179. package/vendor/server/skeleton/nodes/hello-embed/lib/walk-markdown.test.ts +62 -0
  180. package/vendor/server/skeleton/nodes/hello-embed/lib/walk-markdown.ts +67 -0
  181. package/vendor/server/skeleton/nodes/hello-embed/package.json +11 -0
  182. package/vendor/server/skeleton/nodes/hello-embed/search-handle.ts +119 -0
  183. package/vendor/server/skeleton/nodes/hello-embed/search.ts +98 -0
  184. package/vendor/server/skeleton/nodes/hello-embed/tsconfig.json +14 -0
  185. package/vendor/server/skeleton/nodes/my-nodes/README.md +13 -3
  186. package/vendor/server/skeleton/nodes/my-nodes/package.json +1 -1
  187. package/vendor/server/skeleton/schemas/langflower-config.schema.json +4 -0
  188. package/vendor/server/skeleton/skills/langflower-helper/SKILL.md +125 -38
  189. package/vendor/server/skeleton/skills/langflower-helper/architecture.md +17 -6
  190. package/vendor/server/skeleton/skills/langflower-helper/layout.md +24 -17
  191. package/vendor/server/skeleton/skills/langflower-node-writer/SKILL.md +8 -1
  192. package/vendor/server/skeleton/skills/langflower-workflow-writer/SKILL.md +12 -8
  193. package/vendor/server/skeleton/workflows/kb-create.json +15 -43
  194. package/vendor/server/skeleton/workflows/kb-ingest.json +88 -0
  195. package/vendor/server/skeleton/workflows/kb-manual-search.json +105 -0
  196. package/vendor/server/skeleton/workflows/kb-navigate.json +8 -22
  197. package/vendor/server/skeleton/workflows/kb-rag.json +192 -0
  198. package/vendor/server/skeleton/workflows/kb-tool.json +111 -0
  199. package/vendor/server/skeleton/workflows/simple-coder.json +18 -46
  200. package/vendor/server/skeleton/workflows/starter.json +8 -22
  201. package/vendor/shared/dist/execution/derive-run-settle-outcome.js +2 -2
  202. package/vendor/shared/dist/execution/derive-run-settle-outcome.test.js +11 -8
  203. package/vendor/shared/dist/langflower-bus-config.d.ts +22 -6
  204. package/vendor/shared/dist/langflower-bus-config.js +23 -7
  205. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.test.js +8 -0
  206. package/vendor/shared/dist/langflower-config/settings-draft.d.ts +5 -0
  207. package/vendor/shared/dist/langflower-config/settings-draft.js +15 -7
  208. package/vendor/shared/dist/langflower-ws-waits.d.ts +3 -1
  209. package/vendor/shared/dist/langflower-ws-waits.js +2 -2
  210. package/vendor/shared/dist/langflower.d.ts +1 -1
  211. package/vendor/shared/dist/langflower.js +1 -1
  212. package/vendor/shared/dist/types/langflower-bootstrap.d.ts +6 -0
  213. package/vendor/shared/dist/types/langflower-config.d.ts +17 -0
  214. package/vendor/shared/dist/types/langflower-palette.d.ts +2 -1
  215. package/vendor/tools/dist/harness-types.d.ts +1 -1
  216. package/vendor/tools/dist/mcp/build-mcp-handle.d.ts +3 -21
  217. package/vendor/tools/dist/mcp/build-mcp-handle.js +2 -11
  218. package/vendor/tools/dist/mcp/create-system-mcp-handles.d.ts +9 -6
  219. package/vendor/tools/dist/mcp/create-system-mcp-handles.js +21 -17
  220. package/vendor/tools/package.json +1 -0
  221. package/ui-dist/chunk-MDGXX73Z.js +0 -4
  222. package/ui-dist/main-2JJGCNTD.js +0 -313
  223. package/ui-dist/styles-EOXODOI7.css +0 -1
@@ -0,0 +1,88 @@
1
+ {
2
+ "$schema": "../schemas/workflow.schema.json",
3
+ "metadata": {
4
+ "name": "KB ingest",
5
+ "description": "Sample embedding ingest: set Settings default embedding model, then Run. common-embed-provider fans out embed into hello-embed-ingest. Progress streams in the feed; finish stops the run.",
6
+ "createdAt": "2026-08-26T00:00:00.000Z",
7
+ "updatedAt": "2026-08-26T00:00:00.000Z"
8
+ },
9
+ "graph": {
10
+ "viewport": {
11
+ "x": 0,
12
+ "y": 0,
13
+ "scale": 1,
14
+ "width": 1100,
15
+ "height": 700
16
+ },
17
+ "nodes": [
18
+ {
19
+ "id": "trigger",
20
+ "type": "common-boolean",
21
+ "params": {},
22
+ "inputs": {
23
+ "value": true
24
+ },
25
+ "ui": {
26
+ "position": { "x": 40, "y": 160 },
27
+ "label": "Start"
28
+ }
29
+ },
30
+ {
31
+ "id": "embed-provider",
32
+ "type": "common-embed-provider",
33
+ "params": {
34
+ "providerId": "",
35
+ "model": ""
36
+ },
37
+ "inputs": {},
38
+ "ui": {
39
+ "position": { "x": 40, "y": 320 },
40
+ "label": "Embed provider"
41
+ }
42
+ },
43
+ {
44
+ "id": "ingest",
45
+ "type": "hello-embed-ingest",
46
+ "params": {},
47
+ "inputs": {},
48
+ "ui": {
49
+ "position": { "x": 320, "y": 200 },
50
+ "label": "Ingest"
51
+ }
52
+ },
53
+ {
54
+ "id": "done",
55
+ "type": "common-finish",
56
+ "params": {},
57
+ "inputs": {},
58
+ "ui": {
59
+ "position": { "x": 620, "y": 200 },
60
+ "label": "Finish"
61
+ }
62
+ }
63
+ ],
64
+ "edges": [
65
+ {
66
+ "edgeId": "e-trigger-ingest",
67
+ "fromNodeId": "trigger",
68
+ "fromPort": ["value", 0],
69
+ "toNodeId": "ingest",
70
+ "toPort": ["trigger", 0]
71
+ },
72
+ {
73
+ "edgeId": "e-embed-ingest",
74
+ "fromNodeId": "embed-provider",
75
+ "fromPort": ["embed", 0],
76
+ "toNodeId": "ingest",
77
+ "toPort": ["embed", 0]
78
+ },
79
+ {
80
+ "edgeId": "e-ingest-done",
81
+ "fromNodeId": "ingest",
82
+ "fromPort": ["finish", 0],
83
+ "toNodeId": "done",
84
+ "toPort": ["value", 0]
85
+ }
86
+ ]
87
+ }
88
+ }
@@ -0,0 +1,105 @@
1
+ {
2
+ "$schema": "../schemas/workflow.schema.json",
3
+ "metadata": {
4
+ "name": "KB manual search",
5
+ "description": "Sample embedding search: run KB ingest first, set Settings default embedding model. Edit the Query string and Run. Hits preview as text; JSON hits stop the run.",
6
+ "createdAt": "2026-08-26T00:00:00.000Z",
7
+ "updatedAt": "2026-08-26T00:00:00.000Z"
8
+ },
9
+ "graph": {
10
+ "viewport": {
11
+ "x": 0,
12
+ "y": 0,
13
+ "scale": 1,
14
+ "width": 1200,
15
+ "height": 700
16
+ },
17
+ "nodes": [
18
+ {
19
+ "id": "query",
20
+ "type": "common-string",
21
+ "params": {},
22
+ "inputs": {
23
+ "value": "project layout"
24
+ },
25
+ "ui": {
26
+ "position": { "x": 40, "y": 160 },
27
+ "label": "Query"
28
+ }
29
+ },
30
+ {
31
+ "id": "embed-provider",
32
+ "type": "common-embed-provider",
33
+ "params": {
34
+ "providerId": "",
35
+ "model": ""
36
+ },
37
+ "inputs": {},
38
+ "ui": {
39
+ "position": { "x": 40, "y": 320 },
40
+ "label": "Embed provider"
41
+ }
42
+ },
43
+ {
44
+ "id": "search",
45
+ "type": "hello-embed-search",
46
+ "params": {},
47
+ "inputs": {},
48
+ "ui": {
49
+ "position": { "x": 320, "y": 200 },
50
+ "label": "Search"
51
+ }
52
+ },
53
+ {
54
+ "id": "preview",
55
+ "type": "common-preview",
56
+ "params": {},
57
+ "inputs": {},
58
+ "ui": {
59
+ "position": { "x": 620, "y": 80 },
60
+ "label": "Preview"
61
+ }
62
+ },
63
+ {
64
+ "id": "done",
65
+ "type": "common-finish",
66
+ "params": {},
67
+ "inputs": {},
68
+ "ui": {
69
+ "position": { "x": 620, "y": 320 },
70
+ "label": "Finish"
71
+ }
72
+ }
73
+ ],
74
+ "edges": [
75
+ {
76
+ "edgeId": "e-query-search",
77
+ "fromNodeId": "query",
78
+ "fromPort": ["value", 0],
79
+ "toNodeId": "search",
80
+ "toPort": ["query", 0]
81
+ },
82
+ {
83
+ "edgeId": "e-embed-search",
84
+ "fromNodeId": "embed-provider",
85
+ "fromPort": ["embed", 0],
86
+ "toNodeId": "search",
87
+ "toPort": ["embed", 0]
88
+ },
89
+ {
90
+ "edgeId": "e-search-preview",
91
+ "fromNodeId": "search",
92
+ "fromPort": ["text", 0],
93
+ "toNodeId": "preview",
94
+ "toPort": ["text", 0]
95
+ },
96
+ {
97
+ "edgeId": "e-search-done",
98
+ "fromNodeId": "search",
99
+ "fromPort": ["hits", 0],
100
+ "toNodeId": "done",
101
+ "toPort": ["value", 0]
102
+ }
103
+ ]
104
+ }
105
+ }
@@ -53,7 +53,7 @@
53
53
  "maxFeedbackTurns": 6
54
54
  },
55
55
  "inputs": {
56
- "systemPrompt": "You answer questions about this project grounded in project memory.\n\nConvention: markdown under `.langflower/memory/` (built by the kb-create / Memory create workflow). Memory is also readable with harness file tools on `.langflower/memory/…`.\n\nBefore answering, use get_memory_tree / search_memory_grep / read_memory_section (yourself or via spawn_subagent Searcher). Prefer memory hits over guessing. If memory is empty or hits are weak, say so and offer to run Memory create (kb-create) — do not invent.\n\nWhen HITL feedback arrives, revise the answer — do not ignore it. Keep answers short and cite memory file paths / headings when available."
56
+ "systemPrompt": "You answer questions about this project grounded in project memory.\n\nConvention: markdown under `.langflower/memory/` (built by the kb-create / Memory create workflow). Memory is also readable with harness file tools on `.langflower/memory/…`.\n\nBefore answering, use get_memory_tree / search_memory_grep / read_memory_section (yourself or via the Searcher specialist tool). Prefer memory hits over guessing. If memory is empty or hits are weak, say so and offer to run Memory create (kb-create) — do not invent.\n\nWhen HITL feedback arrives, revise the answer — do not ignore it. Keep answers short and cite memory file paths / headings when available."
57
57
  },
58
58
  "ui": {
59
59
  "position": {
@@ -125,27 +125,6 @@
125
125
  "toNodeId": "searcher",
126
126
  "toPort": ["tools", 0]
127
127
  },
128
- {
129
- "edgeId": "e-reg-searcher",
130
- "fromNodeId": "searcher",
131
- "fromPort": ["registration", 0],
132
- "toNodeId": "navigator",
133
- "toPort": ["subagentRegistration", 0]
134
- },
135
- {
136
- "edgeId": "e-spawn-searcher",
137
- "fromNodeId": "navigator",
138
- "fromPort": ["subagent", 0],
139
- "toNodeId": "searcher",
140
- "toPort": ["task", 0]
141
- },
142
- {
143
- "edgeId": "e-result-searcher",
144
- "fromNodeId": "searcher",
145
- "fromPort": ["result", 0],
146
- "toNodeId": "navigator",
147
- "toPort": ["subagentResult", 0]
148
- },
149
128
  {
150
129
  "edgeId": "e-nav-review",
151
130
  "fromNodeId": "navigator",
@@ -159,6 +138,13 @@
159
138
  "fromPort": ["feedback", 0],
160
139
  "toNodeId": "navigator",
161
140
  "toPort": ["feedback", 0]
141
+ },
142
+ {
143
+ "edgeId": "e-tools-searcher",
144
+ "fromNodeId": "searcher",
145
+ "fromPort": ["subagent-registration", 0],
146
+ "toNodeId": "navigator",
147
+ "toPort": ["tools", 1]
162
148
  }
163
149
  ]
164
150
  }
@@ -0,0 +1,192 @@
1
+ {
2
+ "$schema": "../schemas/workflow.schema.json",
3
+ "metadata": {
4
+ "name": "KB RAG",
5
+ "description": "Simplified RAG: run KB ingest first, set Settings default embedding model. Chat Start. Hybrid retrieve packs Question + full-chunk Context into the LLM userPrompt. project_search is a second retrieve; grep/read open hit paths. Review feedback loops; Approve stops the run.",
6
+ "createdAt": "2026-08-26T00:00:00.000Z",
7
+ "updatedAt": "2026-08-26T20:30:34.296Z"
8
+ },
9
+ "graph": {
10
+ "viewport": {
11
+ "x": 77.33349609375,
12
+ "y": 180.26641845703125,
13
+ "scale": 0.85,
14
+ "width": 672.71875,
15
+ "height": 1005.328125
16
+ },
17
+ "nodes": [
18
+ {
19
+ "id": "chat",
20
+ "type": "common-chat-input",
21
+ "params": {},
22
+ "inputs": {
23
+ "message": "project overview"
24
+ },
25
+ "ui": {
26
+ "position": {
27
+ "x": 120,
28
+ "y": 200
29
+ },
30
+ "label": "Ask"
31
+ }
32
+ },
33
+ {
34
+ "id": "embed-provider",
35
+ "type": "common-embed-provider",
36
+ "params": {
37
+ "providerId": "",
38
+ "model": ""
39
+ },
40
+ "inputs": {},
41
+ "ui": {
42
+ "position": {
43
+ "x": 80,
44
+ "y": 540
45
+ },
46
+ "label": "Embed provider"
47
+ }
48
+ },
49
+ {
50
+ "id": "search",
51
+ "type": "hello-embed-search",
52
+ "params": {},
53
+ "inputs": {},
54
+ "ui": {
55
+ "position": {
56
+ "x": 400,
57
+ "y": 340
58
+ },
59
+ "label": "Vector search"
60
+ }
61
+ },
62
+ {
63
+ "id": "search-handle",
64
+ "type": "hello-embed-search-handle",
65
+ "params": {},
66
+ "inputs": {},
67
+ "ui": {
68
+ "position": {
69
+ "x": 360,
70
+ "y": 600
71
+ },
72
+ "label": "Project search"
73
+ }
74
+ },
75
+ {
76
+ "id": "agent",
77
+ "type": "common-openai-llm",
78
+ "params": {
79
+ "rolePreset": "custom",
80
+ "providerId": "",
81
+ "model": "",
82
+ "maxIterations": 8,
83
+ "maxFeedbackTurns": 4,
84
+ "toolPermissions": {
85
+ "read": "allow",
86
+ "glob": "allow",
87
+ "grep": "allow",
88
+ "edit": "deny",
89
+ "write": "deny",
90
+ "create": "deny",
91
+ "delete": "deny",
92
+ "bash": "deny"
93
+ }
94
+ },
95
+ "inputs": {
96
+ "systemPrompt": "The user message is Question plus Context: hybrid-retrieved markdown chunks (full bodies, path, heading, score). Answer from Context. Cite path and heading. Call project_search, grep, or read only when Context is missing the detail. If hits are missing or weak, retrieve again rather than inventing. On HITL feedback, search or grep again if needed and revise."
97
+ },
98
+ "ui": {
99
+ "position": {
100
+ "x": 620,
101
+ "y": 180
102
+ },
103
+ "label": "Agent"
104
+ }
105
+ },
106
+ {
107
+ "id": "review",
108
+ "type": "common-hitl-review-gate",
109
+ "params": {},
110
+ "inputs": {},
111
+ "ui": {
112
+ "position": {
113
+ "x": 880,
114
+ "y": 520
115
+ },
116
+ "label": "Review"
117
+ }
118
+ },
119
+ {
120
+ "id": "done",
121
+ "type": "common-finish",
122
+ "params": {},
123
+ "inputs": {},
124
+ "ui": {
125
+ "position": {
126
+ "x": 1100,
127
+ "y": 560
128
+ },
129
+ "label": "Finish"
130
+ }
131
+ }
132
+ ],
133
+ "edges": [
134
+ {
135
+ "edgeId": "e-chat-search",
136
+ "fromNodeId": "chat",
137
+ "fromPort": ["message", 0],
138
+ "toNodeId": "search",
139
+ "toPort": ["query", 0]
140
+ },
141
+ {
142
+ "edgeId": "e-embed-search",
143
+ "fromNodeId": "embed-provider",
144
+ "fromPort": ["embed", 0],
145
+ "toNodeId": "search",
146
+ "toPort": ["embed", 0]
147
+ },
148
+ {
149
+ "edgeId": "e-embed-handle",
150
+ "fromNodeId": "embed-provider",
151
+ "fromPort": ["embed", 0],
152
+ "toNodeId": "search-handle",
153
+ "toPort": ["embed", 0]
154
+ },
155
+ {
156
+ "edgeId": "e-search-agent",
157
+ "fromNodeId": "search",
158
+ "fromPort": ["text", 0],
159
+ "toNodeId": "agent",
160
+ "toPort": ["userPrompt", 0]
161
+ },
162
+ {
163
+ "edgeId": "e-tools-agent",
164
+ "fromNodeId": "search-handle",
165
+ "fromPort": ["tools", 0],
166
+ "toNodeId": "agent",
167
+ "toPort": ["tools", 0]
168
+ },
169
+ {
170
+ "edgeId": "e-agent-review",
171
+ "fromNodeId": "agent",
172
+ "fromPort": ["response", 0],
173
+ "toNodeId": "review",
174
+ "toPort": ["result", 0]
175
+ },
176
+ {
177
+ "edgeId": "e-review-feedback",
178
+ "fromNodeId": "review",
179
+ "fromPort": ["feedback", 0],
180
+ "toNodeId": "agent",
181
+ "toPort": ["feedback", 0]
182
+ },
183
+ {
184
+ "edgeId": "e-review-done",
185
+ "fromNodeId": "review",
186
+ "fromPort": ["response", 0],
187
+ "toNodeId": "done",
188
+ "toPort": ["value", 0]
189
+ }
190
+ ]
191
+ }
192
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "$schema": "../schemas/workflow.schema.json",
3
+ "metadata": {
4
+ "name": "KB tool",
5
+ "description": "Sample embedding tool loop: run KB ingest first, set Settings default embedding model. Chat Start. The agent calls project_search (hello-embed-search-handle) and cites path + heading.",
6
+ "createdAt": "2026-08-26T00:00:00.000Z",
7
+ "updatedAt": "2026-08-26T00:00:00.000Z"
8
+ },
9
+ "graph": {
10
+ "viewport": {
11
+ "x": 0,
12
+ "y": 0,
13
+ "scale": 0.9,
14
+ "width": 1200,
15
+ "height": 800
16
+ },
17
+ "nodes": [
18
+ {
19
+ "id": "chat",
20
+ "type": "common-chat-input",
21
+ "params": {},
22
+ "inputs": {},
23
+ "ui": {
24
+ "position": { "x": 40, "y": 200 },
25
+ "label": "Ask"
26
+ }
27
+ },
28
+ {
29
+ "id": "embed-provider",
30
+ "type": "common-embed-provider",
31
+ "params": {
32
+ "providerId": "",
33
+ "model": ""
34
+ },
35
+ "inputs": {},
36
+ "ui": {
37
+ "position": { "x": 40, "y": 40 },
38
+ "label": "Embed provider"
39
+ }
40
+ },
41
+ {
42
+ "id": "search-handle",
43
+ "type": "hello-embed-search-handle",
44
+ "params": {},
45
+ "inputs": {},
46
+ "ui": {
47
+ "position": { "x": 320, "y": 40 },
48
+ "label": "Project search"
49
+ }
50
+ },
51
+ {
52
+ "id": "agent",
53
+ "type": "common-openai-llm",
54
+ "params": {
55
+ "rolePreset": "custom",
56
+ "providerId": "",
57
+ "model": "",
58
+ "maxIterations": 8,
59
+ "maxFeedbackTurns": 4
60
+ },
61
+ "inputs": {
62
+ "systemPrompt": "You answer questions about this project using the project_search tool (markdown chunks with embeddings). Always call project_search first. Cite file path and heading from the hits. If hits are weak or the index is empty, say so — do not invent. On HITL feedback, search again if needed and revise."
63
+ },
64
+ "ui": {
65
+ "position": { "x": 320, "y": 200 },
66
+ "label": "Agent"
67
+ }
68
+ },
69
+ {
70
+ "id": "review",
71
+ "type": "common-hitl-review-gate",
72
+ "params": {},
73
+ "inputs": {},
74
+ "ui": {
75
+ "position": { "x": 640, "y": 220 },
76
+ "label": "Review"
77
+ }
78
+ }
79
+ ],
80
+ "edges": [
81
+ {
82
+ "edgeId": "e-chat-agent",
83
+ "fromNodeId": "chat",
84
+ "fromPort": ["message", 0],
85
+ "toNodeId": "agent",
86
+ "toPort": ["userPrompt", 0]
87
+ },
88
+ {
89
+ "edgeId": "e-embed-handle",
90
+ "fromNodeId": "embed-provider",
91
+ "fromPort": ["embed", 0],
92
+ "toNodeId": "search-handle",
93
+ "toPort": ["embed", 0]
94
+ },
95
+ {
96
+ "edgeId": "e-tools-agent",
97
+ "fromNodeId": "search-handle",
98
+ "fromPort": ["tools", 0],
99
+ "toNodeId": "agent",
100
+ "toPort": ["tools", 0]
101
+ },
102
+ {
103
+ "edgeId": "e-agent-review",
104
+ "fromNodeId": "agent",
105
+ "fromPort": ["response", 0],
106
+ "toNodeId": "review",
107
+ "toPort": ["result", 0]
108
+ }
109
+ ]
110
+ }
111
+ }