diff --git a/CHANGELOG.md b/CHANGELOG.md index 510d653..642fd45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ versioning: [Semantic Versioning](https://semver.org/). ## [Unreleased] +### Added + +- **AI node** — a new flow node that calls an LLM (Claude / OpenAI / Kimi) + from inside a DAG. Provider, API keys, and default models resolve from the + project secret vault exactly like the in-app assistant + (`CLAUDE_API_KEY` / `OPENAI_API_KEY` / `KIMI_API_KEY`, + `*_DEFAULT_MODEL`, `CLAUDE_DEFAULT_PROVIDER`), or per-node overrides. + Prompts support full `${{...}}` variable substitution; an optional + JSON-object response mode parses the output so downstream nodes can read + `${{nodeId.json.field}}`. Output also carries `model`, `provider`, + `stopReason`, and token `usage`. Runs through the engine's existing retry + and circuit-breaker machinery. New engine package `internal/llm` + (standard-library only, no vendor SDK). + ## [0.1.3] — Patch release Two improvements that surfaced while validating v0.1.2 against a clean diff --git a/CLAUDE.md b/CLAUDE.md index 2868998..c165501 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -80,7 +80,7 @@ Real-time execution updates: browser connects directly to Go engine at `ws://hos ### Flow Editor - `src/components/flow/FlowCanvas.tsx` — React Flow surface (uses `reactflow` v11). -- `src/components/flow/nodes/` — 23 node types built on shared `BaseNode` with `iconMap`/`colorMap`. Adding a node = component in `nodes/`, register in `nodes/index.ts`, properties editor in `properties/`, and (if the engine should execute it) a case in `internal/executor/flow_executor.go`. +- `src/components/flow/nodes/` — 25 node types built on shared `BaseNode` with `iconMap`/`colorMap`. Adding a node = component in `nodes/`, register in `nodes/index.ts`, properties editor in `properties/`, and (if the engine should execute it) a case in `internal/executor/flow_executor.go`. The AI node (LLM completion) is dispatched to `internal/llm` from `flow_executor.go`. - `src/components/flow/properties/` — Per-node-type property editors. - `src/components/Combobox.tsx` — In-house searchable dropdown (no third-party lib). Used everywhere instead of native `