@code-yeongyu/senpi-ai 2026.7.26 → 2026.7.28

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 (66) hide show
  1. package/dist/api/anthropic-messages.d.ts +1 -0
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +161 -50
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/azure-openai-responses.js +3 -1
  6. package/dist/api/azure-openai-responses.js.map +1 -1
  7. package/dist/api/bedrock-converse-stream.d.ts +1 -0
  8. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  9. package/dist/api/bedrock-converse-stream.js +2 -43
  10. package/dist/api/bedrock-converse-stream.js.map +1 -1
  11. package/dist/api/openai-codex-responses/reasoning.d.ts +14 -0
  12. package/dist/api/openai-codex-responses/reasoning.d.ts.map +1 -0
  13. package/dist/api/openai-codex-responses/reasoning.js +27 -0
  14. package/dist/api/openai-codex-responses/reasoning.js.map +1 -0
  15. package/dist/api/openai-codex-responses.d.ts +2 -1
  16. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  17. package/dist/api/openai-codex-responses.js +4 -12
  18. package/dist/api/openai-codex-responses.js.map +1 -1
  19. package/dist/api/openai-completions.d.ts +3 -8
  20. package/dist/api/openai-completions.d.ts.map +1 -1
  21. package/dist/api/openai-completions.js +8 -122
  22. package/dist/api/openai-completions.js.map +1 -1
  23. package/dist/api/openai-responses.d.ts.map +1 -1
  24. package/dist/api/openai-responses.js +1 -0
  25. package/dist/api/openai-responses.js.map +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/model.d.ts +7 -0
  31. package/dist/model.d.ts.map +1 -1
  32. package/dist/model.js.map +1 -1
  33. package/dist/oauth.d.ts +2 -1
  34. package/dist/oauth.d.ts.map +1 -1
  35. package/dist/oauth.js +2 -1
  36. package/dist/oauth.js.map +1 -1
  37. package/dist/openai-responses-compat.d.ts +24 -0
  38. package/dist/openai-responses-compat.d.ts.map +1 -0
  39. package/dist/openai-responses-compat.js +2 -0
  40. package/dist/openai-responses-compat.js.map +1 -0
  41. package/dist/providers/data/.manifest.json +1 -1
  42. package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  43. package/dist/providers/data/fireworks.json +1 -1
  44. package/dist/providers/data/huggingface.json +1 -1
  45. package/dist/providers/data/nvidia.json +1 -1
  46. package/dist/providers/data/openai.json +1 -1
  47. package/dist/providers/data/opencode.json +1 -1
  48. package/dist/providers/data/openrouter.json +1 -1
  49. package/dist/providers/data/together.json +1 -1
  50. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  51. package/dist/types.d.ts +8 -22
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/dist/utils/prompt-cache-ttl.d.ts +32 -0
  55. package/dist/utils/prompt-cache-ttl.d.ts.map +1 -0
  56. package/dist/utils/prompt-cache-ttl.js +294 -0
  57. package/dist/utils/prompt-cache-ttl.js.map +1 -0
  58. package/dist/utils/provider-retry.d.ts +5 -0
  59. package/dist/utils/provider-retry.d.ts.map +1 -1
  60. package/dist/utils/provider-retry.js +46 -1
  61. package/dist/utils/provider-retry.js.map +1 -1
  62. package/dist/utils/retry.d.ts +7 -0
  63. package/dist/utils/retry.d.ts.map +1 -1
  64. package/dist/utils/retry.js +14 -1
  65. package/dist/utils/retry.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,27 @@
1
+ export function normalizeCodexReasoningSummary(reasoningSummary) {
2
+ switch (reasoningSummary) {
3
+ case null:
4
+ case "off":
5
+ return undefined;
6
+ case undefined:
7
+ case "on":
8
+ return "auto";
9
+ default:
10
+ return reasoningSummary;
11
+ }
12
+ }
13
+ export function buildCodexReasoning(reasoningEffort, reasoningSummary, modelSupportsReasoning, thinkingOff) {
14
+ let effort;
15
+ if (reasoningEffort !== undefined && reasoningEffort !== null) {
16
+ effort = reasoningEffort;
17
+ }
18
+ else if (reasoningEffort === undefined && modelSupportsReasoning && thinkingOff !== null) {
19
+ effort = thinkingOff ?? "none";
20
+ }
21
+ else {
22
+ return undefined;
23
+ }
24
+ const summary = normalizeCodexReasoningSummary(reasoningSummary);
25
+ return { effort, ...(summary === undefined ? {} : { summary }) };
26
+ }
27
+ //# sourceMappingURL=reasoning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../../../src/api/openai-codex-responses/reasoning.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,8BAA8B,CAC7C,gBAAwD;IAExD,QAAQ,gBAAgB,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC;QACV,KAAK,KAAK;YACT,OAAO,SAAS,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,IAAI;YACR,OAAO,MAAM,CAAC;QACf;YACC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,eAA0C,EAC1C,gBAAwD,EACxD,sBAA+B,EAC/B,WAAsC;IAEtC,IAAI,MAAc,CAAC;IACnB,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,GAAG,eAAe,CAAC;IAC1B,CAAC;SAAM,IAAI,eAAe,KAAK,SAAS,IAAI,sBAAsB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAC5F,MAAM,GAAG,WAAW,IAAI,MAAM,CAAC;IAChC,CAAC;SAAM,CAAC;QACP,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;IACjE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAClE,CAAC","sourcesContent":["export type CodexReasoningSummary = \"auto\" | \"concise\" | \"detailed\";\nexport interface CodexReasoning {\n\teffort?: string;\n\tsummary?: CodexReasoningSummary;\n}\n\n/** @deprecated Pass `null` to omit reasoning summaries. */\ntype LegacyCodexReasoningSummaryOff = \"off\";\n\n/** @deprecated Pass `\"auto\"` to request the default reasoning summary. */\ntype LegacyCodexReasoningSummaryOn = \"on\";\n\nexport type CodexReasoningSummaryInput =\n\t| CodexReasoningSummary\n\t| LegacyCodexReasoningSummaryOff\n\t| LegacyCodexReasoningSummaryOn\n\t| null;\n\nexport function normalizeCodexReasoningSummary(\n\treasoningSummary: CodexReasoningSummaryInput | undefined,\n): CodexReasoningSummary | undefined {\n\tswitch (reasoningSummary) {\n\t\tcase null:\n\t\tcase \"off\":\n\t\t\treturn undefined;\n\t\tcase undefined:\n\t\tcase \"on\":\n\t\t\treturn \"auto\";\n\t\tdefault:\n\t\t\treturn reasoningSummary;\n\t}\n}\n\nexport function buildCodexReasoning(\n\treasoningEffort: string | null | undefined,\n\treasoningSummary: CodexReasoningSummaryInput | undefined,\n\tmodelSupportsReasoning: boolean,\n\tthinkingOff: string | null | undefined,\n): CodexReasoning | undefined {\n\tlet effort: string;\n\tif (reasoningEffort !== undefined && reasoningEffort !== null) {\n\t\teffort = reasoningEffort;\n\t} else if (reasoningEffort === undefined && modelSupportsReasoning && thinkingOff !== null) {\n\t\teffort = thinkingOff ?? \"none\";\n\t} else {\n\t\treturn undefined;\n\t}\n\n\tconst summary = normalizeCodexReasoningSummary(reasoningSummary);\n\treturn { effort, ...(summary === undefined ? {} : { summary }) };\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import type { ResponseCreateParamsStreaming } from "openai/resources/responses/responses.js";
2
2
  import type { SimpleStreamOptions, StreamFunction, StreamOptions } from "../types.ts";
3
+ import { type CodexReasoningSummaryInput } from "./openai-codex-responses/reasoning.ts";
3
4
  export interface OpenAICodexResponsesOptions extends StreamOptions {
4
5
  reasoningEffort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
5
- reasoningSummary?: "auto" | "concise" | "detailed" | "off" | "on" | null;
6
+ reasoningSummary?: CodexReasoningSummaryInput;
6
7
  serviceTier?: ResponseCreateParamsStreaming["service_tier"];
7
8
  textVerbosity?: "low" | "medium" | "high";
8
9
  toolChoice?: "auto" | "none" | "required";
@@ -1 +1 @@
1
- {"version":3,"file":"openai-codex-responses.d.ts","sourceRoot":"","sources":["../../src/api/openai-codex-responses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,6BAA6B,EAG7B,MAAM,yCAAyC,CAAC;AAkBjD,OAAO,KAAK,EAOX,mBAAmB,EACnB,cAAc,EACd,aAAa,EAEb,MAAM,aAAa,CAAC;AAuDrB,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IACjE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACnF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IACzE,WAAW,CAAC,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CAC1C;AAmJD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,wBAAwB,EAAE,2BAA2B,CAiQxF,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,wBAAwB,EAAE,mBAAmB,CAuBtF,CAAC;AA8WF,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA0BD,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,8BAA8B,GAAG,SAAS,CAG/G;AAED,wBAAgB,mCAAmC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ5E;AAED,wBAAgB,iCAAiC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAe1E"}
1
+ {"version":3,"file":"openai-codex-responses.d.ts","sourceRoot":"","sources":["../../src/api/openai-codex-responses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,6BAA6B,EAG7B,MAAM,yCAAyC,CAAC;AAkBjD,OAAO,KAAK,EAOX,mBAAmB,EACnB,cAAc,EACd,aAAa,EAEb,MAAM,aAAa,CAAC;AAerB,OAAO,EAAuB,KAAK,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAyC7G,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IACjE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACnF,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,WAAW,CAAC,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CAC1C;AAmJD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,wBAAwB,EAAE,2BAA2B,CAiQxF,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,wBAAwB,EAAE,mBAAmB,CAuBtF,CAAC;AA0WF,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA0BD,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,8BAA8B,GAAG,SAAS,CAG/G;AAED,wBAAgB,mCAAmC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ5E;AAED,wBAAgB,iCAAiC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAe1E"}
@@ -18,6 +18,7 @@ import { resolveHttpProxyUrlForTarget } from "../utils/node-http-proxy.js";
18
18
  import { extractOpenAiCodexAccountId } from "../utils/openai-codex-auth.js";
19
19
  import { uuidv7 } from "../utils/uuid.js";
20
20
  import { createGrammarToolInputProperties } from "./constrained-sampling.js";
21
+ import { buildCodexReasoning } from "./openai-codex-responses/reasoning.js";
21
22
  import { clampOpenAIPromptCacheKey } from "./openai-prompt-cache.js";
22
23
  import { convertResponsesMessages, convertResponsesTools, processResponsesStream } from "./openai-responses-shared.js";
23
24
  import { applyExtraBody, buildBaseOptions, clampMaxForOpenAI, OPENAI_RESPONSES_RESERVED_BODY_KEYS, } from "./simple-options.js";
@@ -421,18 +422,9 @@ function buildRequestBody(model, context, options, cacheSessionId, grammarToolIn
421
422
  supportsOpenAIGrammarTools,
422
423
  });
423
424
  }
424
- if (reasoningEffort !== undefined && reasoningEffort !== null) {
425
- body.reasoning = {
426
- effort: reasoningEffort,
427
- summary: options?.reasoningSummary === null ? "off" : (options?.reasoningSummary ?? "auto"),
428
- };
429
- }
430
- else if (reasoningEffort === undefined && model.reasoning && model.thinkingLevelMap?.off !== null) {
431
- body.reasoning = {
432
- effort: model.thinkingLevelMap?.off ?? "none",
433
- summary: options?.reasoningSummary === null ? "off" : (options?.reasoningSummary ?? "auto"),
434
- };
435
- }
425
+ const reasoning = buildCodexReasoning(reasoningEffort, options?.reasoningSummary, model.reasoning, model.thinkingLevelMap?.off);
426
+ if (reasoning)
427
+ body.reasoning = reasoning;
436
428
  applyExtraBody(body, options?.extraBody, OPENAI_RESPONSES_RESERVED_BODY_KEYS);
437
429
  return body;
438
430
  }