langflower 0.1.2 → 0.2.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.
- package/README.md +573 -114
- package/dist/{chunk-WV2YWHOC.js → chunk-26UB55E5.js} +44 -4
- package/dist/{chunk-AO33IM2J.js → chunk-2LE3E2QP.js} +24 -23
- package/dist/{chunk-NIRPHJLO.js → chunk-3Z7Q6SQ5.js} +501 -242
- package/dist/{chunk-CVTPGIZE.js → chunk-RZUZX6PW.js} +2 -4
- package/dist/index.js +41152 -41395
- package/docs/public/README.md +1 -0
- package/docs/public/extending.md +21 -3
- package/docs/public/getting-started.md +9 -1
- package/docs/public/how-it-works.md +2 -2
- package/docs/public/launcher.md +111 -0
- package/package.json +1 -1
- package/ui-dist/apple-touch-icon.png +0 -0
- package/ui-dist/{chunk-EZTB7Q33.js → chunk-HEF6F5HN.js} +3 -3
- package/ui-dist/{chunk-BKIP5WRK.js → chunk-IASSR2ON.js} +1 -1
- package/ui-dist/favicon-32x32.png +0 -0
- package/ui-dist/favicon.ico +0 -0
- package/ui-dist/index.html +5 -2
- package/ui-dist/main-NBS6BFBP.js +323 -0
- package/ui-dist/styles-M2URERWI.css +1 -0
- package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.js +1 -1
- package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.d.ts +9 -21
- package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.js +9 -3
- package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.d.ts +0 -1
- package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.js +0 -9
- package/vendor/node-sdk/dist/node-factory/define-node/define-node.d.ts +5 -1
- package/vendor/node-sdk/dist/node-factory/define-node/define-node.js +6 -3
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/capabilities.d.ts +128 -0
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/capabilities.js +25 -0
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.d.ts +29 -17
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.js +14 -6
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.d.ts +19 -5
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.js +4 -3
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/port-meta.d.ts +6 -1
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.d.ts +40 -22
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.js +2 -0
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/ui-schema-inference.d.ts +1 -1
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.d.ts +13 -25
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.js +9 -8
- package/vendor/node-sdk/dist/testing/create-node-harness.d.ts +9 -2
- package/vendor/node-sdk/dist/testing/create-node-harness.js +6 -2
- package/vendor/node-sdk/package.json +5 -0
- package/vendor/runtime/dist/bypass-ports.d.ts +0 -6
- package/vendor/runtime/dist/bypass-ports.js +0 -7
- package/vendor/runtime/dist/runtime-editor.d.ts +1 -1
- package/vendor/runtime/dist/runtime-editor.js +1 -1
- package/vendor/runtime/dist/runtime-helpers.d.ts +0 -1
- package/vendor/runtime/dist/runtime-helpers.js +0 -33
- package/vendor/runtime/dist/runtime-runner.d.ts +4 -0
- package/vendor/runtime/dist/runtime-runner.js +60 -36
- package/vendor/runtime/dist/runtime.d.ts +0 -1
- package/vendor/runtime/dist/runtime.js +0 -1
- package/vendor/runtime/dist/types.d.ts +27 -17
- package/vendor/server/skeleton/instructions.md +6 -0
- package/vendor/server/skeleton/nodes/my-nodes/README.md +19 -1
- package/vendor/server/skeleton/schemas/langflower-config.schema.json +1 -1
- package/vendor/server/skeleton/skills/langflower-helper/SKILL.md +44 -10
- package/vendor/server/skeleton/skills/langflower-helper/architecture.md +4 -1
- package/vendor/server/skeleton/skills/langflower-helper/layout.md +6 -4
- package/vendor/server/skeleton/skills/langflower-node-writer/SKILL.md +47 -3
- package/vendor/server/skeleton/skills/langflower-workflow-writer/SKILL.md +29 -17
- package/vendor/server/skeleton/workflows/advanced-coder.json +24 -2
- package/vendor/server/skeleton/workflows/kb-create.json +24 -16
- package/vendor/server/skeleton/workflows/kb-manual-search.json +1 -1
- package/vendor/server/skeleton/workflows/kb-navigate.json +24 -2
- package/vendor/server/skeleton/workflows/kb-rag.json +1 -0
- package/vendor/server/skeleton/workflows/simple-coder.json +3 -0
- package/vendor/server/skeleton/workflows/starter.json +2 -0
- package/ui-dist/main-JJURZFKA.js +0 -318
- package/ui-dist/styles-VA3HMZK7.css +0 -1
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.d.ts +0 -5
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.js +0 -5
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm.d.ts +0 -3
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/define-mcp.d.ts +0 -50
- package/vendor/node-sdk/dist/node-factory/define-mcp/define-mcp.js +0 -60
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.d.ts +0 -15
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-server-config.d.ts +0 -17
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-server-config.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-transport.d.ts +0 -20
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-transport.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp.d.ts +0 -3
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.d.ts +0 -20
- package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.js +0 -22
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/chat-completion-stream.d.ts +0 -50
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/chat-completion-stream.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/crawl-context.d.ts +0 -22
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/crawl-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/create-embedding.d.ts +0 -6
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/create-embedding.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-tool-registrations.d.ts +0 -52
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-tool-registrations.js +0 -52
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/kb-context.d.ts +0 -111
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/kb-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/memory-context.d.ts +0 -12
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/memory-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-files-context.d.ts +0 -10
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-files-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-harness.d.ts +0 -56
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-harness.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.js +0 -60
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.js +0 -26
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.js +0 -21
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.js +0 -27
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.d.ts +0 -17
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.js +0 -21
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.d.ts +0 -21
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.js +0 -43
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.js +0 -31
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.d.ts +0 -17
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.js +0 -19
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.d.ts +0 -18
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.js +0 -12
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/tool-registration.d.ts +0 -36
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/tool-registration.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-registration.d.ts +0 -46
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-registration.js +0 -2
package/docs/public/README.md
CHANGED
|
@@ -7,6 +7,7 @@ package).
|
|
|
7
7
|
| Manual | Topic |
|
|
8
8
|
| ------------------------------------------ | ----------------------------------------- |
|
|
9
9
|
| [Getting started](getting-started.md) | Install, first run, ports |
|
|
10
|
+
| [Desktop launcher](launcher.md) | Folder picker window, Start / Stop / Open |
|
|
10
11
|
| [Product overview](product.md) | Local node graph: pitch, compare, lacks |
|
|
11
12
|
| [Using the editor](using-the-editor.md) | Canvas, runs, human review, reconnect |
|
|
12
13
|
| [Workflow ideas](workflows.md) | Common scenarios you can build |
|
package/docs/public/extending.md
CHANGED
|
@@ -63,9 +63,27 @@ Use `defineReactiveNode` only when you need streaming / RxJS ports. Prefer
|
|
|
63
63
|
|
|
64
64
|
## After you change a pack
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
No restart needed: open the **node library** sidebar, expand the **Custom**
|
|
67
|
+
section, and press **Update**. Langflower recompiles the packs under
|
|
68
|
+
`.langflower/nodes/` and hot-swaps the catalog — new or changed node types
|
|
69
|
+
appear in the library for that project. Compilation errors are listed under the
|
|
70
|
+
same section.
|
|
71
|
+
|
|
72
|
+
Restart Langflower only when you added pack **dependencies** (run `npm install`
|
|
73
|
+
inside the pack first).
|
|
74
|
+
|
|
75
|
+
## After you upgrade Langflower
|
|
76
|
+
|
|
77
|
+
Your packs are compiled against the SDK that ships **inside the installed
|
|
78
|
+
Langflower**, not against the `@langflower/node-sdk` version written in the pack
|
|
79
|
+
`package.json` (that entry is an editor hint). An upgrade therefore recompiles
|
|
80
|
+
every pack on next use:
|
|
81
|
+
|
|
82
|
+
- Compatible SDK change — nothing to do.
|
|
83
|
+
- A pack using API that the new SDK removed or renamed fails to compile: the
|
|
84
|
+
errors are listed in the **Custom** palette section and in that pack's
|
|
85
|
+
`COMPILATION_ERRORS.md`. Only that pack is skipped; other packs keep working.
|
|
86
|
+
Fix the source and press **Update**.
|
|
69
87
|
|
|
70
88
|
## Deeper guides (monorepo)
|
|
71
89
|
|
|
@@ -23,7 +23,15 @@ langflower ./my-project
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Langflower starts a local server and opens the UI in your browser (default
|
|
26
|
-
`http://127.0.0.1:4010`).
|
|
26
|
+
`http://127.0.0.1:4010`). An optional desktop **launcher** can pick folders
|
|
27
|
+
and start the same CLI without a terminal — several projects at once, each
|
|
28
|
+
on its own port. User manual:
|
|
29
|
+
[Desktop launcher](launcher.md). Unsigned
|
|
30
|
+
Windows and macOS zips are on
|
|
31
|
+
[GitHub Releases](https://github.com/earthdmitriy/langflower/releases)
|
|
32
|
+
(tags `launcher-v*`, not the npm `v*` tags). You still need Node.js and
|
|
33
|
+
`npm install -g langflower`. On macOS, right-click **Langflower.app** →
|
|
34
|
+
Open.
|
|
27
35
|
|
|
28
36
|
Stop the process with Ctrl+C when you are done. There is no cloud account and
|
|
29
37
|
no background daemon.
|
|
@@ -42,5 +42,5 @@ See [Extending](extending.md) and [Configuration](configuration.md).
|
|
|
42
42
|
|
|
43
43
|
## Monorepo deep dives
|
|
44
44
|
|
|
45
|
-
In the Langflower source tree (not shipped here): `docs/ARCHITECTURE.md`,
|
|
46
|
-
`docs/EXECUTION_ARCHITECTURE.md`, and `docs/PRINCIPLES.md`.
|
|
45
|
+
In the Langflower source tree (not shipped here): `docs/architecture/ARCHITECTURE.md`,
|
|
46
|
+
`docs/architecture/EXECUTION_ARCHITECTURE.md`, and `docs/architecture/PRINCIPLES.md`.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Desktop launcher
|
|
2
|
+
|
|
3
|
+
The launcher is a small window that starts Langflower **without a
|
|
4
|
+
terminal**. It picks a project folder, can install Node.js and the
|
|
5
|
+
global `langflower` CLI, then runs the **same** CLI a terminal user
|
|
6
|
+
would run. The editor still opens in your **system browser**.
|
|
7
|
+
|
|
8
|
+
This window is not the canvas. It does not embed the editor, and it
|
|
9
|
+
does not include Node.js or the CLI inside the zip.
|
|
10
|
+
|
|
11
|
+
## Download
|
|
12
|
+
|
|
13
|
+
Unsigned Windows and macOS zips are on
|
|
14
|
+
[GitHub Releases](https://github.com/earthdmitriy/langflower/releases)
|
|
15
|
+
(tags `launcher-v*`, not the npm `v*` tags).
|
|
16
|
+
|
|
17
|
+
- `langflower-launcher-windows-x64.zip`
|
|
18
|
+
- `langflower-launcher-windows-arm64.zip`
|
|
19
|
+
- `langflower-launcher-macos-arm64.zip`
|
|
20
|
+
- `langflower-launcher-macos-x64.zip`
|
|
21
|
+
|
|
22
|
+
The macOS zip contains `Langflower.app` (so Finder does not open
|
|
23
|
+
Terminal). Unpack and run `langflower-launcher.exe` (Windows) or
|
|
24
|
+
`Langflower.app` (macOS). Windows SmartScreen and macOS Gatekeeper
|
|
25
|
+
will warn because the files are unsigned. On macOS: right-click the
|
|
26
|
+
**app** → **Open**.
|
|
27
|
+
|
|
28
|
+
Linux has no published zip in v1.
|
|
29
|
+
|
|
30
|
+
## First run
|
|
31
|
+
|
|
32
|
+
You still need:
|
|
33
|
+
|
|
34
|
+
1. **Node.js ≥ 22**
|
|
35
|
+
2. The global CLI: `npm install -g langflower`
|
|
36
|
+
|
|
37
|
+
If Node is missing or too old, the window shows **Install Node.js**
|
|
38
|
+
(Windows: winget LTS; macOS: official Node `.pkg` from nodejs.org, which
|
|
39
|
+
asks for administrator permission). If Node is fine but Langflower is
|
|
40
|
+
missing, it shows **Install Langflower**. If a newer CLI is on npm, it
|
|
41
|
+
offers **Update** and **Skip**. Skip lasts for this session only.
|
|
42
|
+
|
|
43
|
+
Install buttons are hidden while any project the launcher started is
|
|
44
|
+
still running. Stop those first.
|
|
45
|
+
|
|
46
|
+
The **?** button in the title row opens this page on GitHub.
|
|
47
|
+
|
|
48
|
+
## Start a project
|
|
49
|
+
|
|
50
|
+
1. **Browse** to a folder, type a path, or click a **Recent** row.
|
|
51
|
+
**×** on a row removes it from recents only (it does not Stop a
|
|
52
|
+
running project).
|
|
53
|
+
2. Click **Start Langflower** (or press Enter in the path field).
|
|
54
|
+
3. Wait until the hint says the project is running on a port.
|
|
55
|
+
4. The system browser opens `http://127.0.0.1:<port>` after the CLI is
|
|
56
|
+
ready. Use **Open Langflower ↗** (or **Open UI ↗** on a recent row)
|
|
57
|
+
if you closed the tab.
|
|
58
|
+
|
|
59
|
+
An empty folder is fine: the CLI creates `.langflower/` on first start.
|
|
60
|
+
Your other files are left alone.
|
|
61
|
+
|
|
62
|
+
**Start** stays disabled until Node meets the minimum, a global
|
|
63
|
+
`langflower` is installed, and a folder is chosen.
|
|
64
|
+
|
|
65
|
+
## Several projects at once
|
|
66
|
+
|
|
67
|
+
Each folder gets its own Langflower process and port (starting at
|
|
68
|
+
**4010**, then the next free port through **4109**). Start, Stop, and
|
|
69
|
+
Open apply to the **selected** folder. Other rows keep running.
|
|
70
|
+
|
|
71
|
+
You cannot start the same folder twice. Select another recent and Start
|
|
72
|
+
it while the first is still up.
|
|
73
|
+
|
|
74
|
+
## Stop and close
|
|
75
|
+
|
|
76
|
+
- **Stop Langflower** ends the selected process only.
|
|
77
|
+
- **Closing the launcher window** stops **every** process this window
|
|
78
|
+
started.
|
|
79
|
+
- Closing a **browser tab** does not stop the server. Reopen the URL
|
|
80
|
+
while that row still says Running.
|
|
81
|
+
|
|
82
|
+
Processes you started from a terminal are not stopped by this window.
|
|
83
|
+
|
|
84
|
+
## Details
|
|
85
|
+
|
|
86
|
+
Open **Details** at the bottom for the CLI and installer log. **Copy**
|
|
87
|
+
puts the log on the clipboard (the text itself is not selectable).
|
|
88
|
+
|
|
89
|
+
Prefixes:
|
|
90
|
+
|
|
91
|
+
- `[launcher]` — version check and launcher messages
|
|
92
|
+
- `[install]` — Node or Langflower install output
|
|
93
|
+
- `[folder-name]` — that project’s CLI output
|
|
94
|
+
|
|
95
|
+
If Node and Langflower are already current, the first line says they
|
|
96
|
+
already have current versions — that is not an install.
|
|
97
|
+
|
|
98
|
+
## If something goes wrong
|
|
99
|
+
|
|
100
|
+
| What you see | What to try |
|
|
101
|
+
| -------------------------------- | ------------------------------------------------------------ |
|
|
102
|
+
| Start stays grey | Install Node and/or Langflower; choose a folder |
|
|
103
|
+
| “That folder could not be found” | Browse again; the path must exist |
|
|
104
|
+
| “No free port is available” | Stop other Langflower instances using 4010–4109 |
|
|
105
|
+
| Gatekeeper / SmartScreen | Unsigned — right-click the `.exe` or `Langflower.app` → Open |
|
|
106
|
+
| Editor does not load | Wait for Running; open Details; try Open ↗ |
|
|
107
|
+
| Update offer every launch | Skip is session-only; Update installs `langflower@latest` |
|
|
108
|
+
|
|
109
|
+
Need the terminal path instead? See
|
|
110
|
+
[Getting started](getting-started.md). Once a project is running, use
|
|
111
|
+
[Using the editor](using-the-editor.md).
|
package/package.json
CHANGED
|
Binary file
|