nanobot-agent-sdk 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/core/agent.d.ts +1 -0
  2. package/dist/core/agent.d.ts.map +1 -1
  3. package/dist/core/agent.js +42 -46
  4. package/dist/core/agent.js.map +1 -1
  5. package/dist/core/engine.d.ts +3 -10
  6. package/dist/core/engine.d.ts.map +1 -1
  7. package/dist/core/engine.js +71 -365
  8. package/dist/core/engine.js.map +1 -1
  9. package/dist/core/event-queue.d.ts +17 -0
  10. package/dist/core/event-queue.d.ts.map +1 -0
  11. package/dist/core/event-queue.js +57 -0
  12. package/dist/core/event-queue.js.map +1 -0
  13. package/dist/core/message-utils.d.ts +23 -0
  14. package/dist/core/message-utils.d.ts.map +1 -0
  15. package/dist/core/message-utils.js +59 -0
  16. package/dist/core/message-utils.js.map +1 -0
  17. package/dist/core/retry.d.ts +14 -0
  18. package/dist/core/retry.d.ts.map +1 -0
  19. package/dist/core/retry.js +32 -0
  20. package/dist/core/retry.js.map +1 -0
  21. package/dist/core/tool-orchestrator.d.ts +36 -0
  22. package/dist/core/tool-orchestrator.d.ts.map +1 -0
  23. package/dist/core/tool-orchestrator.js +293 -0
  24. package/dist/core/tool-orchestrator.js.map +1 -0
  25. package/dist/index.d.ts +6 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +6 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/mcp/client.d.ts +6 -0
  30. package/dist/mcp/client.d.ts.map +1 -1
  31. package/dist/mcp/client.js +163 -76
  32. package/dist/mcp/client.js.map +1 -1
  33. package/dist/mcp/errors.d.ts +10 -0
  34. package/dist/mcp/errors.d.ts.map +1 -0
  35. package/dist/mcp/errors.js +38 -0
  36. package/dist/mcp/errors.js.map +1 -0
  37. package/dist/providers/openai-compatible.js +18 -1
  38. package/dist/providers/openai-compatible.js.map +1 -1
  39. package/dist/runtime/compaction.d.ts +26 -0
  40. package/dist/runtime/compaction.d.ts.map +1 -0
  41. package/dist/runtime/compaction.js +137 -0
  42. package/dist/runtime/compaction.js.map +1 -0
  43. package/dist/runtime/config.d.ts +48 -0
  44. package/dist/runtime/config.d.ts.map +1 -0
  45. package/dist/runtime/config.js +89 -0
  46. package/dist/runtime/config.js.map +1 -0
  47. package/dist/runtime/recovery.d.ts +17 -0
  48. package/dist/runtime/recovery.d.ts.map +1 -0
  49. package/dist/runtime/recovery.js +82 -0
  50. package/dist/runtime/recovery.js.map +1 -0
  51. package/dist/runtime/tool-execution.d.ts +10 -0
  52. package/dist/runtime/tool-execution.d.ts.map +1 -0
  53. package/dist/runtime/tool-execution.js +70 -0
  54. package/dist/runtime/tool-execution.js.map +1 -0
  55. package/dist/runtime/usage.d.ts +34 -0
  56. package/dist/runtime/usage.d.ts.map +1 -0
  57. package/dist/runtime/usage.js +76 -0
  58. package/dist/runtime/usage.js.map +1 -0
  59. package/dist/types.d.ts +58 -3
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Minimal async queue used to bridge background work and async generators.
3
+ * It supports orderly completion and failure propagation without dropping
4
+ * already-buffered events.
5
+ */
6
+ export class AsyncEventQueue {
7
+ items = [];
8
+ waiters = [];
9
+ closed = false;
10
+ failed = false;
11
+ failure;
12
+ push(value) {
13
+ if (this.closed)
14
+ return;
15
+ const waiter = this.waiters.shift();
16
+ if (waiter) {
17
+ waiter.resolve({ done: false, value });
18
+ return;
19
+ }
20
+ this.items.push(value);
21
+ }
22
+ close() {
23
+ if (this.closed)
24
+ return;
25
+ this.closed = true;
26
+ const pending = this.waiters.splice(0);
27
+ for (const waiter of pending) {
28
+ waiter.resolve({ done: true, value: undefined });
29
+ }
30
+ }
31
+ fail(error) {
32
+ if (this.failed)
33
+ return;
34
+ this.failed = true;
35
+ this.closed = true;
36
+ this.failure = error;
37
+ const pending = this.waiters.splice(0);
38
+ for (const waiter of pending) {
39
+ waiter.reject(error);
40
+ }
41
+ }
42
+ async next() {
43
+ if (this.items.length > 0) {
44
+ return { done: false, value: this.items.shift() };
45
+ }
46
+ if (this.failed) {
47
+ throw this.failure;
48
+ }
49
+ if (this.closed) {
50
+ return { done: true, value: undefined };
51
+ }
52
+ return new Promise((resolve, reject) => {
53
+ this.waiters.push({ resolve, reject });
54
+ });
55
+ }
56
+ }
57
+ //# sourceMappingURL=event-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-queue.js","sourceRoot":"","sources":["../../src/core/event-queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,eAAe;IACT,KAAK,GAAQ,EAAE,CAAA;IACf,OAAO,GAGnB,EAAE,CAAA;IACC,MAAM,GAAG,KAAK,CAAA;IACd,MAAM,GAAG,KAAK,CAAA;IACd,OAAO,CAAS;IAExB,IAAI,CAAC,KAAQ;QACX,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YACtC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAc,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAc;QACjB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAO,EAAE,CAAA;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,OAAO,CAAA;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAc,EAAE,CAAA;QAC9C,CAAC;QAED,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import type Anthropic from '@anthropic-ai/sdk';
2
+ import type { AssistantTranscriptMessage, TokenUsage, ToolDefinition, ToolResult, UserTranscriptMessage } from '../types.js';
3
+ /**
4
+ * Extracts user-facing text from assistant content blocks.
5
+ */
6
+ export declare function extractText(blocks: Anthropic.ContentBlock[]): string;
7
+ /**
8
+ * Normalizes tool result content into a plain string for transcript/event usage.
9
+ */
10
+ export declare function serializeToolContent(content: ToolResult['content']): string;
11
+ /**
12
+ * Creates a transcript-safe user message entry.
13
+ */
14
+ export declare function createUserTranscript(prompt: string | Anthropic.ContentBlockParam[]): UserTranscriptMessage;
15
+ /**
16
+ * Creates a transcript-safe assistant message entry.
17
+ */
18
+ export declare function createAssistantTranscript(content: Anthropic.ContentBlock[], usage?: TokenUsage): AssistantTranscriptMessage;
19
+ /**
20
+ * Read-only concurrency-safe tools can be batched in parallel.
21
+ */
22
+ export declare function isBatchSafeTool(tool: ToolDefinition | undefined): boolean;
23
+ //# sourceMappingURL=message-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../src/core/message-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EACV,0BAA0B,EAC1B,UAAU,EACV,cAAc,EACd,UAAU,EACV,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,MAAM,CAMpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAM3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,GAAG,qBAAqB,CAU1G;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,EACjC,KAAK,CAAC,EAAE,UAAU,GACjB,0BAA0B,CAW5B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAEzE"}
@@ -0,0 +1,59 @@
1
+ import { randomUUID } from 'crypto';
2
+ /**
3
+ * Extracts user-facing text from assistant content blocks.
4
+ */
5
+ export function extractText(blocks) {
6
+ return blocks
7
+ .filter((block) => block.type === 'text')
8
+ .map((block) => block.text)
9
+ .join('\n')
10
+ .trim();
11
+ }
12
+ /**
13
+ * Normalizes tool result content into a plain string for transcript/event usage.
14
+ */
15
+ export function serializeToolContent(content) {
16
+ if (typeof content === 'string')
17
+ return content;
18
+ if (!content)
19
+ return '';
20
+ return content
21
+ .map((block) => ('text' in block ? String(block.text || '') : JSON.stringify(block)))
22
+ .join('\n');
23
+ }
24
+ /**
25
+ * Creates a transcript-safe user message entry.
26
+ */
27
+ export function createUserTranscript(prompt) {
28
+ return {
29
+ type: 'user',
30
+ uuid: randomUUID(),
31
+ timestamp: new Date().toISOString(),
32
+ message: {
33
+ role: 'user',
34
+ content: prompt,
35
+ },
36
+ };
37
+ }
38
+ /**
39
+ * Creates a transcript-safe assistant message entry.
40
+ */
41
+ export function createAssistantTranscript(content, usage) {
42
+ return {
43
+ type: 'assistant',
44
+ uuid: randomUUID(),
45
+ timestamp: new Date().toISOString(),
46
+ usage: usage ? { ...usage } : undefined,
47
+ message: {
48
+ role: 'assistant',
49
+ content,
50
+ },
51
+ };
52
+ }
53
+ /**
54
+ * Read-only concurrency-safe tools can be batched in parallel.
55
+ */
56
+ export function isBatchSafeTool(tool) {
57
+ return Boolean(tool?.isReadOnly?.() && tool?.isConcurrencySafe?.());
58
+ }
59
+ //# sourceMappingURL=message-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-utils.js","sourceRoot":"","sources":["../../src/core/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAUnC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAgC;IAC1D,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,KAAK,EAAgC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;SACtE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACpF,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA8C;IACjF,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU,EAAE;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,MAAM;SAChB;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAiC,EACjC,KAAkB;IAElB,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU,EAAE;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;QACvC,OAAO,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,OAAO;SACR;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgC;IAC9D,OAAO,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAA;AACrE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ClassifiedError } from '../runtime/recovery.js';
2
+ /**
3
+ * Generic retry loop used by the query engine. Recovery decisions are produced
4
+ * by runtime/recovery.ts so the loop stays transport-agnostic.
5
+ */
6
+ export declare function withRetry<T>(fn: () => Promise<T>, options: {
7
+ classify: (error: unknown, attemptNumber: number) => ClassifiedError;
8
+ onRetry?: (classified: ClassifiedError, attemptNumber: number, delayMs: number, maxAttempts: number) => Promise<void> | void;
9
+ }): Promise<T>;
10
+ /**
11
+ * Shared sleep helper for retry/backoff paths.
12
+ */
13
+ export declare function sleep(ms: number): Promise<void>;
14
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/core/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE;IACP,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,eAAe,CAAA;IACpE,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC7H,GACA,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Generic retry loop used by the query engine. Recovery decisions are produced
3
+ * by runtime/recovery.ts so the loop stays transport-agnostic.
4
+ */
5
+ export async function withRetry(fn, options) {
6
+ let attempt = 1;
7
+ while (true) {
8
+ try {
9
+ return await fn();
10
+ }
11
+ catch (error) {
12
+ const classified = options.classify(error, attempt);
13
+ if (classified.recovery.type !== 'retry') {
14
+ throw error;
15
+ }
16
+ if (attempt >= classified.recovery.maxAttempts) {
17
+ throw error;
18
+ }
19
+ const delayMs = Math.max(0, classified.recovery.delayMs);
20
+ await options.onRetry?.(classified, attempt, delayMs, classified.recovery.maxAttempts);
21
+ await sleep(delayMs);
22
+ attempt += 1;
23
+ }
24
+ }
25
+ }
26
+ /**
27
+ * Shared sleep helper for retry/backoff paths.
28
+ */
29
+ export async function sleep(ms) {
30
+ await new Promise((resolve) => setTimeout(resolve, ms));
31
+ }
32
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/core/retry.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,OAGC;IAED,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAA;YACb,CAAC;YAED,IAAI,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC/C,MAAM,KAAK,CAAA;YACb,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACxD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YACtF,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;YACpB,OAAO,IAAI,CAAC,CAAA;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACzD,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type Anthropic from '@anthropic-ai/sdk';
2
+ import type { ApprovalDecision, SDKMessage, ToolContext, ToolDefinition, ToolResult } from '../types.js';
3
+ import type { ResolvedQueryEngineConfig } from '../runtime/config.js';
4
+ import type { AsyncEventQueue } from './event-queue.js';
5
+ interface ToolRuntimeHelpers {
6
+ config: ResolvedQueryEngineConfig;
7
+ activeTools: ToolDefinition[];
8
+ turn: number;
9
+ queue: AsyncEventQueue<SDKMessage>;
10
+ createToolContext: (toolUseId?: string) => ToolContext;
11
+ resolveToolPermission: (tool: ToolDefinition, input: unknown) => Promise<ApprovalDecision>;
12
+ emit: (queue: AsyncEventQueue<SDKMessage>, event: SDKMessage) => Promise<void>;
13
+ emitToolProgress: (queue: AsyncEventQueue<SDKMessage>, input: {
14
+ toolName: string;
15
+ toolUseId: string;
16
+ phase: 'start' | 'end' | 'error';
17
+ durationMs?: number;
18
+ message?: string;
19
+ }) => Promise<void>;
20
+ emitPerformance: (queue: AsyncEventQueue<SDKMessage>, event: Omit<Extract<SDKMessage, {
21
+ type: 'system';
22
+ subtype: 'performance';
23
+ }>, 'type' | 'subtype' | 'session_id'>) => Promise<void>;
24
+ }
25
+ /**
26
+ * Executes tool_use blocks for a single model turn while keeping batching,
27
+ * permission checks, recovery policy, and dynamic tool injection isolated from
28
+ * the main conversation loop.
29
+ */
30
+ export declare function executeToolUses(toolUses: Anthropic.ToolUseBlock[], runtime: ToolRuntimeHelpers): Promise<Array<{
31
+ toolUseId: string;
32
+ toolName: string;
33
+ result: ToolResult;
34
+ }>>;
35
+ export {};
36
+ //# sourceMappingURL=tool-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/tool-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,cAAc,EAGd,UAAU,EACX,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIvD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,yBAAyB,CAAA;IACjC,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IAClC,iBAAiB,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,WAAW,CAAA;IACtD,qBAAqB,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1F,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E,gBAAgB,EAAE,CAChB,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAClC,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAAA;QAChC,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,KACE,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,eAAe,EAAE,CACf,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,EAClC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,KAC5G,OAAO,CAAC,IAAI,CAAC,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,SAAS,CAAC,YAAY,EAAE,EAClC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC,CA2B7E"}
@@ -0,0 +1,293 @@
1
+ import { classifyError } from '../runtime/recovery.js';
2
+ import { executeToolWithMiddleware } from '../runtime/tool-execution.js';
3
+ import { serializeToolContent, isBatchSafeTool } from './message-utils.js';
4
+ import { sleep } from './retry.js';
5
+ /**
6
+ * Executes tool_use blocks for a single model turn while keeping batching,
7
+ * permission checks, recovery policy, and dynamic tool injection isolated from
8
+ * the main conversation loop.
9
+ */
10
+ export async function executeToolUses(toolUses, runtime) {
11
+ const outputs = [];
12
+ for (let index = 0; index < toolUses.length;) {
13
+ const candidate = findTool(runtime.activeTools, runtime.config.allTools, toolUses[index].name);
14
+ const canBatch = isBatchSafeTool(candidate);
15
+ if (canBatch) {
16
+ const batch = [];
17
+ let cursor = index;
18
+ while (cursor < toolUses.length) {
19
+ const nextTool = findTool(runtime.activeTools, runtime.config.allTools, toolUses[cursor].name);
20
+ if (!isBatchSafeTool(nextTool))
21
+ break;
22
+ batch.push(toolUses[cursor]);
23
+ cursor += 1;
24
+ }
25
+ const batchResults = await Promise.all(batch.map((block) => executeSingleToolUse(block, runtime)));
26
+ outputs.push(...batchResults);
27
+ index = cursor;
28
+ continue;
29
+ }
30
+ outputs.push(await executeSingleToolUse(toolUses[index], runtime));
31
+ index += 1;
32
+ }
33
+ return outputs;
34
+ }
35
+ async function executeSingleToolUse(toolUse, runtime) {
36
+ const tool = findTool(runtime.activeTools, runtime.config.allTools, toolUse.name);
37
+ if (!tool) {
38
+ return finishToolError(runtime, {
39
+ toolUseId: toolUse.id,
40
+ toolName: toolUse.name,
41
+ message: `Tool not found: ${toolUse.name}`,
42
+ });
43
+ }
44
+ const decision = await runtime.resolveToolPermission(tool, toolUse.input);
45
+ if (decision.behavior === 'deny') {
46
+ return finishToolError(runtime, {
47
+ toolUseId: toolUse.id,
48
+ toolName: toolUse.name,
49
+ message: decision.message || `Tool denied: ${toolUse.name}`,
50
+ });
51
+ }
52
+ const requestedInput = decision.updatedInput ?? toolUse.input;
53
+ const executionContext = createToolExecutionContext(toolUse, requestedInput, runtime);
54
+ const toolContext = runtime.createToolContext(toolUse.id);
55
+ await runtime.emitToolProgress(runtime.queue, {
56
+ toolName: toolUse.name,
57
+ toolUseId: toolUse.id,
58
+ phase: 'start',
59
+ });
60
+ let attempt = 1;
61
+ const errorSource = tool.isMcp ? 'mcp' : 'tool';
62
+ while (true) {
63
+ try {
64
+ const { result } = await executeToolWithMiddleware(tool, { id: toolUse.id, name: toolUse.name, input: requestedInput }, toolContext, executionContext, createToolExecutionHooks(runtime, tool));
65
+ return {
66
+ toolUseId: toolUse.id,
67
+ toolName: toolUse.name,
68
+ result: { ...result, tool_use_id: toolUse.id },
69
+ };
70
+ }
71
+ catch (error) {
72
+ const classified = classifyError(error, {
73
+ source: errorSource,
74
+ attempt,
75
+ recoveryOverrides: runtime.config.recoveryOverrides,
76
+ });
77
+ if (classified.recovery.type === 'retry' && attempt < classified.recovery.maxAttempts) {
78
+ const delayMs = Math.max(0, classified.recovery.delayMs);
79
+ await runtime.emit(runtime.queue, {
80
+ type: 'system',
81
+ subtype: 'status',
82
+ message: `Tool ${toolUse.name} failed (${classified.category}). Retrying in ${delayMs}ms (${attempt + 1}/${classified.recovery.maxAttempts}).`,
83
+ });
84
+ await sleep(delayMs);
85
+ attempt += 1;
86
+ continue;
87
+ }
88
+ if (classified.recovery.type === 'abort') {
89
+ const message = classified.recovery.reason || `Tool error: ${describeError(error)}`;
90
+ await runtime.emitToolProgress(runtime.queue, {
91
+ toolName: toolUse.name,
92
+ toolUseId: toolUse.id,
93
+ phase: 'error',
94
+ message,
95
+ });
96
+ await runtime.emitPerformance(runtime.queue, {
97
+ category: 'tool',
98
+ turn: runtime.turn,
99
+ duration_ms: 0,
100
+ success: false,
101
+ tool_name: toolUse.name,
102
+ tool_use_id: toolUse.id,
103
+ reason: message,
104
+ });
105
+ throw error;
106
+ }
107
+ return finishToolError(runtime, {
108
+ toolUseId: toolUse.id,
109
+ toolName: toolUse.name,
110
+ message: buildToolFailureMessage(classified, error),
111
+ });
112
+ }
113
+ }
114
+ }
115
+ function createToolExecutionContext(toolUse, input, runtime) {
116
+ return {
117
+ toolName: toolUse.name,
118
+ toolUseId: toolUse.id,
119
+ input,
120
+ turn: runtime.turn,
121
+ sessionId: runtime.config.sessionId,
122
+ };
123
+ }
124
+ function createToolExecutionHooks(runtime, tool) {
125
+ return {
126
+ beforeTool: async (executionContext) => {
127
+ const decision = await Promise.resolve(runtime.config.toolHooks?.beforeTool?.(executionContext)).catch(() => undefined);
128
+ if (decision?.proceed === false) {
129
+ const message = decision.denyMessage || `Tool denied: ${executionContext.toolName}`;
130
+ await runtime.emitToolProgress(runtime.queue, {
131
+ toolName: executionContext.toolName,
132
+ toolUseId: executionContext.toolUseId,
133
+ phase: 'error',
134
+ durationMs: 0,
135
+ message,
136
+ });
137
+ await runtime.emitPerformance(runtime.queue, {
138
+ category: 'tool',
139
+ turn: runtime.turn,
140
+ duration_ms: 0,
141
+ success: false,
142
+ tool_name: executionContext.toolName,
143
+ tool_use_id: executionContext.toolUseId,
144
+ reason: message,
145
+ });
146
+ }
147
+ return decision || { proceed: true };
148
+ },
149
+ afterTool: async (executionContext, result, durationMs) => {
150
+ const injectedTools = runtime.config.allTools?.length
151
+ ? injectToolsFromResult(runtime.activeTools, runtime.config.allTools, result)
152
+ : [];
153
+ await runtime.emitToolProgress(runtime.queue, {
154
+ toolName: executionContext.toolName,
155
+ toolUseId: executionContext.toolUseId,
156
+ phase: 'end',
157
+ durationMs,
158
+ message: injectedTools.length > 0 ? `Injected tools: ${injectedTools.join(', ')}` : undefined,
159
+ });
160
+ await runtime.emitPerformance(runtime.queue, {
161
+ category: 'tool',
162
+ turn: runtime.turn,
163
+ duration_ms: durationMs,
164
+ success: true,
165
+ tool_name: executionContext.toolName,
166
+ tool_use_id: executionContext.toolUseId,
167
+ });
168
+ await Promise.resolve(runtime.config.toolHooks?.afterTool?.(executionContext, result, durationMs)).catch(() => { });
169
+ },
170
+ onToolError: async (executionContext, error, durationMs) => {
171
+ const custom = await Promise.resolve(runtime.config.toolHooks?.onToolError?.(executionContext, error, durationMs)).catch(() => undefined);
172
+ if (custom) {
173
+ const message = serializeToolContent(custom.content) || `Tool error: ${describeError(error)}`;
174
+ await runtime.emitToolProgress(runtime.queue, {
175
+ toolName: executionContext.toolName,
176
+ toolUseId: executionContext.toolUseId,
177
+ phase: 'error',
178
+ durationMs,
179
+ message,
180
+ });
181
+ await runtime.emitPerformance(runtime.queue, {
182
+ category: 'tool',
183
+ turn: runtime.turn,
184
+ duration_ms: durationMs,
185
+ success: false,
186
+ tool_name: executionContext.toolName,
187
+ tool_use_id: executionContext.toolUseId,
188
+ reason: message,
189
+ });
190
+ return custom;
191
+ }
192
+ const classified = classifyError(error, {
193
+ source: tool.isMcp ? 'mcp' : 'tool',
194
+ recoveryOverrides: runtime.config.recoveryOverrides,
195
+ });
196
+ if (classified.recovery.type !== 'degrade') {
197
+ return undefined;
198
+ }
199
+ await runtime.emitToolProgress(runtime.queue, {
200
+ toolName: executionContext.toolName,
201
+ toolUseId: executionContext.toolUseId,
202
+ phase: 'error',
203
+ durationMs,
204
+ message: classified.recovery.message,
205
+ });
206
+ await runtime.emitPerformance(runtime.queue, {
207
+ category: 'tool',
208
+ turn: runtime.turn,
209
+ duration_ms: durationMs,
210
+ success: false,
211
+ tool_name: executionContext.toolName,
212
+ tool_use_id: executionContext.toolUseId,
213
+ reason: classified.recovery.message,
214
+ });
215
+ return {
216
+ type: 'tool_result',
217
+ tool_use_id: executionContext.toolUseId,
218
+ content: classified.recovery.message,
219
+ is_error: true,
220
+ };
221
+ },
222
+ };
223
+ }
224
+ async function finishToolError(runtime, input) {
225
+ await runtime.emitToolProgress(runtime.queue, {
226
+ toolName: input.toolName,
227
+ toolUseId: input.toolUseId,
228
+ phase: 'error',
229
+ durationMs: input.durationMs,
230
+ message: input.message,
231
+ });
232
+ await runtime.emitPerformance(runtime.queue, {
233
+ category: 'tool',
234
+ turn: runtime.turn,
235
+ duration_ms: input.durationMs || 0,
236
+ success: false,
237
+ tool_name: input.toolName,
238
+ tool_use_id: input.toolUseId,
239
+ reason: input.message,
240
+ });
241
+ return {
242
+ toolUseId: input.toolUseId,
243
+ toolName: input.toolName,
244
+ result: {
245
+ type: 'tool_result',
246
+ tool_use_id: input.toolUseId,
247
+ content: input.message,
248
+ is_error: true,
249
+ },
250
+ };
251
+ }
252
+ function findTool(activeTools, allTools, name) {
253
+ return activeTools.find((tool) => tool.name === name)
254
+ || allTools?.find((tool) => tool.name === name || tool.name.endsWith(`__${name}`));
255
+ }
256
+ function injectToolsFromResult(activeTools, allTools, result) {
257
+ const text = serializeToolContent(result.content);
258
+ const match = text.match(/__INJECT_TOOLS__:\[([^\]]*)\]/);
259
+ if (!match)
260
+ return [];
261
+ const names = match[1].split(',').map((item) => item.trim()).filter(Boolean);
262
+ const injected = [];
263
+ for (const name of names) {
264
+ if (activeTools.some((tool) => tool.name === name))
265
+ continue;
266
+ const found = allTools.find((tool) => tool.name === name || tool.name.endsWith(`__${name}`));
267
+ if (found) {
268
+ activeTools.push(found);
269
+ injected.push(name);
270
+ }
271
+ }
272
+ return injected;
273
+ }
274
+ function buildToolFailureMessage(classified, error) {
275
+ if (classified.recovery.type === 'degrade') {
276
+ return classified.recovery.message;
277
+ }
278
+ if (classified.recovery.type === 'abort') {
279
+ return classified.recovery.reason;
280
+ }
281
+ return `Tool error: ${describeError(error)}`;
282
+ }
283
+ function describeError(error) {
284
+ const message = error?.message;
285
+ if (typeof message === 'string' && message.trim()) {
286
+ return message;
287
+ }
288
+ if (typeof error === 'string' && error.trim()) {
289
+ return error;
290
+ }
291
+ return String(error);
292
+ }
293
+ //# sourceMappingURL=tool-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-orchestrator.js","sourceRoot":"","sources":["../../src/core/tool-orchestrator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,10 +3,16 @@ export { QueryEngine } from './core/engine.js';
3
3
  export { buildSystemPrompt } from './core/system-prompt.js';
4
4
  export { SDKStreamError } from './core/errors.js';
5
5
  export { connectMCPServer, closeAllConnections, ManagedMCPConnection } from './mcp/client.js';
6
+ export { classifyMcpError, isRecoverableError } from './mcp/errors.js';
6
7
  export type { MCPConnection } from './mcp/client.js';
7
8
  export { AgentBridgeServer } from './bridge/server.js';
8
9
  export { createAnthropicProvider, createOpenAICompatibleProvider, resolveProvider } from './providers/index.js';
9
10
  export { EventedApprovalManager } from './runtime/approval.js';
11
+ export { DEFAULT_API_RETRY_BASE_DELAY_MS, DEFAULT_API_RETRY_COUNT, DEFAULT_COMPACTION, DEFAULT_MAX_HISTORY_TURNS, DEFAULT_MAX_TOKENS, DEFAULT_MAX_TURNS, DEFAULT_MODEL, defaultEstimateCostUsd, resolveQueryEngineConfig, resolveRuntimeConfig, } from './runtime/config.js';
12
+ export { compactMessages, estimateMessageTokens, resolveCompactionConfig } from './runtime/compaction.js';
13
+ export { DEFAULT_RECOVERY_MAP, classifyError } from './runtime/recovery.js';
14
+ export { executeToolWithMiddleware } from './runtime/tool-execution.js';
15
+ export { UsageTracker } from './runtime/usage.js';
10
16
  export { FileSchedulerRuntime } from './runtime/scheduler.js';
11
17
  export { FileTaskRuntime } from './runtime/task-runtime.js';
12
18
  export { DailyMemoryRuntime } from './runtime/memory.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC7F,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACtE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,cAAc,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -3,9 +3,15 @@ export { QueryEngine } from './core/engine.js';
3
3
  export { buildSystemPrompt } from './core/system-prompt.js';
4
4
  export { SDKStreamError } from './core/errors.js';
5
5
  export { connectMCPServer, closeAllConnections, ManagedMCPConnection } from './mcp/client.js';
6
+ export { classifyMcpError, isRecoverableError } from './mcp/errors.js';
6
7
  export { AgentBridgeServer } from './bridge/server.js';
7
8
  export { createAnthropicProvider, createOpenAICompatibleProvider, resolveProvider } from './providers/index.js';
8
9
  export { EventedApprovalManager } from './runtime/approval.js';
10
+ export { DEFAULT_API_RETRY_BASE_DELAY_MS, DEFAULT_API_RETRY_COUNT, DEFAULT_COMPACTION, DEFAULT_MAX_HISTORY_TURNS, DEFAULT_MAX_TOKENS, DEFAULT_MAX_TURNS, DEFAULT_MODEL, defaultEstimateCostUsd, resolveQueryEngineConfig, resolveRuntimeConfig, } from './runtime/config.js';
11
+ export { compactMessages, estimateMessageTokens, resolveCompactionConfig } from './runtime/compaction.js';
12
+ export { DEFAULT_RECOVERY_MAP, classifyError } from './runtime/recovery.js';
13
+ export { executeToolWithMiddleware } from './runtime/tool-execution.js';
14
+ export { UsageTracker } from './runtime/usage.js';
9
15
  export { FileSchedulerRuntime } from './runtime/scheduler.js';
10
16
  export { FileTaskRuntime } from './runtime/task-runtime.js';
11
17
  export { DailyMemoryRuntime } from './runtime/memory.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,cAAc,YAAY,CAAA"}
@@ -48,6 +48,7 @@ export declare class ManagedMCPConnection implements MCPConnection {
48
48
  private lastConnectedAt?;
49
49
  private lastCheckedAt?;
50
50
  private reconnectAttempts;
51
+ private healthCheckFailures;
51
52
  private connectPromise?;
52
53
  private static readonly MAX_RECONNECT_ATTEMPTS;
53
54
  private readonly connector;
@@ -59,12 +60,17 @@ export declare class ManagedMCPConnection implements MCPConnection {
59
60
  snapshot(): McpConnectionInfo;
60
61
  private connectInternal;
61
62
  private doConnect;
63
+ private handleConnectionFailure;
62
64
  private refreshTools;
63
65
  private scheduleReconnect;
64
66
  private startHealthCheckLoop;
67
+ private runHealthCheck;
68
+ private handleHealthCheckFailure;
65
69
  private disposeClient;
66
70
  private clearReconnectTimer;
67
71
  private clearHealthCheckTimer;
72
+ private createToolDefinition;
73
+ private callTool;
68
74
  private emitState;
69
75
  }
70
76
  export declare function closeAllConnections(connections: MCPConnection[]): Promise<void>;