@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":"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"}
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: { off: null, xhigh: "xhigh" },
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: options.effort ? options.effort : void 0,
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.1",
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-claude": "0.6.2",
68
+ "@bunny-agent/runner-pi": "0.6.4-beta.0",
70
69
  "@bunny-agent/server-acp": "0.1.0",
71
- "@bunny-agent/apply-patch": "0.1.0"
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",