@interactive-inc/claude-funnel 0.29.0 → 0.31.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 +2 -12
- package/dist/bin.js +489 -924
- package/dist/connectors/discord.d.ts +1 -1
- package/dist/connectors/discord.js +1 -1
- package/dist/connectors/slack.d.ts +1 -1
- package/dist/connectors/slack.js +1 -1
- package/dist/{discord-connector-schema-RzDvrNE5.js → discord-connector-schema-BeThExJp.js} +5 -3
- package/dist/{discord-connector-schema-Df_McRJI.d.ts → discord-connector-schema-DF4pL3Sc.d.ts} +4 -2
- package/dist/gateway/daemon.js +223 -201
- package/dist/index.d.ts +9 -9
- package/dist/index.js +28 -2225
- package/dist/{resolve-connector-token-Ch6XWMJM.js → resolve-connector-token-BHmZLRrV.js} +1 -1
- package/dist/{slack-connector-schema-CHbRJHGp.js → slack-connector-schema-DDbSGPZn.js} +6 -7
- package/dist/{slack-listener-CLTiOEJw.d.ts → slack-listener-9UdAn_ui.d.ts} +5 -6
- package/package.json +1 -5
- package/dist/highlights-eq9cgrbb.scm +0 -604
- package/dist/highlights-ghv9g403.scm +0 -205
- package/dist/highlights-hk7bwhj4.scm +0 -284
- package/dist/highlights-r812a2qc.scm +0 -150
- package/dist/highlights-x6tmsnaa.scm +0 -115
- package/dist/injections-73j83es3.scm +0 -27
- package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
- package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
- package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
- package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
- package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ Connector — a single attachment from a channel to an external source. Four typ
|
|
|
42
42
|
|
|
43
43
|
Profile sits on top of that model as a launch convenience, not part of it — you never need one to run an agent (`fnl claude --channel <name>` is enough). It is a saved launch preset bundling `{ path, channelId, options, env, resume }` so `fnl claude --profile cto` reproduces a known setup: which directory to launch from, which channel to bind, and the launch recipe (args prepended to the claude argv, env layered under the process, session reuse). A profile carries a stable uuid `id` (the unit the PID file and the resumable session key off, so renaming it strands neither); `name` is just the handle you type. The first profile in the list is the default. Because a profile already binds a channel, `--profile` and `--channel` cannot be combined.
|
|
44
44
|
|
|
45
|
-
The daemon is where all external connections live. It runs on port 9742, supervises connectors with auto-restart, broadcasts events to subscribed agent sessions over WebSocket, and serves the reply API that MCP calls. Starting or stopping an agent never starts or stops external connections.
|
|
45
|
+
The daemon is where all external connections live. It runs on port 9742, bound to loopback (`127.0.0.1`) only so it is never reachable off-box; set `FUNNEL_HOST=0.0.0.0` to expose it deliberately (every privileged endpoint still requires the bearer token regardless). It supervises connectors with auto-restart, broadcasts events to subscribed agent sessions over WebSocket, and serves the reply API that MCP calls. Starting or stopping an agent never starts or stops external connections.
|
|
46
46
|
|
|
47
47
|
The MCP layer is a thin bridge into the agent. It subscribes to the bound channel over WebSocket (the daemon does the work) and exposes one tool per callable connector so the agent can reply back out.
|
|
48
48
|
|
|
@@ -213,7 +213,7 @@ fnl gateway listeners live registry (alive / dead)
|
|
|
213
213
|
fnl status overall status (channels / profiles / gateway / clients)
|
|
214
214
|
fnl schema print the JSON Schema for funnel.json (pipe to a file for editor support)
|
|
215
215
|
fnl update `bun i -g @interactive-inc/claude-funnel`
|
|
216
|
-
fnl (no args)
|
|
216
|
+
fnl (no args) show help
|
|
217
217
|
|
|
218
218
|
fnl --version
|
|
219
219
|
fnl --help every subcommand has --help; verb-without-arg also returns help
|
|
@@ -442,16 +442,6 @@ console.log(await res.text())
|
|
|
442
442
|
|
|
443
443
|
`cliApp` is the same app pre-wired to `new Funnel()` for callers who just want the default. The middleware sets the chosen Funnel onto `c.var.funnel`; the matching `Env` type is exported for composing custom routes that share the same context variable.
|
|
444
444
|
|
|
445
|
-
### Launching the TUI
|
|
446
|
-
|
|
447
|
-
`launchTui(funnel)` boots the OpenTUI dashboard against any `Funnel` instance — pass `Funnel.inMemory()` to drive it against a fake state, or your production funnel for a live view.
|
|
448
|
-
|
|
449
|
-
```ts
|
|
450
|
-
import { Funnel, launchTui } from "@interactive-inc/claude-funnel"
|
|
451
|
-
|
|
452
|
-
await launchTui(new Funnel())
|
|
453
|
-
```
|
|
454
|
-
|
|
455
445
|
### Validating connector configs
|
|
456
446
|
|
|
457
447
|
Each connector type publishes its Zod schema, so consumers can parse external configs (JSON files, API payloads, etc.) before handing them to `addConnector`. The discriminated union `connectorConfigSchema` covers the whole set.
|