@code-yeongyu/senpi-ai 2026.9.28-3 → 2026.9.28-5

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 (74) hide show
  1. package/dist/api/anthropic-messages.d.ts.map +1 -1
  2. package/dist/api/anthropic-messages.js +17 -14
  3. package/dist/api/anthropic-messages.js.map +1 -1
  4. package/dist/api/github-copilot-errors.d.ts +9 -0
  5. package/dist/api/github-copilot-errors.d.ts.map +1 -0
  6. package/dist/api/github-copilot-errors.js +75 -0
  7. package/dist/api/github-copilot-errors.js.map +1 -0
  8. package/dist/api/github-copilot-headers.d.ts +1 -0
  9. package/dist/api/github-copilot-headers.d.ts.map +1 -1
  10. package/dist/api/github-copilot-headers.js +3 -0
  11. package/dist/api/github-copilot-headers.js.map +1 -1
  12. package/dist/api/openai-completions.d.ts.map +1 -1
  13. package/dist/api/openai-completions.js +18 -12
  14. package/dist/api/openai-completions.js.map +1 -1
  15. package/dist/api/openai-responses.d.ts.map +1 -1
  16. package/dist/api/openai-responses.js +38 -2
  17. package/dist/api/openai-responses.js.map +1 -1
  18. package/dist/auth/helpers.d.ts +1 -0
  19. package/dist/auth/helpers.d.ts.map +1 -1
  20. package/dist/auth/helpers.js +1 -0
  21. package/dist/auth/helpers.js.map +1 -1
  22. package/dist/auth/oauth/github-copilot-model-catalog.d.ts +7 -0
  23. package/dist/auth/oauth/github-copilot-model-catalog.d.ts.map +1 -0
  24. package/dist/auth/oauth/github-copilot-model-catalog.js +46 -0
  25. package/dist/auth/oauth/github-copilot-model-catalog.js.map +1 -0
  26. package/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  27. package/dist/auth/oauth/github-copilot.js +6 -41
  28. package/dist/auth/oauth/github-copilot.js.map +1 -1
  29. package/dist/auth/pool/slots.d.ts.map +1 -1
  30. package/dist/auth/pool/slots.js +21 -3
  31. package/dist/auth/pool/slots.js.map +1 -1
  32. package/dist/auth/resolve.d.ts +6 -0
  33. package/dist/auth/resolve.d.ts.map +1 -1
  34. package/dist/auth/resolve.js +6 -5
  35. package/dist/auth/resolve.js.map +1 -1
  36. package/dist/auth/types.d.ts +7 -0
  37. package/dist/auth/types.d.ts.map +1 -1
  38. package/dist/auth/types.js.map +1 -1
  39. package/dist/openai-responses-compat.d.ts +6 -0
  40. package/dist/openai-responses-compat.d.ts.map +1 -1
  41. package/dist/openai-responses-compat.js.map +1 -1
  42. package/dist/providers/data/.manifest.json +1 -1
  43. package/dist/providers/data/opencode-go.json +1 -1
  44. package/dist/providers/data/opengateway.json +1 -1
  45. package/dist/providers/data/openrouter.json +1 -1
  46. package/dist/providers/github-copilot-limits.d.ts +11 -0
  47. package/dist/providers/github-copilot-limits.d.ts.map +1 -0
  48. package/dist/providers/github-copilot-limits.js +65 -0
  49. package/dist/providers/github-copilot-limits.js.map +1 -0
  50. package/dist/providers/github-copilot.d.ts.map +1 -1
  51. package/dist/providers/github-copilot.js +9 -2
  52. package/dist/providers/github-copilot.js.map +1 -1
  53. package/dist/types.d.ts +6 -0
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/types.js.map +1 -1
  56. package/dist/utils/github-copilot-tool-limit.d.ts +10 -0
  57. package/dist/utils/github-copilot-tool-limit.d.ts.map +1 -0
  58. package/dist/utils/github-copilot-tool-limit.js +75 -0
  59. package/dist/utils/github-copilot-tool-limit.js.map +1 -0
  60. package/dist/utils/overflow.js +1 -1
  61. package/dist/utils/overflow.js.map +1 -1
  62. package/dist/utils/prompt-cache-ttl.d.ts +3 -1
  63. package/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
  64. package/dist/utils/prompt-cache-ttl.js +1 -0
  65. package/dist/utils/prompt-cache-ttl.js.map +1 -1
  66. package/dist/utils/retry.d.ts +3 -0
  67. package/dist/utils/retry.d.ts.map +1 -1
  68. package/dist/utils/retry.js +15 -3
  69. package/dist/utils/retry.js.map +1 -1
  70. package/dist/utils/tool-choice-fallback.d.ts +29 -0
  71. package/dist/utils/tool-choice-fallback.d.ts.map +1 -1
  72. package/dist/utils/tool-choice-fallback.js +50 -2
  73. package/dist/utils/tool-choice-fallback.js.map +1 -1
  74. package/package.json +2 -2
@@ -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;AAC1C,OAAO,KAAK,EAMX,+BAA+B,EAK/B,MAAM,uDAAuD,CAAC;AAI/D,OAAO,KAAK,EACX,wBAAwB,EAKxB,OAAO,EAGP,KAAK,EAGL,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAGb,IAAI,EAIJ,MAAM,aAAa,CAAC;AA4CrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA0ElE,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAC2B,CAAC;AACzE,eAAO,MAAM,kBAAkB,SAAU,MAAM,UAAU,IAAI,EAAE,WAS9D,CAAC;AA4EF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AA+FhE,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,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C;;;;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;AAmvBD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CA0dzE,CAAC;AAyFF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CA+ClF,CAAC;AAmJF,wBAAgB,mCAAmC,CAClD,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACxB,+BAA+B,CAkBjC"}
1
+ {"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAMX,+BAA+B,EAK/B,MAAM,uDAAuD,CAAC;AAI/D,OAAO,KAAK,EACX,wBAAwB,EAKxB,OAAO,EAGP,KAAK,EAGL,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAGb,IAAI,EAIJ,MAAM,aAAa,CAAC;AAkDrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA0ElE,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAC2B,CAAC;AACzE,eAAO,MAAM,kBAAkB,SAAU,MAAM,UAAU,IAAI,EAAE,WAS9D,CAAC;AA4EF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AA+FhE,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,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C;;;;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;AAmvBD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CAgezE,CAAC;AAyFF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CA+ClF,CAAC;AAmJF,wBAAgB,mCAAmC,CAClD,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACxB,+BAA+B,CAkBjC"}
@@ -7,6 +7,7 @@ import { combineAbortSignals } from "../utils/abort-signals.js";
7
7
  import { splitDeferredTools } from "../utils/deferred-tools.js";
8
8
  import { appendAssistantMessageDiagnostic } from "../utils/diagnostics.js";
9
9
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
10
+ import { formatGitHubCopilotToolLimitError, limitGitHubCopilotTools, recordGitHubCopilotToolLimit, } from "../utils/github-copilot-tool-limit.js";
10
11
  import { headersToRecord, providerHeadersToRecord } from "../utils/headers.js";
11
12
  import { parseJsonWithRepair, parseStreamingJson } from "../utils/json-parse.js";
12
13
  import { getPiUserAgent } from "../utils/pi-user-agent.js";
@@ -20,12 +21,13 @@ import { normalizeAnthropicRetryFailure } from "../utils/retry-profile/failure.j
20
21
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
21
22
  import { applyServerFallbackAbort, applyServerFallbackContinuation, parseServerFallbackReceipt, parseStickyFallbackReceipt, } from "../utils/server-fallback-receipt.js";
22
23
  import { normalizeToolCallId } from "../utils/tool-call-id.js";
23
- import { isForcedToolChoiceUnsupportedError, omitToolChoiceParam } from "../utils/tool-choice-fallback.js";
24
+ import { sendWithForcedToolChoiceFallback } from "../utils/tool-choice-fallback.js";
24
25
  import { resolveRootObjectSchema } from "../utils/tool-schema-compat.js";
25
26
  import { sanitizeAnthropicToolPairs } from "./anthropic-tool-pairs.js";
26
27
  import { demoteUnavailableToolReferences } from "./anthropic-tool-references.js";
27
28
  import { resolveCloudflareBaseUrl } from "./cloudflare.js";
28
29
  import { getJsonSchemaToolParameters, resolveJsonSchemaStrictSampling } from "./constrained-sampling.js";
30
+ import { withGitHubCopilotFailureNote } from "./github-copilot-errors.js";
29
31
  import { buildCopilotDynamicHeaders, hasCopilotVisionInput } from "./github-copilot-headers.js";
30
32
  import { ANTHROPIC_RESERVED_BODY_KEYS, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToContext, } from "./simple-options.js";
31
33
  import { transformMessages } from "./transform-messages.js";
@@ -885,6 +887,11 @@ export const stream = (model, context, options) => {
885
887
  params = sanitizeAnthropicToolPairs(demoteUnavailableToolReferences(params));
886
888
  const payloadRequestMetadata = extractPayloadRequestMetadata(params);
887
889
  params = payloadRequestMetadata.params;
890
+ const limitedTools = limitGitHubCopilotTools(model.provider, params.tools, params.tool_choice);
891
+ if (limitedTools.omittedCount > 0) {
892
+ params = { ...params, tools: limitedTools.tools };
893
+ recordGitHubCopilotToolLimit(output, limitedTools.omittedCount);
894
+ }
888
895
  const requestOptions = {
889
896
  ...(requestSignal ? { signal: requestSignal } : {}),
890
897
  ...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),
@@ -892,18 +899,14 @@ export const stream = (model, context, options) => {
892
899
  ...(payloadRequestMetadata.headers ? { headers: payloadRequestMetadata.headers } : {}),
893
900
  };
894
901
  const send = (body) => awaitProviderTransport(() => client.beta.messages.create({ ...body, stream: true }, requestOptions).asResponse(), anthropicProviderDiagnosticFromError);
895
- try {
896
- const response = await send(params);
897
- return { params, response };
898
- }
899
- catch (error) {
900
- if (isForcedToolChoiceUnsupportedError(error, isForcedAnthropicToolChoice(params.tool_choice))) {
901
- params = omitToolChoiceParam(params);
902
- const response = await send(params);
903
- return { params, response };
904
- }
905
- throw error;
906
- }
902
+ const sent = await sendWithForcedToolChoiceFallback({
903
+ target: model,
904
+ params,
905
+ acceptsForcedToolChoice: getAnthropicCompat(model).supportsForcedToolChoice,
906
+ isForced: isForcedAnthropicToolChoice,
907
+ send,
908
+ });
909
+ return { params: sent.params, response: sent.result };
907
910
  };
908
911
  let requestOutcome;
909
912
  try {
@@ -1257,7 +1260,7 @@ export const stream = (model, context, options) => {
1257
1260
  const providerDiagnostic = output.stopReason === "error" ? readProviderDiagnostic(error) : undefined;
1258
1261
  if (providerDiagnostic !== undefined)
1259
1262
  output.providerDiagnostic = providerDiagnostic;
1260
- output.errorMessage = errorMessage;
1263
+ output.errorMessage = withGitHubCopilotFailureNote(formatGitHubCopilotToolLimitError(output, errorMessage), model.provider, error);
1261
1264
  stream.push({ type: "error", reason: output.stopReason, error: output });
1262
1265
  stream.end();
1263
1266
  }