@code-yeongyu/senpi-ai 2026.7.31 → 2026.8.1

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.
Files changed (46) hide show
  1. package/dist/api/anthropic-messages.d.ts.map +1 -1
  2. package/dist/api/anthropic-messages.js +10 -15
  3. package/dist/api/anthropic-messages.js.map +1 -1
  4. package/dist/api/azure-openai-responses.js +2 -2
  5. package/dist/api/azure-openai-responses.js.map +1 -1
  6. package/dist/api/openai-codex-responses/fallback-state.d.ts +24 -0
  7. package/dist/api/openai-codex-responses/fallback-state.d.ts.map +1 -0
  8. package/dist/api/openai-codex-responses/fallback-state.js +70 -0
  9. package/dist/api/openai-codex-responses/fallback-state.js.map +1 -0
  10. package/dist/api/openai-codex-responses.d.ts +2 -16
  11. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  12. package/dist/api/openai-codex-responses.js +10 -58
  13. package/dist/api/openai-codex-responses.js.map +1 -1
  14. package/dist/api/openai-completions.js +2 -2
  15. package/dist/api/openai-completions.js.map +1 -1
  16. package/dist/api/openai-prompt-cache.d.ts +1 -0
  17. package/dist/api/openai-prompt-cache.d.ts.map +1 -1
  18. package/dist/api/openai-prompt-cache.js +7 -0
  19. package/dist/api/openai-prompt-cache.js.map +1 -1
  20. package/dist/api/openai-responses.js +2 -2
  21. package/dist/api/openai-responses.js.map +1 -1
  22. package/dist/model.d.ts +2 -1
  23. package/dist/model.d.ts.map +1 -1
  24. package/dist/model.js.map +1 -1
  25. package/dist/models.d.ts +14 -0
  26. package/dist/models.d.ts.map +1 -1
  27. package/dist/models.js +95 -19
  28. package/dist/models.js.map +1 -1
  29. package/dist/providers/data/.manifest.json +1 -1
  30. package/dist/providers/data/amazon-bedrock.json +1 -1
  31. package/dist/providers/data/azure-openai-responses.json +1 -1
  32. package/dist/providers/data/openai.json +1 -1
  33. package/dist/providers/data/opencode-go.json +1 -1
  34. package/dist/providers/data/opencode.json +1 -1
  35. package/dist/providers/data/openrouter.json +1 -1
  36. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  37. package/dist/providers/data/zai-coding-cn.json +1 -1
  38. package/dist/providers/data/zai.json +1 -1
  39. package/dist/types.d.ts +5 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/types.js.map +1 -1
  42. package/dist/utils/unavailable-tool-text.d.ts +3 -0
  43. package/dist/utils/unavailable-tool-text.d.ts.map +1 -0
  44. package/dist/utils/unavailable-tool-text.js +36 -0
  45. package/dist/utils/unavailable-tool-text.js.map +1 -0
  46. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAU1C,OAAO,KAAK,EAWX,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAOb,MAAM,aAAa,CAAC;AA+BrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA6JlE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AAoEhE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AA8zBD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CAqYzE,CAAC;AA0FF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CA2ClF,CAAC"}
1
+ {"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAU1C,OAAO,KAAK,EAWX,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAOb,MAAM,aAAa,CAAC;AAgCrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA6JlE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AAoEhE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAuzBD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CAqYzE,CAAC;AA0FF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CA2ClF,CAAC"}
@@ -13,6 +13,7 @@ import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
13
13
  import { applyServerFallbackAbort, parseServerFallbackReceipt, parseStickyFallbackReceipt, } from "../utils/server-fallback-receipt.js";
14
14
  import { normalizeToolCallId } from "../utils/tool-call-id.js";
15
15
  import { isForcedToolChoiceUnsupportedError, omitToolChoiceParam } from "../utils/tool-choice-fallback.js";
16
+ import { demotedToolCallText, demotedToolResultText } from "../utils/unavailable-tool-text.js";
16
17
  import { resolveCloudflareBaseUrl } from "./cloudflare.js";
17
18
  import { resolveJsonSchemaStrictSampling } from "./constrained-sampling.js";
18
19
  import { buildCopilotDynamicHeaders, hasCopilotVisionInput } from "./github-copilot-headers.js";
@@ -571,6 +572,8 @@ function demoteUnavailableToolReferences(params) {
571
572
  if (demotedCallNames.size === 0 && danglingReferenceNames.size === 0)
572
573
  return params;
573
574
  let changed = false;
575
+ const availableToolNames = [...definedNames];
576
+ const seenDemotedCallNames = new Set();
574
577
  const rewrittenMessages = [];
575
578
  for (const message of messages) {
576
579
  if (!Array.isArray(message.content)) {
@@ -584,7 +587,12 @@ function demoteUnavailableToolReferences(params) {
584
587
  const demotedName = demotedCallNames.get(block.id);
585
588
  if (demotedName !== undefined) {
586
589
  messageChanged = true;
587
- content.push({ type: "text", text: demotedToolCallText(demotedName, block.input) });
590
+ const firstOccurrence = !seenDemotedCallNames.has(demotedName);
591
+ seenDemotedCallNames.add(demotedName);
592
+ content.push({
593
+ type: "text",
594
+ text: demotedToolCallText(demotedName, availableToolNames, firstOccurrence),
595
+ });
588
596
  continue;
589
597
  }
590
598
  }
@@ -592,7 +600,7 @@ function demoteUnavailableToolReferences(params) {
592
600
  const demotedName = demotedCallNames.get(block.tool_use_id);
593
601
  if (demotedName !== undefined) {
594
602
  messageChanged = true;
595
- content.push({ type: "text", text: demotedToolResultText(demotedName, block.content) });
603
+ content.push({ type: "text", text: demotedToolResultText(demotedName, toolResultText(block.content)) });
596
604
  continue;
597
605
  }
598
606
  if (danglingReferenceNames.size > 0 && Array.isArray(block.content)) {
@@ -648,19 +656,6 @@ function collectToolReferenceNames(value, names) {
648
656
  for (const nested of Object.values(value))
649
657
  collectToolReferenceNames(nested, names);
650
658
  }
651
- function demotedToolCallText(name, input) {
652
- let serializedInput;
653
- try {
654
- serializedInput = JSON.stringify(input ?? {});
655
- }
656
- catch {
657
- serializedInput = "{}";
658
- }
659
- return `[Called tool "${name}" (no longer available in this session) with input: ${serializedInput}]`;
660
- }
661
- function demotedToolResultText(name, content) {
662
- return `[Result of unavailable tool "${name}": ${toolResultText(content)}]`;
663
- }
664
659
  function toolResultText(content) {
665
660
  if (typeof content === "string")
666
661
  return content;