zidane 6.4.3 → 6.4.4

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.
Files changed (80) hide show
  1. package/dist/{acp-Kr7LyExq.js → acp-BLO58K3F.js} +3 -3
  2. package/dist/{acp-Kr7LyExq.js.map → acp-BLO58K3F.js.map} +1 -1
  3. package/dist/acp-cli.js +2 -2
  4. package/dist/acp.d.ts +1 -1
  5. package/dist/acp.js +1 -1
  6. package/dist/{agent-CEvzc1Ao.js → agent-8sUadp5M.js} +69 -6
  7. package/dist/{agent-CEvzc1Ao.js.map → agent-8sUadp5M.js.map} +1 -1
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +2 -2
  10. package/dist/chat/pure.d.ts +3 -3
  11. package/dist/chat.d.ts +4 -4
  12. package/dist/chat.js +2 -2
  13. package/dist/{context-transport-DbzJctSl.js → context-transport-D29WvHcm.js} +3 -3
  14. package/dist/{context-transport-DbzJctSl.js.map → context-transport-D29WvHcm.js.map} +1 -1
  15. package/dist/contexts/daytona.d.ts +1 -1
  16. package/dist/contexts/e2b.d.ts +1 -1
  17. package/dist/eval.d.ts +1 -1
  18. package/dist/extensions.d.ts +1 -1
  19. package/dist/extensions.js +1 -1
  20. package/dist/headless.d.ts +1 -1
  21. package/dist/headless.js +1 -1
  22. package/dist/{index-W_8010Lt.d.ts → index-C-Nd2ZbV.d.ts} +257 -2
  23. package/dist/index-C-Nd2ZbV.d.ts.map +1 -0
  24. package/dist/index.d.ts +2 -2
  25. package/dist/index.js +5 -5
  26. package/dist/{login-Blkiy-58.js → login-CMVVnAHS.js} +2 -2
  27. package/dist/{login-Blkiy-58.js.map → login-CMVVnAHS.js.map} +1 -1
  28. package/dist/{mcp-CDN-m5lp.js → mcp-3GXUBwur.js} +3 -3
  29. package/dist/{mcp-CDN-m5lp.js.map → mcp-3GXUBwur.js.map} +1 -1
  30. package/dist/mcp.d.ts +1 -1
  31. package/dist/mcp.js +1 -1
  32. package/dist/output/stream-json.d.ts +1 -1
  33. package/dist/output/terminal.d.ts +1 -1
  34. package/dist/presets.d.ts +1 -1
  35. package/dist/presets.js +1 -1
  36. package/dist/providers/anthropic.d.ts +1 -1
  37. package/dist/providers/arcee.d.ts +1 -1
  38. package/dist/providers/baseten.d.ts +1 -1
  39. package/dist/providers/cerebras.d.ts +1 -1
  40. package/dist/providers/local.d.ts +1 -1
  41. package/dist/providers/openai-compat.d.ts +1 -1
  42. package/dist/providers/openai.d.ts +1 -1
  43. package/dist/providers/openrouter.d.ts +1 -1
  44. package/dist/providers/xai.d.ts +1 -1
  45. package/dist/providers.d.ts +1 -1
  46. package/dist/restate.d.ts +52 -2
  47. package/dist/restate.d.ts.map +1 -1
  48. package/dist/restate.js +151 -33
  49. package/dist/restate.js.map +1 -1
  50. package/dist/session/sqlite.d.ts +1 -1
  51. package/dist/session.d.ts +1 -1
  52. package/dist/skills.d.ts +1 -1
  53. package/dist/{stdio-DWQKYKad.js → stdio-BvL8HGYW.js} +2 -2
  54. package/dist/{stdio-DWQKYKad.js.map → stdio-BvL8HGYW.js.map} +1 -1
  55. package/dist/{stdio-loader-3uz37d_3.js → stdio-loader-CjfoqBle.js} +2 -2
  56. package/dist/{stdio-loader-3uz37d_3.js.map → stdio-loader-CjfoqBle.js.map} +1 -1
  57. package/dist/{tool-formatters-bhC2Xp8z.d.ts → tool-formatters-DPQjso_C.d.ts} +2 -2
  58. package/dist/{tool-formatters-bhC2Xp8z.d.ts.map → tool-formatters-DPQjso_C.d.ts.map} +1 -1
  59. package/dist/{read-state-Dt7UbVsd.js → tool-state-DTs-3ZHH.js} +218 -2
  60. package/dist/tool-state-DTs-3ZHH.js.map +1 -0
  61. package/dist/tools/fetch-url.d.ts +1 -1
  62. package/dist/tools/web-search.d.ts +1 -1
  63. package/dist/tools.d.ts +1 -1
  64. package/dist/tools.js +2 -2
  65. package/dist/{transcript-anchors-mcMLuXM1.d.ts → transcript-anchors-BCUpbNxc.d.ts} +2 -2
  66. package/dist/{transcript-anchors-mcMLuXM1.d.ts.map → transcript-anchors-BCUpbNxc.d.ts.map} +1 -1
  67. package/dist/{transcript-anchors-D7wVCZ2S.js → transcript-anchors-CgDzYin1.js} +3 -3
  68. package/dist/{transcript-anchors-D7wVCZ2S.js.map → transcript-anchors-CgDzYin1.js.map} +1 -1
  69. package/dist/tui.d.ts +3 -3
  70. package/dist/tui.d.ts.map +1 -1
  71. package/dist/tui.js +58 -47
  72. package/dist/tui.js.map +1 -1
  73. package/dist/{turn-operations-B5vVcG0Z.d.ts → turn-operations-Bu2Hkinw.d.ts} +3 -3
  74. package/dist/{turn-operations-B5vVcG0Z.d.ts.map → turn-operations-Bu2Hkinw.d.ts.map} +1 -1
  75. package/dist/types.d.ts +2 -2
  76. package/docs/ARCHITECTURE.md +2 -0
  77. package/docs/RESTATE.md +66 -2
  78. package/package.json +1 -1
  79. package/dist/index-W_8010Lt.d.ts.map +0 -1
  80. package/dist/read-state-Dt7UbVsd.js.map +0 -1
package/dist/mcp.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { Cg as wrapDiscoveredMcpTools, Sg as resultToString, _g as expandEnvPlaceholders, bg as normalizeMcpBlocks, dg as McpConnection, fg as McpExecutionBinding, gg as deriveMcpToolMeta, hg as createStderrLineEmitter, im as McpServerConfig, mg as connectMcpServers, om as McpToolSchema, pg as attachStderrWarnPump, ug as ConnectMcpServersOptions, vg as expandMcpConfigEnv, xg as normalizeMcpServers, yg as nonOwningMcpView } from "./index-W_8010Lt.js";
1
+ import { Ag as normalizeMcpServers, Cg as connectMcpServers, Dg as expandMcpConfigEnv, Eg as expandEnvPlaceholders, Mg as wrapDiscoveredMcpTools, Og as nonOwningMcpView, Sg as attachStderrWarnPump, Tg as deriveMcpToolMeta, bg as McpConnection, im as McpServerConfig, jg as resultToString, kg as normalizeMcpBlocks, om as McpToolSchema, wg as createStderrLineEmitter, xg as McpExecutionBinding, yg as ConnectMcpServersOptions } from "./index-C-Nd2ZbV.js";
2
2
  export { ConnectMcpServersOptions, McpConnection, McpExecutionBinding, type McpServerConfig, type McpToolSchema, attachStderrWarnPump, connectMcpServers, createStderrLineEmitter, deriveMcpToolMeta, expandEnvPlaceholders, expandMcpConfigEnv, nonOwningMcpView, normalizeMcpBlocks, normalizeMcpServers, resultToString, wrapDiscoveredMcpTools };
package/dist/mcp.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as expandEnvPlaceholders, c as normalizeMcpBlocks, d as wrapDiscoveredMcpTools, i as deriveMcpToolMeta, l as normalizeMcpServers, n as connectMcpServers, o as expandMcpConfigEnv, r as createStderrLineEmitter, s as nonOwningMcpView, t as attachStderrWarnPump, u as resultToString } from "./mcp-CDN-m5lp.js";
1
+ import { a as expandEnvPlaceholders, c as normalizeMcpBlocks, d as wrapDiscoveredMcpTools, i as deriveMcpToolMeta, l as normalizeMcpServers, n as connectMcpServers, o as expandMcpConfigEnv, r as createStderrLineEmitter, s as nonOwningMcpView, t as attachStderrWarnPump, u as resultToString } from "./mcp-3GXUBwur.js";
2
2
  export { attachStderrWarnPump, connectMcpServers, createStderrLineEmitter, deriveMcpToolMeta, expandEnvPlaceholders, expandMcpConfigEnv, nonOwningMcpView, normalizeMcpBlocks, normalizeMcpServers, resultToString, wrapDiscoveredMcpTools };
@@ -1,4 +1,4 @@
1
- import { $n as HeadlessResult, Jn as FormattedHeadlessTurnEvent, Qn as HeadlessOutputFormat, Wi as Agent, Xn as HeadlessEvent, qn as FormattedHeadlessResult } from "../index-W_8010Lt.js";
1
+ import { $n as HeadlessResult, Jn as FormattedHeadlessTurnEvent, Qn as HeadlessOutputFormat, Wi as Agent, Xn as HeadlessEvent, qn as FormattedHeadlessResult } from "../index-C-Nd2ZbV.js";
2
2
 
3
3
  //#region src/output/stream-json.d.ts
4
4
  type StreamJsonOutputFormat = HeadlessOutputFormat;
@@ -1,4 +1,4 @@
1
- import { Ki as AgentHooks, Wi as Agent, t as Preset } from "../index-W_8010Lt.js";
1
+ import { Ki as AgentHooks, Wi as Agent, t as Preset } from "../index-C-Nd2ZbV.js";
2
2
 
3
3
  //#region src/output/terminal.d.ts
4
4
  interface TerminalOutputOptions {
package/dist/presets.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { Gi as AgentHookMap, a as basicTools, i as _default, n as composePresets, r as definePreset, t as Preset } from "./index-W_8010Lt.js";
1
+ import { Gi as AgentHookMap, a as basicTools, i as _default, n as composePresets, r as definePreset, t as Preset } from "./index-C-Nd2ZbV.js";
2
2
  export { type AgentHookMap, Preset, _default as basic, basicTools, composePresets, definePreset };
package/dist/presets.js CHANGED
@@ -1,2 +1,2 @@
1
- import { ft as composePresets, ht as basic_default, mt as basicTools, pt as definePreset } from "./agent-CEvzc1Ao.js";
1
+ import { ft as composePresets, ht as basic_default, mt as basicTools, pt as definePreset } from "./agent-8sUadp5M.js";
2
2
  export { basic_default as basic, basicTools, composePresets, definePreset };
@@ -1,2 +1,2 @@
1
- import { Cp as resolveAnthropicAuthShape, Sp as planAnthropicThinking, Tp as resolveAnthropicMaxOutput, _p as applyAnthropicCacheBreakpoints, bp as credentialIdentity, dp as AnthropicBedrockConfig, fp as AnthropicContextManagement, gp as anthropic, hp as EXTENDED_CACHE_TTL_BETA, mp as AnthropicThinkingPlan, pp as AnthropicParams, vp as buildAnthropicClientOptions, wp as resolveAnthropicBetas, xp as defaultAnthropicMaxTokens, yp as classifyAnthropicError } from "../index-W_8010Lt.js";
1
+ import { Cp as resolveAnthropicAuthShape, Sp as planAnthropicThinking, Tp as resolveAnthropicMaxOutput, _p as applyAnthropicCacheBreakpoints, bp as credentialIdentity, dp as AnthropicBedrockConfig, fp as AnthropicContextManagement, gp as anthropic, hp as EXTENDED_CACHE_TTL_BETA, mp as AnthropicThinkingPlan, pp as AnthropicParams, vp as buildAnthropicClientOptions, wp as resolveAnthropicBetas, xp as defaultAnthropicMaxTokens, yp as classifyAnthropicError } from "../index-C-Nd2ZbV.js";
2
2
  export { AnthropicBedrockConfig, AnthropicContextManagement, AnthropicParams, AnthropicThinkingPlan, EXTENDED_CACHE_TTL_BETA, anthropic, applyAnthropicCacheBreakpoints, buildAnthropicClientOptions, classifyAnthropicError, credentialIdentity, defaultAnthropicMaxTokens, planAnthropicThinking, resolveAnthropicAuthShape, resolveAnthropicBetas, resolveAnthropicMaxOutput };
@@ -1,2 +1,2 @@
1
- import { lp as ArceeParams, up as arcee } from "../index-W_8010Lt.js";
1
+ import { lp as ArceeParams, up as arcee } from "../index-C-Nd2ZbV.js";
2
2
  export { ArceeParams, arcee };
@@ -1,2 +1,2 @@
1
- import { cp as planBasetenReasoning, op as BasetenParams, sp as baseten } from "../index-W_8010Lt.js";
1
+ import { cp as planBasetenReasoning, op as BasetenParams, sp as baseten } from "../index-C-Nd2ZbV.js";
2
2
  export { BasetenParams, baseten, planBasetenReasoning };
@@ -1,2 +1,2 @@
1
- import { ap as cerebras, ip as CerebrasParams } from "../index-W_8010Lt.js";
1
+ import { ap as cerebras, ip as CerebrasParams } from "../index-C-Nd2ZbV.js";
2
2
  export { CerebrasParams, cerebras };
@@ -1,2 +1,2 @@
1
- import { ep as LocalParams, tp as local } from "../index-W_8010Lt.js";
1
+ import { ep as LocalParams, tp as local } from "../index-C-Nd2ZbV.js";
2
2
  export { LocalParams, local };
@@ -1,2 +1,2 @@
1
- import { Af as OpenAICompatParams, Bf as mapOAIFinishReason, Df as OAITool, Ef as OAIMessage, Ff as assistantMessage, Gf as userMessage, Hf as openaiCompat, If as buildAssistantContent, Lf as classifyOpenAICompatError, Mf as TOOL_RESULTS_TAG, Nf as applyOAICacheBreakpoints, Of as OpenAICompatAuthHeader, Pf as applyOAIToolCacheBreakpoint, Rf as consumeSSE, Tf as ASSISTANT_TOOL_CALLS_TAG, Uf as toOAIMessages, Vf as openAICompatPromptMessage, Wf as toolResultsMessage, jf as OpenAICompatStreamError, kf as OpenAICompatHttpError, zf as formatTools } from "../index-W_8010Lt.js";
1
+ import { Af as OpenAICompatParams, Bf as mapOAIFinishReason, Df as OAITool, Ef as OAIMessage, Ff as assistantMessage, Gf as userMessage, Hf as openaiCompat, If as buildAssistantContent, Lf as classifyOpenAICompatError, Mf as TOOL_RESULTS_TAG, Nf as applyOAICacheBreakpoints, Of as OpenAICompatAuthHeader, Pf as applyOAIToolCacheBreakpoint, Rf as consumeSSE, Tf as ASSISTANT_TOOL_CALLS_TAG, Uf as toOAIMessages, Vf as openAICompatPromptMessage, Wf as toolResultsMessage, jf as OpenAICompatStreamError, kf as OpenAICompatHttpError, zf as formatTools } from "../index-C-Nd2ZbV.js";
2
2
  export { ASSISTANT_TOOL_CALLS_TAG, OAIMessage, OAITool, OpenAICompatAuthHeader, OpenAICompatHttpError, OpenAICompatParams, OpenAICompatStreamError, TOOL_RESULTS_TAG, applyOAICacheBreakpoints, applyOAIToolCacheBreakpoint, assistantMessage, buildAssistantContent, classifyOpenAICompatError, consumeSSE, formatTools, mapOAIFinishReason, openAICompatPromptMessage, openaiCompat, toOAIMessages, toolResultsMessage, userMessage };
@@ -1,2 +1,2 @@
1
- import { Jf as mapCodexStopReason, Kf as OpenAIParams, Xf as toPiMessages, Yf as openai, qf as classifyOpenAIError } from "../index-W_8010Lt.js";
1
+ import { Jf as mapCodexStopReason, Kf as OpenAIParams, Xf as toPiMessages, Yf as openai, qf as classifyOpenAIError } from "../index-C-Nd2ZbV.js";
2
2
  export { OpenAIParams, classifyOpenAIError, mapCodexStopReason, openai, toPiMessages };
@@ -1,2 +1,2 @@
1
- import { Cf as normalizeOpenRouterModelId, Sf as OpenRouterParams, wf as openrouter } from "../index-W_8010Lt.js";
1
+ import { Cf as normalizeOpenRouterModelId, Sf as OpenRouterParams, wf as openrouter } from "../index-C-Nd2ZbV.js";
2
2
  export { OpenRouterParams, normalizeOpenRouterModelId, openrouter };
@@ -1,2 +1,2 @@
1
- import { gf as xai, hf as XaiParams } from "../index-W_8010Lt.js";
1
+ import { gf as xai, hf as XaiParams } from "../index-C-Nd2ZbV.js";
2
2
  export { XaiParams, xai };
@@ -1,2 +1,2 @@
1
- import { $f as planMistralReasoning, Af as OpenAICompatParams, Ap as OAuthParams, Bf as mapOAIFinishReason, Bp as OAuthProviderInterface, Dg as getModelCatalog, Dp as PromptCacheKeyOption, Eg as ModelCatalogSource, Ep as PromptCacheKeyContext, Fp as isOAuthAccessToken, Hf as openaiCompat, Ip as readOAuthCredentials, Kf as OpenAIParams, Lf as classifyOpenAICompatError, Lp as registerCustomOAuthProvider, Mp as credentialsFilePath, Np as credentialsFromParams, Of as OpenAICompatAuthHeader, Og as setModelCatalog, Op as derivePromptCacheKey, Pp as extractRuntimeCredentials, Qf as mistral, Rp as resolveOAuthApiKey, Sf as OpenRouterParams, Tg as ModelCatalogEntry, Yf as openai, Zf as MistralParams, _f as SchemaSanitizeOptions, _p as applyAnthropicCacheBreakpoints, af as StreamCallbacks, ap as cerebras, bf as sanitizeToolSchema, cf as ToolCall, cp as planBasetenReasoning, df as TurnResult, ep as LocalParams, ff as ZaiParams, gf as xai, gp as anthropic, hf as XaiParams, if as ProviderCapabilities, ip as CerebrasParams, jp as ResolveOAuthApiKeyOptions, kf as OpenAICompatHttpError, kp as resolvePromptCacheKey, lf as ToolResult, lp as ArceeParams, mf as zai, nf as HistoryRepair, np as CursorParams, of as StreamOptions, op as BasetenParams, pf as planZaiReasoning, pp as AnthropicParams, rf as Provider, rp as cursor, sf as TokenCountPayload, sp as baseten, tp as local, uf as ToolSpec, up as arcee, vf as SchemaSanitizeProfile, wf as openrouter, wg as ModelCatalog, xf as sanitizeToolSpecs, yf as SchemaSanitizeResult, zp as writeOAuthCredentials } from "./index-W_8010Lt.js";
1
+ import { $f as planMistralReasoning, Af as OpenAICompatParams, Ap as OAuthParams, Bf as mapOAIFinishReason, Bp as OAuthProviderInterface, Dp as PromptCacheKeyOption, Ep as PromptCacheKeyContext, Fg as ModelCatalogSource, Fp as isOAuthAccessToken, Hf as openaiCompat, Ig as getModelCatalog, Ip as readOAuthCredentials, Kf as OpenAIParams, Lf as classifyOpenAICompatError, Lg as setModelCatalog, Lp as registerCustomOAuthProvider, Mp as credentialsFilePath, Ng as ModelCatalog, Np as credentialsFromParams, Of as OpenAICompatAuthHeader, Op as derivePromptCacheKey, Pg as ModelCatalogEntry, Pp as extractRuntimeCredentials, Qf as mistral, Rp as resolveOAuthApiKey, Sf as OpenRouterParams, Yf as openai, Zf as MistralParams, _f as SchemaSanitizeOptions, _p as applyAnthropicCacheBreakpoints, af as StreamCallbacks, ap as cerebras, bf as sanitizeToolSchema, cf as ToolCall, cp as planBasetenReasoning, df as TurnResult, ep as LocalParams, ff as ZaiParams, gf as xai, gp as anthropic, hf as XaiParams, if as ProviderCapabilities, ip as CerebrasParams, jp as ResolveOAuthApiKeyOptions, kf as OpenAICompatHttpError, kp as resolvePromptCacheKey, lf as ToolResult, lp as ArceeParams, mf as zai, nf as HistoryRepair, np as CursorParams, of as StreamOptions, op as BasetenParams, pf as planZaiReasoning, pp as AnthropicParams, rf as Provider, rp as cursor, sf as TokenCountPayload, sp as baseten, tp as local, uf as ToolSpec, up as arcee, vf as SchemaSanitizeProfile, wf as openrouter, xf as sanitizeToolSpecs, yf as SchemaSanitizeResult, zp as writeOAuthCredentials } from "./index-C-Nd2ZbV.js";
2
2
  export { type AnthropicParams, type ArceeParams, type BasetenParams, type CerebrasParams, type CursorParams, HistoryRepair, type LocalParams, type MistralParams, type ModelCatalog, type ModelCatalogEntry, type ModelCatalogSource, type OAuthParams, type OAuthProviderInterface, type OpenAICompatAuthHeader, OpenAICompatHttpError, type OpenAICompatParams, type OpenAIParams, type OpenRouterParams, type PromptCacheKeyContext, type PromptCacheKeyOption, Provider, ProviderCapabilities, type ResolveOAuthApiKeyOptions, type SchemaSanitizeOptions, type SchemaSanitizeProfile, type SchemaSanitizeResult, StreamCallbacks, StreamOptions, TokenCountPayload, ToolCall, ToolResult, ToolSpec, TurnResult, type XaiParams, type ZaiParams, anthropic, applyAnthropicCacheBreakpoints, arcee, baseten, cerebras, classifyOpenAICompatError, credentialsFilePath, credentialsFromParams, cursor, derivePromptCacheKey, extractRuntimeCredentials, getModelCatalog, isOAuthAccessToken, local, mapOAIFinishReason, mistral, openai, openaiCompat, openrouter, planBasetenReasoning, planMistralReasoning, planZaiReasoning, readOAuthCredentials, registerCustomOAuthProvider, resolveOAuthApiKey, resolvePromptCacheKey, sanitizeToolSchema, sanitizeToolSpecs, setModelCatalog, writeOAuthCredentials, xai, zai };
package/dist/restate.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $m as ToolDef, Fm as ToolBatchExecutor, Hp as AgentClock, Qm as ToolContext, Sh as SessionStore, Vp as AgentBehavior, Xi as McpToolWrap, Yi as McpToolMeta, of as StreamOptions, rf as Provider, zm as ToolResultContent } from "./index-W_8010Lt.js";
1
+ import { $m as ToolDef, Fm as ToolBatchExecutor, Hp as AgentClock, Qm as ToolContext, Vp as AgentBehavior, Xi as McpToolWrap, Yi as McpToolMeta, jh as SessionStore, mh as ToolStateStore, of as StreamOptions, rf as Provider, zm as ToolResultContent } from "./index-C-Nd2ZbV.js";
2
2
  import { g as TaskExitInfo, h as TaskEntry, l as ExecutionHandle, o as DetachedTasksCapability } from "./types-M2DauK2D.js";
3
3
 
4
4
  //#region src/restate/types.d.ts
@@ -838,6 +838,56 @@ declare function wrapAgentTools(tools: Record<string, ToolDef>, ctx: RestateCont
838
838
  exclude?: readonly string[];
839
839
  }): Record<string, ToolDef>;
840
840
  //#endregion
841
+ //#region src/restate/tool-state.d.ts
842
+ /** Default virtual-object state key holding the tool-state map. */
843
+ declare const DEFAULT_TOOL_STATE_KEY = "zidane_tool_state";
844
+ interface RestateToolStateStoreOptions {
845
+ /** Override the state key. Defaults to {@link DEFAULT_TOOL_STATE_KEY}. */
846
+ key?: string;
847
+ /**
848
+ * Per-value size budget enforced when a tool stages a write. Defaults to
849
+ * the library's `DEFAULT_MAX_VALUE_BYTES` (64 KiB), which is far below
850
+ * Restate's own journal-entry ceiling on purpose: an oversized state value
851
+ * doesn't fail politely there — the invocation fails with `RT0003`
852
+ * (MessageSizeLimit) and is retried under the configured policy, i.e. a fat
853
+ * write becomes a poison pill rather than a dropped one.
854
+ */
855
+ maxValueBytes?: number;
856
+ }
857
+ /**
858
+ * Build a {@link ToolStateStore} over the bound virtual object's state.
859
+ *
860
+ * ```ts
861
+ * const agent = createAgent({
862
+ * provider,
863
+ * tools: wrapAgentTools({ shell }, ctx),
864
+ * session: createSession({ id: ctx.key, store: restateSessionStore(ctx) }),
865
+ * toolState: restateToolStateStore(ctx),
866
+ * })
867
+ * ```
868
+ *
869
+ * Single-writer like the session store: the state belongs to the object key,
870
+ * so bind one key per conversation and one agent per invocation.
871
+ *
872
+ * Build it INSIDE the handler. The returned store closes over this `ctx`, so
873
+ * an agent constructed once at module scope and reused across invocations
874
+ * would commit through a context that is already finished, and would never
875
+ * re-hydrate (the controller memoizes the load for the life of the agent).
876
+ * Same rule as `restateSessionStore` / `restateProvider` / `restateClock` —
877
+ * but easier to get wrong here, because `toolState` looks like
878
+ * agent-lifetime configuration rather than a per-invocation binding.
879
+ *
880
+ * The map is a schema you own: one JSON object, no versioning, no migration.
881
+ * A value written by an earlier deploy is still there after you change its
882
+ * shape, so either read tolerantly or move to a fresh `key`.
883
+ *
884
+ * Enabling this adds a `ctx.get` at run start, which changes the journal
885
+ * shape for NEW invocations. Existing in-flight invocations replay against
886
+ * the old shape — drain them (or accept the failed attempts) before rolling
887
+ * it out.
888
+ */
889
+ declare function restateToolStateStore(ctx: RestateObjectContextLike, options?: RestateToolStateStoreOptions): ToolStateStore;
890
+ //#endregion
841
891
  //#region src/restate/wait-background.d.ts
842
892
  interface RestateWaitBackgroundOptions {
843
893
  /** The Restate context the awakeable + journal entries bind to. */
@@ -891,5 +941,5 @@ declare function restateWaitBackground(options: RestateWaitBackgroundOptions): (
891
941
  signal?: AbortSignal;
892
942
  }) => Promise<TaskExitInfo | null>;
893
943
  //#endregion
894
- export { type AwakeableWithTimeoutOptions, type ReplayDoneHooks, type ReplayTracker, type ReplayTrackerOptions, type RestateAwakeable, type RestateAwakeableToolOptions, type RestateClockOptions, type RestateContextLike, type RestateDurableStart, type RestateDurableWait, type RestateMcpToolWrapOptions, type RestateObjectContextLike, type RestatePromiseAllLike, type RestatePromiseLike, type RestatePromiseRaceLike, type RestateProviderOptions, type RestateRunOptions, type RestateSessionStoreOptions, type RestateToolBatchExecutorOptions, type RestateToolOptions, type RestateWaitBackgroundOptions, awakeableWithTimeout, createReplayTracker, deterministicUuid, replayAwareAbort, restateAwakeableTool, restateBehavior, restateClock, restateMcpToolWrap, restateProvider, restateSessionStore, restateTool, restateToolBatchExecutor, restateWaitBackground, shouldRethrowRestateControlError, wrapAgentTools };
944
+ export { type AwakeableWithTimeoutOptions, DEFAULT_TOOL_STATE_KEY, type ReplayDoneHooks, type ReplayTracker, type ReplayTrackerOptions, type RestateAwakeable, type RestateAwakeableToolOptions, type RestateClockOptions, type RestateContextLike, type RestateDurableStart, type RestateDurableWait, type RestateMcpToolWrapOptions, type RestateObjectContextLike, type RestatePromiseAllLike, type RestatePromiseLike, type RestatePromiseRaceLike, type RestateProviderOptions, type RestateRunOptions, type RestateSessionStoreOptions, type RestateToolBatchExecutorOptions, type RestateToolOptions, type RestateToolStateStoreOptions, type RestateWaitBackgroundOptions, awakeableWithTimeout, createReplayTracker, deterministicUuid, replayAwareAbort, restateAwakeableTool, restateBehavior, restateClock, restateMcpToolWrap, restateProvider, restateSessionStore, restateTool, restateToolBatchExecutor, restateToolStateStore, restateWaitBackground, shouldRethrowRestateControlError, wrapAgentTools };
895
945
  //# sourceMappingURL=restate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"restate.d.ts","names":[],"sources":["../src/restate/types.ts","../src/restate/awakeable.ts","../src/restate/awakeable-tool.ts","../src/restate/behavior.ts","../src/restate/clock.ts","../src/restate/errors.ts","../src/restate/replay.ts","../src/restate/mcp.ts","../src/restate/parallel.ts","../src/restate/provider.ts","../src/restate/session.ts","../src/restate/tool.ts","../src/restate/wait-background.ts"],"mappings":"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"}
1
+ {"version":3,"file":"restate.d.ts","names":[],"sources":["../src/restate/types.ts","../src/restate/awakeable.ts","../src/restate/awakeable-tool.ts","../src/restate/behavior.ts","../src/restate/clock.ts","../src/restate/errors.ts","../src/restate/replay.ts","../src/restate/mcp.ts","../src/restate/parallel.ts","../src/restate/provider.ts","../src/restate/session.ts","../src/restate/tool.ts","../src/restate/tool-state.ts","../src/restate/wait-background.ts"],"mappings":"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"}
package/dist/restate.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { n as buildAliasMaps } from "./aliasing-lVFbm81n.js";
2
2
  import { r as coerceToolResultContent } from "./types-BIarq1qE.js";
3
- import { a as hydrateReadStateFromSessionAsync } from "./read-state-Dt7UbVsd.js";
3
+ import { i as stagedToolState, l as hydrateReadStateFromSessionAsync, r as isToolStateOps } from "./tool-state-DTs-3ZHH.js";
4
4
  import { createHash } from "node:crypto";
5
5
  //#region src/restate/awakeable.ts
6
6
  /**
@@ -318,26 +318,52 @@ function restateTool(inner, ctx, options = {}) {
318
318
  return ctx.run(nameFor(seq, canonicalName, input, toolCtx.callId), async () => {
319
319
  options.replayTracker?.markLive();
320
320
  await hydrateOnce(toolCtx);
321
+ const staged = stagedToolState(toolCtx.state);
322
+ staged?.clear();
321
323
  if (shellBackgroundDisabled && input.run_in_background === true) return SHELL_BACKGROUND_DISABLED_MESSAGE;
322
324
  if (!softErrors) {
323
325
  const out = await inner.execute(input, toolCtx);
324
- return coerceBlocks ? coerceToolResultContent(out) : out;
326
+ return attachToolState(coerceBlocks ? coerceToolResultContent(out) : out, staged);
325
327
  }
326
328
  try {
327
329
  const out = await inner.execute(input, toolCtx);
328
- return coerceBlocks ? coerceToolResultContent(out) : out;
330
+ return attachToolState(coerceBlocks ? coerceToolResultContent(out) : out, staged);
329
331
  } catch (err) {
330
332
  if (isRestateControlOrAbort(err, toolCtx.signal)) throw err;
331
- return makeSoftToolError(err);
333
+ return attachToolState(makeSoftToolError(err), staged);
332
334
  }
333
335
  }, runOpts);
334
336
  };
335
- const executeDurably = softErrors ? async (input, toolCtx) => rethrowSoftToolError(await runJournaled(input, toolCtx)) : runJournaled;
336
- const durableExecuteImpl = softErrors ? (input, toolCtx) => unwrapDurableSoftError(runJournaled(input, toolCtx)) : runJournaled;
337
- const executeTwoPhase = async (input, toolCtx) => {
337
+ const finishJournaled = async (journaled, staged) => {
338
+ let value;
339
+ try {
340
+ value = await journaled;
341
+ } catch (err) {
342
+ staged?.clear();
343
+ throw err;
344
+ }
345
+ const output = applyToolState(value, staged);
346
+ return softErrors ? rethrowSoftToolError(output) : output;
347
+ };
348
+ const executeDurably = (input, toolCtx) => {
349
+ const staged = stagedToolState(toolCtx.state);
350
+ if (!softErrors && !staged) return runJournaled(input, toolCtx);
351
+ return finishJournaled(runJournaled(input, toolCtx), staged);
352
+ };
353
+ const durableExecuteImpl = (input, toolCtx) => {
354
+ const staged = stagedToolState(toolCtx.state);
355
+ if (!softErrors && !staged) return runJournaled(input, toolCtx);
356
+ return unwrapDurableToolValue(runJournaled(input, toolCtx), staged, softErrors);
357
+ };
358
+ const executeTwoPhaseInner = async (input, toolCtx) => {
338
359
  const start = durableStart;
360
+ const staged = stagedToolState(toolCtx.state);
339
361
  seq += 1;
340
362
  const entry = nameFor(seq, canonicalName, input, toolCtx.callId);
363
+ const runFinal = async (body) => applyToolState(await ctx.run(entry, async () => {
364
+ options.replayTracker?.markLive();
365
+ return attachToolState(await body(), staged);
366
+ }, runOpts), staged);
341
367
  const token = await ctx.run(`${entry}-start`, async () => {
342
368
  options.replayTracker?.markLive();
343
369
  await hydrateOnce(toolCtx);
@@ -356,17 +382,11 @@ function restateTool(inner, ctx, options = {}) {
356
382
  const wait = start.wait;
357
383
  if (wait) {
358
384
  if (wait.inline?.(token, input, toolCtx)) {
359
- if (!onAbort || !signal) return await ctx.run(entry, () => {
360
- options.replayTracker?.markLive();
361
- return wait.result(token, null, input, toolCtx);
362
- }, runOpts);
385
+ if (!onAbort || !signal) return await runFinal(() => wait.result(token, null, input, toolCtx));
363
386
  if (signal.aborted) fireAbortCleanup();
364
387
  else signal.addEventListener("abort", fireAbortCleanup, { once: true });
365
388
  try {
366
- return await ctx.run(entry, () => {
367
- options.replayTracker?.markLive();
368
- return wait.result(token, null, input, toolCtx);
369
- }, runOpts);
389
+ return await runFinal(() => wait.result(token, null, input, toolCtx));
370
390
  } finally {
371
391
  signal.removeEventListener("abort", fireAbortCleanup);
372
392
  }
@@ -392,18 +412,12 @@ function restateTool(inner, ctx, options = {}) {
392
412
  }, runOpts);
393
413
  if (marker.awakeableId !== awakeable.id) throw new Error(`restateTool(${canonicalName}): journal drift — registration marker carries awakeable "${marker.awakeableId}" but this replay minted "${awakeable.id}". Refusing to park on an unreachable awakeable.`);
394
414
  const resumed = await parkWithSignal(awakeable.promise, signal, canonicalName);
395
- return await ctx.run(entry, () => {
396
- options.replayTracker?.markLive();
397
- return wait.result(token, resumed, input, toolCtx);
398
- }, runOpts);
415
+ return await runFinal(() => wait.result(token, resumed, input, toolCtx));
399
416
  } finally {
400
417
  signal?.removeEventListener("abort", fireAbortCleanup);
401
418
  }
402
419
  }
403
- const attach = () => ctx.run(entry, () => {
404
- options.replayTracker?.markLive();
405
- return start.attach(token, input, toolCtx);
406
- }, runOpts);
420
+ const attach = () => runFinal(() => start.attach(token, input, toolCtx));
407
421
  if (!onAbort || !signal) return attach();
408
422
  if (signal.aborted) {
409
423
  fireAbortCleanup();
@@ -416,6 +430,15 @@ function restateTool(inner, ctx, options = {}) {
416
430
  signal.removeEventListener("abort", fireAbortCleanup);
417
431
  }
418
432
  };
433
+ const executeTwoPhase = async (input, toolCtx) => {
434
+ const staged = stagedToolState(toolCtx.state);
435
+ try {
436
+ return await executeTwoPhaseInner(input, toolCtx);
437
+ } catch (err) {
438
+ staged?.clear();
439
+ throw err;
440
+ }
441
+ };
419
442
  if (durableStart) {
420
443
  const { durableExecute: _dropped, ...rest } = inner;
421
444
  return {
@@ -431,20 +454,59 @@ function restateTool(inner, ctx, options = {}) {
431
454
  durableExecute: durableExecuteImpl
432
455
  };
433
456
  }
457
+ function isToolStateEnvelope(value) {
458
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
459
+ const candidate = value;
460
+ return candidate.__zidaneToolState === 1 && Array.isArray(candidate.ops) && "output" in candidate;
461
+ }
462
+ /**
463
+ * Wrap the output with the staged ops so they cross the journal as DATA.
464
+ * Returns the output untouched when nothing was staged — the no-state path
465
+ * must not change the journaled shape.
466
+ */
467
+ function attachToolState(output, staged) {
468
+ const ops = staged?.pending() ?? [];
469
+ return ops.length === 0 ? output : {
470
+ __zidaneToolState: 1,
471
+ ops,
472
+ output
473
+ };
474
+ }
434
475
  /**
435
- * Compose the soft-error unwrap into the runtime's mappable durable promise.
436
- * A journaled sentinel becomes a thrown (rejected) value so the Restate batch
437
- * scheduler classifies it as a tool failure → `tool_result { isError }`; a real
438
- * action failure (control error) is rethrown verbatim. Non-mappable promises
439
- * (a ctx without the SDK's `RestatePromise`) pass through so the loop's durable
440
- * guard surfaces the "not a mappable durable promise" error instead.
476
+ * Inverse of {@link attachToolState}, run OUTSIDE the journal: re-seed the
477
+ * staging view from the journaled ops so the loop's commit writes the same
478
+ * thing on a live attempt and on every replay. A value with no envelope
479
+ * clears the view — whatever it holds was staged by an attempt no journal
480
+ * entry records, and committing that would be a write replay can't reproduce.
441
481
  */
442
- function unwrapDurableSoftError(promise) {
482
+ function applyToolState(value, staged) {
483
+ if (isToolStateEnvelope(value)) {
484
+ if (isToolStateOps(value.ops)) staged?.restore(value.ops);
485
+ else staged?.clear();
486
+ return value.output;
487
+ }
488
+ staged?.clear();
489
+ return value;
490
+ }
491
+ /**
492
+ * Compose the state unwrap + soft-error unwrap into the runtime's mappable
493
+ * durable promise. A journaled sentinel becomes a thrown (rejected) value so
494
+ * the Restate batch scheduler classifies it as a tool failure →
495
+ * `tool_result { isError }`; a real action failure (control error) is rethrown
496
+ * verbatim. Non-mappable promises (a ctx without the SDK's `RestatePromise`)
497
+ * pass through so the loop's durable guard surfaces the "not a mappable
498
+ * durable promise" error instead.
499
+ */
500
+ function unwrapDurableToolValue(promise, staged, softErrors) {
443
501
  const mappable = promise;
444
502
  if (typeof mappable.map !== "function") return promise;
445
503
  return mappable.map((value, failure) => {
446
- if (failure !== void 0) throw failure instanceof Error ? failure : new Error(String(failure));
447
- return rethrowSoftToolError(value);
504
+ if (failure !== void 0) {
505
+ staged?.clear();
506
+ throw failure instanceof Error ? failure : new Error(String(failure));
507
+ }
508
+ const output = applyToolState(value, staged);
509
+ return softErrors ? rethrowSoftToolError(output) : output;
448
510
  });
449
511
  }
450
512
  /**
@@ -903,6 +965,62 @@ function maxDefined(values) {
903
965
  return max;
904
966
  }
905
967
  //#endregion
968
+ //#region src/restate/tool-state.ts
969
+ /** Default virtual-object state key holding the tool-state map. */
970
+ const DEFAULT_TOOL_STATE_KEY = "zidane_tool_state";
971
+ /**
972
+ * Build a {@link ToolStateStore} over the bound virtual object's state.
973
+ *
974
+ * ```ts
975
+ * const agent = createAgent({
976
+ * provider,
977
+ * tools: wrapAgentTools({ shell }, ctx),
978
+ * session: createSession({ id: ctx.key, store: restateSessionStore(ctx) }),
979
+ * toolState: restateToolStateStore(ctx),
980
+ * })
981
+ * ```
982
+ *
983
+ * Single-writer like the session store: the state belongs to the object key,
984
+ * so bind one key per conversation and one agent per invocation.
985
+ *
986
+ * Build it INSIDE the handler. The returned store closes over this `ctx`, so
987
+ * an agent constructed once at module scope and reused across invocations
988
+ * would commit through a context that is already finished, and would never
989
+ * re-hydrate (the controller memoizes the load for the life of the agent).
990
+ * Same rule as `restateSessionStore` / `restateProvider` / `restateClock` —
991
+ * but easier to get wrong here, because `toolState` looks like
992
+ * agent-lifetime configuration rather than a per-invocation binding.
993
+ *
994
+ * The map is a schema you own: one JSON object, no versioning, no migration.
995
+ * A value written by an earlier deploy is still there after you change its
996
+ * shape, so either read tolerantly or move to a fresh `key`.
997
+ *
998
+ * Enabling this adds a `ctx.get` at run start, which changes the journal
999
+ * shape for NEW invocations. Existing in-flight invocations replay against
1000
+ * the old shape — drain them (or accept the failed attempts) before rolling
1001
+ * it out.
1002
+ */
1003
+ function restateToolStateStore(ctx, options = {}) {
1004
+ const key = options.key ?? "zidane_tool_state";
1005
+ const maxValueBytes = options.maxValueBytes;
1006
+ let cache;
1007
+ return {
1008
+ ...maxValueBytes !== void 0 ? { maxValueBytes } : {},
1009
+ load: async () => {
1010
+ cache = await ctx.get(key) ?? {};
1011
+ return { ...cache };
1012
+ },
1013
+ commit: (ops) => {
1014
+ if (ops.length === 0) return;
1015
+ const next = { ...cache ?? {} };
1016
+ for (const op of ops) if (op.delete === true) delete next[op.key];
1017
+ else next[op.key] = op.value;
1018
+ cache = next;
1019
+ ctx.set(key, next);
1020
+ }
1021
+ };
1022
+ }
1023
+ //#endregion
906
1024
  //#region src/restate/wait-background.ts
907
1025
  function entryToExit(entry) {
908
1026
  return {
@@ -981,6 +1099,6 @@ function restateWaitBackground(options) {
981
1099
  };
982
1100
  }
983
1101
  //#endregion
984
- export { awakeableWithTimeout, createReplayTracker, deterministicUuid, replayAwareAbort, restateAwakeableTool, restateBehavior, restateClock, restateMcpToolWrap, restateProvider, restateSessionStore, restateTool, restateToolBatchExecutor, restateWaitBackground, shouldRethrowRestateControlError, wrapAgentTools };
1102
+ export { DEFAULT_TOOL_STATE_KEY, awakeableWithTimeout, createReplayTracker, deterministicUuid, replayAwareAbort, restateAwakeableTool, restateBehavior, restateClock, restateMcpToolWrap, restateProvider, restateSessionStore, restateTool, restateToolBatchExecutor, restateToolStateStore, restateWaitBackground, shouldRethrowRestateControlError, wrapAgentTools };
985
1103
 
986
1104
  //# sourceMappingURL=restate.js.map