@zenning/ai 6.0.14 → 6.0.16

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.mjs CHANGED
@@ -898,7 +898,7 @@ import {
898
898
  } from "@zenning/provider-utils";
899
899
 
900
900
  // src/version.ts
901
- var VERSION = true ? "6.0.14" : "0.0.0-test";
901
+ var VERSION = true ? "6.0.15" : "0.0.0-test";
902
902
 
903
903
  // src/util/download/download.ts
904
904
  var download = async ({ url }) => {
@@ -2284,7 +2284,8 @@ function prepareRetries({
2284
2284
 
2285
2285
  // src/generate-text/collect-tool-approvals.ts
2286
2286
  function collectToolApprovals({
2287
- messages
2287
+ messages,
2288
+ skipValidation = false
2288
2289
  }) {
2289
2290
  const lastMessage = messages.at(-1);
2290
2291
  if ((lastMessage == null ? void 0 : lastMessage.role) != "tool") {
@@ -2329,19 +2330,25 @@ function collectToolApprovals({
2329
2330
  for (const approvalResponse of approvalResponses) {
2330
2331
  const approvalRequest = toolApprovalRequestsByApprovalId[approvalResponse.approvalId];
2331
2332
  if (approvalRequest == null) {
2332
- throw new InvalidToolApprovalError({
2333
- approvalId: approvalResponse.approvalId
2334
- });
2333
+ if (!skipValidation) {
2334
+ throw new InvalidToolApprovalError({
2335
+ approvalId: approvalResponse.approvalId
2336
+ });
2337
+ }
2338
+ continue;
2335
2339
  }
2336
2340
  if (toolResults[approvalRequest.toolCallId] != null) {
2337
2341
  continue;
2338
2342
  }
2339
2343
  const toolCall = toolCallsByToolCallId[approvalRequest.toolCallId];
2340
2344
  if (toolCall == null) {
2341
- throw new ToolCallNotFoundForApprovalError({
2342
- toolCallId: approvalRequest.toolCallId,
2343
- approvalId: approvalRequest.approvalId
2344
- });
2345
+ if (!skipValidation) {
2346
+ throw new ToolCallNotFoundForApprovalError({
2347
+ toolCallId: approvalRequest.toolCallId,
2348
+ approvalId: approvalRequest.approvalId
2349
+ });
2350
+ }
2351
+ continue;
2345
2352
  }
2346
2353
  const approval = {
2347
2354
  approvalRequest,
@@ -3583,10 +3590,13 @@ async function generateText({
3583
3590
  }),
3584
3591
  tracer,
3585
3592
  fn: async (span) => {
3586
- var _a16, _b, _c, _d, _e, _f, _g, _h;
3593
+ var _a16, _b, _c, _d, _e, _f, _g, _h, _i;
3587
3594
  const initialMessages = initialPrompt.messages;
3588
3595
  const responseMessages = [];
3589
- const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
3596
+ const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({
3597
+ messages: initialMessages,
3598
+ skipValidation: ((_a16 = providerOptions == null ? void 0 : providerOptions.openai) == null ? void 0 : _a16.previousResponseId) != null
3599
+ });
3590
3600
  const localApprovedToolApprovals = approvedToolApprovals.filter(
3591
3601
  (toolApproval) => !toolApproval.toolCall.providerExecuted
3592
3602
  );
@@ -3676,21 +3686,21 @@ async function generateText({
3676
3686
  experimental_context
3677
3687
  }));
3678
3688
  const stepModel = resolveLanguageModel(
3679
- (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
3689
+ (_b = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _b : model
3680
3690
  );
3681
3691
  const promptMessages = await convertToLanguageModelPrompt({
3682
3692
  prompt: {
3683
- system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,
3684
- messages: (_c = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _c : stepInputMessages
3693
+ system: (_c = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _c : initialPrompt.system,
3694
+ messages: (_d = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _d : stepInputMessages
3685
3695
  },
3686
3696
  supportedUrls: await stepModel.supportedUrls,
3687
3697
  download: download2
3688
3698
  });
3689
- experimental_context = (_d = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _d : experimental_context;
3699
+ experimental_context = (_e = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _e : experimental_context;
3690
3700
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
3691
3701
  tools,
3692
- toolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,
3693
- activeTools: (_f = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _f : activeTools
3702
+ toolChoice: (_f = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _f : toolChoice,
3703
+ activeTools: (_g = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _g : activeTools
3694
3704
  });
3695
3705
  currentModelResponse = await retry(
3696
3706
  () => {
@@ -3910,7 +3920,7 @@ async function generateText({
3910
3920
  usage: asLanguageModelUsage(currentModelResponse.usage),
3911
3921
  warnings: currentModelResponse.warnings,
3912
3922
  providerMetadata: currentModelResponse.providerMetadata,
3913
- request: (_g = currentModelResponse.request) != null ? _g : {},
3923
+ request: (_h = currentModelResponse.request) != null ? _h : {},
3914
3924
  response: {
3915
3925
  ...currentModelResponse.response,
3916
3926
  // deep clone msgs to avoid mutating past messages in multi-step:
@@ -3918,7 +3928,7 @@ async function generateText({
3918
3928
  }
3919
3929
  });
3920
3930
  logWarnings({
3921
- warnings: (_h = currentModelResponse.warnings) != null ? _h : [],
3931
+ warnings: (_i = currentModelResponse.warnings) != null ? _i : [],
3922
3932
  provider: stepModel.provider,
3923
3933
  model: stepModel.modelId
3924
3934
  });
@@ -6092,6 +6102,7 @@ var DefaultStreamTextResult = class {
6092
6102
  tracer,
6093
6103
  endWhenDone: false,
6094
6104
  fn: async (rootSpanArg) => {
6105
+ var _a16;
6095
6106
  rootSpan = rootSpanArg;
6096
6107
  const initialPrompt = await standardizePrompt({
6097
6108
  system,
@@ -6100,7 +6111,10 @@ var DefaultStreamTextResult = class {
6100
6111
  });
6101
6112
  const initialMessages = initialPrompt.messages;
6102
6113
  const initialResponseMessages = [];
6103
- const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
6114
+ const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({
6115
+ messages: initialMessages,
6116
+ skipValidation: ((_a16 = providerOptions == null ? void 0 : providerOptions.openai) == null ? void 0 : _a16.previousResponseId) != null
6117
+ });
6104
6118
  if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
6105
6119
  const providerExecutedToolApprovals = [
6106
6120
  ...approvedToolApprovals,
@@ -6210,7 +6224,7 @@ var DefaultStreamTextResult = class {
6210
6224
  responseMessages,
6211
6225
  usage
6212
6226
  }) {
6213
- var _a16, _b, _c, _d, _e, _f;
6227
+ var _a17, _b, _c, _d, _e, _f;
6214
6228
  const includeRawChunks2 = self.includeRawChunks;
6215
6229
  stepFinish = new DelayedPromise();
6216
6230
  const stepInputMessages = [...initialMessages, ...responseMessages];
@@ -6222,7 +6236,7 @@ var DefaultStreamTextResult = class {
6222
6236
  experimental_context
6223
6237
  }));
6224
6238
  const stepModel = resolveLanguageModel(
6225
- (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
6239
+ (_a17 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a17 : model
6226
6240
  );
6227
6241
  const promptMessages = await convertToLanguageModelPrompt({
6228
6242
  prompt: {
@@ -6335,7 +6349,7 @@ var DefaultStreamTextResult = class {
6335
6349
  streamWithToolResults.pipeThrough(
6336
6350
  new TransformStream({
6337
6351
  async transform(chunk, controller) {
6338
- var _a17, _b2, _c2, _d2, _e2;
6352
+ var _a18, _b2, _c2, _d2, _e2;
6339
6353
  if (chunk.type === "stream-start") {
6340
6354
  warnings = chunk.warnings;
6341
6355
  return;
@@ -6408,7 +6422,7 @@ var DefaultStreamTextResult = class {
6408
6422
  }
6409
6423
  case "response-metadata": {
6410
6424
  stepResponse = {
6411
- id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,
6425
+ id: (_a18 = chunk.id) != null ? _a18 : stepResponse.id,
6412
6426
  timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
6413
6427
  modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
6414
6428
  };
@@ -7407,7 +7421,7 @@ async function convertToModelMessages(messages, options) {
7407
7421
  });
7408
7422
  } else if (isToolUIPart(part)) {
7409
7423
  const toolName = getToolName(part);
7410
- if (part.state !== "input-streaming") {
7424
+ if (part.state !== "input-streaming" && part.state !== "approval-responded" && part.state !== "output-denied") {
7411
7425
  content.push({
7412
7426
  type: "tool-call",
7413
7427
  toolCallId: part.toolCallId,
@@ -7423,7 +7437,7 @@ async function convertToModelMessages(messages, options) {
7423
7437
  toolCallId: part.toolCallId
7424
7438
  });
7425
7439
  }
7426
- if (part.providerExecuted === true && part.state !== "approval-responded" && (part.state === "output-available" || part.state === "output-error")) {
7440
+ if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
7427
7441
  content.push({
7428
7442
  type: "tool-result",
7429
7443
  toolCallId: part.toolCallId,