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.
- package/dist/core/agent.d.ts +1 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +42 -46
- package/dist/core/agent.js.map +1 -1
- package/dist/core/engine.d.ts +3 -10
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +71 -365
- package/dist/core/engine.js.map +1 -1
- package/dist/core/event-queue.d.ts +17 -0
- package/dist/core/event-queue.d.ts.map +1 -0
- package/dist/core/event-queue.js +57 -0
- package/dist/core/event-queue.js.map +1 -0
- package/dist/core/message-utils.d.ts +23 -0
- package/dist/core/message-utils.d.ts.map +1 -0
- package/dist/core/message-utils.js +59 -0
- package/dist/core/message-utils.js.map +1 -0
- package/dist/core/retry.d.ts +14 -0
- package/dist/core/retry.d.ts.map +1 -0
- package/dist/core/retry.js +32 -0
- package/dist/core/retry.js.map +1 -0
- package/dist/core/tool-orchestrator.d.ts +36 -0
- package/dist/core/tool-orchestrator.d.ts.map +1 -0
- package/dist/core/tool-orchestrator.js +293 -0
- package/dist/core/tool-orchestrator.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/client.d.ts +6 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +163 -76
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/errors.d.ts +10 -0
- package/dist/mcp/errors.d.ts.map +1 -0
- package/dist/mcp/errors.js +38 -0
- package/dist/mcp/errors.js.map +1 -0
- package/dist/providers/openai-compatible.js +18 -1
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/runtime/compaction.d.ts +26 -0
- package/dist/runtime/compaction.d.ts.map +1 -0
- package/dist/runtime/compaction.js +137 -0
- package/dist/runtime/compaction.js.map +1 -0
- package/dist/runtime/config.d.ts +48 -0
- package/dist/runtime/config.d.ts.map +1 -0
- package/dist/runtime/config.js +89 -0
- package/dist/runtime/config.js.map +1 -0
- package/dist/runtime/recovery.d.ts +17 -0
- package/dist/runtime/recovery.d.ts.map +1 -0
- package/dist/runtime/recovery.js +82 -0
- package/dist/runtime/recovery.js.map +1 -0
- package/dist/runtime/tool-execution.d.ts +10 -0
- package/dist/runtime/tool-execution.d.ts.map +1 -0
- package/dist/runtime/tool-execution.js +70 -0
- package/dist/runtime/tool-execution.js.map +1 -0
- package/dist/runtime/usage.d.ts +34 -0
- package/dist/runtime/usage.d.ts.map +1 -0
- package/dist/runtime/usage.js +76 -0
- package/dist/runtime/usage.js.map +1 -0
- package/dist/types.d.ts +58 -3
- package/dist/types.d.ts.map +1 -1
- 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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/mcp/client.d.ts
CHANGED
|
@@ -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>;
|