zidane 1.6.15 → 1.6.16

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.
@@ -23,6 +23,8 @@ interface McpServerConfig {
23
23
  url?: string;
24
24
  /** Optional headers for HTTP transports */
25
25
  headers?: Record<string, string>;
26
+ /** Timeout in milliseconds for MCP tool calls (default: 30000) */
27
+ toolTimeout?: number;
26
28
  }
27
29
  type ToolExecutionMode = 'sequential' | 'parallel';
28
30
  interface AgentBehavior {
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-SZA4FKW5.js";
10
10
  import {
11
11
  connectMcpServers
12
- } from "./chunk-5LOHDFK3.js";
12
+ } from "./chunk-WDBO3JCO.js";
13
13
 
14
14
  // src/tools/interaction.ts
15
15
  function createInteractionTool(options) {
@@ -362,8 +362,15 @@ async function executeToolsSequential(ctx, toolCalls, turnId) {
362
362
  }
363
363
  async function executeToolsParallel(ctx, toolCalls, turnId) {
364
364
  const executions = toolCalls.map((call) => executeSingleTool(ctx, call, turnId));
365
- const settled = await Promise.all(executions);
366
- return settled.map((s) => s.result);
365
+ const settled = await Promise.allSettled(executions);
366
+ return settled.map((s, i) => {
367
+ if (s.status === "fulfilled")
368
+ return s.value.result;
369
+ return {
370
+ id: toolCalls[i].id,
371
+ content: `Error: ${s.reason instanceof Error ? s.reason.message : String(s.reason)}`
372
+ };
373
+ });
367
374
  }
368
375
 
369
376
  // src/agent.ts
@@ -4,7 +4,7 @@ import {
4
4
  shell,
5
5
  spawn,
6
6
  writeFile
7
- } from "./chunk-4GCOSJ7J.js";
7
+ } from "./chunk-FKG35KT3.js";
8
8
 
9
9
  // src/harnesses/basic.ts
10
10
  var basicTools = { shell, readFile, writeFile, listFiles };
@@ -60,8 +60,15 @@ async function connectMcpServers(configs, _clientFactory, hooks) {
60
60
  if (gateCtx.block)
61
61
  return `Blocked: ${gateCtx.reason}`;
62
62
  await hooks?.callHook("mcp:tool:before", { turnId, callId, server: config.name, tool: tool.name, input });
63
+ const timeout = config.toolTimeout ?? 3e4;
63
64
  try {
64
- const result = await client.callTool({ name: tool.name, arguments: input });
65
+ let timer;
66
+ const result = await Promise.race([
67
+ client.callTool({ name: tool.name, arguments: input }),
68
+ new Promise((_, reject) => {
69
+ timer = setTimeout(() => reject(new Error(`MCP tool "${tool.name}" on server "${config.name}" timed out after ${timeout}ms`)), timeout);
70
+ })
71
+ ]).finally(() => clearTimeout(timer));
65
72
  let output = resultToString(result.content);
66
73
  const transformCtx = { turnId, callId, server: config.name, tool: tool.name, input, result: output };
67
74
  await hooks?.callHook("mcp:tool:transform", transformCtx);
@@ -70,6 +77,7 @@ async function connectMcpServers(configs, _clientFactory, hooks) {
70
77
  return output;
71
78
  } catch (err) {
72
79
  await hooks?.callHook("mcp:tool:error", { turnId, callId, server: config.name, tool: tool.name, input, error: err });
80
+ await hooks?.callHook("mcp:tool:after", { turnId, callId, server: config.name, tool: tool.name, input, result: err.message ?? String(err) });
73
81
  throw err;
74
82
  }
75
83
  }
@@ -1,5 +1,5 @@
1
1
  import 'hookable';
2
- export { H as Harness, i as HarnessConfig, z as ToolContext, B as ToolDef, F as ToolMap, a7 as basic, a8 as basicTools, Z as defineHarness, a1 as noTools } from './agent-CUKZMA-_.js';
2
+ export { H as Harness, i as HarnessConfig, z as ToolContext, B as ToolDef, F as ToolMap, a7 as basic, a8 as basicTools, Z as defineHarness, a1 as noTools } from './agent-CtGvwTdo.js';
3
3
  import './types-BpvTmawk.js';
4
4
  import './types-CDI8Kmve.js';
5
5
  import '@modelcontextprotocol/sdk/client/index.js';
package/dist/harnesses.js CHANGED
@@ -3,11 +3,11 @@ import {
3
3
  basic_default,
4
4
  defineHarness,
5
5
  noTools
6
- } from "./chunk-33HRG7NC.js";
7
- import "./chunk-4GCOSJ7J.js";
6
+ } from "./chunk-MUX6RBUV.js";
7
+ import "./chunk-FKG35KT3.js";
8
8
  import "./chunk-4C6Y56CC.js";
9
9
  import "./chunk-SZA4FKW5.js";
10
- import "./chunk-5LOHDFK3.js";
10
+ import "./chunk-WDBO3JCO.js";
11
11
  export {
12
12
  basic_default as basic,
13
13
  basicTools,
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { A as Agent, a as AgentBehavior, b as AgentHooks, c as AgentOptions, d as AgentRunOptions, e as AgentStats, h as CreateSessionOptions, H as Harness, i as HarnessConfig, I as ImageContent, M as McpConnection, j as McpServerConfig, k as McpToolHookContext, R as RemoteStoreOptions, S as Session, l as SessionContentBlock, m as SessionData, n as SessionEndStatus, o as SessionHookContext, p as SessionMessage, q as SessionRun, r as SessionStore, s as SessionTurn, t as SpawnHookContext, u as SqliteStoreOptions, w as StreamHookContext, T as ThinkingLevel, z as ToolContext, B as ToolDef, D as ToolExecutionMode, E as ToolHookContext, F as ToolMap, L as TurnUsage, N as autoDetectAndConvert, Q as connectMcpServers, U as createAgent, V as createMemoryStore, W as createRemoteStore, X as createSession, Y as createSqliteStore, Z as defineHarness, _ as fromAnthropic, $ as fromOpenAI, a0 as loadSession, a1 as noTools, a2 as toAnthropic, a3 as toOpenAI } from './agent-CUKZMA-_.js';
1
+ export { A as Agent, a as AgentBehavior, b as AgentHooks, c as AgentOptions, d as AgentRunOptions, e as AgentStats, h as CreateSessionOptions, H as Harness, i as HarnessConfig, I as ImageContent, M as McpConnection, j as McpServerConfig, k as McpToolHookContext, R as RemoteStoreOptions, S as Session, l as SessionContentBlock, m as SessionData, n as SessionEndStatus, o as SessionHookContext, p as SessionMessage, q as SessionRun, r as SessionStore, s as SessionTurn, t as SpawnHookContext, u as SqliteStoreOptions, w as StreamHookContext, T as ThinkingLevel, z as ToolContext, B as ToolDef, D as ToolExecutionMode, E as ToolHookContext, F as ToolMap, L as TurnUsage, N as autoDetectAndConvert, Q as connectMcpServers, U as createAgent, V as createMemoryStore, W as createRemoteStore, X as createSession, Y as createSqliteStore, Z as defineHarness, _ as fromAnthropic, $ as fromOpenAI, a0 as loadSession, a1 as noTools, a2 as toAnthropic, a3 as toOpenAI } from './agent-CtGvwTdo.js';
2
2
  export { createDockerContext, createProcessContext } from './contexts.js';
3
3
  export { S as SandboxProvider, c as createSandboxContext } from './sandbox-CW72eLDP.js';
4
4
  export { C as ContextCapabilities, a as ContextType, E as ExecResult, b as ExecutionContext, c as ExecutionHandle, S as SpawnConfig } from './types-BpvTmawk.js';
5
5
  export { buildCatalog, defineSkill, discoverSkills, interpolateShellCommands, mergeSkillsConfig, parseSkillFile, resolveSkills, validateSkillName, writeSkillToDisk, writeSkillsToDisk } from './skills.js';
6
6
  export { S as SkillConfig, a as SkillResource, b as SkillsConfig } from './types-CDI8Kmve.js';
7
- export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, c as createInteractionTool, b as createSpawnTool, s as spawn } from './spawn-B7AtyfuG.js';
7
+ export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, c as createInteractionTool, b as createSpawnTool, s as spawn } from './spawn-xwRhPoH7.js';
8
8
  import 'hookable';
9
9
  import '@modelcontextprotocol/sdk/client/index.js';
10
10
 
package/dist/index.js CHANGED
@@ -4,13 +4,13 @@ import {
4
4
  import {
5
5
  defineHarness,
6
6
  noTools
7
- } from "./chunk-33HRG7NC.js";
7
+ } from "./chunk-MUX6RBUV.js";
8
8
  import {
9
9
  createAgent,
10
10
  createInteractionTool,
11
11
  createSpawnTool,
12
12
  spawn
13
- } from "./chunk-4GCOSJ7J.js";
13
+ } from "./chunk-FKG35KT3.js";
14
14
  import {
15
15
  buildCatalog,
16
16
  discoverSkills,
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-SZA4FKW5.js";
30
30
  import {
31
31
  connectMcpServers
32
- } from "./chunk-5LOHDFK3.js";
32
+ } from "./chunk-WDBO3JCO.js";
33
33
  import {
34
34
  createMemoryStore,
35
35
  createRemoteStore,
package/dist/mcp.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import 'hookable';
2
- export { M as McpConnection, j as McpServerConfig, Q as connectMcpServers, a9 as resultToString } from './agent-CUKZMA-_.js';
2
+ export { M as McpConnection, j as McpServerConfig, Q as connectMcpServers, a9 as resultToString } from './agent-CtGvwTdo.js';
3
3
  import '@modelcontextprotocol/sdk/client/index.js';
4
4
  import './types-BpvTmawk.js';
5
5
  import './types-CDI8Kmve.js';
package/dist/mcp.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  connectMcpServers,
3
3
  resultToString
4
- } from "./chunk-5LOHDFK3.js";
4
+ } from "./chunk-WDBO3JCO.js";
5
5
  export {
6
6
  connectMcpServers,
7
7
  resultToString
@@ -1,4 +1,4 @@
1
- export { f as AnthropicParams, C as CerebrasParams, O as OpenRouterParams, P as Provider, v as StreamCallbacks, x as StreamOptions, y as ToolCall, G as ToolResult, J as ToolSpec, K as TurnResult, a4 as anthropic, a5 as cerebras, a6 as openrouter } from './agent-CUKZMA-_.js';
1
+ export { f as AnthropicParams, C as CerebrasParams, O as OpenRouterParams, P as Provider, v as StreamCallbacks, x as StreamOptions, y as ToolCall, G as ToolResult, J as ToolSpec, K as TurnResult, a4 as anthropic, a5 as cerebras, a6 as openrouter } from './agent-CtGvwTdo.js';
2
2
  import 'hookable';
3
3
  import './types-BpvTmawk.js';
4
4
  import '@modelcontextprotocol/sdk/client/index.js';
package/dist/session.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { h as CreateSessionOptions, R as RemoteStoreOptions, S as Session, l as SessionContentBlock, m as SessionData, p as SessionMessage, q as SessionRun, r as SessionStore, s as SessionTurn, u as SqliteStoreOptions, N as autoDetectAndConvert, V as createMemoryStore, W as createRemoteStore, X as createSession, Y as createSqliteStore, _ as fromAnthropic, $ as fromOpenAI, a0 as loadSession, a2 as toAnthropic, a3 as toOpenAI } from './agent-CUKZMA-_.js';
1
+ export { h as CreateSessionOptions, R as RemoteStoreOptions, S as Session, l as SessionContentBlock, m as SessionData, p as SessionMessage, q as SessionRun, r as SessionStore, s as SessionTurn, u as SqliteStoreOptions, N as autoDetectAndConvert, V as createMemoryStore, W as createRemoteStore, X as createSession, Y as createSqliteStore, _ as fromAnthropic, $ as fromOpenAI, a0 as loadSession, a2 as toAnthropic, a3 as toOpenAI } from './agent-CtGvwTdo.js';
2
2
  import 'hookable';
3
3
  import './types-BpvTmawk.js';
4
4
  import '@modelcontextprotocol/sdk/client/index.js';
@@ -1,4 +1,4 @@
1
- import { B as ToolDef, i as HarnessConfig, e as AgentStats } from './agent-CUKZMA-_.js';
1
+ import { B as ToolDef, i as HarnessConfig, e as AgentStats } from './agent-CtGvwTdo.js';
2
2
 
3
3
  /**
4
4
  * Interaction tool — lets the agent request structured input from the outside world.
package/dist/tools.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, c as createInteractionTool, b as createSpawnTool, s as spawn } from './spawn-B7AtyfuG.js';
2
- import { B as ToolDef } from './agent-CUKZMA-_.js';
1
+ export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState, c as createInteractionTool, b as createSpawnTool, s as spawn } from './spawn-xwRhPoH7.js';
2
+ import { B as ToolDef } from './agent-CtGvwTdo.js';
3
3
  export { V as ValidationResult, v as validateToolArgs } from './validation-DOY_k7lW.js';
4
4
  import 'hookable';
5
5
  import './types-BpvTmawk.js';
package/dist/tools.js CHANGED
@@ -7,10 +7,10 @@ import {
7
7
  spawn,
8
8
  validateToolArgs,
9
9
  writeFile
10
- } from "./chunk-4GCOSJ7J.js";
10
+ } from "./chunk-FKG35KT3.js";
11
11
  import "./chunk-4C6Y56CC.js";
12
12
  import "./chunk-SZA4FKW5.js";
13
- import "./chunk-5LOHDFK3.js";
13
+ import "./chunk-WDBO3JCO.js";
14
14
  export {
15
15
  createInteractionTool,
16
16
  createSpawnTool,
package/dist/types.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export { A as Agent, a as AgentBehavior, b as AgentHooks, c as AgentOptions, d as AgentRunOptions, e as AgentStats, f as AnthropicParams, C as CerebrasParams, g as ChildRunStats, h as CreateSessionOptions, H as Harness, i as HarnessConfig, I as ImageContent, M as McpConnection, j as McpServerConfig, k as McpToolHookContext, O as OpenRouterParams, P as Provider, R as RemoteStoreOptions, S as Session, l as SessionContentBlock, m as SessionData, n as SessionEndStatus, o as SessionHookContext, p as SessionMessage, q as SessionRun, r as SessionStore, s as SessionTurn, t as SpawnHookContext, u as SqliteStoreOptions, v as StreamCallbacks, w as StreamHookContext, x as StreamOptions, T as ThinkingLevel, y as ToolCall, z as ToolContext, B as ToolDef, D as ToolExecutionMode, E as ToolHookContext, F as ToolMap, G as ToolResult, J as ToolSpec, K as TurnResult, L as TurnUsage } from './agent-CUKZMA-_.js';
1
+ export { A as Agent, a as AgentBehavior, b as AgentHooks, c as AgentOptions, d as AgentRunOptions, e as AgentStats, f as AnthropicParams, C as CerebrasParams, g as ChildRunStats, h as CreateSessionOptions, H as Harness, i as HarnessConfig, I as ImageContent, M as McpConnection, j as McpServerConfig, k as McpToolHookContext, O as OpenRouterParams, P as Provider, R as RemoteStoreOptions, S as Session, l as SessionContentBlock, m as SessionData, n as SessionEndStatus, o as SessionHookContext, p as SessionMessage, q as SessionRun, r as SessionStore, s as SessionTurn, t as SpawnHookContext, u as SqliteStoreOptions, v as StreamCallbacks, w as StreamHookContext, x as StreamOptions, T as ThinkingLevel, y as ToolCall, z as ToolContext, B as ToolDef, D as ToolExecutionMode, E as ToolHookContext, F as ToolMap, G as ToolResult, J as ToolSpec, K as TurnResult, L as TurnUsage } from './agent-CtGvwTdo.js';
2
2
  export { C as ContextCapabilities, a as ContextType, E as ExecResult, b as ExecutionContext, c as ExecutionHandle, S as SpawnConfig } from './types-BpvTmawk.js';
3
3
  export { S as SandboxProvider } from './sandbox-CW72eLDP.js';
4
4
  export { S as SkillConfig, a as SkillResource, b as SkillsConfig } from './types-CDI8Kmve.js';
5
- export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState } from './spawn-B7AtyfuG.js';
5
+ export { C as ChildAgent, I as InteractionToolOptions, S as SpawnToolOptions, a as SpawnToolState } from './spawn-xwRhPoH7.js';
6
6
  export { V as ValidationResult } from './validation-DOY_k7lW.js';
7
7
  import 'hookable';
8
8
  import '@modelcontextprotocol/sdk/client/index.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zidane",
3
- "version": "1.6.15",
3
+ "version": "1.6.16",
4
4
  "description": "an agent that goes straight to the goal",
5
5
  "type": "module",
6
6
  "private": false,