zidane 5.6.11 → 5.6.13
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 +19 -2
- package/dist/{agent-C9AKTU_V.d.ts → agent-ClkpElCZ.d.ts} +540 -55
- package/dist/agent-ClkpElCZ.d.ts.map +1 -0
- package/dist/chat.d.ts +47 -17
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +3 -3
- package/dist/{index-6f4T7Gc0.d.ts → index-CTDMMdIy.d.ts} +348 -3
- package/dist/index-CTDMMdIy.d.ts.map +1 -0
- package/dist/{index-DPN7TcXK.d.ts → index-v3Tzobqr.d.ts} +2 -2
- package/dist/{index-DPN7TcXK.d.ts.map → index-v3Tzobqr.d.ts.map} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +169 -8
- package/dist/index.js.map +1 -1
- package/dist/{login-BindcfKi.js → login-DS3sf6b5.js} +4 -4
- package/dist/{login-BindcfKi.js.map → login-DS3sf6b5.js.map} +1 -1
- package/dist/{mcp-0jRkIV0g.js → mcp-DGeB7-3D.js} +13 -2
- package/dist/mcp-DGeB7-3D.js.map +1 -0
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +1 -1
- package/dist/{messages-BfmXLDT4.js → messages-Dym8S_YH.js} +303 -8
- package/dist/messages-Dym8S_YH.js.map +1 -0
- package/dist/{presets-CmzMeWg2.js → presets-CZXS_87d.js} +2 -2
- package/dist/{presets-CmzMeWg2.js.map → presets-CZXS_87d.js.map} +1 -1
- package/dist/presets.d.ts +2 -2
- package/dist/presets.js +1 -1
- package/dist/{providers-C_ahnRBS.js → providers-beXyD9W9.js} +137 -21
- package/dist/providers-beXyD9W9.js.map +1 -0
- package/dist/providers.d.ts +2 -2
- package/dist/providers.js +3 -3
- package/dist/restate.d.ts +1 -1
- package/dist/session/sqlite.d.ts +1 -1
- package/dist/{session-PUzXZlG6.js → session-BRIsmBSY.js} +5 -2
- package/dist/session-BRIsmBSY.js.map +1 -0
- package/dist/session.d.ts +2 -2
- package/dist/session.js +3 -3
- package/dist/skills.d.ts +2 -2
- package/dist/{tools-CxOfTt3R.js → tools-DE9pR_NG.js} +515 -116
- package/dist/tools-DE9pR_NG.js.map +1 -0
- package/dist/tools.d.ts +3 -3
- package/dist/tools.js +1 -1
- package/dist/{transcript-anchors-DDCHSDdX.d.ts → transcript-anchors-D0TR6djV.d.ts} +4 -4
- package/dist/transcript-anchors-D0TR6djV.d.ts.map +1 -0
- package/dist/tui.d.ts +2 -2
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +12 -8
- package/dist/tui.js.map +1 -1
- package/dist/{turn-operations-CxE8BBau.js → turn-operations-6Yls2HuG.js} +907 -42
- package/dist/turn-operations-6Yls2HuG.js.map +1 -0
- package/dist/types-oKPBdCmL.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/docs/ARCHITECTURE.md +101 -20
- package/docs/CHAT.md +27 -5
- package/docs/RESTATE.md +1 -1
- package/docs/SKILL.md +39 -3
- package/package.json +5 -2
- package/dist/agent-C9AKTU_V.d.ts.map +0 -1
- package/dist/index-6f4T7Gc0.d.ts.map +0 -1
- package/dist/mcp-0jRkIV0g.js.map +0 -1
- package/dist/messages-BfmXLDT4.js.map +0 -1
- package/dist/providers-C_ahnRBS.js.map +0 -1
- package/dist/session-PUzXZlG6.js.map +0 -1
- package/dist/tools-CxOfTt3R.js.map +0 -1
- package/dist/transcript-anchors-DDCHSDdX.d.ts.map +0 -1
- package/dist/turn-operations-CxE8BBau.js.map +0 -1
package/README.md
CHANGED
|
@@ -220,7 +220,7 @@ openaiCompat({
|
|
|
220
220
|
| `listFiles` | Directory listing. |
|
|
221
221
|
| `spawn` | Sub-agent. |
|
|
222
222
|
|
|
223
|
-
Opt-in (via `import from 'zidane'`): `glob` (
|
|
223
|
+
Opt-in (via `import from 'zidane'`): `glob` (`node:fs/promises` glob; shells out in docker/sandbox), `grep` (ripgrep + `node:fs/promises` glob fallback; full Claude Code Grep semantics), `createInteractionTool` (HITL factory).
|
|
224
224
|
|
|
225
225
|
`skills_use` / `skills_read` / `skills_run_script` auto-inject when the skills catalog is non-empty.
|
|
226
226
|
|
|
@@ -504,6 +504,8 @@ Storage backends — `createMemoryStore()` (in-memory), `createSqliteStore({ pat
|
|
|
504
504
|
|
|
505
505
|
Restore via `await loadSession(store, id)`. Session hooks: `session:start`, `session:turns`, `session:end` (always fires, carries `turnRange`).
|
|
506
506
|
|
|
507
|
+
**Building provider requests outside `agent.run()`** — use `session.toMessages({ provider })` instead of `session.turns`. Raw turns can carry orphan `tool_use` / `tool_result` blocks from interrupted runs, partial-result writes, or compaction boundaries — feeding them to a provider hits `tool_result must be preceded by a tool_call with the same toolCallId`. `toMessages()` projects through the same defensive pairing repair the loop runs at wire-send time and (with `provider`) enforces the user-tail invariant for prefill-rejecting models. Pure, idempotent, never mutates `session.turns`; do not write the result back via `setTurns` / `appendTurns` (synthetic placeholders would contaminate history). Standalone variant `toWireMessages(turns, opts?)` for callers holding raw `SessionTurn[]` from `store.getTurns()`.
|
|
508
|
+
|
|
507
509
|
## MCP Servers
|
|
508
510
|
|
|
509
511
|
Connect any MCP server. Tools are namespaced `mcp_{server}_{tool}`. Connections are lazy (first `run()`) and reused; all servers bootstrap in parallel.
|
|
@@ -693,7 +695,7 @@ type ToolResultContent =
|
|
|
693
695
|
|
|
694
696
|
Image-producing tools (MCP browsers, screenshots) return `ToolResultContent[]` — routed natively on providers with `imageInToolResult: true`, via companion user message elsewhere. Flatten with `toolResultToText(output)`.
|
|
695
697
|
|
|
696
|
-
External interop converters: `fromAnthropic`, `toAnthropic`, `fromOpenAI`, `toOpenAI`, `autoDetectAndConvert` (re-exported from `zidane`).
|
|
698
|
+
External interop converters: `fromAnthropic`, `toAnthropic`, `fromOpenAI`, `toOpenAI`, `autoDetectAndConvert` (re-exported from `zidane`). Wire-safety helpers: `toWireMessages(turns, opts?)`, `ensureToolResultPairing(messages, opts?)`, `ensureEndsWithUserMessage(messages, provider)` — apply when sending outside `agent.run()` to avoid orphan `tool_use` 400s; see [Sessions](#sessions).
|
|
697
699
|
|
|
698
700
|
## Typed Errors
|
|
699
701
|
|
|
@@ -719,6 +721,21 @@ catch (err) {
|
|
|
719
721
|
|
|
720
722
|
Set `behavior.maxCostUsd` and/or `behavior.maxTotalTokens` to trip the budget circuit breaker (post-turn check, soft cap). See [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) → run-level budget.
|
|
721
723
|
|
|
724
|
+
### Retry-with-backoff (new default)
|
|
725
|
+
|
|
726
|
+
Transient provider failures (429, 5xx, Anthropic `overloaded_error` mid-stream, OpenAI-compat stream truncation, pi-ai rate-limit / unavailable messages) now retry with exponential backoff + jitter **by default**. Default policy: **3 attempts, 1s → 2s → 4s with full jitter, capped at 30s per delay**, `retry-after` / `retry-after-ms` headers honored. Worst-case run latency on terminal failure: ~2× `maxDelayMs` (so ~60s) before the error surfaces.
|
|
727
|
+
|
|
728
|
+
```ts
|
|
729
|
+
await agent.run({
|
|
730
|
+
prompt: '...',
|
|
731
|
+
behavior: {
|
|
732
|
+
retry: { maxAttempts: 3, initialDelayMs: 1000, maxDelayMs: 30_000 },
|
|
733
|
+
},
|
|
734
|
+
})
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
Set `behavior.retry.maxAttempts: 1` to restore the pre-v5.7 fail-fast behavior. Retry skips when any output has already streamed this turn (replaying over partial text would corrupt the transcript). Observe via the `stream:retry` hook (`{ attempt, nextAttempt, delayMs, err, statusCode?, requestId? }`); `stream:error` only fires on the terminal failure.
|
|
738
|
+
|
|
722
739
|
## Structured Output
|
|
723
740
|
|
|
724
741
|
Force the final response to a JSON Schema via provider-level tool forcing. Lands on `stats.output` and fires the `output` hook (`ctx.output`, `ctx.schema`).
|