ai-sdk-provider-claude-code 3.3.1 → 3.3.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.
package/dist/index.cjs CHANGED
@@ -568,7 +568,11 @@ var claudeCodeSettingsSchema = import_zod.z.object({
568
568
  message: "spawnClaudeCodeProcess must be a function"
569
569
  }).optional(),
570
570
  sdkOptions: import_zod.z.record(import_zod.z.string(), import_zod.z.any()).optional(),
571
- maxToolResultSize: import_zod.z.number().int().min(100).max(1e6).optional()
571
+ maxToolResultSize: import_zod.z.number().int().min(100).max(1e6).optional(),
572
+ // Callback invoked when Query object is created - for mid-stream injection via streamInput()
573
+ onQueryCreated: import_zod.z.any().refine((val) => val === void 0 || typeof val === "function", {
574
+ message: "onQueryCreated must be a function"
575
+ }).optional()
572
576
  }).strict();
573
577
  function validateModelId(modelId) {
574
578
  const knownModels = ["opus", "sonnet", "haiku"];
@@ -1289,6 +1293,7 @@ var ClaudeCodeLanguageModel = class _ClaudeCodeLanguageModel {
1289
1293
  let wasTruncated = false;
1290
1294
  let costUsd;
1291
1295
  let durationMs;
1296
+ let modelUsage;
1292
1297
  const warnings = this.generateAllWarnings(options, messagesPrompt);
1293
1298
  if (messageWarnings) {
1294
1299
  messageWarnings.forEach((warning) => {
@@ -1332,6 +1337,7 @@ var ClaudeCodeLanguageModel = class _ClaudeCodeLanguageModel {
1332
1337
  prompt: sdkPrompt,
1333
1338
  options: queryOptions
1334
1339
  });
1340
+ this.settings.onQueryCreated?.(response);
1335
1341
  for await (const message of response) {
1336
1342
  this.logger.debug(`[claude-code] Received message type: ${message.type}`);
1337
1343
  if (message.type === "assistant") {
@@ -1341,6 +1347,7 @@ var ClaudeCodeLanguageModel = class _ClaudeCodeLanguageModel {
1341
1347
  this.setSessionId(message.session_id);
1342
1348
  costUsd = message.total_cost_usd;
1343
1349
  durationMs = message.duration_ms;
1350
+ modelUsage = message.modelUsage;
1344
1351
  if ("is_error" in message && message.is_error === true) {
1345
1352
  const errorMessage = "result" in message && typeof message.result === "string" ? message.result : "Claude Code CLI returned an error";
1346
1353
  throw Object.assign(new Error(errorMessage), { exitCode: 1 });
@@ -1416,6 +1423,7 @@ var ClaudeCodeLanguageModel = class _ClaudeCodeLanguageModel {
1416
1423
  ...this.sessionId !== void 0 && { sessionId: this.sessionId },
1417
1424
  ...costUsd !== void 0 && { costUsd },
1418
1425
  ...durationMs !== void 0 && { durationMs },
1426
+ ...modelUsage !== void 0 && { modelUsage },
1419
1427
  ...wasTruncated && { truncated: true }
1420
1428
  }
1421
1429
  }
@@ -1564,6 +1572,7 @@ var ClaudeCodeLanguageModel = class _ClaudeCodeLanguageModel {
1564
1572
  prompt: sdkPrompt,
1565
1573
  options: queryOptions
1566
1574
  });
1575
+ this.settings.onQueryCreated?.(response);
1567
1576
  for await (const message of response) {
1568
1577
  this.logger.debug(`[claude-code] Stream received message type: ${message.type}`);
1569
1578
  if (message.type === "stream_event") {
@@ -2149,6 +2158,9 @@ var ClaudeCodeLanguageModel = class _ClaudeCodeLanguageModel {
2149
2158
  costUsd: message.total_cost_usd
2150
2159
  },
2151
2160
  ...message.duration_ms !== void 0 && { durationMs: message.duration_ms },
2161
+ ...message.modelUsage !== void 0 && {
2162
+ modelUsage: message.modelUsage
2163
+ },
2152
2164
  // JSON validation warnings are collected during streaming and included
2153
2165
  // in providerMetadata since the AI SDK's finish event doesn't support
2154
2166
  // a top-level warnings field (unlike stream-start which was already emitted)