@bunny-agent/runner-cli 0.9.61-beta.1 → 0.9.61-beta.2
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.
|
@@ -16,6 +16,22 @@ import { buildImage } from "../build-image.js";
|
|
|
16
16
|
const mockedExecSync = vi.mocked(execSync);
|
|
17
17
|
const TEST_DIR = join(process.cwd(), ".test-build-image");
|
|
18
18
|
const BUILD_CONTEXT = join(TEST_DIR, ".docker-staging");
|
|
19
|
+
const REPOSITORY_ROOT = join(process.cwd(), "../..");
|
|
20
|
+
const CHROMIUM_STORAGE_ARGUMENTS = [
|
|
21
|
+
"--user-data-dir=/tmp/bunny-agent-chromium",
|
|
22
|
+
"--disk-cache-dir=/tmp/bunny-agent-chromium-cache",
|
|
23
|
+
"--disk-cache-size=104857600 --media-cache-size=104857600",
|
|
24
|
+
];
|
|
25
|
+
function expectValidChromiumArgumentContinuations(content) {
|
|
26
|
+
const expectedSuffix = "\\".repeat(3) + "n\\";
|
|
27
|
+
for (const argument of CHROMIUM_STORAGE_ARGUMENTS) {
|
|
28
|
+
const line = content
|
|
29
|
+
.split("\n")
|
|
30
|
+
.find((candidate) => candidate.includes(argument));
|
|
31
|
+
expect(line, "missing Chromium argument: " + argument).toBeDefined();
|
|
32
|
+
expect(line?.endsWith(expectedSuffix), argument).toBe(true);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
19
35
|
beforeEach(() => {
|
|
20
36
|
mkdirSync(TEST_DIR, { recursive: true });
|
|
21
37
|
mockedExecSync.mockClear();
|
|
@@ -61,8 +77,27 @@ describe("buildImage", () => {
|
|
|
61
77
|
const content = readFileSync(dockerfilePath, "utf8");
|
|
62
78
|
expect(content).toContain("FROM node:24-slim");
|
|
63
79
|
expect(content).toContain("@bunny-agent/runner-cli");
|
|
80
|
+
expect(content).toContain("--user-data-dir=/tmp/bunny-agent-chromium");
|
|
81
|
+
expect(content).toContain("--disk-cache-dir=/tmp/bunny-agent-chromium-cache");
|
|
82
|
+
expect(content).toContain("--disk-cache-size=104857600");
|
|
83
|
+
expect(content).toContain("--media-cache-size=104857600");
|
|
84
|
+
expect(content).toContain("proxy_read_timeout 3600s;");
|
|
85
|
+
expect(content).toContain("proxy_send_timeout 3600s;");
|
|
86
|
+
expect(content).toContain("proxy_socket_keepalive on;");
|
|
87
|
+
expectValidChromiumArgumentContinuations(content);
|
|
64
88
|
expect(content).toContain('CMD ["sleep", "infinity"]');
|
|
65
89
|
});
|
|
90
|
+
it("keeps Chromium argument continuations valid in every Dockerfile", () => {
|
|
91
|
+
const dockerfiles = [
|
|
92
|
+
"Dockerfile",
|
|
93
|
+
"Dockerfile.local",
|
|
94
|
+
"Dockerfile.template",
|
|
95
|
+
];
|
|
96
|
+
for (const dockerfile of dockerfiles) {
|
|
97
|
+
const content = readFileSync(join(REPOSITORY_ROOT, "docker/bunny-agent-claude", dockerfile), "utf8");
|
|
98
|
+
expectValidChromiumArgumentContinuations(content);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
66
101
|
it("uses --image override when provided", async () => {
|
|
67
102
|
await buildImage({
|
|
68
103
|
name: "bunny-agent",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-image.test.js","sourceRoot":"","sources":["../../src/__tests__/build-image.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,qDAAqD;AACrD,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE;QAC9B,gDAAgD;QAChD,IAAI,GAAG,KAAK,aAAa;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,oCAAoC;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"build-image.test.js","sourceRoot":"","sources":["../../src/__tests__/build-image.test.ts"],"names":[],"mappings":"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"}
|
package/dist/bundle.mjs
CHANGED
|
@@ -24485,16 +24485,33 @@ function serializeResult2(result) {
|
|
|
24485
24485
|
|
|
24486
24486
|
// ../../packages/runner-pi/dist/pi-runner.js
|
|
24487
24487
|
var LOG_PREFIX2 = "[bunny-agent:pi]";
|
|
24488
|
-
var LLM_THOUGHT_SIGNATURE_SEPARATOR = "__thought__";
|
|
24489
24488
|
var DEFAULT_DYNAMIC_MODEL_PROFILE = {
|
|
24490
24489
|
contextWindow: 128e3,
|
|
24491
|
-
maxTokens: 8192
|
|
24490
|
+
maxTokens: 8192,
|
|
24491
|
+
thinkingLevelMap: { off: null, xhigh: "xhigh" }
|
|
24492
24492
|
};
|
|
24493
24493
|
var DYNAMIC_MODEL_PROFILES = {
|
|
24494
24494
|
"gemini-3.7-flash": {
|
|
24495
24495
|
contextWindow: 1048576,
|
|
24496
24496
|
maxTokens: 65536,
|
|
24497
|
-
reasoning: true
|
|
24497
|
+
reasoning: true,
|
|
24498
|
+
thinkingLevelMap: {
|
|
24499
|
+
off: null,
|
|
24500
|
+
minimal: null,
|
|
24501
|
+
xhigh: null,
|
|
24502
|
+
max: null
|
|
24503
|
+
}
|
|
24504
|
+
},
|
|
24505
|
+
"gemini-3.8-flash": {
|
|
24506
|
+
contextWindow: 1048576,
|
|
24507
|
+
maxTokens: 65536,
|
|
24508
|
+
reasoning: true,
|
|
24509
|
+
thinkingLevelMap: {
|
|
24510
|
+
off: null,
|
|
24511
|
+
minimal: null,
|
|
24512
|
+
xhigh: null,
|
|
24513
|
+
max: null
|
|
24514
|
+
}
|
|
24498
24515
|
}
|
|
24499
24516
|
};
|
|
24500
24517
|
function resolveDynamicModelProfile(modelName, effort) {
|
|
@@ -24502,9 +24519,20 @@ function resolveDynamicModelProfile(modelName, effort) {
|
|
|
24502
24519
|
return {
|
|
24503
24520
|
contextWindow: profile?.contextWindow ?? DEFAULT_DYNAMIC_MODEL_PROFILE.contextWindow,
|
|
24504
24521
|
maxTokens: profile?.maxTokens ?? DEFAULT_DYNAMIC_MODEL_PROFILE.maxTokens,
|
|
24505
|
-
reasoning: profile?.reasoning ?? Boolean(effort && effort !== "off")
|
|
24522
|
+
reasoning: profile?.reasoning ?? Boolean(effort && effort !== "off"),
|
|
24523
|
+
thinkingLevelMap: {
|
|
24524
|
+
...profile?.thinkingLevelMap ?? DEFAULT_DYNAMIC_MODEL_PROFILE.thinkingLevelMap
|
|
24525
|
+
}
|
|
24506
24526
|
};
|
|
24507
24527
|
}
|
|
24528
|
+
function resolveInitialThinkingLevel(effort, previousModel, currentModel) {
|
|
24529
|
+
if (effort)
|
|
24530
|
+
return effort;
|
|
24531
|
+
if (previousModel && (previousModel.provider !== currentModel.provider || previousModel.modelId !== currentModel.id)) {
|
|
24532
|
+
return "medium";
|
|
24533
|
+
}
|
|
24534
|
+
return void 0;
|
|
24535
|
+
}
|
|
24508
24536
|
async function disposePiSession(session) {
|
|
24509
24537
|
try {
|
|
24510
24538
|
if (session.hasExtensionHandlers("session_shutdown")) {
|
|
@@ -24530,72 +24558,6 @@ function normalizeAllowedTools(allowedTools) {
|
|
|
24530
24558
|
...new Set(allowedTools.map((toolName) => toolName === LEGACY_ASK_USER_QUESTION_TOOL_NAME ? ASK_USER_QUESTION_TOOL_NAME : toolName))
|
|
24531
24559
|
];
|
|
24532
24560
|
}
|
|
24533
|
-
function shouldStripLLMThoughtSignaturesForModel(model) {
|
|
24534
|
-
const id = (model.id ?? "").toLowerCase();
|
|
24535
|
-
return !id.includes("gemini");
|
|
24536
|
-
}
|
|
24537
|
-
function stripLLMThoughtSignatureFromId(id) {
|
|
24538
|
-
const separatorIndex = id.indexOf(LLM_THOUGHT_SIGNATURE_SEPARATOR);
|
|
24539
|
-
if (separatorIndex === -1)
|
|
24540
|
-
return id;
|
|
24541
|
-
return id.slice(0, separatorIndex);
|
|
24542
|
-
}
|
|
24543
|
-
function stripLLMThoughtSignaturesFromSessionManager(sessionManager, model) {
|
|
24544
|
-
if (!shouldStripLLMThoughtSignaturesForModel(model))
|
|
24545
|
-
return;
|
|
24546
|
-
const manager = sessionManager;
|
|
24547
|
-
const entries = manager.getEntries?.();
|
|
24548
|
-
if (Array.isArray(entries)) {
|
|
24549
|
-
for (const entry of entries) {
|
|
24550
|
-
if (entry == null || typeof entry !== "object")
|
|
24551
|
-
continue;
|
|
24552
|
-
const message = entry.message;
|
|
24553
|
-
if (entry.type === "message") {
|
|
24554
|
-
stripLLMThoughtSignaturesFromMessage(message);
|
|
24555
|
-
}
|
|
24556
|
-
}
|
|
24557
|
-
return;
|
|
24558
|
-
}
|
|
24559
|
-
const context = sessionManager.buildSessionContext?.();
|
|
24560
|
-
const messages = context?.messages;
|
|
24561
|
-
if (!Array.isArray(messages))
|
|
24562
|
-
return;
|
|
24563
|
-
for (const message of messages) {
|
|
24564
|
-
stripLLMThoughtSignaturesFromMessage(message);
|
|
24565
|
-
}
|
|
24566
|
-
}
|
|
24567
|
-
function stripLLMThoughtSignaturesFromMessage(message) {
|
|
24568
|
-
if (message == null || typeof message !== "object")
|
|
24569
|
-
return;
|
|
24570
|
-
const msg = message;
|
|
24571
|
-
if (typeof msg.toolCallId === "string") {
|
|
24572
|
-
msg.toolCallId = stripLLMThoughtSignatureFromId(msg.toolCallId);
|
|
24573
|
-
}
|
|
24574
|
-
if (typeof msg.tool_call_id === "string") {
|
|
24575
|
-
msg.tool_call_id = stripLLMThoughtSignatureFromId(msg.tool_call_id);
|
|
24576
|
-
}
|
|
24577
|
-
if (!Array.isArray(msg.content))
|
|
24578
|
-
return;
|
|
24579
|
-
for (const block of msg.content) {
|
|
24580
|
-
if (block == null || typeof block !== "object")
|
|
24581
|
-
continue;
|
|
24582
|
-
const contentBlock = block;
|
|
24583
|
-
if (contentBlock.type !== "toolCall")
|
|
24584
|
-
continue;
|
|
24585
|
-
if (typeof contentBlock.id === "string") {
|
|
24586
|
-
contentBlock.id = stripLLMThoughtSignatureFromId(contentBlock.id);
|
|
24587
|
-
}
|
|
24588
|
-
if (typeof contentBlock.toolCallId === "string") {
|
|
24589
|
-
contentBlock.toolCallId = stripLLMThoughtSignatureFromId(contentBlock.toolCallId);
|
|
24590
|
-
}
|
|
24591
|
-
if (typeof contentBlock.tool_call_id === "string") {
|
|
24592
|
-
contentBlock.tool_call_id = stripLLMThoughtSignatureFromId(contentBlock.tool_call_id);
|
|
24593
|
-
}
|
|
24594
|
-
if (typeof contentBlock.call_id === "string") {
|
|
24595
|
-
contentBlock.call_id = stripLLMThoughtSignatureFromId(contentBlock.call_id);
|
|
24596
|
-
}
|
|
24597
|
-
}
|
|
24598
|
-
}
|
|
24599
24561
|
function parseModelSpec(model) {
|
|
24600
24562
|
const trimmed = model.trim();
|
|
24601
24563
|
const separator = trimmed.indexOf(":");
|
|
@@ -24704,7 +24666,7 @@ function createPiRunner(options = {}) {
|
|
|
24704
24666
|
id: modelName,
|
|
24705
24667
|
name: modelName,
|
|
24706
24668
|
reasoning: profile.reasoning,
|
|
24707
|
-
thinkingLevelMap:
|
|
24669
|
+
thinkingLevelMap: profile.thinkingLevelMap,
|
|
24708
24670
|
input: ["text", "image"],
|
|
24709
24671
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
24710
24672
|
contextWindow: profile.contextWindow,
|
|
@@ -24750,7 +24712,6 @@ function createPiRunner(options = {}) {
|
|
|
24750
24712
|
}
|
|
24751
24713
|
return SessionManager2.create(cwd);
|
|
24752
24714
|
})();
|
|
24753
|
-
stripLLMThoughtSignaturesFromSessionManager(sessionManager, model);
|
|
24754
24715
|
const resourceLoader = options.skillPaths || options.systemPrompt || mcpExtension ? new BunnyAgentResourceLoader({
|
|
24755
24716
|
cwd,
|
|
24756
24717
|
skillPaths: options.skillPaths,
|
|
@@ -24800,13 +24761,15 @@ function createPiRunner(options = {}) {
|
|
|
24800
24761
|
}
|
|
24801
24762
|
const gatedTools = gateToolsForApproval(regularTools, bypassApproval, approvalGate);
|
|
24802
24763
|
const askUserQuestionEnabled = allowedTools === void 0 || allowedTools.includes(ASK_USER_QUESTION_TOOL_NAME);
|
|
24764
|
+
const previousModel = sessionManager.buildSessionContext?.().model;
|
|
24765
|
+
const thinkingLevel = resolveInitialThinkingLevel(options.effort, previousModel, model);
|
|
24803
24766
|
const { session } = await createAgentSession({
|
|
24804
24767
|
cwd,
|
|
24805
24768
|
model,
|
|
24806
24769
|
sessionManager,
|
|
24807
24770
|
modelRuntime,
|
|
24808
24771
|
resourceLoader,
|
|
24809
|
-
thinkingLevel
|
|
24772
|
+
thinkingLevel,
|
|
24810
24773
|
tools: allowedTools,
|
|
24811
24774
|
customTools: [
|
|
24812
24775
|
...gatedTools,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bunny-agent/runner-cli",
|
|
3
|
-
"version": "0.9.61-beta.
|
|
3
|
+
"version": "0.9.61-beta.2",
|
|
4
4
|
"description": "BunnyAgent Runner CLI - Like gemini-cli or claude-code, runs in your local terminal with AI SDK UI streaming",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -59,16 +59,16 @@
|
|
|
59
59
|
"esbuild": "^0.27.2",
|
|
60
60
|
"typescript": "^5.3.0",
|
|
61
61
|
"vitest": "^1.6.1",
|
|
62
|
+
"@bunny-agent/apply-patch": "0.1.0",
|
|
63
|
+
"@bunny-agent/manager": "0.9.61-beta.2",
|
|
64
|
+
"@bunny-agent/runner-claude": "0.6.2",
|
|
62
65
|
"@bunny-agent/runner-codex": "0.6.2",
|
|
63
|
-
"@bunny-agent/manager": "0.9.61-beta.1",
|
|
64
66
|
"@bunny-agent/runner-gemini": "0.6.2",
|
|
65
|
-
"@bunny-agent/runner-harness": "0.1.1-beta.0",
|
|
66
|
-
"@bunny-agent/runner-pi": "0.6.4-beta.0",
|
|
67
|
-
"@bunny-agent/runner-opencode": "0.6.2",
|
|
68
67
|
"@bunny-agent/runner-copilot": "0.1.0",
|
|
69
|
-
"@bunny-agent/runner-
|
|
68
|
+
"@bunny-agent/runner-pi": "0.6.4-beta.0",
|
|
70
69
|
"@bunny-agent/server-acp": "0.1.0",
|
|
71
|
-
"@bunny-agent/
|
|
70
|
+
"@bunny-agent/runner-opencode": "0.6.2",
|
|
71
|
+
"@bunny-agent/runner-harness": "0.1.1-beta.0"
|
|
72
72
|
},
|
|
73
73
|
"scripts": {
|
|
74
74
|
"build": "tsc && pnpm bundle",
|