@bunny-agent/runner-cli 0.9.59-beta.6 → 0.9.59-beta.7
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/bundle.mjs +26 -7
- package/package.json +6 -6
package/dist/bundle.mjs
CHANGED
|
@@ -23753,7 +23753,11 @@ __export(type_exports2, {
|
|
|
23753
23753
|
var Type = type_exports2;
|
|
23754
23754
|
|
|
23755
23755
|
// ../../packages/runner-pi/dist/tool-approval.js
|
|
23756
|
-
var ASK_USER_QUESTION_TOOL_NAME = "
|
|
23756
|
+
var ASK_USER_QUESTION_TOOL_NAME = "ask_user_question";
|
|
23757
|
+
var LEGACY_ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion";
|
|
23758
|
+
function isAskUserQuestionToolName(toolName) {
|
|
23759
|
+
return toolName === ASK_USER_QUESTION_TOOL_NAME || toolName === LEGACY_ASK_USER_QUESTION_TOOL_NAME;
|
|
23760
|
+
}
|
|
23757
23761
|
var DEFAULT_POLL_INTERVAL_MS = 500;
|
|
23758
23762
|
function approvalFilePath(cwd, toolCallId) {
|
|
23759
23763
|
return path2.join(cwd, ".bunny-agent", "approvals", `${toolCallId}.json`);
|
|
@@ -23774,7 +23778,7 @@ async function waitForApproval(options) {
|
|
|
23774
23778
|
status: "pending",
|
|
23775
23779
|
toolName,
|
|
23776
23780
|
input,
|
|
23777
|
-
questions: toolName
|
|
23781
|
+
questions: isAskUserQuestionToolName(toolName) ? input?.questions : void 0,
|
|
23778
23782
|
answers: {}
|
|
23779
23783
|
}));
|
|
23780
23784
|
}
|
|
@@ -23852,6 +23856,13 @@ var askUserQuestionParameters = Type.Object({
|
|
|
23852
23856
|
}))
|
|
23853
23857
|
}), { description: "Questions to present to the user." })
|
|
23854
23858
|
});
|
|
23859
|
+
function formatAskUserQuestionResult(updatedInput) {
|
|
23860
|
+
return [
|
|
23861
|
+
"The user answered the interactive questions.",
|
|
23862
|
+
`Answers: ${JSON.stringify(updatedInput.answers)}`,
|
|
23863
|
+
"Continue the original task using these answers and provide a user-visible response. Do not end the turn with an empty response."
|
|
23864
|
+
].join("\n");
|
|
23865
|
+
}
|
|
23855
23866
|
function buildAskUserQuestionTool(options) {
|
|
23856
23867
|
return {
|
|
23857
23868
|
name: ASK_USER_QUESTION_TOOL_NAME,
|
|
@@ -23875,10 +23886,10 @@ function buildAskUserQuestionTool(options) {
|
|
|
23875
23886
|
content: [
|
|
23876
23887
|
{
|
|
23877
23888
|
type: "text",
|
|
23878
|
-
text:
|
|
23889
|
+
text: formatAskUserQuestionResult(decision.updatedInput)
|
|
23879
23890
|
}
|
|
23880
23891
|
],
|
|
23881
|
-
details:
|
|
23892
|
+
details: decision.updatedInput
|
|
23882
23893
|
};
|
|
23883
23894
|
}
|
|
23884
23895
|
};
|
|
@@ -24542,6 +24553,13 @@ function applyAllowedTools(tools, allowedTools) {
|
|
|
24542
24553
|
const allowed = new Set(allowedTools);
|
|
24543
24554
|
return tools.filter((tool) => allowed.has(tool.name));
|
|
24544
24555
|
}
|
|
24556
|
+
function normalizeAllowedTools(allowedTools) {
|
|
24557
|
+
if (!allowedTools)
|
|
24558
|
+
return void 0;
|
|
24559
|
+
return [
|
|
24560
|
+
...new Set(allowedTools.map((toolName) => toolName === LEGACY_ASK_USER_QUESTION_TOOL_NAME ? ASK_USER_QUESTION_TOOL_NAME : toolName))
|
|
24561
|
+
];
|
|
24562
|
+
}
|
|
24545
24563
|
function shouldStripLLMThoughtSignaturesForModel(model) {
|
|
24546
24564
|
const id = (model.id ?? "").toLowerCase();
|
|
24547
24565
|
return !id.includes("gemini");
|
|
@@ -24792,6 +24810,7 @@ function createPiRunner(options = {}) {
|
|
|
24792
24810
|
const apiKey = auth?.auth.apiKey ?? "";
|
|
24793
24811
|
customTools.push(buildImageGenerateTool(cwd, imageModelName, model.baseUrl, apiKey), buildImageEditTool(cwd, imageModelName, model.baseUrl, apiKey));
|
|
24794
24812
|
}
|
|
24813
|
+
const allowedTools = normalizeAllowedTools(options.allowedTools);
|
|
24795
24814
|
const toolRefDefinitions = options.toolRefs && options.toolRefs.length > 0 ? buildToolDefinitionsFromRefs(options.toolRefs) : [];
|
|
24796
24815
|
const isRoot = typeof process.getuid === "function" && process.getuid() === 0;
|
|
24797
24816
|
const bypassApproval = Boolean(options.yolo) || isRoot;
|
|
@@ -24800,12 +24819,12 @@ function createPiRunner(options = {}) {
|
|
|
24800
24819
|
fallbackSignal: options.abortController?.signal
|
|
24801
24820
|
};
|
|
24802
24821
|
let regularTools = [
|
|
24803
|
-
...applyAllowedTools(customTools,
|
|
24822
|
+
...applyAllowedTools(customTools, allowedTools),
|
|
24804
24823
|
...toolRefDefinitions
|
|
24805
24824
|
];
|
|
24806
24825
|
if (!bypassApproval) {
|
|
24807
24826
|
const overriddenNames = new Set(regularTools.map((tool) => tool.name));
|
|
24808
|
-
const builtinTools = applyAllowedTools(createCodingTools(cwd),
|
|
24827
|
+
const builtinTools = applyAllowedTools(createCodingTools(cwd), allowedTools).filter((tool) => !overriddenNames.has(tool.name));
|
|
24809
24828
|
regularTools = [...regularTools, ...builtinTools];
|
|
24810
24829
|
}
|
|
24811
24830
|
const gatedTools = gateToolsForApproval(regularTools, bypassApproval, approvalGate);
|
|
@@ -24816,7 +24835,7 @@ function createPiRunner(options = {}) {
|
|
|
24816
24835
|
modelRuntime,
|
|
24817
24836
|
resourceLoader,
|
|
24818
24837
|
thinkingLevel: options.effort ? options.effort : void 0,
|
|
24819
|
-
tools:
|
|
24838
|
+
tools: allowedTools,
|
|
24820
24839
|
customTools: [...gatedTools, buildAskUserQuestionTool(approvalGate)]
|
|
24821
24840
|
});
|
|
24822
24841
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bunny-agent/runner-cli",
|
|
3
|
-
"version": "0.9.59-beta.
|
|
3
|
+
"version": "0.9.59-beta.7",
|
|
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,15 +59,15 @@
|
|
|
59
59
|
"esbuild": "^0.27.2",
|
|
60
60
|
"typescript": "^5.3.0",
|
|
61
61
|
"vitest": "^1.6.1",
|
|
62
|
-
"@bunny-agent/
|
|
62
|
+
"@bunny-agent/apply-patch": "0.1.0",
|
|
63
|
+
"@bunny-agent/manager": "0.9.59-beta.7",
|
|
63
64
|
"@bunny-agent/runner-claude": "0.6.2",
|
|
64
|
-
"@bunny-agent/runner-copilot": "0.1.0",
|
|
65
65
|
"@bunny-agent/runner-codex": "0.6.2",
|
|
66
|
-
"@bunny-agent/apply-patch": "0.1.0",
|
|
67
66
|
"@bunny-agent/runner-gemini": "0.6.2",
|
|
68
67
|
"@bunny-agent/runner-harness": "0.1.1-beta.0",
|
|
69
|
-
"@bunny-agent/runner-
|
|
70
|
-
"@bunny-agent/runner-pi": "0.6.4-beta.0"
|
|
68
|
+
"@bunny-agent/runner-copilot": "0.1.0",
|
|
69
|
+
"@bunny-agent/runner-pi": "0.6.4-beta.0",
|
|
70
|
+
"@bunny-agent/runner-opencode": "0.6.2"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"build": "tsc && pnpm bundle",
|