@code-yeongyu/senpi 2026.7.17-5 → 2026.7.17

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 (193) hide show
  1. package/CHANGELOG.md +0 -59
  2. package/dist/core/dynamic-prompt/build.d.ts +0 -7
  3. package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
  4. package/dist/core/dynamic-prompt/build.js +0 -5
  5. package/dist/core/dynamic-prompt/build.js.map +1 -1
  6. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.d.ts +0 -1
  7. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.d.ts.map +1 -1
  8. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.js +2 -20
  9. package/dist/core/extensions/builtin/compaction/repair-tool-pairs.js.map +1 -1
  10. package/dist/core/extensions/builtin/mcp/config-schema.d.ts +1 -8
  11. package/dist/core/extensions/builtin/mcp/config-schema.d.ts.map +1 -1
  12. package/dist/core/extensions/builtin/mcp/config-schema.js +0 -23
  13. package/dist/core/extensions/builtin/mcp/config-schema.js.map +1 -1
  14. package/dist/core/extensions/builtin/mcp/config.d.ts +0 -13
  15. package/dist/core/extensions/builtin/mcp/config.d.ts.map +1 -1
  16. package/dist/core/extensions/builtin/mcp/config.js +0 -36
  17. package/dist/core/extensions/builtin/mcp/config.js.map +1 -1
  18. package/dist/core/extensions/builtin/mcp/expose/native-search.d.ts +1 -1
  19. package/dist/core/extensions/builtin/mcp/expose/native-search.d.ts.map +1 -1
  20. package/dist/core/extensions/builtin/mcp/expose/native-search.js +1 -1
  21. package/dist/core/extensions/builtin/mcp/expose/native-search.js.map +1 -1
  22. package/dist/core/extensions/builtin/mcp/expose/policy.js +1 -1
  23. package/dist/core/extensions/builtin/mcp/expose/policy.js.map +1 -1
  24. package/dist/core/extensions/builtin/mcp/expose/status.js +1 -1
  25. package/dist/core/extensions/builtin/mcp/expose/status.js.map +1 -1
  26. package/dist/core/extensions/builtin/mcp/expose/tier-b.d.ts +3 -3
  27. package/dist/core/extensions/builtin/mcp/expose/tier-b.d.ts.map +1 -1
  28. package/dist/core/extensions/builtin/mcp/expose/tier-b.js +10 -10
  29. package/dist/core/extensions/builtin/mcp/expose/tier-b.js.map +1 -1
  30. package/dist/core/extensions/builtin/mcp/expose/tool-search.d.ts +3 -3
  31. package/dist/core/extensions/builtin/mcp/expose/tool-search.d.ts.map +1 -1
  32. package/dist/core/extensions/builtin/mcp/expose/tool-search.js +14 -14
  33. package/dist/core/extensions/builtin/mcp/expose/tool-search.js.map +1 -1
  34. package/dist/core/extensions/builtin/mcp/index.js +5 -5
  35. package/dist/core/extensions/builtin/mcp/index.js.map +1 -1
  36. package/dist/core/extensions/builtin/mcp/service-snapshot.d.ts.map +1 -1
  37. package/dist/core/extensions/builtin/mcp/service-snapshot.js +0 -1
  38. package/dist/core/extensions/builtin/mcp/service-snapshot.js.map +1 -1
  39. package/dist/core/extensions/builtin/mcp/service-types.d.ts +0 -12
  40. package/dist/core/extensions/builtin/mcp/service-types.d.ts.map +1 -1
  41. package/dist/core/extensions/builtin/mcp/service-types.js.map +1 -1
  42. package/dist/core/extensions/builtin/mcp/service.d.ts +2 -2
  43. package/dist/core/extensions/builtin/mcp/service.d.ts.map +1 -1
  44. package/dist/core/extensions/builtin/mcp/service.js +3 -4
  45. package/dist/core/extensions/builtin/mcp/service.js.map +1 -1
  46. package/dist/core/extensions/builtin/mcp/status.js +0 -1
  47. package/dist/core/extensions/builtin/mcp/status.js.map +1 -1
  48. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.d.ts.map +1 -1
  49. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js +1 -5
  50. package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js.map +1 -1
  51. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.d.ts.map +1 -1
  52. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js +1 -5
  53. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js.map +1 -1
  54. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.d.ts.map +1 -1
  55. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js +1 -5
  56. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js.map +1 -1
  57. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.d.ts.map +1 -1
  58. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js +1 -5
  59. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js.map +1 -1
  60. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.d.ts.map +1 -1
  61. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js +1 -5
  62. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js.map +1 -1
  63. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.js +1 -1
  64. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.js.map +1 -1
  65. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.js +1 -1
  66. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.js.map +1 -1
  67. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.js +1 -1
  68. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.js.map +1 -1
  69. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.js +1 -1
  70. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.js.map +1 -1
  71. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js +1 -1
  72. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js.map +1 -1
  73. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +1 -1
  74. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
  75. package/dist/core/extensions/builtin/prompt-preset/gpt-5.js +1 -1
  76. package/dist/core/extensions/builtin/prompt-preset/gpt-5.js.map +1 -1
  77. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-6.js +1 -1
  78. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-6.js.map +1 -1
  79. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.js +1 -1
  80. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.js.map +1 -1
  81. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.d.ts.map +1 -1
  82. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js +7 -5
  83. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js.map +1 -1
  84. package/dist/core/extensions/builtin/websearch/index.d.ts.map +1 -1
  85. package/dist/core/extensions/builtin/websearch/index.js +3 -20
  86. package/dist/core/extensions/builtin/websearch/index.js.map +1 -1
  87. package/dist/core/extensions/index.d.ts +0 -1
  88. package/dist/core/extensions/index.d.ts.map +1 -1
  89. package/dist/core/extensions/index.js.map +1 -1
  90. package/dist/core/extensions/loader.d.ts.map +1 -1
  91. package/dist/core/extensions/loader.js +4 -20
  92. package/dist/core/extensions/loader.js.map +1 -1
  93. package/dist/core/extensions/runner.d.ts +1 -3
  94. package/dist/core/extensions/runner.d.ts.map +1 -1
  95. package/dist/core/extensions/runner.js +0 -20
  96. package/dist/core/extensions/runner.js.map +1 -1
  97. package/dist/core/extensions/types.d.ts +0 -13
  98. package/dist/core/extensions/types.d.ts.map +1 -1
  99. package/dist/core/extensions/types.js.map +1 -1
  100. package/dist/core/provider-composer.d.ts.map +1 -1
  101. package/dist/core/provider-composer.js +1 -8
  102. package/dist/core/provider-composer.js.map +1 -1
  103. package/dist/index.d.ts +1 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js.map +1 -1
  106. package/docs/extensions.md +0 -46
  107. package/docs/mcp.md +5 -21
  108. package/examples/AGENTS.md +0 -3
  109. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +0 -48
  110. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  111. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +19 -59
  112. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +2 -69
  113. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +0 -6
  114. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  115. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +4 -19
  116. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  117. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts +1 -3
  118. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts.map +1 -1
  119. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js +2 -4
  120. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
  121. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  122. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts +1 -2
  123. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  124. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +1 -25
  125. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  126. package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts +0 -1
  127. package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts.map +1 -1
  128. package/node_modules/@earendil-works/pi-ai/dist/compat.js +0 -1
  129. package/node_modules/@earendil-works/pi-ai/dist/compat.js.map +1 -1
  130. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +21 -31
  131. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  132. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +9 -9
  133. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js.map +1 -1
  134. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +21 -0
  135. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
  136. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +27 -9
  137. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
  138. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts +0 -31
  139. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.d.ts.map +1 -1
  140. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +0 -19
  141. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js.map +1 -1
  142. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.d.ts.map +1 -1
  143. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.js +0 -3
  144. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.js.map +1 -1
  145. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts +1 -1
  146. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts.map +1 -1
  147. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js +1 -2
  148. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js.map +1 -1
  149. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts +0 -11
  150. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts.map +1 -1
  151. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js +1 -40
  152. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js.map +1 -1
  153. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts.map +1 -1
  154. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.js +7 -92
  155. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/stream.js.map +1 -1
  156. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.d.ts +1 -8
  157. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.d.ts.map +1 -1
  158. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.js +27 -129
  159. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/gemma4.js.map +1 -1
  160. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/json-mix.d.ts.map +1 -1
  161. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/json-mix.js +6 -140
  162. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/json-mix.js.map +1 -1
  163. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/morph-xml.d.ts.map +1 -1
  164. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/morph-xml.js +6 -28
  165. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/morph-xml.js.map +1 -1
  166. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/yaml-xml.d.ts.map +1 -1
  167. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/yaml-xml.js +18 -51
  168. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/yaml-xml.js.map +1 -1
  169. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper.d.ts.map +1 -1
  170. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper.js +9 -70
  171. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper.js.map +1 -1
  172. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.d.ts +2 -5
  173. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.d.ts.map +1 -1
  174. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/types.js.map +1 -1
  175. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +2 -13
  176. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  177. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  178. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-pair-repair.d.ts.map +1 -1
  179. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-pair-repair.js +2 -19
  180. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-pair-repair.js.map +1 -1
  181. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  182. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  183. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  184. package/package.json +6 -6
  185. package/dist/core/dynamic-prompt/workstation.d.ts +0 -35
  186. package/dist/core/dynamic-prompt/workstation.d.ts.map +0 -1
  187. package/dist/core/dynamic-prompt/workstation.js +0 -81
  188. package/dist/core/dynamic-prompt/workstation.js.map +0 -1
  189. package/docs/AGENTS.md +0 -70
  190. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.d.ts +0 -19
  191. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.d.ts.map +0 -1
  192. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.js +0 -215
  193. package/node_modules/@earendil-works/pi-ai/dist/utils/tool-schema-compat.js.map +0 -1
@@ -501,37 +501,6 @@ export declare const TOGETHER_MODELS: {
501
501
  contextWindow: number;
502
502
  maxTokens: number;
503
503
  };
504
- readonly "thinkingmachines/Inkling": {
505
- id: string;
506
- name: string;
507
- api: "openai-completions";
508
- provider: string;
509
- baseUrl: string;
510
- compat: {
511
- supportsStore: false;
512
- supportsDeveloperRole: false;
513
- supportsReasoningEffort: false;
514
- maxTokensField: "max_tokens";
515
- thinkingFormat: "together";
516
- supportsStrictMode: false;
517
- supportsLongCacheRetention: false;
518
- };
519
- reasoning: true;
520
- thinkingLevelMap: {
521
- minimal: null;
522
- low: null;
523
- medium: null;
524
- };
525
- input: ("image" | "text")[];
526
- cost: {
527
- input: number;
528
- output: number;
529
- cacheRead: number;
530
- cacheWrite: number;
531
- };
532
- contextWindow: number;
533
- maxTokens: number;
534
- };
535
504
  readonly "zai-org/GLM-5": {
536
505
  id: string;
537
506
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"together.models.d.ts","sourceRoot":"","sources":["../../src/providers/together.models.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;YASP,GAAK;YAAM,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAG/D,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;YAAM,IAAM;YAAQ,KAAO;;;;YAG/E,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,GAAK;YAAM,OAAS;;;;YAGtC,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,GAAK;YAAM,OAAS;;;;YAGtC,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;CAKH,CAAC"}
1
+ {"version":3,"file":"together.models.d.ts","sourceRoot":"","sources":["../../src/providers/together.models.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;YASP,GAAK;YAAM,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAG/D,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;YAAM,IAAM;YAAQ,KAAO;;;;YAG/E,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;;YAeV,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,GAAK;YAAM,OAAS;;;;YAGtC,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,GAAK;YAAM,OAAS;;;;YAGtC,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;;;;;;;;;;;;;;;;;;YAaQ,OAAS;YAAM,GAAK;YAAM,MAAQ;;;;YAGpD,KAAK;YACL,MAAM;YACN,SAAS;YACT,UAAU;;;;;CAKH,CAAC"}
@@ -319,25 +319,6 @@ export const TOGETHER_MODELS = {
319
319
  contextWindow: 131072,
320
320
  maxTokens: 131072,
321
321
  },
322
- "thinkingmachines/Inkling": {
323
- id: "thinkingmachines/Inkling",
324
- name: "Inkling",
325
- api: "openai-completions",
326
- provider: "together",
327
- baseUrl: "https://api.together.ai/v1",
328
- compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "thinkingFormat": "together", "supportsStrictMode": false, "supportsLongCacheRetention": false },
329
- reasoning: true,
330
- thinkingLevelMap: { "minimal": null, "low": null, "medium": null },
331
- input: ["text", "image"],
332
- cost: {
333
- input: 1,
334
- output: 4.05,
335
- cacheRead: 0.17,
336
- cacheWrite: 0,
337
- },
338
- contextWindow: 524288,
339
- maxTokens: 131072,
340
- },
341
322
  "zai-org/GLM-5": {
342
323
  id: "zai-org/GLM-5",
343
324
  name: "GLM-5",
@@ -1 +1 @@
1
- {"version":3,"file":"together.models.js","sourceRoot":"","sources":["../../src/providers/together.models.ts"],"names":[],"mappings":"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","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const TOGETHER_MODELS = {\n\t\"MiniMaxAI/MiniMax-M2.7\": {\n\t\tid: \"MiniMaxAI/MiniMax-M2.7\",\n\t\tname: \"MiniMax-M2.7\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 202752,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"MiniMaxAI/MiniMax-M3\": {\n\t\tid: \"MiniMaxAI/MiniMax-M3\",\n\t\tname: \"MiniMax-M3\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 524288,\n\t\tmaxTokens: 250000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen2.5-7B-Instruct-Turbo\": {\n\t\tid: \"Qwen/Qwen2.5-7B-Instruct-Turbo\",\n\t\tname: \"Qwen 2.5 7B Instruct Turbo\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 0.3,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 32768,\n\t\tmaxTokens: 32768,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3-235B-A22B-Instruct-2507-tput\": {\n\t\tid: \"Qwen/Qwen3-235B-A22B-Instruct-2507-tput\",\n\t\tname: \"Qwen3 235B A22B Instruct 2507 FP8\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.2,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 262144,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.5-397B-A17B\": {\n\t\tid: \"Qwen/Qwen3.5-397B-A17B\",\n\t\tname: \"Qwen3.5 397B A17B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3.6,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 130000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.5-9B\": {\n\t\tid: \"Qwen/Qwen3.5-9B\",\n\t\tname: \"Qwen3.5 9B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.17,\n\t\t\toutput: 0.25,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.6-Plus\": {\n\t\tid: \"Qwen/Qwen3.6-Plus\",\n\t\tname: \"Qwen3.6 Plus\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 500000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.7-Max\": {\n\t\tid: \"Qwen/Qwen3.7-Max\",\n\t\tname: \"Qwen3.7 Max\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 3.75,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 500000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"deepseek-ai/DeepSeek-V4-Pro\": {\n\t\tid: \"deepseek-ai/DeepSeek-V4-Pro\",\n\t\tname: \"DeepSeek V4 Pro\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":true,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.74,\n\t\t\toutput: 3.48,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 512000,\n\t\tmaxTokens: 384000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"essentialai/Rnj-1-Instruct\": {\n\t\tid: \"essentialai/Rnj-1-Instruct\",\n\t\tname: \"Rnj-1 Instruct\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.15,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 32768,\n\t\tmaxTokens: 32768,\n\t} satisfies Model<\"openai-completions\">,\n\t\"google/gemma-4-31B-it\": {\n\t\tid: \"google/gemma-4-31B-it\",\n\t\tname: \"Gemma 4 31B Instruct\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.39,\n\t\t\toutput: 0.97,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"meta-llama/Llama-3.3-70B-Instruct-Turbo\": {\n\t\tid: \"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\n\t\tname: \"Llama 3.3 70B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.04,\n\t\t\toutput: 1.04,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"moonshotai/Kimi-K2.6\": {\n\t\tid: \"moonshotai/Kimi-K2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.2,\n\t\t\toutput: 4.5,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 131000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"moonshotai/Kimi-K2.7-Code\": {\n\t\tid: \"moonshotai/Kimi-K2.7-Code\",\n\t\tname: \"Kimi K2.7 Code\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.19,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"nvidia/nemotron-3-ultra-550b-a55b\": {\n\t\tid: \"nvidia/nemotron-3-ultra-550b-a55b\",\n\t\tname: \"Nemotron 3 Ultra 550B A55B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3.6,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 512300,\n\t\tmaxTokens: 512300,\n\t} satisfies Model<\"openai-completions\">,\n\t\"openai/gpt-oss-120b\": {\n\t\tid: \"openai/gpt-oss-120b\",\n\t\tname: \"GPT OSS 120B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":true,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"openai\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"openai/gpt-oss-20b\": {\n\t\tid: \"openai/gpt-oss-20b\",\n\t\tname: \"GPT OSS 20B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":true,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"openai\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.05,\n\t\t\toutput: 0.2,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"thinkingmachines/Inkling\": {\n\t\tid: \"thinkingmachines/Inkling\",\n\t\tname: \"Inkling\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 4.05,\n\t\t\tcacheRead: 0.17,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 524288,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"zai-org/GLM-5\": {\n\t\tid: \"zai-org/GLM-5\",\n\t\tname: \"GLM-5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 3.2,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 202752,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"zai-org/GLM-5.1\": {\n\t\tid: \"zai-org/GLM-5.1\",\n\t\tname: \"GLM-5.1\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 202752,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"zai-org/GLM-5.2\": {\n\t\tid: \"zai-org/GLM-5.2\",\n\t\tname: \"GLM-5.2\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 164000,\n\t} satisfies Model<\"openai-completions\">,\n} as const;\n"]}
1
+ {"version":3,"file":"together.models.js","sourceRoot":"","sources":["../../src/providers/together.models.ts"],"names":[],"mappings":"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","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const TOGETHER_MODELS = {\n\t\"MiniMaxAI/MiniMax-M2.7\": {\n\t\tid: \"MiniMaxAI/MiniMax-M2.7\",\n\t\tname: \"MiniMax-M2.7\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 202752,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"MiniMaxAI/MiniMax-M3\": {\n\t\tid: \"MiniMaxAI/MiniMax-M3\",\n\t\tname: \"MiniMax-M3\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 524288,\n\t\tmaxTokens: 250000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen2.5-7B-Instruct-Turbo\": {\n\t\tid: \"Qwen/Qwen2.5-7B-Instruct-Turbo\",\n\t\tname: \"Qwen 2.5 7B Instruct Turbo\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 0.3,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 32768,\n\t\tmaxTokens: 32768,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3-235B-A22B-Instruct-2507-tput\": {\n\t\tid: \"Qwen/Qwen3-235B-A22B-Instruct-2507-tput\",\n\t\tname: \"Qwen3 235B A22B Instruct 2507 FP8\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.2,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 262144,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.5-397B-A17B\": {\n\t\tid: \"Qwen/Qwen3.5-397B-A17B\",\n\t\tname: \"Qwen3.5 397B A17B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3.6,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 130000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.5-9B\": {\n\t\tid: \"Qwen/Qwen3.5-9B\",\n\t\tname: \"Qwen3.5 9B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.17,\n\t\t\toutput: 0.25,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.6-Plus\": {\n\t\tid: \"Qwen/Qwen3.6-Plus\",\n\t\tname: \"Qwen3.6 Plus\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 500000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"Qwen/Qwen3.7-Max\": {\n\t\tid: \"Qwen/Qwen3.7-Max\",\n\t\tname: \"Qwen3.7 Max\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 3.75,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 500000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"deepseek-ai/DeepSeek-V4-Pro\": {\n\t\tid: \"deepseek-ai/DeepSeek-V4-Pro\",\n\t\tname: \"DeepSeek V4 Pro\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":true,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.74,\n\t\t\toutput: 3.48,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 512000,\n\t\tmaxTokens: 384000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"essentialai/Rnj-1-Instruct\": {\n\t\tid: \"essentialai/Rnj-1-Instruct\",\n\t\tname: \"Rnj-1 Instruct\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.15,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 32768,\n\t\tmaxTokens: 32768,\n\t} satisfies Model<\"openai-completions\">,\n\t\"google/gemma-4-31B-it\": {\n\t\tid: \"google/gemma-4-31B-it\",\n\t\tname: \"Gemma 4 31B Instruct\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.39,\n\t\t\toutput: 0.97,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"meta-llama/Llama-3.3-70B-Instruct-Turbo\": {\n\t\tid: \"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\n\t\tname: \"Llama 3.3 70B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.04,\n\t\t\toutput: 1.04,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"moonshotai/Kimi-K2.6\": {\n\t\tid: \"moonshotai/Kimi-K2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.2,\n\t\t\toutput: 4.5,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 131000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"moonshotai/Kimi-K2.7-Code\": {\n\t\tid: \"moonshotai/Kimi-K2.7-Code\",\n\t\tname: \"Kimi K2.7 Code\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.19,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"nvidia/nemotron-3-ultra-550b-a55b\": {\n\t\tid: \"nvidia/nemotron-3-ultra-550b-a55b\",\n\t\tname: \"Nemotron 3 Ultra 550B A55B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3.6,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 512300,\n\t\tmaxTokens: 512300,\n\t} satisfies Model<\"openai-completions\">,\n\t\"openai/gpt-oss-120b\": {\n\t\tid: \"openai/gpt-oss-120b\",\n\t\tname: \"GPT OSS 120B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":true,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"openai\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"openai/gpt-oss-20b\": {\n\t\tid: \"openai/gpt-oss-20b\",\n\t\tname: \"GPT OSS 20B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":true,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"openai\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.05,\n\t\t\toutput: 0.2,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"zai-org/GLM-5\": {\n\t\tid: \"zai-org/GLM-5\",\n\t\tname: \"GLM-5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 3.2,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 202752,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"zai-org/GLM-5.1\": {\n\t\tid: \"zai-org/GLM-5.1\",\n\t\tname: \"GLM-5.1\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 202752,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"zai-org/GLM-5.2\": {\n\t\tid: \"zai-org/GLM-5.2\",\n\t\tname: \"GLM-5.2\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"together\",\n\t\tbaseUrl: \"https://api.together.ai/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"thinkingFormat\":\"together\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 164000,\n\t} satisfies Model<\"openai-completions\">,\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"context-transformer.d.ts","sourceRoot":"","sources":["../../src/tool-call-middleware/context-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,OAAO,EAMP,MAAM,aAAa,CAAC;AAoCrB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA+DnE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAMpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAiBtF"}
1
+ {"version":3,"file":"context-transformer.d.ts","sourceRoot":"","sources":["../../src/tool-call-middleware/context-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,OAAO,EAMP,MAAM,aAAa,CAAC;AAoCrB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA8DnE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAMpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAiBtF"}
@@ -54,7 +54,6 @@ const protocolRegistry = {
54
54
  "anthropic-xml": anthropicXmlProtocol,
55
55
  hermes: hermesProtocol,
56
56
  xml: morphXmlProtocol,
57
- "morph-xml": morphXmlProtocol,
58
57
  "yaml-xml": yamlXmlProtocol,
59
58
  "gemma4-delimiter": gemma4Protocol,
60
59
  };
@@ -119,8 +118,6 @@ function transformMessage(message, protocol) {
119
118
  }
120
119
  /**
121
120
  * Transforms an AssistantMessage, converting ToolCall content blocks to text.
122
- *
123
- * Flagged incomplete calls replay as canonical formatted calls from their sanitized parsed arguments; the paired error toolResult (created by agent-loop/pair-repair) is what tells the model the call failed — raw truncated markup never re-enters context.
124
121
  */
125
122
  function transformAssistantMessage(message, protocol) {
126
123
  // Check if message has any ToolCall content blocks
@@ -1 +1 @@
1
- {"version":3,"file":"context-transformer.js","sourceRoot":"","sources":["../../src/tool-call-middleware/context-transformer.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tAssistantMessage,\n\tContext,\n\tMessage,\n\tTextContent,\n\tThinkingContent,\n\tToolResultMessage,\n\tUserMessage,\n} from \"../types.ts\";\nimport {\n\tanthropicXmlFormatToolCall,\n\tanthropicXmlFormatToolResponse,\n\tanthropicXmlFormatToolsSystemPrompt,\n\tcreateAnthropicXmlStreamParser,\n\tparseAnthropicXmlGeneratedText,\n} from \"./protocols/anthropic-xml/index.ts\";\nimport {\n\tgemma4CreateStreamParser,\n\tgemma4FormatToolCall,\n\tgemma4FormatToolResponse,\n\tgemma4FormatToolsSystemPrompt,\n\tgemma4ParseGeneratedText,\n} from \"./protocols/gemma4.ts\";\nimport {\n\thermesCreateStreamParser,\n\thermesFormatToolCall,\n\thermesFormatToolResponse,\n\thermesFormatToolsSystemPrompt,\n\thermesParseGeneratedText,\n} from \"./protocols/hermes.ts\";\nimport {\n\tcreateMorphXmlStreamParser,\n\tmorphXmlFormatToolCall,\n\tmorphXmlFormatToolResponse,\n\tmorphXmlFormatToolsSystemPrompt,\n\tparseMorphXmlGeneratedText,\n} from \"./protocols/morph-xml.ts\";\nimport {\n\tcreateYamlXmlStreamParser,\n\tparseYamlXmlGeneratedText,\n\tyamlXmlFormatToolCall,\n\tyamlXmlFormatToolResponse,\n\tyamlXmlFormatToolsSystemPrompt,\n} from \"./protocols/yaml-xml.ts\";\nimport type { ToolCallFormat, ToolCallProtocol } from \"./types.ts\";\n\n/**\n * Hermes protocol implementation for tool call formatting and parsing.\n */\nconst hermesProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: hermesFormatToolsSystemPrompt,\n\tformatToolResponse: hermesFormatToolResponse,\n\tformatToolCall: hermesFormatToolCall,\n\tparseGeneratedText: hermesParseGeneratedText,\n\tcreateStreamParser: hermesCreateStreamParser,\n};\n\n/**\n * MorphXml protocol implementation for tool call formatting and parsing.\n */\nconst morphXmlProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: morphXmlFormatToolsSystemPrompt,\n\tformatToolResponse: morphXmlFormatToolResponse,\n\tformatToolCall: morphXmlFormatToolCall,\n\tparseGeneratedText: parseMorphXmlGeneratedText,\n\tcreateStreamParser: createMorphXmlStreamParser,\n};\n\nconst yamlXmlProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: yamlXmlFormatToolsSystemPrompt,\n\tformatToolResponse: yamlXmlFormatToolResponse,\n\tformatToolCall: yamlXmlFormatToolCall,\n\tparseGeneratedText: parseYamlXmlGeneratedText,\n\tcreateStreamParser: createYamlXmlStreamParser,\n};\n\n/**\n * Gemma 4 protocol implementation for tool call formatting and parsing.\n */\nconst gemma4Protocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: gemma4FormatToolsSystemPrompt,\n\tformatToolResponse: gemma4FormatToolResponse,\n\tformatToolCall: gemma4FormatToolCall,\n\tparseGeneratedText: gemma4ParseGeneratedText,\n\tcreateStreamParser: gemma4CreateStreamParser,\n};\n\nconst anthropicXmlProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: anthropicXmlFormatToolsSystemPrompt,\n\tformatToolResponse: anthropicXmlFormatToolResponse,\n\tformatToolCall: anthropicXmlFormatToolCall,\n\tparseGeneratedText: parseAnthropicXmlGeneratedText,\n\tcreateStreamParser: createAnthropicXmlStreamParser,\n};\n\n/**\n * Protocol registry mapping format strings to protocol implementations.\n */\nconst protocolRegistry: Record<ToolCallFormat, ToolCallProtocol> = {\n\t\"anthropic-xml\": anthropicXmlProtocol,\n\thermes: hermesProtocol,\n\txml: morphXmlProtocol,\n\t\"morph-xml\": morphXmlProtocol,\n\t\"yaml-xml\": yamlXmlProtocol,\n\t\"gemma4-delimiter\": gemma4Protocol,\n};\n\n/**\n * Gets the protocol implementation for a given tool call format.\n * @param format - The tool call format\n * @returns The protocol implementation\n * @throws Error if the format is not supported\n */\nexport function getProtocol(format: ToolCallFormat): ToolCallProtocol {\n\tconst protocol = protocolRegistry[format];\n\tif (!protocol) {\n\t\tthrow new Error(`Unsupported tool call format: ${format}`);\n\t}\n\treturn protocol;\n}\n\n/**\n * Transforms a context for text-based tool calling.\n * - Strips tools from context (provider sees tool-free request)\n * - Injects tool definitions into system prompt\n * - Converts tool call messages in history to text format\n * - Converts tool result messages to user messages with text content\n *\n * @param context - The original context\n * @param protocol - The protocol to use for formatting\n * @returns A new transformed context (original is not mutated)\n */\nexport function transformContext(context: Context, protocol: ToolCallProtocol): Context {\n\t// Build new context without mutating original\n\tconst transformed: Context = {\n\t\tsystemPrompt: context.systemPrompt,\n\t\tmessages: context.messages.map((msg) => transformMessage(msg, protocol)),\n\t\ttools: undefined, // Strip tools - provider sees tool-free request\n\t};\n\n\t// Inject tool definitions into system prompt if tools exist\n\tif (context.tools && context.tools.length > 0) {\n\t\tconst toolPrompt = protocol.formatToolsSystemPrompt(context.tools);\n\t\tif (toolPrompt) {\n\t\t\ttransformed.systemPrompt = context.systemPrompt ? `${toolPrompt}\\n\\n${context.systemPrompt}` : toolPrompt;\n\t\t}\n\t}\n\n\treturn transformed;\n}\n\n/**\n * Transforms a single message for text-based tool calling.\n * - AssistantMessage with ToolCall blocks: convert to text\n * - ToolResultMessage: convert to UserMessage with text content\n * - Other messages: pass through unchanged\n */\nfunction transformMessage(message: Message, protocol: ToolCallProtocol): Message {\n\tswitch (message.role) {\n\t\tcase \"assistant\": {\n\t\t\treturn transformAssistantMessage(message, protocol);\n\t\t}\n\t\tcase \"toolResult\": {\n\t\t\treturn transformToolResultMessage(message, protocol);\n\t\t}\n\t\tdefault: {\n\t\t\treturn message;\n\t\t}\n\t}\n}\n\n/**\n * Transforms an AssistantMessage, converting ToolCall content blocks to text.\n *\n * Flagged incomplete calls replay as canonical formatted calls from their sanitized parsed arguments; the paired error toolResult (created by agent-loop/pair-repair) is what tells the model the call failed — raw truncated markup never re-enters context.\n */\nfunction transformAssistantMessage(message: AssistantMessage, protocol: ToolCallProtocol): AssistantMessage {\n\t// Check if message has any ToolCall content blocks\n\tconst hasToolCalls = message.content.some((block) => block.type === \"toolCall\");\n\tif (!hasToolCalls) {\n\t\t// No tool calls - pass through unchanged\n\t\treturn message;\n\t}\n\n\t// Transform content blocks\n\tconst newContent: (TextContent | ThinkingContent)[] = [];\n\n\tfor (const block of message.content) {\n\t\tswitch (block.type) {\n\t\t\tcase \"text\": {\n\t\t\t\tnewContent.push(block);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"thinking\": {\n\t\t\t\tnewContent.push(block);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"toolCall\": {\n\t\t\t\tconst toolCallText = protocol.formatToolCall(block.name, block.arguments);\n\t\t\t\tnewContent.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: toolCallText,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return new AssistantMessage with transformed content\n\treturn {\n\t\t...message,\n\t\tcontent: newContent,\n\t};\n}\n\n/**\n * Transforms a ToolResultMessage to a UserMessage with text content.\n */\nfunction transformToolResultMessage(message: ToolResultMessage, protocol: ToolCallProtocol): UserMessage {\n\t// Format tool result as text using protocol formatter\n\tconst formattedResponse = protocol.formatToolResponse(message.toolName, message.toolCallId, message.content);\n\n\t// Return as UserMessage with text content\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: formattedResponse,\n\t\ttimestamp: message.timestamp,\n\t};\n}\n"]}
1
+ {"version":3,"file":"context-transformer.js","sourceRoot":"","sources":["../../src/tool-call-middleware/context-transformer.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tAssistantMessage,\n\tContext,\n\tMessage,\n\tTextContent,\n\tThinkingContent,\n\tToolResultMessage,\n\tUserMessage,\n} from \"../types.ts\";\nimport {\n\tanthropicXmlFormatToolCall,\n\tanthropicXmlFormatToolResponse,\n\tanthropicXmlFormatToolsSystemPrompt,\n\tcreateAnthropicXmlStreamParser,\n\tparseAnthropicXmlGeneratedText,\n} from \"./protocols/anthropic-xml/index.ts\";\nimport {\n\tgemma4CreateStreamParser,\n\tgemma4FormatToolCall,\n\tgemma4FormatToolResponse,\n\tgemma4FormatToolsSystemPrompt,\n\tgemma4ParseGeneratedText,\n} from \"./protocols/gemma4.ts\";\nimport {\n\thermesCreateStreamParser,\n\thermesFormatToolCall,\n\thermesFormatToolResponse,\n\thermesFormatToolsSystemPrompt,\n\thermesParseGeneratedText,\n} from \"./protocols/hermes.ts\";\nimport {\n\tcreateMorphXmlStreamParser,\n\tmorphXmlFormatToolCall,\n\tmorphXmlFormatToolResponse,\n\tmorphXmlFormatToolsSystemPrompt,\n\tparseMorphXmlGeneratedText,\n} from \"./protocols/morph-xml.ts\";\nimport {\n\tcreateYamlXmlStreamParser,\n\tparseYamlXmlGeneratedText,\n\tyamlXmlFormatToolCall,\n\tyamlXmlFormatToolResponse,\n\tyamlXmlFormatToolsSystemPrompt,\n} from \"./protocols/yaml-xml.ts\";\nimport type { ToolCallFormat, ToolCallProtocol } from \"./types.ts\";\n\n/**\n * Hermes protocol implementation for tool call formatting and parsing.\n */\nconst hermesProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: hermesFormatToolsSystemPrompt,\n\tformatToolResponse: hermesFormatToolResponse,\n\tformatToolCall: hermesFormatToolCall,\n\tparseGeneratedText: hermesParseGeneratedText,\n\tcreateStreamParser: hermesCreateStreamParser,\n};\n\n/**\n * MorphXml protocol implementation for tool call formatting and parsing.\n */\nconst morphXmlProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: morphXmlFormatToolsSystemPrompt,\n\tformatToolResponse: morphXmlFormatToolResponse,\n\tformatToolCall: morphXmlFormatToolCall,\n\tparseGeneratedText: parseMorphXmlGeneratedText,\n\tcreateStreamParser: createMorphXmlStreamParser,\n};\n\nconst yamlXmlProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: yamlXmlFormatToolsSystemPrompt,\n\tformatToolResponse: yamlXmlFormatToolResponse,\n\tformatToolCall: yamlXmlFormatToolCall,\n\tparseGeneratedText: parseYamlXmlGeneratedText,\n\tcreateStreamParser: createYamlXmlStreamParser,\n};\n\n/**\n * Gemma 4 protocol implementation for tool call formatting and parsing.\n */\nconst gemma4Protocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: gemma4FormatToolsSystemPrompt,\n\tformatToolResponse: gemma4FormatToolResponse,\n\tformatToolCall: gemma4FormatToolCall,\n\tparseGeneratedText: gemma4ParseGeneratedText,\n\tcreateStreamParser: gemma4CreateStreamParser,\n};\n\nconst anthropicXmlProtocol: ToolCallProtocol = {\n\tformatToolsSystemPrompt: anthropicXmlFormatToolsSystemPrompt,\n\tformatToolResponse: anthropicXmlFormatToolResponse,\n\tformatToolCall: anthropicXmlFormatToolCall,\n\tparseGeneratedText: parseAnthropicXmlGeneratedText,\n\tcreateStreamParser: createAnthropicXmlStreamParser,\n};\n\n/**\n * Protocol registry mapping format strings to protocol implementations.\n */\nconst protocolRegistry: Record<ToolCallFormat, ToolCallProtocol> = {\n\t\"anthropic-xml\": anthropicXmlProtocol,\n\thermes: hermesProtocol,\n\txml: morphXmlProtocol,\n\t\"yaml-xml\": yamlXmlProtocol,\n\t\"gemma4-delimiter\": gemma4Protocol,\n};\n\n/**\n * Gets the protocol implementation for a given tool call format.\n * @param format - The tool call format\n * @returns The protocol implementation\n * @throws Error if the format is not supported\n */\nexport function getProtocol(format: ToolCallFormat): ToolCallProtocol {\n\tconst protocol = protocolRegistry[format];\n\tif (!protocol) {\n\t\tthrow new Error(`Unsupported tool call format: ${format}`);\n\t}\n\treturn protocol;\n}\n\n/**\n * Transforms a context for text-based tool calling.\n * - Strips tools from context (provider sees tool-free request)\n * - Injects tool definitions into system prompt\n * - Converts tool call messages in history to text format\n * - Converts tool result messages to user messages with text content\n *\n * @param context - The original context\n * @param protocol - The protocol to use for formatting\n * @returns A new transformed context (original is not mutated)\n */\nexport function transformContext(context: Context, protocol: ToolCallProtocol): Context {\n\t// Build new context without mutating original\n\tconst transformed: Context = {\n\t\tsystemPrompt: context.systemPrompt,\n\t\tmessages: context.messages.map((msg) => transformMessage(msg, protocol)),\n\t\ttools: undefined, // Strip tools - provider sees tool-free request\n\t};\n\n\t// Inject tool definitions into system prompt if tools exist\n\tif (context.tools && context.tools.length > 0) {\n\t\tconst toolPrompt = protocol.formatToolsSystemPrompt(context.tools);\n\t\tif (toolPrompt) {\n\t\t\ttransformed.systemPrompt = context.systemPrompt ? `${toolPrompt}\\n\\n${context.systemPrompt}` : toolPrompt;\n\t\t}\n\t}\n\n\treturn transformed;\n}\n\n/**\n * Transforms a single message for text-based tool calling.\n * - AssistantMessage with ToolCall blocks: convert to text\n * - ToolResultMessage: convert to UserMessage with text content\n * - Other messages: pass through unchanged\n */\nfunction transformMessage(message: Message, protocol: ToolCallProtocol): Message {\n\tswitch (message.role) {\n\t\tcase \"assistant\": {\n\t\t\treturn transformAssistantMessage(message, protocol);\n\t\t}\n\t\tcase \"toolResult\": {\n\t\t\treturn transformToolResultMessage(message, protocol);\n\t\t}\n\t\tdefault: {\n\t\t\treturn message;\n\t\t}\n\t}\n}\n\n/**\n * Transforms an AssistantMessage, converting ToolCall content blocks to text.\n */\nfunction transformAssistantMessage(message: AssistantMessage, protocol: ToolCallProtocol): AssistantMessage {\n\t// Check if message has any ToolCall content blocks\n\tconst hasToolCalls = message.content.some((block) => block.type === \"toolCall\");\n\tif (!hasToolCalls) {\n\t\t// No tool calls - pass through unchanged\n\t\treturn message;\n\t}\n\n\t// Transform content blocks\n\tconst newContent: (TextContent | ThinkingContent)[] = [];\n\n\tfor (const block of message.content) {\n\t\tswitch (block.type) {\n\t\t\tcase \"text\": {\n\t\t\t\tnewContent.push(block);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"thinking\": {\n\t\t\t\tnewContent.push(block);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"toolCall\": {\n\t\t\t\tconst toolCallText = protocol.formatToolCall(block.name, block.arguments);\n\t\t\t\tnewContent.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: toolCallText,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return new AssistantMessage with transformed content\n\treturn {\n\t\t...message,\n\t\tcontent: newContent,\n\t};\n}\n\n/**\n * Transforms a ToolResultMessage to a UserMessage with text content.\n */\nfunction transformToolResultMessage(message: ToolResultMessage, protocol: ToolCallProtocol): UserMessage {\n\t// Format tool result as text using protocol formatter\n\tconst formattedResponse = protocol.formatToolResponse(message.toolName, message.toolCallId, message.content);\n\n\t// Return as UserMessage with text content\n\treturn {\n\t\trole: \"user\",\n\t\tcontent: formattedResponse,\n\t\ttimestamp: message.timestamp,\n\t};\n}\n"]}
@@ -7,7 +7,7 @@ export type { ParsedToolCall, StreamParser, StreamParserEvent, ToolCallFormat, T
7
7
  * Extracts the tool call format from a model's compatibility settings.
8
8
  * Only applies to models using the "openai-completions" API with compat settings.
9
9
  * @param model - The model to check
10
- * @returns The configured supported tool call format, or undefined if not set. "morph-xml" is canonical; "xml" remains a deprecated alias.
10
+ * @returns The configured supported tool call format, or undefined if not set
11
11
  */
12
12
  export declare function getToolCallFormat<TApi extends Api>(model: Model<TApi>): ToolCallFormat | undefined;
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool-call-middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAA2B,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,GAAG,SAAS,CAoBlG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool-call-middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAA2B,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,GAAG,SAAS,CAmBlG"}
@@ -4,7 +4,7 @@ export { wrapStreamWithToolCallMiddleware } from "./stream-wrapper.js";
4
4
  * Extracts the tool call format from a model's compatibility settings.
5
5
  * Only applies to models using the "openai-completions" API with compat settings.
6
6
  * @param model - The model to check
7
- * @returns The configured supported tool call format, or undefined if not set. "morph-xml" is canonical; "xml" remains a deprecated alias.
7
+ * @returns The configured supported tool call format, or undefined if not set
8
8
  */
9
9
  export function getToolCallFormat(model) {
10
10
  if (model.api !== "openai-completions") {
@@ -17,7 +17,6 @@ export function getToolCallFormat(model) {
17
17
  }
18
18
  if (format === "hermes" ||
19
19
  format === "xml" ||
20
- format === "morph-xml" ||
21
20
  format === "yaml-xml" ||
22
21
  format === "gemma4-delimiter" ||
23
22
  format === "anthropic-xml") {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tool-call-middleware/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAUvE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAmB,KAAkB;IACrE,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAA6C,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,EAAE,cAAc,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IACC,MAAM,KAAK,QAAQ;QACnB,MAAM,KAAK,KAAK;QAChB,MAAM,KAAK,WAAW;QACtB,MAAM,KAAK,UAAU;QACrB,MAAM,KAAK,kBAAkB;QAC7B,MAAM,KAAK,eAAe,EACzB,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC","sourcesContent":["import type { Api, Model, OpenAICompletionsCompat } from \"../types.ts\";\nimport type { ToolCallFormat } from \"./types.ts\";\n\nexport { getProtocol, transformContext } from \"./context-transformer.ts\";\nexport { wrapStreamWithToolCallMiddleware } from \"./stream-wrapper.ts\";\nexport type {\n\tParsedToolCall,\n\tStreamParser,\n\tStreamParserEvent,\n\tToolCallFormat,\n\tToolCallProtocol,\n\tToolResultContent,\n} from \"./types.ts\";\n\n/**\n * Extracts the tool call format from a model's compatibility settings.\n * Only applies to models using the \"openai-completions\" API with compat settings.\n * @param model - The model to check\n * @returns The configured supported tool call format, or undefined if not set. \"morph-xml\" is canonical; \"xml\" remains a deprecated alias.\n */\nexport function getToolCallFormat<TApi extends Api>(model: Model<TApi>): ToolCallFormat | undefined {\n\tif (model.api !== \"openai-completions\") {\n\t\treturn undefined;\n\t}\n\tconst compat = model.compat as OpenAICompletionsCompat | undefined;\n\tconst format = compat?.toolCallFormat;\n\tif (!format) {\n\t\treturn undefined;\n\t}\n\tif (\n\t\tformat === \"hermes\" ||\n\t\tformat === \"xml\" ||\n\t\tformat === \"morph-xml\" ||\n\t\tformat === \"yaml-xml\" ||\n\t\tformat === \"gemma4-delimiter\" ||\n\t\tformat === \"anthropic-xml\"\n\t) {\n\t\treturn format;\n\t}\n\treturn undefined;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tool-call-middleware/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAUvE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAmB,KAAkB;IACrE,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAA6C,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,EAAE,cAAc,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IACC,MAAM,KAAK,QAAQ;QACnB,MAAM,KAAK,KAAK;QAChB,MAAM,KAAK,UAAU;QACrB,MAAM,KAAK,kBAAkB;QAC7B,MAAM,KAAK,eAAe,EACzB,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC","sourcesContent":["import type { Api, Model, OpenAICompletionsCompat } from \"../types.ts\";\nimport type { ToolCallFormat } from \"./types.ts\";\n\nexport { getProtocol, transformContext } from \"./context-transformer.ts\";\nexport { wrapStreamWithToolCallMiddleware } from \"./stream-wrapper.ts\";\nexport type {\n\tParsedToolCall,\n\tStreamParser,\n\tStreamParserEvent,\n\tToolCallFormat,\n\tToolCallProtocol,\n\tToolResultContent,\n} from \"./types.ts\";\n\n/**\n * Extracts the tool call format from a model's compatibility settings.\n * Only applies to models using the \"openai-completions\" API with compat settings.\n * @param model - The model to check\n * @returns The configured supported tool call format, or undefined if not set\n */\nexport function getToolCallFormat<TApi extends Api>(model: Model<TApi>): ToolCallFormat | undefined {\n\tif (model.api !== \"openai-completions\") {\n\t\treturn undefined;\n\t}\n\tconst compat = model.compat as OpenAICompletionsCompat | undefined;\n\tconst format = compat?.toolCallFormat;\n\tif (!format) {\n\t\treturn undefined;\n\t}\n\tif (\n\t\tformat === \"hermes\" ||\n\t\tformat === \"xml\" ||\n\t\tformat === \"yaml-xml\" ||\n\t\tformat === \"gemma4-delimiter\" ||\n\t\tformat === \"anthropic-xml\"\n\t) {\n\t\treturn format;\n\t}\n\treturn undefined;\n}\n"]}
@@ -12,19 +12,8 @@ export type InvokeBlockMatch = {
12
12
  readonly end: number;
13
13
  readonly parameters: InvokeParameter[] | null;
14
14
  };
15
- export type TruncatedInvokeBlockMatch = {
16
- readonly parameters: InvokeParameter[];
17
- readonly isStructurallyComplete: boolean;
18
- };
19
15
  export declare function findInvokeOpenTag(text: string, fromIndex: number): InvokeOpenTagMatch | null;
20
16
  export declare function findIncompleteInvokeOpenTag(text: string, fromIndex: number): InvokeOpenTagMatch | null;
21
17
  export declare function scanInvokeBlock(text: string, openingTag: InvokeOpenTagMatch): InvokeBlockMatch | null;
22
- /**
23
- * Scans an invoke whose closing tag may be missing at stream end. A result is
24
- * structurally complete only when every parameter closed and the residue is
25
- * whitespace or a proper prefix of the invoke closing tag.
26
- */
27
- export declare function scanTruncatedInvokeBlock(text: string, openingTag: InvokeOpenTagMatch): TruncatedInvokeBlockMatch;
28
- export declare function isPotentialProtocolStart(candidate: string): boolean;
29
18
  export declare function getSafeInvokeTextLength(text: string): number;
30
19
  //# sourceMappingURL=invoke-tag-scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoke-tag-scanner.d.ts","sourceRoot":"","sources":["../../../../src/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACvC,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;CACzC,CAAC;AAwEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAS5F;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CA2BtG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,IAAI,CA4DrG;AA8CD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,yBAAyB,CAmChH;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CA4BnE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO5D"}
1
+ {"version":3,"file":"invoke-tag-scanner.d.ts","sourceRoot":"","sources":["../../../../src/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;CAC9C,CAAC;AAwEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAS5F;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CA2BtG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,IAAI,CA4DrG;AAqED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO5D"}
@@ -181,46 +181,7 @@ function isAttributePrefix(remainder) {
181
181
  const closingQuoteIndex = valuePrefix.indexOf(quote, 1);
182
182
  return closingQuoteIndex === -1 || valuePrefix.slice(closingQuoteIndex + 1).trim().length === 0;
183
183
  }
184
- function isWhitespaceOrInvokeClosePrefix(remainder) {
185
- const compactRemainder = remainder.replace(/\s/g, "");
186
- return (compactRemainder.length === 0 || ("</invoke>".startsWith(compactRemainder) && compactRemainder !== "</invoke>"));
187
- }
188
- /**
189
- * Scans an invoke whose closing tag may be missing at stream end. A result is
190
- * structurally complete only when every parameter closed and the residue is
191
- * whitespace or a proper prefix of the invoke closing tag.
192
- */
193
- export function scanTruncatedInvokeBlock(text, openingTag) {
194
- const parameters = [];
195
- let cursor = Math.max(0, openingTag.index + openingTag.length);
196
- while (cursor <= text.length) {
197
- const remainder = text.slice(cursor);
198
- if (isWhitespaceOrInvokeClosePrefix(remainder)) {
199
- return { parameters, isStructurallyComplete: true };
200
- }
201
- const leadingWhitespace = /^\s*/.exec(remainder)?.[0].length ?? 0;
202
- const parameterMarkup = findTag(PARAMETER_MARKUP, text, cursor + leadingWhitespace);
203
- if (!parameterMarkup || parameterMarkup.index !== cursor + leadingWhitespace) {
204
- return { parameters, isStructurallyComplete: false };
205
- }
206
- const parameterOpen = findParameterOpenTagAt(text, parameterMarkup.index);
207
- if (!parameterOpen) {
208
- return { parameters, isStructurallyComplete: false };
209
- }
210
- const valueStart = parameterOpen.index + parameterOpen.length;
211
- const boundary = findParameterBoundary(text, valueStart);
212
- if (boundary?.kind !== "parameter-close") {
213
- return { parameters, isStructurallyComplete: false };
214
- }
215
- parameters.push({
216
- name: parameterOpen.name,
217
- rawValue: text.slice(valueStart, boundary.match.index),
218
- });
219
- cursor = boundary.match.index + boundary.match.length;
220
- }
221
- return { parameters, isStructurallyComplete: false };
222
- }
223
- export function isPotentialProtocolStart(candidate) {
184
+ function isPotentialProtocolStart(candidate) {
224
185
  if (!candidate.startsWith("<")) {
225
186
  return false;
226
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"invoke-tag-scanner.js","sourceRoot":"","sources":["../../../../src/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.ts"],"names":[],"mappings":"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","sourcesContent":["import { decodeXmlEntities } from \"./xml-entities.ts\";\n\nconst PROTOCOL_TAG_NAMES = [\"invoke\", \"parameter\", \"function_calls\"] as const;\n\nconst INVOKE_OPEN_TAG_BODY = String.raw`<\\s*invoke\\b\\s+name\\s*=\\s*(?:\"([^\"]+)\"|'([^']+)')`;\nconst INVOKE_OPEN_TAG = new RegExp(`${INVOKE_OPEN_TAG_BODY}\\\\s*>`, \"g\");\nconst INVOKE_CLOSE_TAG = /<\\s*\\/\\s*invoke\\s*>/g;\nconst NESTED_INVOKE_OPEN_TAG = /<\\s*invoke\\b[^>]*>/g;\nconst PARAMETER_MARKUP = /<\\s*\\/?\\s*parameter\\b/g;\nconst PARAMETER_OPEN_TAG = /<\\s*parameter\\b\\s+name\\s*=\\s*(?:\"([^\"]+)\"|'([^']+)')\\s*>/g;\nconst PARAMETER_CLOSE_TAG = /<\\s*\\/\\s*parameter\\s*>/g;\n\ntype TagMatch = {\n\treadonly index: number;\n\treadonly length: number;\n};\n\ntype ParameterOpenTagMatch = TagMatch & {\n\treadonly name: string;\n};\n\ntype ParameterBoundary =\n\t| { readonly kind: \"parameter-close\"; readonly match: TagMatch }\n\t| { readonly kind: \"invoke-close\"; readonly match: TagMatch };\n\nexport type InvokeOpenTagMatch = {\n\treadonly index: number;\n\treadonly length: number;\n\treadonly toolName: string;\n};\n\nexport type InvokeParameter = {\n\treadonly name: string;\n\treadonly rawValue: string;\n};\n\nexport type InvokeBlockMatch = {\n\treadonly contentEnd: number;\n\treadonly end: number;\n\treadonly parameters: InvokeParameter[] | null;\n};\n\nexport type TruncatedInvokeBlockMatch = {\n\treadonly parameters: InvokeParameter[];\n\treadonly isStructurallyComplete: boolean;\n};\n\nfunction findTag(pattern: RegExp, text: string, fromIndex: number): TagMatch | null {\n\tpattern.lastIndex = Math.max(0, fromIndex);\n\tconst match = pattern.exec(text);\n\treturn match ? { index: match.index, length: match[0].length } : null;\n}\n\nfunction findParameterOpenTagAt(text: string, index: number): ParameterOpenTagMatch | null {\n\tPARAMETER_OPEN_TAG.lastIndex = index;\n\tconst match = PARAMETER_OPEN_TAG.exec(text);\n\tif (!match || match.index !== index) {\n\t\treturn null;\n\t}\n\n\tconst name = match[1] ?? match[2];\n\treturn name ? { index, length: match[0].length, name: decodeXmlEntities(name) } : null;\n}\n\nfunction findParameterBoundary(text: string, fromIndex: number): ParameterBoundary | null {\n\tlet cursor = fromIndex;\n\tlet nestedInvokeDepth = 0;\n\n\twhile (cursor < text.length) {\n\t\tconst parameterClose = findTag(PARAMETER_CLOSE_TAG, text, cursor);\n\t\tconst invokeOpen = findTag(NESTED_INVOKE_OPEN_TAG, text, cursor);\n\t\tconst invokeClose = findTag(INVOKE_CLOSE_TAG, text, cursor);\n\t\tconst nextIndex = Math.min(\n\t\t\tparameterClose?.index ?? Number.POSITIVE_INFINITY,\n\t\t\tinvokeOpen?.index ?? Number.POSITIVE_INFINITY,\n\t\t\tinvokeClose?.index ?? Number.POSITIVE_INFINITY,\n\t\t);\n\n\t\tif (!Number.isFinite(nextIndex)) {\n\t\t\treturn null;\n\t\t}\n\t\tif (invokeOpen && invokeOpen.index === nextIndex) {\n\t\t\tconst nextParameterClose = findTag(PARAMETER_CLOSE_TAG, text, invokeOpen.index + invokeOpen.length);\n\t\t\tconst nestedParameterOpen = findTag(PARAMETER_OPEN_TAG, text, invokeOpen.index + invokeOpen.length);\n\t\t\tconst nestedInvokeClose = findTag(INVOKE_CLOSE_TAG, text, invokeOpen.index + invokeOpen.length);\n\t\t\tif (\n\t\t\t\tnestedInvokeClose === null ||\n\t\t\t\t((nestedParameterOpen === null || nestedParameterOpen.index > nestedInvokeClose.index) &&\n\t\t\t\t\tnextParameterClose !== null &&\n\t\t\t\t\tnestedInvokeClose.index > nextParameterClose.index)\n\t\t\t) {\n\t\t\t\tcursor = invokeOpen.index + invokeOpen.length;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnestedInvokeDepth += 1;\n\t\t\tcursor = invokeOpen.index + invokeOpen.length;\n\t\t\tcontinue;\n\t\t}\n\t\tif (invokeClose && invokeClose.index === nextIndex) {\n\t\t\tif (nestedInvokeDepth === 0) {\n\t\t\t\treturn { kind: \"invoke-close\", match: invokeClose };\n\t\t\t}\n\t\t\tnestedInvokeDepth -= 1;\n\t\t\tcursor = invokeClose.index + invokeClose.length;\n\t\t\tcontinue;\n\t\t}\n\t\tif (parameterClose) {\n\t\t\tif (nestedInvokeDepth === 0) {\n\t\t\t\treturn { kind: \"parameter-close\", match: parameterClose };\n\t\t\t}\n\t\t\tcursor = parameterClose.index + parameterClose.length;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function findInvokeOpenTag(text: string, fromIndex: number): InvokeOpenTagMatch | null {\n\tINVOKE_OPEN_TAG.lastIndex = Math.max(0, fromIndex);\n\tconst match = INVOKE_OPEN_TAG.exec(text);\n\tif (!match || match.index === undefined) {\n\t\treturn null;\n\t}\n\n\tconst toolName = match[1] ?? match[2];\n\treturn toolName ? { index: match.index, length: match[0].length, toolName: decodeXmlEntities(toolName) } : null;\n}\n\nexport function findIncompleteInvokeOpenTag(text: string, fromIndex: number): InvokeOpenTagMatch | null {\n\tconst index = Math.max(0, fromIndex);\n\tconst candidate = text.slice(index);\n\tconst match = /^<\\s*invoke\\b\\s+name\\s*=\\s*/.exec(candidate);\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst quoteIndex = match[0].length;\n\tconst quote = candidate[quoteIndex];\n\tif (quote !== '\"' && quote !== \"'\") {\n\t\treturn null;\n\t}\n\n\tconst toolNameStart = quoteIndex + 1;\n\tconst closingQuoteIndex = candidate.indexOf(quote, toolNameStart);\n\tif (closingQuoteIndex === -1) {\n\t\tconst toolName = decodeXmlEntities(candidate.slice(toolNameStart));\n\t\treturn toolName.length > 0 ? { index, length: candidate.length, toolName } : null;\n\t}\n\n\tconst toolName = decodeXmlEntities(candidate.slice(toolNameStart, closingQuoteIndex));\n\tif (toolName.length === 0 || candidate.slice(closingQuoteIndex + 1).trim().length > 0) {\n\t\treturn null;\n\t}\n\n\treturn { index, length: candidate.length, toolName };\n}\n\nexport function scanInvokeBlock(text: string, openingTag: InvokeOpenTagMatch): InvokeBlockMatch | null {\n\tconst parameters: InvokeParameter[] = [];\n\tlet cursor = Math.max(0, openingTag.index + openingTag.length);\n\n\twhile (cursor <= text.length) {\n\t\tconst invokeClose = findTag(INVOKE_CLOSE_TAG, text, cursor);\n\t\tif (!invokeClose) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst parameterMarkup = findTag(PARAMETER_MARKUP, text, cursor);\n\t\tconst nestedInvokeOpen = findTag(NESTED_INVOKE_OPEN_TAG, text, cursor);\n\t\tif (\n\t\t\tnestedInvokeOpen &&\n\t\t\tnestedInvokeOpen.index < invokeClose.index &&\n\t\t\t(!parameterMarkup || nestedInvokeOpen.index < parameterMarkup.index)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!parameterMarkup || invokeClose.index < parameterMarkup.index) {\n\t\t\treturn {\n\t\t\t\tcontentEnd: invokeClose.index,\n\t\t\t\tend: invokeClose.index + invokeClose.length,\n\t\t\t\tparameters,\n\t\t\t};\n\t\t}\n\n\t\tconst parameterOpen = findParameterOpenTagAt(text, parameterMarkup.index);\n\t\tif (!parameterOpen) {\n\t\t\treturn {\n\t\t\t\tcontentEnd: invokeClose.index,\n\t\t\t\tend: invokeClose.index + invokeClose.length,\n\t\t\t\tparameters: null,\n\t\t\t};\n\t\t}\n\n\t\tconst valueStart = parameterOpen.index + parameterOpen.length;\n\t\tconst boundary = findParameterBoundary(text, valueStart);\n\t\tif (!boundary) {\n\t\t\treturn null;\n\t\t}\n\n\t\tswitch (boundary.kind) {\n\t\t\tcase \"invoke-close\":\n\t\t\t\treturn {\n\t\t\t\t\tcontentEnd: boundary.match.index,\n\t\t\t\t\tend: boundary.match.index + boundary.match.length,\n\t\t\t\t\tparameters: null,\n\t\t\t\t};\n\t\t\tcase \"parameter-close\":\n\t\t\t\tparameters.push({\n\t\t\t\t\tname: parameterOpen.name,\n\t\t\t\t\trawValue: text.slice(valueStart, boundary.match.index),\n\t\t\t\t});\n\t\t\t\tcursor = boundary.match.index + boundary.match.length;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction isAttributePrefix(remainder: string): boolean {\n\tconst attributeMatch = /^(\\s*)([A-Za-z]*)/.exec(remainder);\n\tif (!attributeMatch) {\n\t\treturn false;\n\t}\n\n\tconst attributeName = attributeMatch[2] ?? \"\";\n\tconst afterAttributeName = remainder.slice(attributeMatch[0].length);\n\tif (attributeName.length < \"name\".length) {\n\t\treturn \"name\".startsWith(attributeName) && afterAttributeName.trim().length === 0;\n\t}\n\tif (attributeName !== \"name\") {\n\t\treturn false;\n\t}\n\tif (afterAttributeName.trim().length === 0) {\n\t\treturn true;\n\t}\n\n\tconst equalsMatch = /^\\s*=\\s*(.*)$/.exec(afterAttributeName);\n\tif (!equalsMatch) {\n\t\treturn false;\n\t}\n\n\tconst valuePrefix = equalsMatch[1] ?? \"\";\n\tif (valuePrefix.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst quote = valuePrefix[0];\n\tif (quote !== '\"' && quote !== \"'\") {\n\t\treturn false;\n\t}\n\n\tconst closingQuoteIndex = valuePrefix.indexOf(quote, 1);\n\treturn closingQuoteIndex === -1 || valuePrefix.slice(closingQuoteIndex + 1).trim().length === 0;\n}\n\nfunction isWhitespaceOrInvokeClosePrefix(remainder: string): boolean {\n\tconst compactRemainder = remainder.replace(/\\s/g, \"\");\n\treturn (\n\t\tcompactRemainder.length === 0 || (\"</invoke>\".startsWith(compactRemainder) && compactRemainder !== \"</invoke>\")\n\t);\n}\n\n/**\n * Scans an invoke whose closing tag may be missing at stream end. A result is\n * structurally complete only when every parameter closed and the residue is\n * whitespace or a proper prefix of the invoke closing tag.\n */\nexport function scanTruncatedInvokeBlock(text: string, openingTag: InvokeOpenTagMatch): TruncatedInvokeBlockMatch {\n\tconst parameters: InvokeParameter[] = [];\n\tlet cursor = Math.max(0, openingTag.index + openingTag.length);\n\n\twhile (cursor <= text.length) {\n\t\tconst remainder = text.slice(cursor);\n\t\tif (isWhitespaceOrInvokeClosePrefix(remainder)) {\n\t\t\treturn { parameters, isStructurallyComplete: true };\n\t\t}\n\n\t\tconst leadingWhitespace = /^\\s*/.exec(remainder)?.[0].length ?? 0;\n\t\tconst parameterMarkup = findTag(PARAMETER_MARKUP, text, cursor + leadingWhitespace);\n\t\tif (!parameterMarkup || parameterMarkup.index !== cursor + leadingWhitespace) {\n\t\t\treturn { parameters, isStructurallyComplete: false };\n\t\t}\n\n\t\tconst parameterOpen = findParameterOpenTagAt(text, parameterMarkup.index);\n\t\tif (!parameterOpen) {\n\t\t\treturn { parameters, isStructurallyComplete: false };\n\t\t}\n\n\t\tconst valueStart = parameterOpen.index + parameterOpen.length;\n\t\tconst boundary = findParameterBoundary(text, valueStart);\n\t\tif (boundary?.kind !== \"parameter-close\") {\n\t\t\treturn { parameters, isStructurallyComplete: false };\n\t\t}\n\n\t\tparameters.push({\n\t\t\tname: parameterOpen.name,\n\t\t\trawValue: text.slice(valueStart, boundary.match.index),\n\t\t});\n\t\tcursor = boundary.match.index + boundary.match.length;\n\t}\n\n\treturn { parameters, isStructurallyComplete: false };\n}\n\nexport function isPotentialProtocolStart(candidate: string): boolean {\n\tif (!candidate.startsWith(\"<\")) {\n\t\treturn false;\n\t}\n\n\tconst body = candidate.slice(1);\n\tconst leadingWhitespace = /^\\s*/.exec(body)?.[0] ?? \"\";\n\tconst namePart = body.slice(leadingWhitespace.length);\n\tif (namePart.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst tagName = PROTOCOL_TAG_NAMES.find((name) => name.startsWith(namePart) || namePart.startsWith(name));\n\tif (!tagName) {\n\t\treturn false;\n\t}\n\tif (namePart.length < tagName.length) {\n\t\treturn true;\n\t}\n\n\tconst remainder = namePart.slice(tagName.length);\n\tif (remainder.includes(\">\")) {\n\t\treturn false;\n\t}\n\tif (tagName === \"function_calls\") {\n\t\treturn /^\\s*$/.test(remainder);\n\t}\n\treturn isAttributePrefix(remainder);\n}\n\nexport function getSafeInvokeTextLength(text: string): number {\n\tconst lastTagIndex = text.lastIndexOf(\"<\");\n\tif (lastTagIndex === -1) {\n\t\treturn text.length;\n\t}\n\n\treturn isPotentialProtocolStart(text.slice(lastTagIndex)) ? lastTagIndex : text.length;\n}\n"]}
1
+ {"version":3,"file":"invoke-tag-scanner.js","sourceRoot":"","sources":["../../../../src/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.ts"],"names":[],"mappings":"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","sourcesContent":["import { decodeXmlEntities } from \"./xml-entities.ts\";\n\nconst PROTOCOL_TAG_NAMES = [\"invoke\", \"parameter\", \"function_calls\"] as const;\n\nconst INVOKE_OPEN_TAG_BODY = String.raw`<\\s*invoke\\b\\s+name\\s*=\\s*(?:\"([^\"]+)\"|'([^']+)')`;\nconst INVOKE_OPEN_TAG = new RegExp(`${INVOKE_OPEN_TAG_BODY}\\\\s*>`, \"g\");\nconst INVOKE_CLOSE_TAG = /<\\s*\\/\\s*invoke\\s*>/g;\nconst NESTED_INVOKE_OPEN_TAG = /<\\s*invoke\\b[^>]*>/g;\nconst PARAMETER_MARKUP = /<\\s*\\/?\\s*parameter\\b/g;\nconst PARAMETER_OPEN_TAG = /<\\s*parameter\\b\\s+name\\s*=\\s*(?:\"([^\"]+)\"|'([^']+)')\\s*>/g;\nconst PARAMETER_CLOSE_TAG = /<\\s*\\/\\s*parameter\\s*>/g;\n\ntype TagMatch = {\n\treadonly index: number;\n\treadonly length: number;\n};\n\ntype ParameterOpenTagMatch = TagMatch & {\n\treadonly name: string;\n};\n\ntype ParameterBoundary =\n\t| { readonly kind: \"parameter-close\"; readonly match: TagMatch }\n\t| { readonly kind: \"invoke-close\"; readonly match: TagMatch };\n\nexport type InvokeOpenTagMatch = {\n\treadonly index: number;\n\treadonly length: number;\n\treadonly toolName: string;\n};\n\nexport type InvokeParameter = {\n\treadonly name: string;\n\treadonly rawValue: string;\n};\n\nexport type InvokeBlockMatch = {\n\treadonly contentEnd: number;\n\treadonly end: number;\n\treadonly parameters: InvokeParameter[] | null;\n};\n\nfunction findTag(pattern: RegExp, text: string, fromIndex: number): TagMatch | null {\n\tpattern.lastIndex = Math.max(0, fromIndex);\n\tconst match = pattern.exec(text);\n\treturn match ? { index: match.index, length: match[0].length } : null;\n}\n\nfunction findParameterOpenTagAt(text: string, index: number): ParameterOpenTagMatch | null {\n\tPARAMETER_OPEN_TAG.lastIndex = index;\n\tconst match = PARAMETER_OPEN_TAG.exec(text);\n\tif (!match || match.index !== index) {\n\t\treturn null;\n\t}\n\n\tconst name = match[1] ?? match[2];\n\treturn name ? { index, length: match[0].length, name: decodeXmlEntities(name) } : null;\n}\n\nfunction findParameterBoundary(text: string, fromIndex: number): ParameterBoundary | null {\n\tlet cursor = fromIndex;\n\tlet nestedInvokeDepth = 0;\n\n\twhile (cursor < text.length) {\n\t\tconst parameterClose = findTag(PARAMETER_CLOSE_TAG, text, cursor);\n\t\tconst invokeOpen = findTag(NESTED_INVOKE_OPEN_TAG, text, cursor);\n\t\tconst invokeClose = findTag(INVOKE_CLOSE_TAG, text, cursor);\n\t\tconst nextIndex = Math.min(\n\t\t\tparameterClose?.index ?? Number.POSITIVE_INFINITY,\n\t\t\tinvokeOpen?.index ?? Number.POSITIVE_INFINITY,\n\t\t\tinvokeClose?.index ?? Number.POSITIVE_INFINITY,\n\t\t);\n\n\t\tif (!Number.isFinite(nextIndex)) {\n\t\t\treturn null;\n\t\t}\n\t\tif (invokeOpen && invokeOpen.index === nextIndex) {\n\t\t\tconst nextParameterClose = findTag(PARAMETER_CLOSE_TAG, text, invokeOpen.index + invokeOpen.length);\n\t\t\tconst nestedParameterOpen = findTag(PARAMETER_OPEN_TAG, text, invokeOpen.index + invokeOpen.length);\n\t\t\tconst nestedInvokeClose = findTag(INVOKE_CLOSE_TAG, text, invokeOpen.index + invokeOpen.length);\n\t\t\tif (\n\t\t\t\tnestedInvokeClose === null ||\n\t\t\t\t((nestedParameterOpen === null || nestedParameterOpen.index > nestedInvokeClose.index) &&\n\t\t\t\t\tnextParameterClose !== null &&\n\t\t\t\t\tnestedInvokeClose.index > nextParameterClose.index)\n\t\t\t) {\n\t\t\t\tcursor = invokeOpen.index + invokeOpen.length;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnestedInvokeDepth += 1;\n\t\t\tcursor = invokeOpen.index + invokeOpen.length;\n\t\t\tcontinue;\n\t\t}\n\t\tif (invokeClose && invokeClose.index === nextIndex) {\n\t\t\tif (nestedInvokeDepth === 0) {\n\t\t\t\treturn { kind: \"invoke-close\", match: invokeClose };\n\t\t\t}\n\t\t\tnestedInvokeDepth -= 1;\n\t\t\tcursor = invokeClose.index + invokeClose.length;\n\t\t\tcontinue;\n\t\t}\n\t\tif (parameterClose) {\n\t\t\tif (nestedInvokeDepth === 0) {\n\t\t\t\treturn { kind: \"parameter-close\", match: parameterClose };\n\t\t\t}\n\t\t\tcursor = parameterClose.index + parameterClose.length;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function findInvokeOpenTag(text: string, fromIndex: number): InvokeOpenTagMatch | null {\n\tINVOKE_OPEN_TAG.lastIndex = Math.max(0, fromIndex);\n\tconst match = INVOKE_OPEN_TAG.exec(text);\n\tif (!match || match.index === undefined) {\n\t\treturn null;\n\t}\n\n\tconst toolName = match[1] ?? match[2];\n\treturn toolName ? { index: match.index, length: match[0].length, toolName: decodeXmlEntities(toolName) } : null;\n}\n\nexport function findIncompleteInvokeOpenTag(text: string, fromIndex: number): InvokeOpenTagMatch | null {\n\tconst index = Math.max(0, fromIndex);\n\tconst candidate = text.slice(index);\n\tconst match = /^<\\s*invoke\\b\\s+name\\s*=\\s*/.exec(candidate);\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst quoteIndex = match[0].length;\n\tconst quote = candidate[quoteIndex];\n\tif (quote !== '\"' && quote !== \"'\") {\n\t\treturn null;\n\t}\n\n\tconst toolNameStart = quoteIndex + 1;\n\tconst closingQuoteIndex = candidate.indexOf(quote, toolNameStart);\n\tif (closingQuoteIndex === -1) {\n\t\tconst toolName = decodeXmlEntities(candidate.slice(toolNameStart));\n\t\treturn toolName.length > 0 ? { index, length: candidate.length, toolName } : null;\n\t}\n\n\tconst toolName = decodeXmlEntities(candidate.slice(toolNameStart, closingQuoteIndex));\n\tif (toolName.length === 0 || candidate.slice(closingQuoteIndex + 1).trim().length > 0) {\n\t\treturn null;\n\t}\n\n\treturn { index, length: candidate.length, toolName };\n}\n\nexport function scanInvokeBlock(text: string, openingTag: InvokeOpenTagMatch): InvokeBlockMatch | null {\n\tconst parameters: InvokeParameter[] = [];\n\tlet cursor = Math.max(0, openingTag.index + openingTag.length);\n\n\twhile (cursor <= text.length) {\n\t\tconst invokeClose = findTag(INVOKE_CLOSE_TAG, text, cursor);\n\t\tif (!invokeClose) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst parameterMarkup = findTag(PARAMETER_MARKUP, text, cursor);\n\t\tconst nestedInvokeOpen = findTag(NESTED_INVOKE_OPEN_TAG, text, cursor);\n\t\tif (\n\t\t\tnestedInvokeOpen &&\n\t\t\tnestedInvokeOpen.index < invokeClose.index &&\n\t\t\t(!parameterMarkup || nestedInvokeOpen.index < parameterMarkup.index)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!parameterMarkup || invokeClose.index < parameterMarkup.index) {\n\t\t\treturn {\n\t\t\t\tcontentEnd: invokeClose.index,\n\t\t\t\tend: invokeClose.index + invokeClose.length,\n\t\t\t\tparameters,\n\t\t\t};\n\t\t}\n\n\t\tconst parameterOpen = findParameterOpenTagAt(text, parameterMarkup.index);\n\t\tif (!parameterOpen) {\n\t\t\treturn {\n\t\t\t\tcontentEnd: invokeClose.index,\n\t\t\t\tend: invokeClose.index + invokeClose.length,\n\t\t\t\tparameters: null,\n\t\t\t};\n\t\t}\n\n\t\tconst valueStart = parameterOpen.index + parameterOpen.length;\n\t\tconst boundary = findParameterBoundary(text, valueStart);\n\t\tif (!boundary) {\n\t\t\treturn null;\n\t\t}\n\n\t\tswitch (boundary.kind) {\n\t\t\tcase \"invoke-close\":\n\t\t\t\treturn {\n\t\t\t\t\tcontentEnd: boundary.match.index,\n\t\t\t\t\tend: boundary.match.index + boundary.match.length,\n\t\t\t\t\tparameters: null,\n\t\t\t\t};\n\t\t\tcase \"parameter-close\":\n\t\t\t\tparameters.push({\n\t\t\t\t\tname: parameterOpen.name,\n\t\t\t\t\trawValue: text.slice(valueStart, boundary.match.index),\n\t\t\t\t});\n\t\t\t\tcursor = boundary.match.index + boundary.match.length;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction isAttributePrefix(remainder: string): boolean {\n\tconst attributeMatch = /^(\\s*)([A-Za-z]*)/.exec(remainder);\n\tif (!attributeMatch) {\n\t\treturn false;\n\t}\n\n\tconst attributeName = attributeMatch[2] ?? \"\";\n\tconst afterAttributeName = remainder.slice(attributeMatch[0].length);\n\tif (attributeName.length < \"name\".length) {\n\t\treturn \"name\".startsWith(attributeName) && afterAttributeName.trim().length === 0;\n\t}\n\tif (attributeName !== \"name\") {\n\t\treturn false;\n\t}\n\tif (afterAttributeName.trim().length === 0) {\n\t\treturn true;\n\t}\n\n\tconst equalsMatch = /^\\s*=\\s*(.*)$/.exec(afterAttributeName);\n\tif (!equalsMatch) {\n\t\treturn false;\n\t}\n\n\tconst valuePrefix = equalsMatch[1] ?? \"\";\n\tif (valuePrefix.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst quote = valuePrefix[0];\n\tif (quote !== '\"' && quote !== \"'\") {\n\t\treturn false;\n\t}\n\n\tconst closingQuoteIndex = valuePrefix.indexOf(quote, 1);\n\treturn closingQuoteIndex === -1 || valuePrefix.slice(closingQuoteIndex + 1).trim().length === 0;\n}\n\nfunction isPotentialProtocolStart(candidate: string): boolean {\n\tif (!candidate.startsWith(\"<\")) {\n\t\treturn false;\n\t}\n\n\tconst body = candidate.slice(1);\n\tconst leadingWhitespace = /^\\s*/.exec(body)?.[0] ?? \"\";\n\tconst namePart = body.slice(leadingWhitespace.length);\n\tif (namePart.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst tagName = PROTOCOL_TAG_NAMES.find((name) => name.startsWith(namePart) || namePart.startsWith(name));\n\tif (!tagName) {\n\t\treturn false;\n\t}\n\tif (namePart.length < tagName.length) {\n\t\treturn true;\n\t}\n\n\tconst remainder = namePart.slice(tagName.length);\n\tif (remainder.includes(\">\")) {\n\t\treturn false;\n\t}\n\tif (tagName === \"function_calls\") {\n\t\treturn /^\\s*$/.test(remainder);\n\t}\n\treturn isAttributePrefix(remainder);\n}\n\nexport function getSafeInvokeTextLength(text: string): number {\n\tconst lastTagIndex = text.lastIndexOf(\"<\");\n\tif (lastTagIndex === -1) {\n\t\treturn text.length;\n\t}\n\n\treturn isPotentialProtocolStart(text.slice(lastTagIndex)) ? lastTagIndex : text.length;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/tool-call-middleware/protocols/anthropic-xml/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAoBrF,OAAO,EAAE,0CAA0C,EAAE,MAAM,sBAAsB,CAAC;AA8FlF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAwPnG"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/tool-call-middleware/protocols/anthropic-xml/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAiBrF,OAAO,EAAE,0CAA0C,EAAE,MAAM,sBAAsB,CAAC;AA6DlF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CA6LnG"}