@anthropic-ai/sdk 0.70.1 → 0.71.0
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/CHANGELOG.md +15 -0
- package/README.md +1 -1
- package/lib/tools/BetaToolRunner.d.mts +2 -0
- package/lib/tools/BetaToolRunner.d.mts.map +1 -1
- package/lib/tools/BetaToolRunner.d.ts +2 -0
- package/lib/tools/BetaToolRunner.d.ts.map +1 -1
- package/lib/tools/BetaToolRunner.js +88 -15
- package/lib/tools/BetaToolRunner.js.map +1 -1
- package/lib/tools/BetaToolRunner.mjs +88 -15
- package/lib/tools/BetaToolRunner.mjs.map +1 -1
- package/lib/tools/CompactionControl.d.mts +25 -0
- package/lib/tools/CompactionControl.d.mts.map +1 -0
- package/lib/tools/CompactionControl.d.ts +25 -0
- package/lib/tools/CompactionControl.d.ts.map +1 -0
- package/lib/tools/CompactionControl.js +28 -0
- package/lib/tools/CompactionControl.js.map +1 -0
- package/lib/tools/CompactionControl.mjs +25 -0
- package/lib/tools/CompactionControl.mjs.map +1 -0
- package/lib/tools/ToolRunner.js +1 -1
- package/lib/tools/ToolRunner.js.map +1 -1
- package/lib/tools/ToolRunner.mjs +1 -1
- package/lib/tools/ToolRunner.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/beta/beta.d.mts +3 -3
- package/resources/beta/beta.d.mts.map +1 -1
- package/resources/beta/beta.d.ts +3 -3
- package/resources/beta/beta.d.ts.map +1 -1
- package/resources/beta/beta.js.map +1 -1
- package/resources/beta/beta.mjs.map +1 -1
- package/resources/beta/index.d.mts +1 -1
- package/resources/beta/index.d.mts.map +1 -1
- package/resources/beta/index.d.ts +1 -1
- package/resources/beta/index.d.ts.map +1 -1
- package/resources/beta/index.js.map +1 -1
- package/resources/beta/index.mjs.map +1 -1
- package/resources/beta/messages/batches.d.mts +288 -3
- package/resources/beta/messages/batches.d.mts.map +1 -1
- package/resources/beta/messages/batches.d.ts +288 -3
- package/resources/beta/messages/batches.d.ts.map +1 -1
- package/resources/beta/messages/batches.js.map +1 -1
- package/resources/beta/messages/batches.mjs.map +1 -1
- package/resources/beta/messages/index.d.mts +1 -1
- package/resources/beta/messages/index.d.mts.map +1 -1
- package/resources/beta/messages/index.d.ts +1 -1
- package/resources/beta/messages/index.d.ts.map +1 -1
- package/resources/beta/messages/index.js.map +1 -1
- package/resources/beta/messages/index.mjs.map +1 -1
- package/resources/beta/messages/messages.d.mts +344 -11
- package/resources/beta/messages/messages.d.mts.map +1 -1
- package/resources/beta/messages/messages.d.ts +344 -11
- package/resources/beta/messages/messages.d.ts.map +1 -1
- package/resources/beta/messages/messages.js +1 -1
- package/resources/beta/messages/messages.js.map +1 -1
- package/resources/beta/messages/messages.mjs +1 -1
- package/resources/beta/messages/messages.mjs.map +1 -1
- package/resources/completions.d.mts +1 -1
- package/resources/completions.d.ts +1 -1
- package/resources/messages/batches.d.mts +2 -2
- package/resources/messages/batches.d.ts +2 -2
- package/resources/messages/messages.d.mts +2 -2
- package/resources/messages/messages.d.mts.map +1 -1
- package/resources/messages/messages.d.ts +2 -2
- package/resources/messages/messages.d.ts.map +1 -1
- package/resources/messages/messages.js +1 -1
- package/resources/messages/messages.js.map +1 -1
- package/resources/messages/messages.mjs +1 -1
- package/resources/messages/messages.mjs.map +1 -1
- package/src/lib/tools/BetaToolRunner.ts +101 -15
- package/src/lib/tools/CompactionControl.ts +52 -0
- package/src/lib/tools/ToolRunner.ts +1 -1
- package/src/resources/beta/beta.ts +19 -2
- package/src/resources/beta/index.ts +18 -1
- package/src/resources/beta/messages/batches.ts +307 -3
- package/src/resources/beta/messages/index.ts +18 -1
- package/src/resources/beta/messages/messages.ts +462 -6
- package/src/resources/completions.ts +1 -1
- package/src/resources/messages/batches.ts +2 -2
- package/src/resources/messages/messages.ts +3 -1
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.71.0 (2025-11-24)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [sdk-v0.70.1...sdk-v0.71.0](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.70.1...sdk-v0.71.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** adds support for Claude Opus 4.5, Effort, Advance Tool Use Features, Autocompaction, and Computer Use v5 ([f3a0dac](https://github.com/anthropics/anthropic-sdk-typescript/commit/f3a0dac4c6248f4e06231868fd64eec8034a68ba))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Chores
|
|
13
|
+
|
|
14
|
+
* fix ci errors ([8d96290](https://github.com/anthropics/anthropic-sdk-typescript/commit/8d9629004e35a77413a839c14874e323ced34f95))
|
|
15
|
+
* include publishConfig in all package.json files ([4c72960](https://github.com/anthropics/anthropic-sdk-typescript/commit/4c72960c5f494317d3f88816b941ffa103bf24d5))
|
|
16
|
+
* **readme:** fix example import ([4e8983a](https://github.com/anthropics/anthropic-sdk-typescript/commit/4e8983add6a035ea0a1dad2f84e68ead5cc9f29b))
|
|
17
|
+
|
|
3
18
|
## 0.70.1 (2025-11-20)
|
|
4
19
|
|
|
5
20
|
Full Changelog: [sdk-v0.70.0...sdk-v0.70.1](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.70.0...sdk-v0.70.1)
|
package/README.md
CHANGED
|
@@ -131,7 +131,7 @@ This SDK provides helpers for making it easy to create and run tools in the Mess
|
|
|
131
131
|
```ts
|
|
132
132
|
import Anthropic from '@anthropic-ai/sdk';
|
|
133
133
|
|
|
134
|
-
import { betaZodTool } from '@anthropic-ai/sdk/helpers';
|
|
134
|
+
import { betaZodTool } from '@anthropic-ai/sdk/helpers/beta/zod';
|
|
135
135
|
import { z } from 'zod';
|
|
136
136
|
|
|
137
137
|
const anthropic = new Anthropic();
|
|
@@ -3,6 +3,7 @@ import { Anthropic } from "../../index.mjs";
|
|
|
3
3
|
import { BetaMessage, BetaMessageParam, BetaToolUnion, MessageCreateParams } from "../../resources/beta.mjs";
|
|
4
4
|
import { BetaMessageStream } from "../BetaMessageStream.mjs";
|
|
5
5
|
import { RequestOptions } from "../../internal/request-options.mjs";
|
|
6
|
+
import { CompactionControl } from "./CompactionControl.mjs";
|
|
6
7
|
/**
|
|
7
8
|
* A ToolRunner handles the automatic conversation loop between the assistant and tools.
|
|
8
9
|
*
|
|
@@ -128,6 +129,7 @@ export type BetaToolRunnerParams = Simplify<Omit<MessageCreateParams, 'tools'> &
|
|
|
128
129
|
* When exceeded, the loop will terminate even if tools are still being requested.
|
|
129
130
|
*/
|
|
130
131
|
max_iterations?: number;
|
|
132
|
+
compactionControl?: CompactionControl;
|
|
131
133
|
}>;
|
|
132
134
|
export type BetaToolRunnerRequestOptions = Pick<RequestOptions, 'headers'>;
|
|
133
135
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BetaToolRunner.d.mts","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":"OAAO,EAAE,gBAAgB,EAAE;OACpB,EAAE,SAAS,EAAE;OAEb,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE;OACrE,EAAE,iBAAiB,EAAE;OACrB,EAAE,cAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"BetaToolRunner.d.mts","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":"OAAO,EAAE,gBAAgB,EAAE;OACpB,EAAE,SAAS,EAAE;OAEb,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE;OACrE,EAAE,iBAAiB,EAAE;OACrB,EAAE,cAAc,EAAE;OAElB,EAAE,iBAAiB,EAAmD;AAmB7E;;;;;GAKG;AACH,qBAAa,cAAc,CAAC,MAAM,SAAS,OAAO;;IAsB9C,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS,EACzB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,4BAA4B;IAqGjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAC5C,MAAM,SAAS,IAAI,GAAG,iBAAiB,GACrC,MAAM,SAAS,KAAK,GAAG,WAAW,GAClC,WAAW,GAAG,iBAAiB,CAClC;IA2ED;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IACrD,iBAAiB,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,IAAI;IAc5F;;;;;;;;;;;OAWG;IACG,oBAAoB;IAgB1B;;;;;;;;;;;;;;;OAeG;IACH,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAI5B;;;;;;;;;;;;OAYG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAY1C;;;;;;;;;OASG;IACH,IAAI,MAAM,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAE3C;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,GAAG,QAAQ,EAAE,gBAAgB,EAAE;IAO5C;;;OAGG;IACH,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE,QAAQ,GAAG,KAAK,EAC3C,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAC3F,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAGhC;AA+DD,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG;IACnC,KAAK,EAAE,CAAC,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACjD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CACF,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { Anthropic } from "../../index.js";
|
|
|
3
3
|
import { BetaMessage, BetaMessageParam, BetaToolUnion, MessageCreateParams } from "../../resources/beta.js";
|
|
4
4
|
import { BetaMessageStream } from "../BetaMessageStream.js";
|
|
5
5
|
import { RequestOptions } from "../../internal/request-options.js";
|
|
6
|
+
import { CompactionControl } from "./CompactionControl.js";
|
|
6
7
|
/**
|
|
7
8
|
* A ToolRunner handles the automatic conversation loop between the assistant and tools.
|
|
8
9
|
*
|
|
@@ -128,6 +129,7 @@ export type BetaToolRunnerParams = Simplify<Omit<MessageCreateParams, 'tools'> &
|
|
|
128
129
|
* When exceeded, the loop will terminate even if tools are still being requested.
|
|
129
130
|
*/
|
|
130
131
|
max_iterations?: number;
|
|
132
|
+
compactionControl?: CompactionControl;
|
|
131
133
|
}>;
|
|
132
134
|
export type BetaToolRunnerRequestOptions = Pick<RequestOptions, 'headers'>;
|
|
133
135
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BetaToolRunner.d.ts","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":"OAAO,EAAE,gBAAgB,EAAE;OACpB,EAAE,SAAS,EAAE;OAEb,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE;OACrE,EAAE,iBAAiB,EAAE;OACrB,EAAE,cAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"BetaToolRunner.d.ts","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":"OAAO,EAAE,gBAAgB,EAAE;OACpB,EAAE,SAAS,EAAE;OAEb,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE;OACrE,EAAE,iBAAiB,EAAE;OACrB,EAAE,cAAc,EAAE;OAElB,EAAE,iBAAiB,EAAmD;AAmB7E;;;;;GAKG;AACH,qBAAa,cAAc,CAAC,MAAM,SAAS,OAAO;;IAsB9C,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS,EACzB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,4BAA4B;IAqGjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAC5C,MAAM,SAAS,IAAI,GAAG,iBAAiB,GACrC,MAAM,SAAS,KAAK,GAAG,WAAW,GAClC,WAAW,GAAG,iBAAiB,CAClC;IA2ED;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IACrD,iBAAiB,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,IAAI;IAc5F;;;;;;;;;;;OAWG;IACG,oBAAoB;IAgB1B;;;;;;;;;;;;;;;OAeG;IACH,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAI5B;;;;;;;;;;;;OAYG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAY1C;;;;;;;;;OASG;IACH,IAAI,MAAM,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAE3C;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,GAAG,QAAQ,EAAE,gBAAgB,EAAE;IAO5C;;;OAGG;IACH,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE,QAAQ,GAAG,KAAK,EAC3C,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAC3F,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAGhC;AA+DD,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG;IACnC,KAAK,EAAE,CAAC,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACjD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CACF,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _BetaToolRunner_instances, _BetaToolRunner_consumed, _BetaToolRunner_mutated, _BetaToolRunner_state, _BetaToolRunner_options, _BetaToolRunner_message, _BetaToolRunner_toolResponse, _BetaToolRunner_completion, _BetaToolRunner_iterationCount, _BetaToolRunner_generateToolResponse;
|
|
2
|
+
var _BetaToolRunner_instances, _BetaToolRunner_consumed, _BetaToolRunner_mutated, _BetaToolRunner_state, _BetaToolRunner_options, _BetaToolRunner_message, _BetaToolRunner_toolResponse, _BetaToolRunner_completion, _BetaToolRunner_iterationCount, _BetaToolRunner_checkAndCompact, _BetaToolRunner_generateToolResponse;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.BetaToolRunner = void 0;
|
|
5
5
|
const tslib_1 = require("../../internal/tslib.js");
|
|
6
6
|
const error_1 = require("../../core/error.js");
|
|
7
7
|
const headers_1 = require("../../internal/headers.js");
|
|
8
|
+
const CompactionControl_1 = require("./CompactionControl.js");
|
|
8
9
|
/**
|
|
9
10
|
* Just Promise.withResolvers(), which is not available in all environments.
|
|
10
11
|
*/
|
|
@@ -57,7 +58,76 @@ class BetaToolRunner {
|
|
|
57
58
|
}, "f");
|
|
58
59
|
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_completion, promiseWithResolvers(), "f");
|
|
59
60
|
}
|
|
60
|
-
async *[(_BetaToolRunner_consumed = new WeakMap(), _BetaToolRunner_mutated = new WeakMap(), _BetaToolRunner_state = new WeakMap(), _BetaToolRunner_options = new WeakMap(), _BetaToolRunner_message = new WeakMap(), _BetaToolRunner_toolResponse = new WeakMap(), _BetaToolRunner_completion = new WeakMap(), _BetaToolRunner_iterationCount = new WeakMap(), _BetaToolRunner_instances = new WeakSet(),
|
|
61
|
+
async *[(_BetaToolRunner_consumed = new WeakMap(), _BetaToolRunner_mutated = new WeakMap(), _BetaToolRunner_state = new WeakMap(), _BetaToolRunner_options = new WeakMap(), _BetaToolRunner_message = new WeakMap(), _BetaToolRunner_toolResponse = new WeakMap(), _BetaToolRunner_completion = new WeakMap(), _BetaToolRunner_iterationCount = new WeakMap(), _BetaToolRunner_instances = new WeakSet(), _BetaToolRunner_checkAndCompact = async function _BetaToolRunner_checkAndCompact() {
|
|
62
|
+
const compactionControl = tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.compactionControl;
|
|
63
|
+
if (!compactionControl || !compactionControl.enabled) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
let tokensUsed = 0;
|
|
67
|
+
if (tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_message, "f") !== undefined) {
|
|
68
|
+
try {
|
|
69
|
+
const message = await tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_message, "f");
|
|
70
|
+
const totalInputTokens = message.usage.input_tokens +
|
|
71
|
+
(message.usage.cache_creation_input_tokens ?? 0) +
|
|
72
|
+
(message.usage.cache_read_input_tokens ?? 0);
|
|
73
|
+
tokensUsed = totalInputTokens + message.usage.output_tokens;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// If we can't get the message, skip compaction
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const threshold = compactionControl.contextTokenThreshold ?? CompactionControl_1.DEFAULT_TOKEN_THRESHOLD;
|
|
81
|
+
if (tokensUsed < threshold) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
const model = compactionControl.model ?? tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.model;
|
|
85
|
+
const summaryPrompt = compactionControl.summaryPrompt ?? CompactionControl_1.DEFAULT_SUMMARY_PROMPT;
|
|
86
|
+
const messages = tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages;
|
|
87
|
+
if (messages[messages.length - 1].role === 'assistant') {
|
|
88
|
+
// Remove tool_use blocks from the last message to avoid 400 error
|
|
89
|
+
// (tool_use requires tool_result, which we don't have yet)
|
|
90
|
+
const lastMessage = messages[messages.length - 1];
|
|
91
|
+
if (Array.isArray(lastMessage.content)) {
|
|
92
|
+
const nonToolBlocks = lastMessage.content.filter((block) => block.type !== 'tool_use');
|
|
93
|
+
if (nonToolBlocks.length === 0) {
|
|
94
|
+
// If all blocks were tool_use, just remove the message entirely
|
|
95
|
+
messages.pop();
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
lastMessage.content = nonToolBlocks;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const response = await this.client.beta.messages.create({
|
|
103
|
+
model,
|
|
104
|
+
messages: [
|
|
105
|
+
...messages,
|
|
106
|
+
{
|
|
107
|
+
role: 'user',
|
|
108
|
+
content: [
|
|
109
|
+
{
|
|
110
|
+
type: 'text',
|
|
111
|
+
text: summaryPrompt,
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
max_tokens: tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.max_tokens,
|
|
117
|
+
}, {
|
|
118
|
+
headers: { 'x-stainless-helper': 'compaction' },
|
|
119
|
+
});
|
|
120
|
+
if (response.content[0]?.type !== 'text') {
|
|
121
|
+
throw new error_1.AnthropicError('Expected text response for compaction');
|
|
122
|
+
}
|
|
123
|
+
tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages = [
|
|
124
|
+
{
|
|
125
|
+
role: 'user',
|
|
126
|
+
content: response.content,
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
return true;
|
|
130
|
+
}, Symbol.asyncIterator)]() {
|
|
61
131
|
var _a;
|
|
62
132
|
if (tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_consumed, "f")) {
|
|
63
133
|
throw new error_1.AnthropicError('Cannot iterate over a consumed stream');
|
|
@@ -74,10 +144,10 @@ class BetaToolRunner {
|
|
|
74
144
|
break;
|
|
75
145
|
}
|
|
76
146
|
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_mutated, false, "f");
|
|
77
|
-
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_message, undefined, "f");
|
|
78
147
|
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_toolResponse, undefined, "f");
|
|
79
148
|
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_iterationCount, (_a = tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_iterationCount, "f"), _a++, _a), "f");
|
|
80
|
-
|
|
149
|
+
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_message, undefined, "f");
|
|
150
|
+
const { max_iterations, compactionControl, ...params } = tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params;
|
|
81
151
|
if (params.stream) {
|
|
82
152
|
stream = this.client.beta.messages.stream({ ...params }, tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_options, "f"));
|
|
83
153
|
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_message, stream.finalMessage(), "f");
|
|
@@ -90,16 +160,19 @@ class BetaToolRunner {
|
|
|
90
160
|
tslib_1.__classPrivateFieldSet(this, _BetaToolRunner_message, this.client.beta.messages.create({ ...params, stream: false }, tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_options, "f")), "f");
|
|
91
161
|
yield tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_message, "f");
|
|
92
162
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
tslib_1.__classPrivateFieldGet(this,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
163
|
+
const isCompacted = await tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_instances, "m", _BetaToolRunner_checkAndCompact).call(this);
|
|
164
|
+
if (!isCompacted) {
|
|
165
|
+
if (!tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_mutated, "f")) {
|
|
166
|
+
const { role, content } = await tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_message, "f");
|
|
167
|
+
tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.push({ role, content });
|
|
168
|
+
}
|
|
169
|
+
const toolMessage = await tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_instances, "m", _BetaToolRunner_generateToolResponse).call(this, tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.at(-1));
|
|
170
|
+
if (toolMessage) {
|
|
171
|
+
tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.push(toolMessage);
|
|
172
|
+
}
|
|
173
|
+
else if (!tslib_1.__classPrivateFieldGet(this, _BetaToolRunner_mutated, "f")) {
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
103
176
|
}
|
|
104
177
|
}
|
|
105
178
|
finally {
|
|
@@ -259,7 +332,7 @@ async function generateToolResponse(params, lastMessage = params.messages.at(-1)
|
|
|
259
332
|
return null;
|
|
260
333
|
}
|
|
261
334
|
const toolResults = await Promise.all(toolUseBlocks.map(async (toolUse) => {
|
|
262
|
-
const tool = params.tools.find((t) => t.name === toolUse.name);
|
|
335
|
+
const tool = params.tools.find((t) => ('name' in t ? t.name : t.mcp_server_name) === toolUse.name);
|
|
263
336
|
if (!tool || !('run' in tool)) {
|
|
264
337
|
return {
|
|
265
338
|
type: 'tool_result',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BetaToolRunner.js","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":";;;;;AAEA,+CAAkD;AAIlD,uDAAsD;
|
|
1
|
+
{"version":3,"file":"BetaToolRunner.js","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
var _BetaToolRunner_instances, _BetaToolRunner_consumed, _BetaToolRunner_mutated, _BetaToolRunner_state, _BetaToolRunner_options, _BetaToolRunner_message, _BetaToolRunner_toolResponse, _BetaToolRunner_completion, _BetaToolRunner_iterationCount, _BetaToolRunner_generateToolResponse;
|
|
1
|
+
var _BetaToolRunner_instances, _BetaToolRunner_consumed, _BetaToolRunner_mutated, _BetaToolRunner_state, _BetaToolRunner_options, _BetaToolRunner_message, _BetaToolRunner_toolResponse, _BetaToolRunner_completion, _BetaToolRunner_iterationCount, _BetaToolRunner_checkAndCompact, _BetaToolRunner_generateToolResponse;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "../../internal/tslib.mjs";
|
|
3
3
|
import { AnthropicError } from "../../core/error.mjs";
|
|
4
4
|
import { buildHeaders } from "../../internal/headers.mjs";
|
|
5
|
+
import { DEFAULT_SUMMARY_PROMPT, DEFAULT_TOKEN_THRESHOLD } from "./CompactionControl.mjs";
|
|
5
6
|
/**
|
|
6
7
|
* Just Promise.withResolvers(), which is not available in all environments.
|
|
7
8
|
*/
|
|
@@ -54,7 +55,76 @@ export class BetaToolRunner {
|
|
|
54
55
|
}, "f");
|
|
55
56
|
__classPrivateFieldSet(this, _BetaToolRunner_completion, promiseWithResolvers(), "f");
|
|
56
57
|
}
|
|
57
|
-
async *[(_BetaToolRunner_consumed = new WeakMap(), _BetaToolRunner_mutated = new WeakMap(), _BetaToolRunner_state = new WeakMap(), _BetaToolRunner_options = new WeakMap(), _BetaToolRunner_message = new WeakMap(), _BetaToolRunner_toolResponse = new WeakMap(), _BetaToolRunner_completion = new WeakMap(), _BetaToolRunner_iterationCount = new WeakMap(), _BetaToolRunner_instances = new WeakSet(),
|
|
58
|
+
async *[(_BetaToolRunner_consumed = new WeakMap(), _BetaToolRunner_mutated = new WeakMap(), _BetaToolRunner_state = new WeakMap(), _BetaToolRunner_options = new WeakMap(), _BetaToolRunner_message = new WeakMap(), _BetaToolRunner_toolResponse = new WeakMap(), _BetaToolRunner_completion = new WeakMap(), _BetaToolRunner_iterationCount = new WeakMap(), _BetaToolRunner_instances = new WeakSet(), _BetaToolRunner_checkAndCompact = async function _BetaToolRunner_checkAndCompact() {
|
|
59
|
+
const compactionControl = __classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.compactionControl;
|
|
60
|
+
if (!compactionControl || !compactionControl.enabled) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
let tokensUsed = 0;
|
|
64
|
+
if (__classPrivateFieldGet(this, _BetaToolRunner_message, "f") !== undefined) {
|
|
65
|
+
try {
|
|
66
|
+
const message = await __classPrivateFieldGet(this, _BetaToolRunner_message, "f");
|
|
67
|
+
const totalInputTokens = message.usage.input_tokens +
|
|
68
|
+
(message.usage.cache_creation_input_tokens ?? 0) +
|
|
69
|
+
(message.usage.cache_read_input_tokens ?? 0);
|
|
70
|
+
tokensUsed = totalInputTokens + message.usage.output_tokens;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// If we can't get the message, skip compaction
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const threshold = compactionControl.contextTokenThreshold ?? DEFAULT_TOKEN_THRESHOLD;
|
|
78
|
+
if (tokensUsed < threshold) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const model = compactionControl.model ?? __classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.model;
|
|
82
|
+
const summaryPrompt = compactionControl.summaryPrompt ?? DEFAULT_SUMMARY_PROMPT;
|
|
83
|
+
const messages = __classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages;
|
|
84
|
+
if (messages[messages.length - 1].role === 'assistant') {
|
|
85
|
+
// Remove tool_use blocks from the last message to avoid 400 error
|
|
86
|
+
// (tool_use requires tool_result, which we don't have yet)
|
|
87
|
+
const lastMessage = messages[messages.length - 1];
|
|
88
|
+
if (Array.isArray(lastMessage.content)) {
|
|
89
|
+
const nonToolBlocks = lastMessage.content.filter((block) => block.type !== 'tool_use');
|
|
90
|
+
if (nonToolBlocks.length === 0) {
|
|
91
|
+
// If all blocks were tool_use, just remove the message entirely
|
|
92
|
+
messages.pop();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
lastMessage.content = nonToolBlocks;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const response = await this.client.beta.messages.create({
|
|
100
|
+
model,
|
|
101
|
+
messages: [
|
|
102
|
+
...messages,
|
|
103
|
+
{
|
|
104
|
+
role: 'user',
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: 'text',
|
|
108
|
+
text: summaryPrompt,
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
max_tokens: __classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.max_tokens,
|
|
114
|
+
}, {
|
|
115
|
+
headers: { 'x-stainless-helper': 'compaction' },
|
|
116
|
+
});
|
|
117
|
+
if (response.content[0]?.type !== 'text') {
|
|
118
|
+
throw new AnthropicError('Expected text response for compaction');
|
|
119
|
+
}
|
|
120
|
+
__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages = [
|
|
121
|
+
{
|
|
122
|
+
role: 'user',
|
|
123
|
+
content: response.content,
|
|
124
|
+
},
|
|
125
|
+
];
|
|
126
|
+
return true;
|
|
127
|
+
}, Symbol.asyncIterator)]() {
|
|
58
128
|
var _a;
|
|
59
129
|
if (__classPrivateFieldGet(this, _BetaToolRunner_consumed, "f")) {
|
|
60
130
|
throw new AnthropicError('Cannot iterate over a consumed stream');
|
|
@@ -71,10 +141,10 @@ export class BetaToolRunner {
|
|
|
71
141
|
break;
|
|
72
142
|
}
|
|
73
143
|
__classPrivateFieldSet(this, _BetaToolRunner_mutated, false, "f");
|
|
74
|
-
__classPrivateFieldSet(this, _BetaToolRunner_message, undefined, "f");
|
|
75
144
|
__classPrivateFieldSet(this, _BetaToolRunner_toolResponse, undefined, "f");
|
|
76
145
|
__classPrivateFieldSet(this, _BetaToolRunner_iterationCount, (_a = __classPrivateFieldGet(this, _BetaToolRunner_iterationCount, "f"), _a++, _a), "f");
|
|
77
|
-
|
|
146
|
+
__classPrivateFieldSet(this, _BetaToolRunner_message, undefined, "f");
|
|
147
|
+
const { max_iterations, compactionControl, ...params } = __classPrivateFieldGet(this, _BetaToolRunner_state, "f").params;
|
|
78
148
|
if (params.stream) {
|
|
79
149
|
stream = this.client.beta.messages.stream({ ...params }, __classPrivateFieldGet(this, _BetaToolRunner_options, "f"));
|
|
80
150
|
__classPrivateFieldSet(this, _BetaToolRunner_message, stream.finalMessage(), "f");
|
|
@@ -87,16 +157,19 @@ export class BetaToolRunner {
|
|
|
87
157
|
__classPrivateFieldSet(this, _BetaToolRunner_message, this.client.beta.messages.create({ ...params, stream: false }, __classPrivateFieldGet(this, _BetaToolRunner_options, "f")), "f");
|
|
88
158
|
yield __classPrivateFieldGet(this, _BetaToolRunner_message, "f");
|
|
89
159
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
__classPrivateFieldGet(this,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
160
|
+
const isCompacted = await __classPrivateFieldGet(this, _BetaToolRunner_instances, "m", _BetaToolRunner_checkAndCompact).call(this);
|
|
161
|
+
if (!isCompacted) {
|
|
162
|
+
if (!__classPrivateFieldGet(this, _BetaToolRunner_mutated, "f")) {
|
|
163
|
+
const { role, content } = await __classPrivateFieldGet(this, _BetaToolRunner_message, "f");
|
|
164
|
+
__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.push({ role, content });
|
|
165
|
+
}
|
|
166
|
+
const toolMessage = await __classPrivateFieldGet(this, _BetaToolRunner_instances, "m", _BetaToolRunner_generateToolResponse).call(this, __classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.at(-1));
|
|
167
|
+
if (toolMessage) {
|
|
168
|
+
__classPrivateFieldGet(this, _BetaToolRunner_state, "f").params.messages.push(toolMessage);
|
|
169
|
+
}
|
|
170
|
+
else if (!__classPrivateFieldGet(this, _BetaToolRunner_mutated, "f")) {
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
100
173
|
}
|
|
101
174
|
}
|
|
102
175
|
finally {
|
|
@@ -255,7 +328,7 @@ async function generateToolResponse(params, lastMessage = params.messages.at(-1)
|
|
|
255
328
|
return null;
|
|
256
329
|
}
|
|
257
330
|
const toolResults = await Promise.all(toolUseBlocks.map(async (toolUse) => {
|
|
258
|
-
const tool = params.tools.find((t) => t.name === toolUse.name);
|
|
331
|
+
const tool = params.tools.find((t) => ('name' in t ? t.name : t.mcp_server_name) === toolUse.name);
|
|
259
332
|
if (!tool || !('run' in tool)) {
|
|
260
333
|
return {
|
|
261
334
|
type: 'tool_result',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BetaToolRunner.mjs","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":";;OAEO,EAAE,cAAc,EAAE;OAIlB,EAAE,YAAY,EAAE;
|
|
1
|
+
{"version":3,"file":"BetaToolRunner.mjs","sourceRoot":"","sources":["../../src/lib/tools/BetaToolRunner.ts"],"names":[],"mappings":";;OAEO,EAAE,cAAc,EAAE;OAIlB,EAAE,YAAY,EAAE;OAChB,EAAqB,sBAAsB,EAAE,uBAAuB,EAAE;AAE7E;;GAEG;AACH,SAAS,oBAAoB;IAK3B,IAAI,OAA2B,CAAC;IAChC,IAAI,MAA8B,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,OAAO,GAAG,GAAG,CAAC;QACd,MAAM,GAAG,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAQ,EAAE,MAAM,EAAE,MAAO,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAqBzB,YACU,MAAiB,EACzB,MAA4B,EAC5B,OAAsC;;QAF9B,WAAM,GAAN,MAAM,CAAW;QArB3B,mDAAmD;QACnD,mCAAY,KAAK,EAAC;QAClB,mEAAmE;QACnE,kCAAW,KAAK,EAAC;QACjB,sDAAsD;QACtD,wCAAyC;QACzC,0CAAuC;QACvC,+DAA+D;QAC/D,0CAA4C;QAC5C,yDAAyD;QACzD,+CAA6D;QAC7D,kDAAkD;QAClD,6CAIE;QACF,sDAAsD;QACtD,yCAAkB,CAAC,EAAC;QAOlB,uBAAA,IAAI,yBAAU;YACZ,MAAM,EAAE;gBACN,2EAA2E;gBAC3E,+FAA+F;gBAC/F,aAAa;gBACb,GAAG,MAAM;gBACT,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC3C;SACF,MAAA,CAAC;QAEF,uBAAA,IAAI,2BAAY;YACd,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACtF,MAAA,CAAC;QACF,uBAAA,IAAI,8BAAe,oBAAoB,EAAE,MAAA,CAAC;IAC5C,CAAC;IAoFD,KAAK,CAAC,CAAC,qaAlFP,KAAK;QACH,MAAM,iBAAiB,GAAG,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/D,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,uBAAA,IAAI,+BAAS,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,+BAAS,CAAC;gBACpC,MAAM,gBAAgB,GACpB,OAAO,CAAC,KAAK,CAAC,YAAY;oBAC1B,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;oBAChD,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC;gBAC/C,UAAU,GAAG,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;gBAC/C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,qBAAqB,IAAI,uBAAuB,CAAC;QAErF,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAClE,MAAM,aAAa,GAAG,iBAAiB,CAAC,aAAa,IAAI,sBAAsB,CAAC;QAEhF,MAAM,QAAQ,GAAG,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QAE7C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxD,kEAAkE;YAClE,2DAA2D;YAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;gBAEvF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,gEAAgE;oBAChE,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,OAAO,GAAG,aAAa,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrD;YACE,KAAK;YACL,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,aAAa;yBACpB;qBACF;iBACF;aACF;YACD,UAAU,EAAE,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,UAAU;SAC1C,EACD;YACE,OAAO,EAAE,EAAE,oBAAoB,EAAE,YAAY,EAAE;SAChD,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC;QACpE,CAAC;QACD,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,QAAQ,GAAG;YAC5B;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B;SACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,EAEO,MAAM,CAAC,aAAa,EAAC;;QAK3B,IAAI,uBAAA,IAAI,gCAAU,EAAE,CAAC;YACnB,MAAM,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC;QACpE,CAAC;QAED,uBAAA,IAAI,4BAAa,IAAI,MAAA,CAAC;QACtB,uBAAA,IAAI,2BAAY,IAAI,MAAA,CAAC;QACrB,uBAAA,IAAI,gCAAiB,SAAS,MAAA,CAAC;QAE/B,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,MAAM,CAAC;gBACX,IAAI,CAAC;oBACH,IACE,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,cAAc;wBACjC,uBAAA,IAAI,sCAAgB,IAAI,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,cAAc,EACzD,CAAC;wBACD,MAAM;oBACR,CAAC;oBAED,uBAAA,IAAI,2BAAY,KAAK,MAAA,CAAC;oBACtB,uBAAA,IAAI,gCAAiB,SAAS,MAAA,CAAC;oBAC/B,6DAAA,CAAA,sEAAoB,EAApB,IAAsB,IAAA,CAAA,MAAA,CAAC;oBACvB,uBAAA,IAAI,2BAAY,SAAS,MAAA,CAAC;oBAE1B,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,GAAG,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC;oBAE5E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,uBAAA,IAAI,+BAAS,CAAC,CAAC;wBACxE,uBAAA,IAAI,2BAAY,MAAM,CAAC,YAAY,EAAE,MAAA,CAAC;wBACtC,+FAA+F;wBAC/F,mEAAmE;wBACnE,uBAAA,IAAI,+BAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAC9B,MAAM,MAAa,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,uBAAA,IAAI,2BAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,uBAAA,IAAI,+BAAS,CAAC,MAAA,CAAC;wBAC9F,MAAM,uBAAA,IAAI,+BAAgB,CAAC;oBAC7B,CAAC;oBAED,MAAM,WAAW,GAAG,MAAM,uBAAA,IAAI,kEAAiB,MAArB,IAAI,CAAmB,CAAC;oBAClD,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,IAAI,CAAC,uBAAA,IAAI,+BAAS,EAAE,CAAC;4BACnB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,uBAAA,IAAI,+BAAS,CAAC;4BAC9C,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;wBACtD,CAAC;wBAED,MAAM,WAAW,GAAG,MAAM,uBAAA,IAAI,uEAAsB,MAA1B,IAAI,EAAuB,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;wBAC1F,IAAI,WAAW,EAAE,CAAC;4BAChB,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAChD,CAAC;6BAAM,IAAI,CAAC,uBAAA,IAAI,+BAAS,EAAE,CAAC;4BAC1B,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,uBAAA,IAAI,+BAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,cAAc,CAAC,wDAAwD,CAAC,CAAC;YACrF,CAAC;YAED,uBAAA,IAAI,kCAAY,CAAC,OAAO,CAAC,MAAM,uBAAA,IAAI,+BAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAA,IAAI,4BAAa,KAAK,MAAA,CAAC;YACvB,mCAAmC;YACnC,uBAAA,IAAI,kCAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACzC,uBAAA,IAAI,kCAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,uBAAA,IAAI,8BAAe,oBAAoB,EAAE,MAAA,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAuBD,iBAAiB,CACf,eAAoG;QAEpG,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;YAC1C,uBAAA,IAAI,6BAAO,CAAC,MAAM,GAAG,eAAe,CAAC,uBAAA,IAAI,6BAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,uBAAA,IAAI,6BAAO,CAAC,MAAM,GAAG,eAAe,CAAC;QACvC,CAAC;QACD,uBAAA,IAAI,2BAAY,IAAI,MAAA,CAAC;QACrB,2DAA2D;QAC3D,uBAAA,IAAI,gCAAiB,SAAS,MAAA,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,OAAO,GAAG,CAAC,MAAM,uBAAA,IAAI,+BAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,uBAAA,IAAI,uEAAsB,MAA1B,IAAI,EAAuB,OAAO,CAAC,CAAC;IAC7C,CAAC;IAUD;;;;;;;;;;;;;;;OAeG;IACH,IAAI;QACF,OAAO,uBAAA,IAAI,kCAAY,CAAC,OAAO,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,YAAY;QAChB,+DAA+D;QAC/D,IAAI,CAAC,uBAAA,IAAI,gCAAU,EAAE,CAAC;YACpB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC3B,6CAA6C;YAC/C,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,MAAM;QACR,OAAO,uBAAA,IAAI,6BAAO,CAAC,MAAwC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,GAAG,QAA4B;QAC1C,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClC,GAAG,MAAM;YACT,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC;SAC5C,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,IAAI,CACF,WAA2F,EAC3F,UAAmF;QAEnF,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;CACF;uCArGC,KAAK,+CAAuB,WAA6B;IACvD,IAAI,uBAAA,IAAI,oCAAc,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,uBAAA,IAAI,oCAAc,CAAC;IAC5B,CAAC;IACD,uBAAA,IAAI,gCAAiB,oBAAoB,CAAC,uBAAA,IAAI,6BAAO,CAAC,MAAM,EAAE,WAAW,CAAC,MAAA,CAAC;IAC3E,OAAO,uBAAA,IAAI,oCAAc,CAAC;AAC5B,CAAC;AAiGH,KAAK,UAAU,oBAAoB,CACjC,MAA4B,EAC5B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpC,iFAAiF;IACjF,IACE,CAAC,WAAW;QACZ,WAAW,CAAC,IAAI,KAAK,WAAW;QAChC,CAAC,WAAW,CAAC,OAAO;QACpB,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,EACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC3F,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACnG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,IAAI,EAAE,aAAsB;gBAC5B,WAAW,EAAE,OAAO,CAAC,EAAE;gBACvB,OAAO,EAAE,gBAAgB,OAAO,CAAC,IAAI,aAAa;gBAClD,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,aAAsB;gBAC5B,WAAW,EAAE,OAAO,CAAC,EAAE;gBACvB,OAAO,EAAE,MAAM;aAChB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,aAAsB;gBAC5B,WAAW,EAAE,OAAO,CAAC,EAAE;gBACvB,OAAO,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC3E,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,MAAe;QACrB,OAAO,EAAE,WAAW;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Model } from "../../resources.mjs";
|
|
2
|
+
export declare const DEFAULT_TOKEN_THRESHOLD = 100000;
|
|
3
|
+
export declare const DEFAULT_SUMMARY_PROMPT = "You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:\n1. Task Overview\nThe user's core request and success criteria\nAny clarifications or constraints they specified\n2. Current State\nWhat has been completed so far\nFiles created, modified, or analyzed (with paths if relevant)\nKey outputs or artifacts produced\n3. Important Discoveries\nTechnical constraints or requirements uncovered\nDecisions made and their rationale\nErrors encountered and how they were resolved\nWhat approaches were tried that didn't work (and why)\n4. Next Steps\nSpecific actions needed to complete the task\nAny blockers or open questions to resolve\nPriority order if multiple steps remain\n5. Context to Preserve\nUser preferences or style requirements\nDomain-specific details that aren't obvious\nAny promises made to the user\nBe concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.\nWrap your summary in <summary></summary> tags.";
|
|
4
|
+
export interface CompactionControl {
|
|
5
|
+
/**
|
|
6
|
+
* The context token threshold at which to trigger compaction.
|
|
7
|
+
*
|
|
8
|
+
* When the cumulative token count (input + output) across all messages exceeds this threshold,
|
|
9
|
+
* the message history will be automatically summarized and compressed.
|
|
10
|
+
*
|
|
11
|
+
* @default 100000
|
|
12
|
+
*/
|
|
13
|
+
contextTokenThreshold?: number;
|
|
14
|
+
/**
|
|
15
|
+
* The model to use for generating the compaction summary.
|
|
16
|
+
* If not specified, defaults to the same model used for the tool runner.
|
|
17
|
+
*/
|
|
18
|
+
model?: Model;
|
|
19
|
+
/**
|
|
20
|
+
* The prompt used to instruct the model on how to generate the summary.
|
|
21
|
+
*/
|
|
22
|
+
summaryPrompt?: string;
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=CompactionControl.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactionControl.d.mts","sourceRoot":"","sources":["../../src/lib/tools/CompactionControl.ts"],"names":[],"mappings":"OAAO,EAAE,KAAK,EAAE;AAEhB,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C,eAAO,MAAM,sBAAsB,20CAsBY,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Model } from "../../resources.js";
|
|
2
|
+
export declare const DEFAULT_TOKEN_THRESHOLD = 100000;
|
|
3
|
+
export declare const DEFAULT_SUMMARY_PROMPT = "You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:\n1. Task Overview\nThe user's core request and success criteria\nAny clarifications or constraints they specified\n2. Current State\nWhat has been completed so far\nFiles created, modified, or analyzed (with paths if relevant)\nKey outputs or artifacts produced\n3. Important Discoveries\nTechnical constraints or requirements uncovered\nDecisions made and their rationale\nErrors encountered and how they were resolved\nWhat approaches were tried that didn't work (and why)\n4. Next Steps\nSpecific actions needed to complete the task\nAny blockers or open questions to resolve\nPriority order if multiple steps remain\n5. Context to Preserve\nUser preferences or style requirements\nDomain-specific details that aren't obvious\nAny promises made to the user\nBe concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.\nWrap your summary in <summary></summary> tags.";
|
|
4
|
+
export interface CompactionControl {
|
|
5
|
+
/**
|
|
6
|
+
* The context token threshold at which to trigger compaction.
|
|
7
|
+
*
|
|
8
|
+
* When the cumulative token count (input + output) across all messages exceeds this threshold,
|
|
9
|
+
* the message history will be automatically summarized and compressed.
|
|
10
|
+
*
|
|
11
|
+
* @default 100000
|
|
12
|
+
*/
|
|
13
|
+
contextTokenThreshold?: number;
|
|
14
|
+
/**
|
|
15
|
+
* The model to use for generating the compaction summary.
|
|
16
|
+
* If not specified, defaults to the same model used for the tool runner.
|
|
17
|
+
*/
|
|
18
|
+
model?: Model;
|
|
19
|
+
/**
|
|
20
|
+
* The prompt used to instruct the model on how to generate the summary.
|
|
21
|
+
*/
|
|
22
|
+
summaryPrompt?: string;
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=CompactionControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactionControl.d.ts","sourceRoot":"","sources":["../../src/lib/tools/CompactionControl.ts"],"names":[],"mappings":"OAAO,EAAE,KAAK,EAAE;AAEhB,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C,eAAO,MAAM,sBAAsB,20CAsBY,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_SUMMARY_PROMPT = exports.DEFAULT_TOKEN_THRESHOLD = void 0;
|
|
4
|
+
exports.DEFAULT_TOKEN_THRESHOLD = 100000;
|
|
5
|
+
exports.DEFAULT_SUMMARY_PROMPT = `You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
|
|
6
|
+
1. Task Overview
|
|
7
|
+
The user's core request and success criteria
|
|
8
|
+
Any clarifications or constraints they specified
|
|
9
|
+
2. Current State
|
|
10
|
+
What has been completed so far
|
|
11
|
+
Files created, modified, or analyzed (with paths if relevant)
|
|
12
|
+
Key outputs or artifacts produced
|
|
13
|
+
3. Important Discoveries
|
|
14
|
+
Technical constraints or requirements uncovered
|
|
15
|
+
Decisions made and their rationale
|
|
16
|
+
Errors encountered and how they were resolved
|
|
17
|
+
What approaches were tried that didn't work (and why)
|
|
18
|
+
4. Next Steps
|
|
19
|
+
Specific actions needed to complete the task
|
|
20
|
+
Any blockers or open questions to resolve
|
|
21
|
+
Priority order if multiple steps remain
|
|
22
|
+
5. Context to Preserve
|
|
23
|
+
User preferences or style requirements
|
|
24
|
+
Domain-specific details that aren't obvious
|
|
25
|
+
Any promises made to the user
|
|
26
|
+
Be concise but complete—err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.
|
|
27
|
+
Wrap your summary in <summary></summary> tags.`;
|
|
28
|
+
//# sourceMappingURL=CompactionControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactionControl.js","sourceRoot":"","sources":["../../src/lib/tools/CompactionControl.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAG,MAAO,CAAC;AAElC,QAAA,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;+CAsBS,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const DEFAULT_TOKEN_THRESHOLD = 100000;
|
|
2
|
+
export const DEFAULT_SUMMARY_PROMPT = `You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
|
|
3
|
+
1. Task Overview
|
|
4
|
+
The user's core request and success criteria
|
|
5
|
+
Any clarifications or constraints they specified
|
|
6
|
+
2. Current State
|
|
7
|
+
What has been completed so far
|
|
8
|
+
Files created, modified, or analyzed (with paths if relevant)
|
|
9
|
+
Key outputs or artifacts produced
|
|
10
|
+
3. Important Discoveries
|
|
11
|
+
Technical constraints or requirements uncovered
|
|
12
|
+
Decisions made and their rationale
|
|
13
|
+
Errors encountered and how they were resolved
|
|
14
|
+
What approaches were tried that didn't work (and why)
|
|
15
|
+
4. Next Steps
|
|
16
|
+
Specific actions needed to complete the task
|
|
17
|
+
Any blockers or open questions to resolve
|
|
18
|
+
Priority order if multiple steps remain
|
|
19
|
+
5. Context to Preserve
|
|
20
|
+
User preferences or style requirements
|
|
21
|
+
Domain-specific details that aren't obvious
|
|
22
|
+
Any promises made to the user
|
|
23
|
+
Be concise but complete—err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.
|
|
24
|
+
Wrap your summary in <summary></summary> tags.`;
|
|
25
|
+
//# sourceMappingURL=CompactionControl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactionControl.mjs","sourceRoot":"","sources":["../../src/lib/tools/CompactionControl.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAO,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;+CAsBS,CAAC"}
|
package/lib/tools/ToolRunner.js
CHANGED
|
@@ -253,7 +253,7 @@ async function generateToolResponse(params, lastMessage = params.messages.at(-1)
|
|
|
253
253
|
return null;
|
|
254
254
|
}
|
|
255
255
|
const toolResults = await Promise.all(toolUseBlocks.map(async (toolUse) => {
|
|
256
|
-
const tool = params.tools.find((t) => t.name === toolUse.name);
|
|
256
|
+
const tool = params.tools.find((t) => ('name' in t ? t.name : t.mcp_server_name) === toolUse.name);
|
|
257
257
|
if (!tool || !('run' in tool)) {
|
|
258
258
|
return {
|
|
259
259
|
type: 'tool_result',
|