zidane 5.12.10 → 5.13.1
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 +17 -0
- package/dist/acp-CEE6C0m_.js +1313 -0
- package/dist/acp-CEE6C0m_.js.map +1 -0
- package/dist/acp-cli.d.ts +1 -0
- package/dist/acp-cli.js +575 -0
- package/dist/acp-cli.js.map +1 -0
- package/dist/acp.d.ts +616 -0
- package/dist/acp.d.ts.map +1 -0
- package/dist/acp.js +2 -0
- package/dist/{agent-DFxjgQx5.d.ts → agent-D7ZL8B2X.d.ts} +359 -50
- package/dist/agent-D7ZL8B2X.d.ts.map +1 -0
- package/dist/atomic-write-Bgtr5JPu.js +100 -0
- package/dist/atomic-write-Bgtr5JPu.js.map +1 -0
- package/dist/chat/pure.d.ts +3 -3
- package/dist/chat.d.ts +17 -117
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +3 -3
- package/dist/contexts/daytona.d.ts +3 -3
- package/dist/contexts/docker.d.ts +1 -1
- package/dist/contexts/docker.d.ts.map +1 -1
- package/dist/contexts/docker.js +4 -1
- package/dist/contexts/docker.js.map +1 -1
- package/dist/contexts/e2b.d.ts +2 -2
- package/dist/{contexts-DglWSzmR.js → contexts-DHi8LPCp.js} +51 -9
- package/dist/contexts-DHi8LPCp.js.map +1 -0
- package/dist/contexts.d.ts +3 -3
- package/dist/contexts.js +1 -1
- package/dist/eval.d.ts +1 -1
- package/dist/eval.js +4 -4
- package/dist/glob-DCWXy_tr.js +128 -0
- package/dist/glob-DCWXy_tr.js.map +1 -0
- package/dist/{headless-Cbknpgjo.js → headless-Bz1SpTB-.js} +7 -7
- package/dist/headless-Bz1SpTB-.js.map +1 -0
- package/dist/headless.d.ts +1 -1
- package/dist/headless.js +1 -1
- package/dist/{index-C3wPsOFw.d.ts → index-BsyPeCSL.d.ts} +3 -3
- package/dist/{index-C3wPsOFw.d.ts.map → index-BsyPeCSL.d.ts.map} +1 -1
- package/dist/{index-DoQ0MHlp.d.ts → index-CDcQW-2S.d.ts} +87 -19
- package/dist/index-CDcQW-2S.d.ts.map +1 -0
- package/dist/{index-CrMb8jCE.d.ts → index-CF15aqlk.d.ts} +3 -3
- package/dist/{index-CrMb8jCE.d.ts.map → index-CF15aqlk.d.ts.map} +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.js +12 -12
- package/dist/{interpolate-Da6kPCXn.js → interpolate-ConAiXGy.js} +2 -2
- package/dist/{interpolate-Da6kPCXn.js.map → interpolate-ConAiXGy.js.map} +1 -1
- package/dist/lazy-DLOurOC_.js +20 -0
- package/dist/lazy-DLOurOC_.js.map +1 -0
- package/dist/{logger-DZcTJ3YX.d.ts → logger-DItaCwPw.d.ts} +2 -2
- package/dist/{logger-DZcTJ3YX.d.ts.map → logger-DItaCwPw.d.ts.map} +1 -1
- package/dist/login-D5rb4IG8.js +267 -0
- package/dist/login-D5rb4IG8.js.map +1 -0
- package/dist/{mcp-Bl0n3bNL.js → mcp-C_TIj91j.js} +2 -2
- package/dist/{mcp-Bl0n3bNL.js.map → mcp-C_TIj91j.js.map} +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +1 -1
- package/dist/{messages-CV_K9I6j.js → messages-CGazSyTL.js} +16 -13
- package/dist/messages-CGazSyTL.js.map +1 -0
- package/dist/output/stream-json.d.ts +2 -2
- package/dist/output/stream-json.js +1 -1
- package/dist/output/terminal.d.ts +2 -2
- package/dist/policy-DcGlpaNs.d.ts +129 -0
- package/dist/policy-DcGlpaNs.d.ts.map +1 -0
- package/dist/{presets-BsMR5nn6.js → presets-5IGiSsxm.js} +2 -2
- package/dist/{presets-BsMR5nn6.js.map → presets-5IGiSsxm.js.map} +1 -1
- package/dist/presets.d.ts +2 -2
- package/dist/presets.js +1 -1
- package/dist/{providers-C6rpOk0l.js → providers-DMPAmUuY.js} +47 -122
- package/dist/providers-DMPAmUuY.js.map +1 -0
- package/dist/providers.d.ts +1 -1
- package/dist/providers.js +2 -2
- package/dist/restate.d.ts +2 -2
- package/dist/restate.js +2 -1
- package/dist/restate.js.map +1 -1
- package/dist/session/sqlite.d.ts +1 -1
- package/dist/{session-nRmW_P8d.js → session-B69BQSn1.js} +2 -2
- package/dist/{session-nRmW_P8d.js.map → session-B69BQSn1.js.map} +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/session.js +2 -2
- package/dist/skills.d.ts +2 -2
- package/dist/skills.js +1 -1
- package/dist/{tool-formatters-CCTIq3A-.d.ts → tool-formatters-CNSMadtp.d.ts} +9 -31
- package/dist/tool-formatters-CNSMadtp.d.ts.map +1 -0
- package/dist/tools/fetch-url.d.ts +1 -1
- package/dist/tools/web-search.d.ts +1 -1
- package/dist/{tools-fqToqHik.js → tools-CfS7rjuh.js} +2139 -1371
- package/dist/tools-CfS7rjuh.js.map +1 -0
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +1 -1
- package/dist/{transcript-anchors-Br_NijUC.js → transcript-anchors-B_a1edre.js} +1204 -105
- package/dist/transcript-anchors-B_a1edre.js.map +1 -0
- package/dist/{transcript-anchors-DxAfqo4i.d.ts → transcript-anchors-EG-SmZRu.d.ts} +17 -5
- package/dist/transcript-anchors-EG-SmZRu.d.ts.map +1 -0
- package/dist/tui.d.ts +3 -3
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +102 -148
- package/dist/tui.js.map +1 -1
- package/dist/{turn-operations-BTxf15kt.d.ts → turn-operations-DwtWRYr1.d.ts} +3 -3
- package/dist/{turn-operations-BTxf15kt.d.ts.map → turn-operations-DwtWRYr1.d.ts.map} +1 -1
- package/dist/{types-B39tBba1.d.ts → types-Bs2oY7Ux.d.ts} +27 -4
- package/dist/types-Bs2oY7Ux.d.ts.map +1 -0
- package/dist/types-DxHDaqN7.js.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/types.js +1 -1
- package/docs/ACP.md +153 -0
- package/docs/ARCHITECTURE.md +6 -2
- package/docs/CHAT.md +29 -28
- package/docs/SKILL.md +1 -1
- package/docs/TUI.md +8 -8
- package/package.json +15 -5
- package/dist/agent-DFxjgQx5.d.ts.map +0 -1
- package/dist/contexts-DglWSzmR.js.map +0 -1
- package/dist/headless-Cbknpgjo.js.map +0 -1
- package/dist/index-DoQ0MHlp.d.ts.map +0 -1
- package/dist/login-uf01y_Yj.js +0 -1272
- package/dist/login-uf01y_Yj.js.map +0 -1
- package/dist/messages-CV_K9I6j.js.map +0 -1
- package/dist/providers-C6rpOk0l.js.map +0 -1
- package/dist/tool-formatters-CCTIq3A-.d.ts.map +0 -1
- package/dist/tools-fqToqHik.js.map +0 -1
- package/dist/transcript-anchors-Br_NijUC.js.map +0 -1
- package/dist/transcript-anchors-DxAfqo4i.d.ts.map +0 -1
- package/dist/types-B39tBba1.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -21,6 +21,7 @@ Everything below is in service of those:
|
|
|
21
21
|
- 🧠 **Providers** — Anthropic, OpenAI Codex, OpenRouter, Cerebras, xAI Grok, Arcee, local LLMs, plus `openaiCompat` (Baseten, Fireworks, Groq). OAuth + API key with auto-refresh.
|
|
22
22
|
- 🪝 **Hookable turn loop** — every text/thinking delta, tool call, MCP, session, skill, spawn, OAuth, validation, and budget event is observable and (mostly) mutable.
|
|
23
23
|
- 🛠️ **First-class tools** — `shell`, `read_file`, `write_file`, `edit`, `multi_edit`, `glob`, `grep`, `spawn`, human-in-the-loop, plus any [MCP](https://modelcontextprotocol.io) server. Per-call gates, arg auto-coerce, hallucinated-tool fallback, error rewriting. Lazy MCP disclosure via `tool_search`. Optional `todowrite` / `todoread` for persistent task checkpointing across prompts.
|
|
24
|
+
- 🔌 **ACP v1 adapter** — run Zidane from ACP clients like Zed via `zidane-acp`, or embed the protocol server with `zidane/acp`.
|
|
24
25
|
- 🧮 **Per-tool concurrency** — every `ToolDef` carries `isConcurrencySafe` (default `false`); the dispatcher fans safe siblings out in parallel and barriers unsafe ones. Order is preserved at yield time. Cap via `behavior.maxConcurrentTools`.
|
|
25
26
|
- ✂️ **Token-aware** — paginated reads, tail-truncated `shell`, idempotent `write_file`; `outputBytes` everywhere. `toolOutputBudget`, `toolBudgets`, `thinkingDecay`.
|
|
26
27
|
- 🗜️ **Context discipline** — `cache_control` breakpoints; server-side compaction on Anthropic, client-side `compactStrategy: 'tail'` elsewhere. Per-session read dedup + `requireReadBeforeEdit`; generalized `dedupTools`.
|
|
@@ -80,6 +81,8 @@ createAgent({
|
|
|
80
81
|
compactStrategy: 'off', // 'off' | 'tail' (non-Anthropic compaction)
|
|
81
82
|
compactThreshold: 131_072, // 128 KiB
|
|
82
83
|
compactKeepTurns: 4,
|
|
84
|
+
mediaKeepTurns: undefined, // age old image/document base64 off the wire; chat profiles use 8
|
|
85
|
+
autoCompact: false, // loop-native LLM summary at N% of the window; chat profiles enable it
|
|
83
86
|
toolDisclosure: 'eager', // 'eager' | 'lazy' (hide MCP schemas behind tool_search)
|
|
84
87
|
toolSearch: { tool: true, limit: 20 },
|
|
85
88
|
},
|
|
@@ -135,6 +138,16 @@ For `local` / `openai-compat`, `--base-url`, `--api-key-env`, `--headers-env`, `
|
|
|
135
138
|
|
|
136
139
|
`bun start --restate` runs the same start flow through a local Restate endpoint for durable-execution demos and fixture testing. It starts the service, probes readiness, registers the deployment, invokes `zidane-start-agent`, and exposes `run` / `status` / `history` handlers. See [docs/RESTATE.md](./docs/RESTATE.md) for production wiring and the advanced ReState flags.
|
|
137
140
|
|
|
141
|
+
## ACP
|
|
142
|
+
|
|
143
|
+
Zidane ships an opt-in [Agent Client Protocol](https://agentclientprotocol.com) v1 adapter for editors and IDEs. Install the package and point your ACP client at:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
zidane-acp --provider anthropic --model claude-sonnet-4-5
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
For Zed config, stdio framing details, session persistence, and in-process usage via `zidane/acp`, see [docs/ACP.md](./docs/ACP.md).
|
|
150
|
+
|
|
138
151
|
## Providers
|
|
139
152
|
|
|
140
153
|
All providers accept runtime credentials via params. Env vars are fallbacks.
|
|
@@ -355,6 +368,10 @@ agent.hooks.hook('context:transform', (ctx) => {
|
|
|
355
368
|
|
|
356
369
|
`behavior.compactStrategy: 'tail'` elides older `tool_result` blocks once their combined size exceeds `compactThreshold` (default 128 KiB); the newest `compactKeepTurns` (default 4) stay intact. Anthropic users should prefer the server-side `context-management-2025-06-27` beta via `anthropic({ extraBetas, contextManagement })` — token-accurate.
|
|
357
370
|
|
|
371
|
+
`behavior.mediaKeepTurns` is separate: it ages old inline image/document base64 off the provider wire while keeping bytes in `session.turns`. Aged media becomes an `attachment://<hash>` marker that `read_file path="attachment://..."` can re-inline. SDK default is off; built-in chat profiles set it to `8`. Proactive age-out only runs when `read_file` is registered.
|
|
372
|
+
|
|
373
|
+
`behavior.autoCompact` is the heavy lever: loop-native auto-compaction. Once a turn's effective input crosses `threshold` (default `0.85`) of the context window, the loop runs a real LLM summary over the older turns, appends a `compact-summary` marker + file/skill restoration to the session, and continues — mid-run and at end-of-run. Window source is `autoCompact.contextWindow` → `provider.meta.contextWindow` (inert without one). Observe via the `compact:start` / `compact:end` hooks. SDK default off; chat profiles enable it. Distinct from `compactStrategy` (per-turn wire-only `tool_result` trim) and the always-on reactive `context_exceeded` recovery.
|
|
374
|
+
|
|
358
375
|
### Read dedup + read-before-edit guard
|
|
359
376
|
|
|
360
377
|
- `behavior.dedupReads` (default **on**) — `read_file` returns `"unchanged since the previous read"` on identical re-reads. Per-session content-hash.
|