@bunny-agent/runner-cli 0.9.59-beta.2 → 0.9.59-beta.3

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.
@@ -1,5 +1,24 @@
1
1
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import { takeMcpConfigFromEnv, takeToolRefsFromEnv } from "../env-payload.js";
2
+ import { takeAgentInputFromEnv, takeMcpConfigFromEnv, takeToolRefsFromEnv, } from "../env-payload.js";
3
+ describe("takeAgentInputFromEnv", () => {
4
+ it("validates and deletes the one-shot structured payload", () => {
5
+ const env = {
6
+ BUNNY_AGENT_INPUT_JSON: JSON.stringify({
7
+ version: 1,
8
+ input: [{ type: "text", text: "hello" }],
9
+ capabilities: [],
10
+ execution: {},
11
+ }),
12
+ };
13
+ expect(takeAgentInputFromEnv(env)).toMatchObject({ version: 1 });
14
+ expect(env.BUNNY_AGENT_INPUT_JSON).toBeUndefined();
15
+ });
16
+ it("deletes malformed payloads before throwing", () => {
17
+ const env = { BUNNY_AGENT_INPUT_JSON: "not-json" };
18
+ expect(() => takeAgentInputFromEnv(env)).toThrow();
19
+ expect(env.BUNNY_AGENT_INPUT_JSON).toBeUndefined();
20
+ });
21
+ });
3
22
  describe("takeToolRefsFromEnv", () => {
4
23
  beforeEach(() => {
5
24
  vi.spyOn(console, "error").mockImplementation(() => { });
@@ -1 +1 @@
1
- {"version":3,"file":"env-payload.test.js","sourceRoot":"","sources":["../../src/__tests__/env-payload.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env-payload.test.js","sourceRoot":"","sources":["../../src/__tests__/env-payload.test.ts"],"names":[],"mappings":"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"}
package/dist/bundle.mjs CHANGED
@@ -145,7 +145,199 @@ CMD `);
145
145
  }
146
146
  }
147
147
 
148
+ // ../../packages/manager/dist/agent-input.js
149
+ var assertString = (value, field) => {
150
+ if (typeof value !== "string" || value.length === 0) {
151
+ throw new Error(`Invalid structured agent input: ${field} must be a non-empty string`);
152
+ }
153
+ return value;
154
+ };
155
+ var isRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
156
+ var hasForbiddenSecretKey = (value) => {
157
+ if (Array.isArray(value))
158
+ return value.some(hasForbiddenSecretKey);
159
+ if (!isRecord(value))
160
+ return false;
161
+ return Object.entries(value).some(([key, child]) => {
162
+ const normalized = key.toLowerCase();
163
+ return (/* @__PURE__ */ new Set([
164
+ "apikey",
165
+ "api_key",
166
+ "authorization",
167
+ "cookie",
168
+ "credential",
169
+ "credentials",
170
+ "password",
171
+ "secret",
172
+ "token",
173
+ "accesstoken",
174
+ "refreshtoken",
175
+ "signedurl",
176
+ "storageref"
177
+ ])).has(normalized) || hasForbiddenSecretKey(child);
178
+ });
179
+ };
180
+ var parseAgentTurnInputV1 = (value) => {
181
+ if (!isRecord(value) || value.version !== 1 || !Array.isArray(value.input)) {
182
+ throw new Error("Invalid structured agent input: expected AgentTurnInputV1");
183
+ }
184
+ if (!Array.isArray(value.capabilities) || !isRecord(value.execution)) {
185
+ throw new Error("Invalid structured agent input: capabilities and execution are required");
186
+ }
187
+ if (hasForbiddenSecretKey(value.execution)) {
188
+ throw new Error("Invalid structured agent input: execution must not contain secrets");
189
+ }
190
+ if (value.displaySnapshot !== void 0) {
191
+ if (!isRecord(value.displaySnapshot) || value.displaySnapshot.version !== 1 || !("document" in value.displaySnapshot) || hasForbiddenSecretKey(value.displaySnapshot)) {
192
+ throw new Error("Invalid structured agent input: displaySnapshot must be version 1 and secret-free");
193
+ }
194
+ }
195
+ const requireRecordArray = (candidate, field) => {
196
+ if (candidate === void 0)
197
+ return [];
198
+ if (!Array.isArray(candidate) || !candidate.every(isRecord)) {
199
+ throw new Error(`Invalid structured agent input: execution.${field} must be an object array`);
200
+ }
201
+ return candidate;
202
+ };
203
+ const resolvedSkills = requireRecordArray(value.execution.skills, "skills");
204
+ const resolvedIntegrations = requireRecordArray(value.execution.integrations, "integrations");
205
+ const resolvedReferences = requireRecordArray(value.execution.references, "references");
206
+ const resolvedCapabilityKeys = value.execution.capabilityKeys ?? [];
207
+ if (!Array.isArray(resolvedCapabilityKeys) || !resolvedCapabilityKeys.every((key) => typeof key === "string")) {
208
+ throw new Error("Invalid structured agent input: execution.capabilityKeys must be a string array");
209
+ }
210
+ const assetIds = /* @__PURE__ */ new Set();
211
+ for (const [index, item] of value.input.entries()) {
212
+ if (!isRecord(item)) {
213
+ throw new Error(`Invalid structured agent input: input[${index}] must be an object`);
214
+ }
215
+ switch (item.type) {
216
+ case "text":
217
+ if (typeof item.text !== "string") {
218
+ throw new Error(`Invalid structured agent input: input[${index}].text must be a string`);
219
+ }
220
+ break;
221
+ case "asset": {
222
+ const id = assertString(item.id, `input[${index}].id`);
223
+ if (assetIds.has(id)) {
224
+ throw new Error(`Invalid structured agent input: duplicate asset id ${id}`);
225
+ }
226
+ assetIds.add(id);
227
+ assertString(item.label, `input[${index}].label`);
228
+ if (!isRecord(item.asset)) {
229
+ throw new Error(`Invalid structured agent input: input[${index}].asset is required`);
230
+ }
231
+ const mediaType = assertString(item.asset.mediaType, `input[${index}].asset.mediaType`);
232
+ assertString(item.asset.data, `input[${index}].asset.data`);
233
+ if (!mediaType.startsWith("image/")) {
234
+ throw new Error(`Unsupported structured agent input asset type: ${mediaType}`);
235
+ }
236
+ break;
237
+ }
238
+ case "skill": {
239
+ const id = assertString(item.id, `input[${index}].id`);
240
+ const name = assertString(item.name, `input[${index}].name`);
241
+ if (!resolvedSkills.some((skill) => skill.id === id && skill.name === name)) {
242
+ throw new Error(`Unresolved structured agent skill: ${id}`);
243
+ }
244
+ break;
245
+ }
246
+ case "integration": {
247
+ const id = assertString(item.id, `input[${index}].id`);
248
+ const providerKey = assertString(item.providerKey, `input[${index}].providerKey`);
249
+ if (!resolvedIntegrations.some((integration) => integration.id === id && integration.providerKey === providerKey)) {
250
+ throw new Error(`Unresolved structured agent integration: ${id}`);
251
+ }
252
+ break;
253
+ }
254
+ case "reference":
255
+ if (!resolvedReferences.some((reference) => reference.id === assertString(item.id, `input[${index}].id`) && reference.referenceKind === assertString(item.referenceKind, `input[${index}].referenceKind`) && reference.targetId === assertString(item.targetId, `input[${index}].targetId`))) {
256
+ throw new Error(`Unresolved structured agent reference: ${String(item.id)}`);
257
+ }
258
+ break;
259
+ case "extension": {
260
+ assertString(item.id, `input[${index}].id`);
261
+ const key = `${assertString(item.namespace, `input[${index}].namespace`)}/${assertString(item.name, `input[${index}].name`)}`;
262
+ if (!Number.isSafeInteger(item.version) || Number(item.version) < 1) {
263
+ throw new Error(`Invalid structured agent input: input[${index}].version must be a positive integer`);
264
+ }
265
+ if (!isRecord(item.payload) || hasForbiddenSecretKey(item.payload)) {
266
+ throw new Error(`Invalid structured agent input: input[${index}].payload must be secret-free JSON`);
267
+ }
268
+ const versions = value.execution.extensionVersions;
269
+ if (!isRecord(versions) || versions[key] !== item.version) {
270
+ throw new Error(`Unsupported structured agent input extension: ${key}@${String(item.version)}`);
271
+ }
272
+ break;
273
+ }
274
+ default:
275
+ throw new Error(`Unsupported structured agent input type: ${String(item.type)}`);
276
+ }
277
+ }
278
+ for (const [index, capability] of value.capabilities.entries()) {
279
+ if (!isRecord(capability)) {
280
+ throw new Error(`Invalid structured agent input: capabilities[${index}] must be an object`);
281
+ }
282
+ const key = assertString(capability.key, `capabilities[${index}].key`);
283
+ if (typeof capability.enabled !== "boolean") {
284
+ throw new Error(`Invalid structured agent input: capabilities[${index}].enabled must be boolean`);
285
+ }
286
+ if (capability.enabled && !resolvedCapabilityKeys.includes(key)) {
287
+ throw new Error(`Unresolved structured agent capability: ${key}`);
288
+ }
289
+ }
290
+ const hasSemanticInput = value.input.some((item) => isRecord(item) && item.type !== "text");
291
+ if ((hasSemanticInput || value.capabilities.length > 0) && value.execution.resolvedBy !== "server") {
292
+ throw new Error("Invalid structured agent input: semantic inputs require server-resolved execution");
293
+ }
294
+ return value;
295
+ };
296
+ var compileAgentTurnInput = (turn) => {
297
+ const parsed = parseAgentTurnInputV1(turn);
298
+ const text = [];
299
+ const images = [];
300
+ for (const item of parsed.input) {
301
+ switch (item.type) {
302
+ case "text":
303
+ text.push(item.text);
304
+ break;
305
+ case "asset":
306
+ images.push({
307
+ id: item.id,
308
+ label: item.label,
309
+ mediaType: item.asset.mediaType,
310
+ data: item.asset.data,
311
+ filename: item.asset.filename
312
+ });
313
+ break;
314
+ case "skill":
315
+ case "integration":
316
+ break;
317
+ case "reference":
318
+ text.push(item.label ?? `[${item.referenceKind}: ${item.targetId}]`);
319
+ break;
320
+ case "extension":
321
+ throw new Error(`Runner adapter does not support extension ${item.namespace}/${item.name}@${item.version}`);
322
+ }
323
+ }
324
+ return { text: text.join(""), images };
325
+ };
326
+ var createLegacyAgentTurnInput = (userInput) => ({
327
+ version: 1,
328
+ input: [{ type: "text", text: userInput }],
329
+ capabilities: [],
330
+ execution: {}
331
+ });
332
+
148
333
  // src/env-payload.ts
334
+ function takeAgentInputFromEnv(env = process.env) {
335
+ const raw = env.BUNNY_AGENT_INPUT_JSON;
336
+ if (raw === void 0) return null;
337
+ delete env.BUNNY_AGENT_INPUT_JSON;
338
+ if (raw.length === 0) return null;
339
+ return parseAgentTurnInputV1(JSON.parse(raw));
340
+ }
149
341
  function takeToolRefsFromEnv(env = process.env) {
150
342
  const raw = env.BUNNY_AGENT_TOOL_REFS_JSON;
151
343
  if (!raw) return null;
@@ -14524,6 +14716,38 @@ function errorResult(text) {
14524
14716
  }
14525
14717
 
14526
14718
  // ../../packages/runner-claude/dist/claude-runner.js
14719
+ function buildUserMessage(userInput) {
14720
+ const parsedContent = typeof userInput === "string" ? userInput : buildStructuredClaudeContent(userInput);
14721
+ return {
14722
+ type: "user",
14723
+ message: {
14724
+ role: "user",
14725
+ content: parsedContent
14726
+ }
14727
+ };
14728
+ }
14729
+ function buildStructuredClaudeContent(input) {
14730
+ const compiled = compileAgentTurnInput(input);
14731
+ const content = [];
14732
+ for (const image of compiled.images) {
14733
+ content.push({ type: "text", text: image.label });
14734
+ content.push({
14735
+ type: "image",
14736
+ source: {
14737
+ type: "base64",
14738
+ media_type: image.mediaType,
14739
+ data: image.data
14740
+ }
14741
+ });
14742
+ }
14743
+ if (compiled.text.length > 0) {
14744
+ content.push({ type: "text", text: compiled.text });
14745
+ }
14746
+ return content;
14747
+ }
14748
+ async function* buildSDKUserMessageIterable(userInput) {
14749
+ yield buildUserMessage(userInput);
14750
+ }
14527
14751
  function createCanUseToolCallback(claudeOptions) {
14528
14752
  return async (toolName, input, options) => {
14529
14753
  const { toolUseID } = options;
@@ -14614,15 +14838,15 @@ function createClaudeRunner(options) {
14614
14838
  async *run(userInput) {
14615
14839
  if (!hasClaudeAuth()) {
14616
14840
  console.error("[BunnyAgent] Warning: No Claude auth configured. Using mock response.\nTo use the real Claude Agent SDK, set one of:\n ANTHROPIC_API_KEY, AWS_BEARER_TOKEN_BEDROCK, ANTHROPIC_AUTH_TOKEN, or LITELLM_MASTER_KEY\n Or for Bedrock proxy: CLAUDE_CODE_USE_BEDROCK=1 and ANTHROPIC_BEDROCK_BASE_URL (and ANTHROPIC_AUTH_TOKEN or LITELLM_MASTER_KEY)\nThen install the SDK: npm install @anthropic-ai/claude-agent-sdk");
14617
- yield* runMockAgent(options, userInput, options.abortController?.signal);
14841
+ yield* runMockAgent(options, typeof userInput === "string" ? userInput : compileAgentTurnInput(userInput).text, options.abortController?.signal);
14618
14842
  return;
14619
14843
  }
14620
14844
  const sdk = await loadClaudeAgentSDK();
14621
14845
  if (sdk) {
14622
- yield* runWithClaudeAgentSDK(sdk, options, userInput);
14846
+ yield* runWithClaudeAgentSDK(sdk, options, typeof userInput === "string" ? userInput : buildSDKUserMessageIterable(userInput));
14623
14847
  } else {
14624
14848
  console.error("[BunnyAgent] Warning: @anthropic-ai/claude-agent-sdk not installed. Using mock response.\nInstall the SDK: npm install @anthropic-ai/claude-agent-sdk");
14625
- yield* runMockAgent(options, userInput, options.abortController?.signal);
14849
+ yield* runMockAgent(options, typeof userInput === "string" ? userInput : compileAgentTurnInput(userInput).text, options.abortController?.signal);
14626
14850
  }
14627
14851
  }
14628
14852
  };
@@ -17230,14 +17454,14 @@ var zGuardCreateElicitationResponseCancel = object({
17230
17454
 
17231
17455
  // ../../node_modules/.pnpm/@agentclientprotocol+sdk@1.2.1_zod@4.3.6/node_modules/@agentclientprotocol/sdk/dist/jsonrpc.js
17232
17456
  var CANCEL_REQUEST_METHOD = "$/cancel_request";
17233
- function isRecord(value) {
17457
+ function isRecord2(value) {
17234
17458
  return typeof value === "object" && value !== null;
17235
17459
  }
17236
17460
  function isJsonRpcId(value) {
17237
17461
  return value === null || typeof value === "string" || typeof value === "number" && Number.isFinite(value);
17238
17462
  }
17239
17463
  function cancelRequestId(params) {
17240
- if (!isRecord(params) || !isJsonRpcId(params["requestId"])) {
17464
+ if (!isRecord2(params) || !isJsonRpcId(params["requestId"])) {
17241
17465
  return void 0;
17242
17466
  }
17243
17467
  return params["requestId"];
@@ -17669,7 +17893,7 @@ var Connection = class {
17669
17893
  if (this.abortController.signal.aborted) {
17670
17894
  return;
17671
17895
  }
17672
- if (!isRecord(message)) {
17896
+ if (!isRecord2(message)) {
17673
17897
  console.error("Invalid message", { message });
17674
17898
  return;
17675
17899
  }
@@ -17762,7 +17986,7 @@ var Connection = class {
17762
17986
  pendingResponse.cleanup?.();
17763
17987
  if ("result" in response) {
17764
17988
  pendingResponse.resolve(response.result);
17765
- } else if ("error" in response && isRecord(response.error)) {
17989
+ } else if ("error" in response && isRecord2(response.error)) {
17766
17990
  const { code, message, data } = response.error;
17767
17991
  pendingResponse.reject(new RequestError(code, message, data));
17768
17992
  } else {
@@ -18035,7 +18259,7 @@ function ndJsonStream(output, input) {
18035
18259
  if (trimmedLine) {
18036
18260
  try {
18037
18261
  const message = JSON.parse(trimmedLine);
18038
- if (isRecord(message)) {
18262
+ if (isRecord2(message)) {
18039
18263
  controller.enqueue(message);
18040
18264
  } else {
18041
18265
  console.warn("Skipping JSON line that is not an object:", trimmedLine);
@@ -24629,8 +24853,15 @@ function createPiRunner(options = {}) {
24629
24853
  }
24630
24854
  try {
24631
24855
  traceRawMessage(cwd, null, true, options.env);
24632
- const promptText2 = userInput;
24633
- const promptPromise = session.prompt(promptText2);
24856
+ const compiled = typeof userInput === "string" ? { text: userInput, images: [] } : compileAgentTurnInput(userInput);
24857
+ const images = compiled.images.map((image) => ({
24858
+ type: "image",
24859
+ data: image.data,
24860
+ mimeType: image.mediaType
24861
+ }));
24862
+ const promptPromise = session.prompt(compiled.text, {
24863
+ images: images.length > 0 ? images : void 0
24864
+ });
24634
24865
  void promptPromise.then(() => {
24635
24866
  promptSettled = true;
24636
24867
  notify();
@@ -24780,11 +25011,14 @@ function createRunner(options) {
24780
25011
  env,
24781
25012
  abortController
24782
25013
  };
24783
- const rawStream = dispatchRunner(options.runner, base, cwd, options);
25014
+ const input = options.input ? parseAgentTurnInputV1(options.input) : createLegacyAgentTurnInput(options.userInput ?? "");
25015
+ const rawStream = dispatchRunner(options.runner, base, cwd, options, input);
24784
25016
  return autoInject ? captureSessionId(rawStream, cwd) : rawStream;
24785
25017
  }
24786
- function dispatchRunner(runner, base, cwd, options) {
25018
+ function dispatchRunner(runner, base, cwd, options, input) {
24787
25019
  const _env = base.env;
25020
+ const compiled = compileAgentTurnInput(input);
25021
+ const hasStructuredInput = options.input !== void 0;
24788
25022
  switch (runner) {
24789
25023
  case "claude":
24790
25024
  return createClaudeRunner({
@@ -24793,19 +25027,25 @@ function dispatchRunner(runner, base, cwd, options) {
24793
25027
  forkFrom: options.forkFrom,
24794
25028
  skillPaths: options.skillPaths ?? discoverSkillPaths(cwd),
24795
25029
  toolRefs: options.toolRefs
24796
- }).run(options.userInput);
25030
+ }).run(hasStructuredInput ? input : compiled.text);
24797
25031
  case "codex": {
24798
25032
  const { outputFormat: _of, ...codexBase } = base;
24799
25033
  const codexEfforts = ["minimal", "low", "medium", "high", "xhigh"];
25034
+ if (compiled.images.length > 0) {
25035
+ throw new Error("Runner codex does not support structured image input");
25036
+ }
24800
25037
  return createCodexRunner({
24801
25038
  ...codexBase,
24802
25039
  cwd,
24803
25040
  ...options.effort && codexEfforts.includes(options.effort) ? {
24804
25041
  modelReasoningEffort: options.effort
24805
25042
  } : {}
24806
- }).run(options.userInput);
25043
+ }).run(compiled.text);
24807
25044
  }
24808
25045
  case "gemini":
25046
+ if (compiled.images.length > 0) {
25047
+ throw new Error("Runner gemini does not support structured image input");
25048
+ }
24809
25049
  return createGeminiRunner({
24810
25050
  model: options.model,
24811
25051
  cwd,
@@ -24814,7 +25054,7 @@ function dispatchRunner(runner, base, cwd, options) {
24814
25054
  systemPrompt: base.systemPrompt,
24815
25055
  resume: base.resume,
24816
25056
  yolo: base.yolo
24817
- }).run(options.userInput);
25057
+ }).run(compiled.text);
24818
25058
  case "pi": {
24819
25059
  return createPiRunner({
24820
25060
  ...base,
@@ -24826,9 +25066,12 @@ function dispatchRunner(runner, base, cwd, options) {
24826
25066
  mcpConfig: options.mcpConfig,
24827
25067
  effort: options.effort,
24828
25068
  systemEnv: options.systemEnv
24829
- }).run(options.userInput);
25069
+ }).run(hasStructuredInput ? input : compiled.text);
24830
25070
  }
24831
25071
  case "opencode":
25072
+ if (compiled.images.length > 0) {
25073
+ throw new Error("Runner opencode does not support structured image input");
25074
+ }
24832
25075
  return createOpenCodeRunner({
24833
25076
  model: options.model,
24834
25077
  cwd,
@@ -24837,9 +25080,12 @@ function dispatchRunner(runner, base, cwd, options) {
24837
25080
  systemPrompt: base.systemPrompt,
24838
25081
  resume: base.resume,
24839
25082
  yolo: base.yolo
24840
- }).run(options.userInput);
25083
+ }).run(compiled.text);
24841
25084
  case "copilot": {
24842
25085
  const reasoningEfforts = ["low", "medium", "high", "xhigh"];
25086
+ if (compiled.images.length > 0) {
25087
+ throw new Error("Runner copilot does not support structured image input");
25088
+ }
24843
25089
  return createCopilotRunner({
24844
25090
  model: options.model,
24845
25091
  systemPrompt: base.systemPrompt,
@@ -24852,7 +25098,7 @@ function dispatchRunner(runner, base, cwd, options) {
24852
25098
  ...options.effort && reasoningEfforts.includes(options.effort) ? {
24853
25099
  reasoningEffort: options.effort
24854
25100
  } : {}
24855
- }).run(options.userInput);
25101
+ }).run(compiled.text);
24856
25102
  }
24857
25103
  default:
24858
25104
  throw new Error(`Unknown runner: ${runner}`);
@@ -25126,12 +25372,13 @@ async function main() {
25126
25372
  case "run": {
25127
25373
  const args = parseRunArgs();
25128
25374
  process.chdir(args.cwd);
25375
+ const input = takeAgentInputFromEnv();
25129
25376
  const toolRefs = takeToolRefsFromEnv();
25130
25377
  const mcpConfig = takeMcpConfigFromEnv();
25131
25378
  await runAgent({
25132
25379
  runner: args.runner,
25133
25380
  model: args.model,
25134
- userInput: args.userInput,
25381
+ ...input ? { input } : { userInput: args.userInput },
25135
25382
  systemPrompt: args.systemPrompt,
25136
25383
  maxTurns: args.maxTurns,
25137
25384
  allowedTools: args.allowedTools,
package/dist/cli.js CHANGED
@@ -15,7 +15,7 @@ config({ path: resolve(process.cwd(), "../.env") });
15
15
  config({ path: resolve(process.cwd(), "../../.env") });
16
16
  import { parseArgs } from "node:util";
17
17
  import { buildImage } from "./build-image.js";
18
- import { takeMcpConfigFromEnv, takeToolRefsFromEnv } from "./env-payload.js";
18
+ import { takeAgentInputFromEnv, takeMcpConfigFromEnv, takeToolRefsFromEnv, } from "./env-payload.js";
19
19
  import { runAgent } from "./runner.js";
20
20
  // ---------------------------------------------------------------------------
21
21
  // Shared helpers
@@ -258,12 +258,13 @@ async function main() {
258
258
  case "run": {
259
259
  const args = parseRunArgs();
260
260
  process.chdir(args.cwd);
261
+ const input = takeAgentInputFromEnv();
261
262
  const toolRefs = takeToolRefsFromEnv();
262
263
  const mcpConfig = takeMcpConfigFromEnv();
263
264
  await runAgent({
264
265
  runner: args.runner,
265
266
  model: args.model,
266
- userInput: args.userInput,
267
+ ...(input ? { input } : { userInput: args.userInput }),
267
268
  systemPrompt: args.systemPrompt,
268
269
  maxTurns: args.maxTurns,
269
270
  allowedTools: args.allowedTools,
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * single-request, and pi's default `ctx.env` (= the runner's `process.env`)
12
12
  * is the expected bash environment.
13
13
  */
14
+ import { type AgentTurnInputV1 } from "@bunny-agent/manager";
14
15
  import type { PiRunnerOptions } from "@bunny-agent/runner-pi";
15
16
  type RunnerToolRefs = NonNullable<PiRunnerOptions["toolRefs"]>;
16
17
  export type RunnerToolRefsPayload = {
@@ -20,6 +21,7 @@ type RunnerMcpConfig = NonNullable<PiRunnerOptions["mcpConfig"]>;
20
21
  export type RunnerMcpConfigPayload = {
21
22
  config: RunnerMcpConfig;
22
23
  };
24
+ export declare function takeAgentInputFromEnv(env?: NodeJS.ProcessEnv): AgentTurnInputV1 | null;
23
25
  /**
24
26
  * Take `BUNNY_AGENT_TOOL_REFS_JSON`. Returns null when the var is absent or
25
27
  * malformed. The var is deleted before parsing so even malformed payloads
@@ -1 +1 @@
1
- {"version":3,"file":"env-payload.d.ts","sourceRoot":"","sources":["../src/env-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,KAAK,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAC9D,KAAK,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,sBAAsB,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAEjE;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,qBAAqB,GAAG,IAAI,CAoB9B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,sBAAsB,GAAG,IAAI,CA0B/B"}
1
+ {"version":3,"file":"env-payload.d.ts","sourceRoot":"","sources":["../src/env-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,KAAK,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAC9D,KAAK,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,sBAAsB,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAEjE,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,GAAG,IAAI,CAMzB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,qBAAqB,GAAG,IAAI,CAoB9B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,sBAAsB,GAAG,IAAI,CA0B/B"}
@@ -11,6 +11,16 @@
11
11
  * single-request, and pi's default `ctx.env` (= the runner's `process.env`)
12
12
  * is the expected bash environment.
13
13
  */
14
+ import { parseAgentTurnInputV1, } from "@bunny-agent/manager";
15
+ export function takeAgentInputFromEnv(env = process.env) {
16
+ const raw = env.BUNNY_AGENT_INPUT_JSON;
17
+ if (raw === undefined)
18
+ return null;
19
+ delete env.BUNNY_AGENT_INPUT_JSON;
20
+ if (raw.length === 0)
21
+ return null;
22
+ return parseAgentTurnInputV1(JSON.parse(raw));
23
+ }
14
24
  /**
15
25
  * Take `BUNNY_AGENT_TOOL_REFS_JSON`. Returns null when the var is absent or
16
26
  * malformed. The var is deleted before parsing so even malformed payloads
@@ -1 +1 @@
1
- {"version":3,"file":"env-payload.js","sourceRoot":"","sources":["../src/env-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,GAAG,CAAC,0BAA0B,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+B,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CACX,yEAAyE,CAC1E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CACX,6DAA6D,OAAO,EAAE,CACvE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,CAAC;IAC5C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,GAAG,CAAC,2BAA2B,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACvD,IACE,MAAM,CAAC,MAAM,IAAI,IAAI;YACrB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YACjC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAC5B,CAAC;YACD,OAAO,CAAC,KAAK,CACX,4EAA4E,CAC7E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAyB,EAAE,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CACX,8DAA8D,OAAO,EAAE,CACxE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"env-payload.js","sourceRoot":"","sources":["../src/env-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAEL,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAQ9B,MAAM,UAAU,qBAAqB,CACnC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,sBAAsB,CAAC;IACvC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,GAAG,CAAC,sBAAsB,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,GAAG,CAAC,0BAA0B,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+B,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CACX,yEAAyE,CAC1E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CACX,6DAA6D,OAAO,EAAE,CACvE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,CAAC;IAC5C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,GAAG,CAAC,2BAA2B,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACvD,IACE,MAAM,CAAC,MAAM,IAAI,IAAI;YACrB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YACjC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAC5B,CAAC;YACD,OAAO,CAAC,KAAK,CACX,4EAA4E,CAC7E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAyB,EAAE,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CACX,8DAA8D,OAAO,EAAE,CACxE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bunny-agent/runner-cli",
3
- "version": "0.9.59-beta.2",
3
+ "version": "0.9.59-beta.3",
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,13 +59,14 @@
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",
62
+ "@bunny-agent/manager": "0.9.59-beta.3",
63
63
  "@bunny-agent/runner-claude": "0.6.2",
64
64
  "@bunny-agent/runner-codex": "0.6.2",
65
65
  "@bunny-agent/runner-copilot": "0.1.0",
66
66
  "@bunny-agent/runner-harness": "0.1.1-beta.0",
67
67
  "@bunny-agent/runner-gemini": "0.6.2",
68
68
  "@bunny-agent/runner-opencode": "0.6.2",
69
+ "@bunny-agent/apply-patch": "0.1.0",
69
70
  "@bunny-agent/runner-pi": "0.6.4-beta.0"
70
71
  },
71
72
  "scripts": {