zidane 3.3.2 → 3.3.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.
@@ -176,12 +176,50 @@ interface McpServerConfig {
176
176
  bootstrapTimeout?: number;
177
177
  /** Timeout in milliseconds for MCP tool calls (default: 30000) */
178
178
  toolTimeout?: number;
179
+ /**
180
+ * Allow-list of tool names to expose. Names match the upstream tool name
181
+ * (NOT the namespaced `mcp_{server}_{tool}` form). Tools not in the list are
182
+ * dropped before registration — the model never sees them in its catalog and
183
+ * the wire cost of advertising them is avoided.
184
+ *
185
+ * Mutually exclusive with {@link McpServerConfig.disabledTools} — passing both
186
+ * throws at bootstrap time.
187
+ *
188
+ * Composes with {@link McpServerConfig.toolFilter}: allow-list applies first,
189
+ * then the predicate. Composes with the `mcp:tools:filter` hook: config-side
190
+ * filters apply first, then the hook can further narrow the list.
191
+ */
192
+ enabledTools?: string[];
193
+ /**
194
+ * Deny-list of tool names. Tools matching are dropped before registration.
195
+ * Same matching semantics as {@link McpServerConfig.enabledTools}.
196
+ */
197
+ disabledTools?: string[];
198
+ /**
199
+ * Custom predicate run on each upstream tool. Return `true` to keep, `false`
200
+ * to drop. Receives the raw `listTools()` payload — useful for filtering by
201
+ * description, schema shape, or other metadata that an allow/deny list can't
202
+ * express.
203
+ *
204
+ * Runs after the allow/deny filter but before the `mcp:tools:filter` hook.
205
+ */
206
+ toolFilter?: (tool: {
207
+ name: string;
208
+ description?: string | null;
209
+ inputSchema?: unknown;
210
+ }) => boolean;
179
211
  }
180
212
  type ToolExecutionMode = 'sequential' | 'parallel';
181
213
  interface AgentBehavior {
182
214
  /** Tool execution mode (default: 'sequential') */
183
215
  toolExecution?: ToolExecutionMode;
184
- /** Max agent loop iterations (default: 50) */
216
+ /**
217
+ * Max agent loop iterations.
218
+ *
219
+ * Default: unlimited (Infinity). The loop runs until the model signals
220
+ * completion (no tool calls / `end_turn`), the abort signal fires, or this
221
+ * cap is hit. Set a finite value as a safety net for runaway loops.
222
+ */
185
223
  maxTurns?: number;
186
224
  /** Max tokens per LLM response (default: 16384) */
187
225
  maxTokens?: number;
@@ -2028,6 +2066,27 @@ interface AgentHooks {
2028
2066
  ok: false;
2029
2067
  error: Error;
2030
2068
  })) => void;
2069
+ /**
2070
+ * Fires once per server after `listTools()` and after the config-side filters
2071
+ * (`enabledTools` / `disabledTools` / `toolFilter`) have applied, but BEFORE
2072
+ * tools are registered. Handlers may mutate `ctx.tools` in place — splicing,
2073
+ * reordering, or replacing entries — to further narrow what the model sees.
2074
+ *
2075
+ * Composes with config-side filters: config drops tools the host's static
2076
+ * policy excludes; this hook is the runtime escape hatch for per-user, per-
2077
+ * environment, or capability-driven decisions that the config can't express.
2078
+ *
2079
+ * Items are upstream tool descriptors (NOT yet namespaced as `mcp_<server>_<tool>`).
2080
+ */
2081
+ 'mcp:tools:filter': (ctx: {
2082
+ server: string;
2083
+ transport: 'stdio' | 'sse' | 'streamable-http';
2084
+ tools: Array<{
2085
+ name: string;
2086
+ description?: string | null;
2087
+ inputSchema?: unknown;
2088
+ }>;
2089
+ }) => void;
2031
2090
  /**
2032
2091
  * MCP-side counterpart of `tool:gate`. Same shape: set `block` to refuse,
2033
2092
  * set `result` to substitute a successful payload and skip the upstream
@@ -44,6 +44,12 @@ function normalizeOne(name, raw) {
44
44
  config.bootstrapTimeout = raw.bootstrapTimeout;
45
45
  if (typeof raw.toolTimeout === "number")
46
46
  config.toolTimeout = raw.toolTimeout;
47
+ if (Array.isArray(raw.enabledTools))
48
+ config.enabledTools = raw.enabledTools;
49
+ if (Array.isArray(raw.disabledTools))
50
+ config.disabledTools = raw.disabledTools;
51
+ if (typeof raw.toolFilter === "function")
52
+ config.toolFilter = raw.toolFilter;
47
53
  return config;
48
54
  }
49
55
  function looksLikeSingleConfig(obj) {
@@ -197,6 +203,20 @@ async function connectMcpServers(configs, _clientFactory, hooks) {
197
203
  }
198
204
  async function bootstrapServer(config, _clientFactory, hooks) {
199
205
  const start = Date.now();
206
+ if (config.enabledTools && config.disabledTools) {
207
+ const error = new Error(
208
+ `MCP server "${config.name}": enabledTools and disabledTools are mutually exclusive \u2014 set one or the other, not both.`
209
+ );
210
+ await hooks?.callHook("mcp:bootstrap:start", { name: config.name, transport: config.transport });
211
+ await hooks?.callHook("mcp:bootstrap:end", {
212
+ name: config.name,
213
+ transport: config.transport,
214
+ durationMs: 0,
215
+ ok: false,
216
+ error
217
+ });
218
+ return { ok: false, name: config.name, error };
219
+ }
200
220
  await hooks?.callHook("mcp:bootstrap:start", { name: config.name, transport: config.transport });
201
221
  let client = null;
202
222
  try {
@@ -212,15 +232,16 @@ async function bootstrapServer(config, _clientFactory, hooks) {
212
232
  bootstrapTimeout,
213
233
  `MCP server "${config.name}" bootstrap timed out after ${bootstrapTimeout}ms`
214
234
  );
235
+ const filteredTools = await applyMcpToolFilters(config, mcpTools, hooks);
215
236
  const durationMs = Date.now() - start;
216
237
  await hooks?.callHook("mcp:bootstrap:end", {
217
238
  name: config.name,
218
239
  transport: config.transport,
219
240
  durationMs,
220
241
  ok: true,
221
- toolCount: mcpTools.length
242
+ toolCount: filteredTools.length
222
243
  });
223
- return { ok: true, name: config.name, config, client: currentClient, tools: mcpTools };
244
+ return { ok: true, name: config.name, config, client: currentClient, tools: filteredTools };
224
245
  } catch (err) {
225
246
  const error = err instanceof Error ? err : new Error(String(err));
226
247
  await closeClientQuietly(client);
@@ -235,6 +256,27 @@ async function bootstrapServer(config, _clientFactory, hooks) {
235
256
  return { ok: false, name: config.name, error };
236
257
  }
237
258
  }
259
+ async function applyMcpToolFilters(config, tools, hooks) {
260
+ let filtered = tools;
261
+ if (config.enabledTools && config.enabledTools.length > 0) {
262
+ const allow = new Set(config.enabledTools);
263
+ filtered = filtered.filter((t) => allow.has(t.name));
264
+ }
265
+ if (config.disabledTools && config.disabledTools.length > 0) {
266
+ const deny = new Set(config.disabledTools);
267
+ filtered = filtered.filter((t) => !deny.has(t.name));
268
+ }
269
+ if (config.toolFilter) {
270
+ const predicate = config.toolFilter;
271
+ filtered = filtered.filter((t) => predicate(t));
272
+ }
273
+ if (hooks) {
274
+ const ctx = { server: config.name, transport: config.transport, tools: [...filtered] };
275
+ await hooks.callHook("mcp:tools:filter", ctx);
276
+ filtered = ctx.tools;
277
+ }
278
+ return filtered;
279
+ }
238
280
  function buildMcpToolDef(config, client, tool, namespacedName, hooks) {
239
281
  return {
240
282
  spec: {
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-UD25QF3H.js";
12
12
  import {
13
13
  connectMcpServers
14
- } from "./chunk-7H34OFDA.js";
14
+ } from "./chunk-6Z4UMOV4.js";
15
15
  import {
16
16
  toolOutputByteLength
17
17
  } from "./chunk-JH6IAAFA.js";
@@ -812,7 +812,7 @@ function decodedBase64ByteLength(b64) {
812
812
 
813
813
  // src/tools/read-file.ts
814
814
  var DEFAULT_LINE_LIMIT = 2e3;
815
- var DEFAULT_BYTE_CAP = 65536;
815
+ var DEFAULT_BYTE_CAP = 262144;
816
816
  var DEFAULT_IMAGE_BYTE_CAP = 5 * 1024 * 1024;
817
817
  var readFile = {
818
818
  spec: {
@@ -824,7 +824,7 @@ var readFile = {
824
824
  path: { type: "string", description: "Relative file path." },
825
825
  offset: { type: "integer", description: "1-indexed line number to start from. Default: 1." },
826
826
  limit: { type: "integer", description: "Max lines to return. Default: 2000. Set 0 for unlimited." },
827
- maxBytes: { type: "integer", description: "Hard byte cap on file content read, regardless of line count. Default: 65536. Set 0 for unlimited. The rendered output may be slightly larger than this cap when `lineNumbers` is on (each line carries a `<N>\\t` prefix)." },
827
+ maxBytes: { type: "integer", description: "Hard byte cap on file content read, regardless of line count. Default: 262144. Set 0 for unlimited. The rendered output may be slightly larger than this cap when `lineNumbers` is on (each line carries a `<N>\\t` prefix)." },
828
828
  lineNumbers: { type: "boolean", description: "Prefix each line with its 1-indexed line number. Default: true. Override the agent-wide `behavior.readLineNumbers` for this call." }
829
829
  },
830
830
  required: ["path"]
@@ -943,7 +943,7 @@ var readFile = {
943
943
  if (midLineCut) {
944
944
  return `${body}
945
945
 
946
- \u2026truncated mid-line at line ${lastLineRead} (byte cap ${maxBytesN} reached). File has ${totalLines} lines, ${totalBytes} bytes total. Raise maxBytes, or use shell with sed/awk to read the remainder of this line.`;
946
+ \u2026truncated mid-line at line ${lastLineRead} (byte cap ${maxBytesN} reached). File has ${totalLines} lines, ${totalBytes} bytes total. Raise maxBytes to read the full line.`;
947
947
  }
948
948
  const reason = bytesCut ? `byte cap (${maxBytesN}) reached` : `line limit (${limitN}) reached`;
949
949
  return `${body}
@@ -992,17 +992,17 @@ function extractTrailingCommand(command) {
992
992
  }
993
993
 
994
994
  // src/tools/shell.ts
995
- var DEFAULT_MAX_OUTPUT_BYTES = 8192;
995
+ var DEFAULT_MAX_OUTPUT_BYTES = 32768;
996
996
  var shell = {
997
997
  spec: {
998
998
  name: "shell",
999
- description: "Execute a shell command in the project root and return its combined stdout/stderr. Output is tail-priority truncated at 8 KB by default; errors and exit-code summaries live in the tail. By default each call appends a `(exit N, Nms)` footer and surfaces non-empty stderr in a separate section even on success \u2014 set `metadata: false` to return only stdout. Set maxOutputBytes=0 to disable truncation.",
999
+ description: "Execute a shell command in the project root and return its combined stdout/stderr. Output is tail-priority truncated at 32 KiB by default; errors and exit-code summaries live in the tail. By default each call appends a `(exit N, Nms)` footer and surfaces non-empty stderr in a separate section even on success \u2014 set `metadata: false` to return only stdout. Set maxOutputBytes=0 to disable truncation.",
1000
1000
  inputSchema: {
1001
1001
  type: "object",
1002
1002
  properties: {
1003
1003
  command: { type: "string", description: "Shell command to run." },
1004
1004
  timeout: { type: "integer", description: "Per-call timeout in milliseconds." },
1005
- maxOutputBytes: { type: "integer", description: "Truncate combined stdout+stderr beyond this many bytes. Default: 8192. Set 0 for unlimited." },
1005
+ maxOutputBytes: { type: "integer", description: "Truncate combined stdout+stderr beyond this many bytes. Default: 32768. Set 0 for unlimited." },
1006
1006
  metadata: { type: "boolean", description: "Append `(exit N, Nms)` footer and surface non-empty stderr on success. Default: true." }
1007
1007
  },
1008
1008
  required: ["command"]
@@ -1712,7 +1712,8 @@ async function runLoop(ctx) {
1712
1712
  let totalOut = 0;
1713
1713
  const turnUsages = [];
1714
1714
  const startTime = Date.now();
1715
- const maxTurns = ctx.maxTurns ?? 50;
1715
+ const maxTurns = ctx.maxTurns ?? Number.POSITIVE_INFINITY;
1716
+ let turnsCompleted = 0;
1716
1717
  const ttft = { mark: void 0 };
1717
1718
  const markTtft = () => {
1718
1719
  if (ttft.mark === void 0)
@@ -1728,6 +1729,7 @@ async function runLoop(ctx) {
1728
1729
  break;
1729
1730
  }
1730
1731
  const result = await executeTurn(ctx, turn);
1732
+ turnsCompleted = turn + 1;
1731
1733
  totalIn += result.usage.input;
1732
1734
  totalOut += result.usage.output;
1733
1735
  turnUsages.push(result.usage);
@@ -1777,7 +1779,7 @@ async function runLoop(ctx) {
1777
1779
  return {
1778
1780
  totalIn,
1779
1781
  totalOut,
1780
- turns: maxTurns,
1782
+ turns: turnsCompleted,
1781
1783
  elapsed: Date.now() - startTime,
1782
1784
  turnUsage: turnUsages,
1783
1785
  ...ttft.mark !== void 0 ? { timeTillFirstTokenMs: ttft.mark } : {}
@@ -2383,6 +2385,7 @@ var HOOK_EVENT_NAMES = [
2383
2385
  "mcp:close",
2384
2386
  "mcp:bootstrap:start",
2385
2387
  "mcp:bootstrap:end",
2388
+ "mcp:tools:filter",
2386
2389
  "mcp:tool:gate",
2387
2390
  "mcp:tool:before",
2388
2391
  "mcp:tool:after",
@@ -6,7 +6,7 @@ import {
6
6
  readFile,
7
7
  shell,
8
8
  writeFile
9
- } from "./chunk-Z2E5QN5X.js";
9
+ } from "./chunk-LHCIHOCE.js";
10
10
 
11
11
  // src/presets/basic.ts
12
12
  var basicTools = { shell, readFile, writeFile, listFiles, edit, multiEdit };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { d as AgentHooks } from './agent-DqEkutk4.js';
2
- export { ab as ActivationVia, ac as ActiveSkill, A as Agent, a as AgentAbortedError, b as AgentBehavior, c as AgentContextExceededError, e as AgentOptions, f as AgentProviderError, g as AgentRunOptions, h as AgentStats, i as AgentToolNotAllowedError, j as AnthropicParams, C as CONTEXT_EXCEEDED_MESSAGE_PATTERNS, k as CerebrasParams, m as ClassifiedError, n as ClassifiedErrorKind, o as CreateSessionOptions, ad as DeactivationReason, ae as FileMapAdapter, af as FileMapStoreOptions, M as McpConnection, p as McpServerConfig, q as McpToolHookContext, O as OAuthRefreshHookContext, ag as OpenAICompatAuthHeader, ah as OpenAICompatHttpError, ai as OpenAICompatParams, r as OpenAIParams, s as OpenRouterParams, P as PromptDocumentPart, t as PromptImagePart, u as PromptPart, v as PromptTextPart, w as Provider, x as ProviderCapabilities, R as RemoteStoreOptions, y as RunHookMap, S as Session, z as SessionContentBlock, B as SessionData, D as SessionEndStatus, E as SessionHookContext, F as SessionMessage, G as SessionRun, H as SessionStore, I as SessionTurn, aj as SkillActivationState, ak as SkillActivationStateOptions, J as SkillConfig, al as SkillDiagnostic, K as SkillResource, am as SkillSource, L as SkillsConfig, N as SpawnHookContext, Q as StreamCallbacks, T as StreamHookContext, U as StreamOptions, V as ThinkingLevel, W as ToolCall, X as ToolContext, Y as ToolDef, Z as ToolExecutionMode, _ as ToolHookContext, $ as ToolMap, a0 as ToolResult, a1 as ToolResultContent, a2 as ToolResultImageContent, a3 as ToolResultTextContent, a4 as ToolSpec, a5 as TurnFinishReason, a6 as TurnResult, a7 as TurnUsage, an as anthropic, ao as autoDetectAndConvert, ap as cerebras, aq as classifyOpenAICompatError, ar as connectMcpServers, as as createAgent, at as createFileMapStore, au as createMemoryStore, av as createRemoteStore, aw as createSession, ax as createSkillActivationState, ay as fromAnthropic, az as fromOpenAI, aA as loadSession, aB as mapOAIFinishReason, a8 as matchesContextExceeded, aC as normalizeMcpBlocks, aD as normalizeMcpServers, aE as openai, aF as openaiCompat, aG as openrouter, aH as resultToString, aI as toAnthropic, aJ as toOpenAI, aK as toTypedError, a9 as toolOutputByteLength, aa as toolResultToText } from './agent-DqEkutk4.js';
1
+ import { d as AgentHooks } from './agent-LEf7zjw6.js';
2
+ export { ab as ActivationVia, ac as ActiveSkill, A as Agent, a as AgentAbortedError, b as AgentBehavior, c as AgentContextExceededError, e as AgentOptions, f as AgentProviderError, g as AgentRunOptions, h as AgentStats, i as AgentToolNotAllowedError, j as AnthropicParams, C as CONTEXT_EXCEEDED_MESSAGE_PATTERNS, k as CerebrasParams, m as ClassifiedError, n as ClassifiedErrorKind, o as CreateSessionOptions, ad as DeactivationReason, ae as FileMapAdapter, af as FileMapStoreOptions, M as McpConnection, p as McpServerConfig, q as McpToolHookContext, O as OAuthRefreshHookContext, ag as OpenAICompatAuthHeader, ah as OpenAICompatHttpError, ai as OpenAICompatParams, r as OpenAIParams, s as OpenRouterParams, P as PromptDocumentPart, t as PromptImagePart, u as PromptPart, v as PromptTextPart, w as Provider, x as ProviderCapabilities, R as RemoteStoreOptions, y as RunHookMap, S as Session, z as SessionContentBlock, B as SessionData, D as SessionEndStatus, E as SessionHookContext, F as SessionMessage, G as SessionRun, H as SessionStore, I as SessionTurn, aj as SkillActivationState, ak as SkillActivationStateOptions, J as SkillConfig, al as SkillDiagnostic, K as SkillResource, am as SkillSource, L as SkillsConfig, N as SpawnHookContext, Q as StreamCallbacks, T as StreamHookContext, U as StreamOptions, V as ThinkingLevel, W as ToolCall, X as ToolContext, Y as ToolDef, Z as ToolExecutionMode, _ as ToolHookContext, $ as ToolMap, a0 as ToolResult, a1 as ToolResultContent, a2 as ToolResultImageContent, a3 as ToolResultTextContent, a4 as ToolSpec, a5 as TurnFinishReason, a6 as TurnResult, a7 as TurnUsage, an as anthropic, ao as autoDetectAndConvert, ap as cerebras, aq as classifyOpenAICompatError, ar as connectMcpServers, as as createAgent, at as createFileMapStore, au as createMemoryStore, av as createRemoteStore, aw as createSession, ax as createSkillActivationState, ay as fromAnthropic, az as fromOpenAI, aA as loadSession, aB as mapOAIFinishReason, a8 as matchesContextExceeded, aC as normalizeMcpBlocks, aD as normalizeMcpServers, aE as openai, aF as openaiCompat, aG as openrouter, aH as resultToString, aI as toAnthropic, aJ as toOpenAI, aK as toTypedError, a9 as toolOutputByteLength, aa as toolResultToText } from './agent-LEf7zjw6.js';
3
3
  export { createDockerContext, createProcessContext } from './contexts.js';
4
4
  export { S as SandboxProvider, c as createSandboxContext } from './sandbox-CLghrTLi.js';
5
5
  export { C as ContextCapabilities, a as ContextType, E as ExecResult, b as ExecutionContext, c as ExecutionHandle, S as SpawnConfig } from './types-vA1a_ZX7.js';
6
6
  export { Preset, basic, basicTools, definePreset } from './presets.js';
7
7
  export { IMPLICITLY_ALLOWED_SKILL_TOOLS, SkillValidationIssue, SkillValidationResult, SourcedScanPath, buildCatalog, defineSkill, discoverSkills, installAllowedToolsGate, interpolateShellCommands, isToolAllowedByUnion, matchesAllowedTool, parseAllowedToolPattern, parseSkillFile, resolveSkills, validateResourcePath, validateSkillForWrite, validateSkillName, writeSkillToDisk, writeSkillsToDisk } from './skills.js';
8
- export { S as SkillsReadToolOptions, a as SkillsRunScriptToolOptions, b as SkillsUseToolOptions, c as createSkillsReadTool, d as createSkillsRunScriptTool, e as createSkillsUseTool, f as edit, g as glob, h as grep, m as multiEdit } from './skills-use-WbOh6TuS.js';
9
- export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, V as ValidationResult, c as createInteractionTool, b as createSpawnTool, v as validateToolArgs } from './validation-DTbkLXbd.js';
8
+ export { S as SkillsReadToolOptions, a as SkillsRunScriptToolOptions, b as SkillsUseToolOptions, c as createSkillsReadTool, d as createSkillsRunScriptTool, e as createSkillsUseTool, f as edit, g as glob, h as grep, m as multiEdit } from './skills-use-CVxdV6Tq.js';
9
+ export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, V as ValidationResult, c as createInteractionTool, b as createSpawnTool, v as validateToolArgs } from './validation-C4Ucr2wT.js';
10
10
  import { Hookable } from 'hookable';
11
11
  import '@modelcontextprotocol/sdk/client/index.js';
12
12
 
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  basicTools,
12
12
  basic_default,
13
13
  definePreset
14
- } from "./chunk-3D5Q527Y.js";
14
+ } from "./chunk-NYGFP4AV.js";
15
15
  import {
16
16
  createAgent,
17
17
  createInteractionTool,
@@ -24,7 +24,7 @@ import {
24
24
  grep,
25
25
  multiEdit,
26
26
  validateToolArgs
27
- } from "./chunk-Z2E5QN5X.js";
27
+ } from "./chunk-LHCIHOCE.js";
28
28
  import {
29
29
  IMPLICITLY_ALLOWED_SKILL_TOOLS,
30
30
  buildCatalog,
@@ -53,7 +53,7 @@ import {
53
53
  normalizeMcpBlocks,
54
54
  normalizeMcpServers,
55
55
  resultToString
56
- } from "./chunk-7H34OFDA.js";
56
+ } from "./chunk-6Z4UMOV4.js";
57
57
  import {
58
58
  toolOutputByteLength,
59
59
  toolResultToText
package/dist/mcp.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import 'hookable';
2
- export { M as McpConnection, p as McpServerConfig, ar as connectMcpServers, aC as normalizeMcpBlocks, aD as normalizeMcpServers, aH as resultToString } from './agent-DqEkutk4.js';
2
+ export { M as McpConnection, p as McpServerConfig, ar as connectMcpServers, aC as normalizeMcpBlocks, aD as normalizeMcpServers, aH as resultToString } from './agent-LEf7zjw6.js';
3
3
  import '@modelcontextprotocol/sdk/client/index.js';
4
4
  import './types-vA1a_ZX7.js';
package/dist/mcp.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  normalizeMcpBlocks,
4
4
  normalizeMcpServers,
5
5
  resultToString
6
- } from "./chunk-7H34OFDA.js";
6
+ } from "./chunk-6Z4UMOV4.js";
7
7
  import "./chunk-JH6IAAFA.js";
8
8
  export {
9
9
  connectMcpServers,
package/dist/presets.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Y as ToolDef, e as AgentOptions } from './agent-DqEkutk4.js';
1
+ import { Y as ToolDef, e as AgentOptions } from './agent-LEf7zjw6.js';
2
2
  import 'hookable';
3
3
  import './types-vA1a_ZX7.js';
4
4
  import '@modelcontextprotocol/sdk/client/index.js';
package/dist/presets.js CHANGED
@@ -2,11 +2,11 @@ import {
2
2
  basicTools,
3
3
  basic_default,
4
4
  definePreset
5
- } from "./chunk-3D5Q527Y.js";
6
- import "./chunk-Z2E5QN5X.js";
5
+ } from "./chunk-NYGFP4AV.js";
6
+ import "./chunk-LHCIHOCE.js";
7
7
  import "./chunk-X3VOTPVM.js";
8
8
  import "./chunk-UD25QF3H.js";
9
- import "./chunk-7H34OFDA.js";
9
+ import "./chunk-6Z4UMOV4.js";
10
10
  import "./chunk-JH6IAAFA.js";
11
11
  import "./chunk-LNN5UTS2.js";
12
12
  export {
@@ -1,4 +1,4 @@
1
- export { j as AnthropicParams, k as CerebrasParams, ag as OpenAICompatAuthHeader, ah as OpenAICompatHttpError, ai as OpenAICompatParams, r as OpenAIParams, s as OpenRouterParams, w as Provider, x as ProviderCapabilities, Q as StreamCallbacks, U as StreamOptions, W as ToolCall, a0 as ToolResult, a4 as ToolSpec, a6 as TurnResult, an as anthropic, ap as cerebras, aq as classifyOpenAICompatError, aB as mapOAIFinishReason, aE as openai, aF as openaiCompat, aG as openrouter } from './agent-DqEkutk4.js';
1
+ export { j as AnthropicParams, k as CerebrasParams, ag as OpenAICompatAuthHeader, ah as OpenAICompatHttpError, ai as OpenAICompatParams, r as OpenAIParams, s as OpenRouterParams, w as Provider, x as ProviderCapabilities, Q as StreamCallbacks, U as StreamOptions, W as ToolCall, a0 as ToolResult, a4 as ToolSpec, a6 as TurnResult, an as anthropic, ap as cerebras, aq as classifyOpenAICompatError, aB as mapOAIFinishReason, aE as openai, aF as openaiCompat, aG as openrouter } from './agent-LEf7zjw6.js';
2
2
  import 'hookable';
3
3
  import './types-vA1a_ZX7.js';
4
4
  import '@modelcontextprotocol/sdk/client/index.js';
@@ -1,4 +1,4 @@
1
- import { H as SessionStore } from '../agent-DqEkutk4.js';
1
+ import { H as SessionStore } from '../agent-LEf7zjw6.js';
2
2
  import 'hookable';
3
3
  import '../types-vA1a_ZX7.js';
4
4
  import '@modelcontextprotocol/sdk/client/index.js';
package/dist/session.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { o as CreateSessionOptions, ae as FileMapAdapter, af as FileMapStoreOptions, R as RemoteStoreOptions, S as Session, z as SessionContentBlock, B as SessionData, F as SessionMessage, G as SessionRun, H as SessionStore, I as SessionTurn, ao as autoDetectAndConvert, at as createFileMapStore, au as createMemoryStore, av as createRemoteStore, aw as createSession, ay as fromAnthropic, az as fromOpenAI, aA as loadSession, aI as toAnthropic, aJ as toOpenAI } from './agent-DqEkutk4.js';
1
+ export { o as CreateSessionOptions, ae as FileMapAdapter, af as FileMapStoreOptions, R as RemoteStoreOptions, S as Session, z as SessionContentBlock, B as SessionData, F as SessionMessage, G as SessionRun, H as SessionStore, I as SessionTurn, ao as autoDetectAndConvert, at as createFileMapStore, au as createMemoryStore, av as createRemoteStore, aw as createSession, ay as fromAnthropic, az as fromOpenAI, aA as loadSession, aI as toAnthropic, aJ as toOpenAI } from './agent-LEf7zjw6.js';
2
2
  import 'hookable';
3
3
  import './types-vA1a_ZX7.js';
4
4
  import '@modelcontextprotocol/sdk/client/index.js';
@@ -1,4 +1,4 @@
1
- import { Y as ToolDef, J as SkillConfig, aj as SkillActivationState, d as AgentHooks } from './agent-DqEkutk4.js';
1
+ import { Y as ToolDef, J as SkillConfig, aj as SkillActivationState, d as AgentHooks } from './agent-LEf7zjw6.js';
2
2
  import { Hookable } from 'hookable';
3
3
 
4
4
  /**
package/dist/skills.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { d as AgentHooks, aj as SkillActivationState, J as SkillConfig, am as SkillSource, al as SkillDiagnostic, L as SkillsConfig } from './agent-DqEkutk4.js';
2
- export { ab as ActivationVia, ac as ActiveSkill, ad as DeactivationReason, ak as SkillActivationStateOptions, K as SkillResource, ax as createSkillActivationState } from './agent-DqEkutk4.js';
1
+ import { d as AgentHooks, aj as SkillActivationState, J as SkillConfig, am as SkillSource, al as SkillDiagnostic, L as SkillsConfig } from './agent-LEf7zjw6.js';
2
+ export { ab as ActivationVia, ac as ActiveSkill, ad as DeactivationReason, ak as SkillActivationStateOptions, K as SkillResource, ax as createSkillActivationState } from './agent-LEf7zjw6.js';
3
3
  import { Hookable } from 'hookable';
4
4
  import { b as ExecutionContext, c as ExecutionHandle } from './types-vA1a_ZX7.js';
5
5
  import '@modelcontextprotocol/sdk/client/index.js';
package/dist/tools.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { S as SkillsReadToolOptions, a as SkillsRunScriptToolOptions, b as SkillsUseToolOptions, c as createSkillsReadTool, d as createSkillsRunScriptTool, e as createSkillsUseTool, f as edit, g as glob, h as grep, m as multiEdit } from './skills-use-WbOh6TuS.js';
2
- export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, V as ValidationResult, c as createInteractionTool, b as createSpawnTool, v as validateToolArgs } from './validation-DTbkLXbd.js';
3
- import { Y as ToolDef } from './agent-DqEkutk4.js';
4
- export { X as ToolContext, $ as ToolMap } from './agent-DqEkutk4.js';
1
+ export { S as SkillsReadToolOptions, a as SkillsRunScriptToolOptions, b as SkillsUseToolOptions, c as createSkillsReadTool, d as createSkillsRunScriptTool, e as createSkillsUseTool, f as edit, g as glob, h as grep, m as multiEdit } from './skills-use-CVxdV6Tq.js';
2
+ export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, V as ValidationResult, c as createInteractionTool, b as createSpawnTool, v as validateToolArgs } from './validation-C4Ucr2wT.js';
3
+ import { Y as ToolDef } from './agent-LEf7zjw6.js';
4
+ export { X as ToolContext, $ as ToolMap } from './agent-LEf7zjw6.js';
5
5
  import 'hookable';
6
6
  import './presets.js';
7
7
  import './types-vA1a_ZX7.js';
package/dist/tools.js CHANGED
@@ -13,10 +13,10 @@ import {
13
13
  shell,
14
14
  validateToolArgs,
15
15
  writeFile
16
- } from "./chunk-Z2E5QN5X.js";
16
+ } from "./chunk-LHCIHOCE.js";
17
17
  import "./chunk-X3VOTPVM.js";
18
18
  import "./chunk-UD25QF3H.js";
19
- import "./chunk-7H34OFDA.js";
19
+ import "./chunk-6Z4UMOV4.js";
20
20
  import "./chunk-JH6IAAFA.js";
21
21
  import "./chunk-LNN5UTS2.js";
22
22
  export {
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { A as Agent, a as AgentAbortedError, b as AgentBehavior, c as AgentContextExceededError, d as AgentHooks, e as AgentOptions, f as AgentProviderError, g as AgentRunOptions, h as AgentStats, i as AgentToolNotAllowedError, j as AnthropicParams, C as CONTEXT_EXCEEDED_MESSAGE_PATTERNS, k as CerebrasParams, l as ChildRunStats, m as ClassifiedError, n as ClassifiedErrorKind, o as CreateSessionOptions, M as McpConnection, p as McpServerConfig, q as McpToolHookContext, O as OAuthRefreshHookContext, r as OpenAIParams, s as OpenRouterParams, P as PromptDocumentPart, t as PromptImagePart, u as PromptPart, v as PromptTextPart, w as Provider, x as ProviderCapabilities, R as RemoteStoreOptions, y as RunHookMap, S as Session, z as SessionContentBlock, B as SessionData, D as SessionEndStatus, E as SessionHookContext, F as SessionMessage, G as SessionRun, H as SessionStore, I as SessionTurn, J as SkillConfig, K as SkillResource, L as SkillsConfig, N as SpawnHookContext, Q as StreamCallbacks, T as StreamHookContext, U as StreamOptions, V as ThinkingLevel, W as ToolCall, X as ToolContext, Y as ToolDef, Z as ToolExecutionMode, _ as ToolHookContext, $ as ToolMap, a0 as ToolResult, a1 as ToolResultContent, a2 as ToolResultImageContent, a3 as ToolResultTextContent, a4 as ToolSpec, a5 as TurnFinishReason, a6 as TurnResult, a7 as TurnUsage, a8 as matchesContextExceeded, a9 as toolOutputByteLength, aa as toolResultToText } from './agent-DqEkutk4.js';
1
+ export { A as Agent, a as AgentAbortedError, b as AgentBehavior, c as AgentContextExceededError, d as AgentHooks, e as AgentOptions, f as AgentProviderError, g as AgentRunOptions, h as AgentStats, i as AgentToolNotAllowedError, j as AnthropicParams, C as CONTEXT_EXCEEDED_MESSAGE_PATTERNS, k as CerebrasParams, l as ChildRunStats, m as ClassifiedError, n as ClassifiedErrorKind, o as CreateSessionOptions, M as McpConnection, p as McpServerConfig, q as McpToolHookContext, O as OAuthRefreshHookContext, r as OpenAIParams, s as OpenRouterParams, P as PromptDocumentPart, t as PromptImagePart, u as PromptPart, v as PromptTextPart, w as Provider, x as ProviderCapabilities, R as RemoteStoreOptions, y as RunHookMap, S as Session, z as SessionContentBlock, B as SessionData, D as SessionEndStatus, E as SessionHookContext, F as SessionMessage, G as SessionRun, H as SessionStore, I as SessionTurn, J as SkillConfig, K as SkillResource, L as SkillsConfig, N as SpawnHookContext, Q as StreamCallbacks, T as StreamHookContext, U as StreamOptions, V as ThinkingLevel, W as ToolCall, X as ToolContext, Y as ToolDef, Z as ToolExecutionMode, _ as ToolHookContext, $ as ToolMap, a0 as ToolResult, a1 as ToolResultContent, a2 as ToolResultImageContent, a3 as ToolResultTextContent, a4 as ToolSpec, a5 as TurnFinishReason, a6 as TurnResult, a7 as TurnUsage, a8 as matchesContextExceeded, a9 as toolOutputByteLength, aa as toolResultToText } from './agent-LEf7zjw6.js';
2
2
  export { C as ContextCapabilities, a as ContextType, E as ExecResult, b as ExecutionContext, c as ExecutionHandle, S as SpawnConfig } from './types-vA1a_ZX7.js';
3
3
  export { S as SandboxProvider } from './sandbox-CLghrTLi.js';
4
4
  export { Preset } from './presets.js';
5
- export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, V as ValidationResult } from './validation-DTbkLXbd.js';
5
+ export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, V as ValidationResult } from './validation-C4Ucr2wT.js';
6
6
  import 'hookable';
7
7
  import '@modelcontextprotocol/sdk/client/index.js';
@@ -1,4 +1,4 @@
1
- import { X as ToolContext, Y as ToolDef, h as AgentStats, l as ChildRunStats } from './agent-DqEkutk4.js';
1
+ import { X as ToolContext, Y as ToolDef, h as AgentStats, l as ChildRunStats } from './agent-LEf7zjw6.js';
2
2
  import { Preset } from './presets.js';
3
3
 
4
4
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zidane",
3
- "version": "3.3.2",
3
+ "version": "3.3.4",
4
4
  "description": "an agent that goes straight to the goal",
5
5
  "type": "module",
6
6
  "private": false,