@ljoukov/llm 5.0.2 → 5.0.4

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/index.js CHANGED
@@ -6167,6 +6167,9 @@ async function maybeSpillToolOutputItem(item, toolName, options) {
6167
6167
  return item;
6168
6168
  }
6169
6169
  async function maybeSpillToolOutput(value, toolName, options) {
6170
+ if (options?.provider === "chatgpt") {
6171
+ return value;
6172
+ }
6170
6173
  if (typeof value === "string") {
6171
6174
  if (options?.force !== true && Buffer5.byteLength(value, "utf8") <= TOOL_OUTPUT_SPILL_THRESHOLD_BYTES) {
6172
6175
  return value;
@@ -6220,7 +6223,7 @@ function estimateToolOutputPayloadBytes(value) {
6220
6223
  }
6221
6224
  return 0;
6222
6225
  }
6223
- async function maybeSpillCombinedToolCallOutputs(callResults) {
6226
+ async function maybeSpillCombinedToolCallOutputs(callResults, options) {
6224
6227
  const totalBytes = callResults.reduce(
6225
6228
  (sum, callResult) => sum + estimateToolOutputPayloadBytes(callResult.outputPayload),
6226
6229
  0
@@ -6237,7 +6240,8 @@ async function maybeSpillCombinedToolCallOutputs(callResults) {
6237
6240
  callResult.outputPayload,
6238
6241
  callResult.entry.toolName,
6239
6242
  {
6240
- force: true
6243
+ force: true,
6244
+ provider: options?.provider
6241
6245
  }
6242
6246
  );
6243
6247
  return {
@@ -6467,7 +6471,7 @@ function extractSpawnStartupMetrics(outputPayload) {
6467
6471
  };
6468
6472
  }
6469
6473
  async function executeToolCall(params) {
6470
- const { callKind, toolName, tool: tool2, rawInput, parseError } = params;
6474
+ const { callKind, toolName, tool: tool2, rawInput, parseError, provider } = params;
6471
6475
  const startedAtMs = Date.now();
6472
6476
  const finalize = (base, outputPayload, metrics) => {
6473
6477
  const completedAtMs = Date.now();
@@ -6502,7 +6506,7 @@ async function executeToolCall(params) {
6502
6506
  const input = typeof rawInput === "string" ? rawInput : String(rawInput ?? "");
6503
6507
  try {
6504
6508
  const output = await tool2.execute(input);
6505
- const outputPayload = await maybeSpillToolOutput(output, toolName);
6509
+ const outputPayload = await maybeSpillToolOutput(output, toolName, { provider });
6506
6510
  const metrics = toolName === "spawn_agent" ? extractSpawnStartupMetrics(outputPayload) : void 0;
6507
6511
  return finalize({ toolName, input, output: outputPayload }, outputPayload, metrics);
6508
6512
  } catch (error) {
@@ -6538,7 +6542,7 @@ async function executeToolCall(params) {
6538
6542
  }
6539
6543
  try {
6540
6544
  const output = await tool2.execute(parsed.data);
6541
- const outputPayload = await maybeSpillToolOutput(output, toolName);
6545
+ const outputPayload = await maybeSpillToolOutput(output, toolName, { provider });
6542
6546
  const metrics = toolName === "spawn_agent" ? extractSpawnStartupMetrics(outputPayload) : void 0;
6543
6547
  return finalize(
6544
6548
  { toolName, input: parsed.data, output: outputPayload },
@@ -8338,13 +8342,15 @@ async function runToolLoop(request) {
8338
8342
  toolName: entry.toolName,
8339
8343
  tool: request.tools[entry.toolName],
8340
8344
  rawInput: entry.value,
8341
- parseError: entry.parseError
8345
+ parseError: entry.parseError,
8346
+ provider: providerInfo.provider
8342
8347
  });
8343
8348
  return { entry, result, outputPayload };
8344
8349
  }
8345
8350
  );
8346
8351
  })
8347
- )
8352
+ ),
8353
+ { provider: providerInfo.provider }
8348
8354
  );
8349
8355
  const toolOutputs = [];
8350
8356
  let toolExecutionMs = 0;
@@ -8641,13 +8647,15 @@ async function runToolLoop(request) {
8641
8647
  toolName: entry.toolName,
8642
8648
  tool: request.tools[entry.toolName],
8643
8649
  rawInput: entry.value,
8644
- parseError: entry.parseError
8650
+ parseError: entry.parseError,
8651
+ provider: "chatgpt"
8645
8652
  });
8646
8653
  return { entry, result, outputPayload };
8647
8654
  }
8648
8655
  );
8649
8656
  })
8650
- )
8657
+ ),
8658
+ { provider: "chatgpt" }
8651
8659
  );
8652
8660
  let toolExecutionMs = 0;
8653
8661
  let waitToolMs = 0;
@@ -8935,13 +8943,15 @@ async function runToolLoop(request) {
8935
8943
  toolName: entry.toolName,
8936
8944
  tool: request.tools[entry.toolName],
8937
8945
  rawInput: entry.value,
8938
- parseError: entry.parseError
8946
+ parseError: entry.parseError,
8947
+ provider: providerInfo.provider
8939
8948
  });
8940
8949
  return { entry, result, outputPayload };
8941
8950
  }
8942
8951
  );
8943
8952
  })
8944
- )
8953
+ ),
8954
+ { provider: providerInfo.provider }
8945
8955
  );
8946
8956
  const assistantToolCalls = [];
8947
8957
  const toolMessages = [];
@@ -9288,13 +9298,15 @@ async function runToolLoop(request) {
9288
9298
  callKind: "function",
9289
9299
  toolName: entry.toolName,
9290
9300
  tool: request.tools[entry.toolName],
9291
- rawInput: entry.rawInput
9301
+ rawInput: entry.rawInput,
9302
+ provider: "gemini"
9292
9303
  });
9293
9304
  return { entry, result, outputPayload };
9294
9305
  }
9295
9306
  );
9296
9307
  })
9297
- )
9308
+ ),
9309
+ { provider: "gemini" }
9298
9310
  );
9299
9311
  let toolExecutionMs = 0;
9300
9312
  let waitToolMs = 0;
@@ -9840,7 +9852,6 @@ var spawnAgentInputSchema = z4.object({
9840
9852
  "When true, fork the current thread history into the new agent before sending the initial prompt. This must be used when you want the new agent to have exactly the same context as you."
9841
9853
  ),
9842
9854
  instructions: z4.string().nullish().describe("Optional extra instructions for this subagent instance."),
9843
- model: z4.string().nullish().describe("Optional model override. Must be one of this package's supported text model ids."),
9844
9855
  max_steps: z4.number().int().min(1).max(MAX_SUBAGENT_MAX_STEPS).nullish().describe("Optional max step budget for each subagent run.")
9845
9856
  });
9846
9857
  var sendInputSchema = z4.object({
@@ -9983,13 +9994,7 @@ function createSubagentToolController(options) {
9983
9994
  `Subagent depth limit reached (${options.config.maxDepth}). Cannot spawn at depth ${childDepth}.`
9984
9995
  );
9985
9996
  }
9986
- let model = options.config.model ?? options.parentModel;
9987
- if (input.model) {
9988
- if (!isLlmTextModelId(input.model)) {
9989
- throw new Error(`Unsupported subagent model id: ${input.model}`);
9990
- }
9991
- model = input.model;
9992
- }
9997
+ const model = options.config.model ?? options.parentModel;
9993
9998
  const id = `agent_${randomBytes2(6).toString("hex")}`;
9994
9999
  const now = Date.now();
9995
10000
  const { roleName, roleInstructions } = resolveAgentType(input.agent_type);