@fractaal/pi-ai 1.4.1 → 1.6.0

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 (261) hide show
  1. package/README.md +50 -34
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +224 -27
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/azure-openai-responses.js +1 -1
  6. package/dist/api/azure-openai-responses.js.map +1 -1
  7. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  8. package/dist/api/bedrock-converse-stream.js +54 -25
  9. package/dist/api/bedrock-converse-stream.js.map +1 -1
  10. package/dist/api/bedrock-converse-stream.lazy.d.ts +7 -0
  11. package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -1
  12. package/dist/api/bedrock-converse-stream.lazy.js +18 -5
  13. package/dist/api/bedrock-converse-stream.lazy.js.map +1 -1
  14. package/dist/api/constrained-sampling.d.ts +4 -0
  15. package/dist/api/constrained-sampling.d.ts.map +1 -1
  16. package/dist/api/constrained-sampling.js +18 -0
  17. package/dist/api/constrained-sampling.js.map +1 -1
  18. package/dist/api/lazy.d.ts +1 -1
  19. package/dist/api/lazy.d.ts.map +1 -1
  20. package/dist/api/lazy.js +9 -8
  21. package/dist/api/lazy.js.map +1 -1
  22. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  23. package/dist/api/openai-codex-responses.js +7 -3
  24. package/dist/api/openai-codex-responses.js.map +1 -1
  25. package/dist/api/openai-completions.d.ts +2 -1
  26. package/dist/api/openai-completions.d.ts.map +1 -1
  27. package/dist/api/openai-completions.js +10 -3
  28. package/dist/api/openai-completions.js.map +1 -1
  29. package/dist/api/openai-responses.d.ts.map +1 -1
  30. package/dist/api/openai-responses.js +4 -2
  31. package/dist/api/openai-responses.js.map +1 -1
  32. package/dist/api/pi-messages.d.ts.map +1 -1
  33. package/dist/api/pi-messages.js +9 -0
  34. package/dist/api/pi-messages.js.map +1 -1
  35. package/dist/api/simple-options.d.ts +1 -0
  36. package/dist/api/simple-options.d.ts.map +1 -1
  37. package/dist/api/simple-options.js +16 -2
  38. package/dist/api/simple-options.js.map +1 -1
  39. package/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  40. package/dist/auth/oauth/github-copilot.js +4 -11
  41. package/dist/auth/oauth/github-copilot.js.map +1 -1
  42. package/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
  43. package/dist/auth/oauth/kimi-coding.js +4 -22
  44. package/dist/auth/oauth/kimi-coding.js.map +1 -1
  45. package/dist/auth/oauth/load.d.ts.map +1 -1
  46. package/dist/auth/oauth/load.js +5 -2
  47. package/dist/auth/oauth/load.js.map +1 -1
  48. package/dist/auth/oauth/meta.d.ts.map +1 -1
  49. package/dist/auth/oauth/meta.js +1 -14
  50. package/dist/auth/oauth/meta.js.map +1 -1
  51. package/dist/auth/oauth/radius.d.ts.map +1 -1
  52. package/dist/auth/oauth/radius.js +9 -3
  53. package/dist/auth/oauth/radius.js.map +1 -1
  54. package/dist/auth/oauth/trusted-url.d.ts +7 -0
  55. package/dist/auth/oauth/trusted-url.d.ts.map +1 -0
  56. package/dist/auth/oauth/trusted-url.js +12 -0
  57. package/dist/auth/oauth/trusted-url.js.map +1 -0
  58. package/dist/cli.js +6 -2
  59. package/dist/cli.js.map +1 -1
  60. package/dist/env-api-keys.d.ts.map +1 -1
  61. package/dist/env-api-keys.js +1 -0
  62. package/dist/env-api-keys.js.map +1 -1
  63. package/dist/index.d.ts +1 -3
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +1 -2
  66. package/dist/index.js.map +1 -1
  67. package/dist/lazy-bedrock-provider.d.ts +10 -0
  68. package/dist/lazy-bedrock-provider.d.ts.map +1 -0
  69. package/dist/lazy-bedrock-provider.js +13 -0
  70. package/dist/lazy-bedrock-provider.js.map +1 -0
  71. package/dist/lazy-oauth.d.ts +10 -0
  72. package/dist/lazy-oauth.d.ts.map +1 -0
  73. package/dist/lazy-oauth.js +23 -0
  74. package/dist/lazy-oauth.js.map +1 -0
  75. package/dist/models.d.ts.map +1 -1
  76. package/dist/models.generated.d.ts +4 -0
  77. package/dist/models.generated.d.ts.map +1 -1
  78. package/dist/models.generated.js +5 -1
  79. package/dist/models.generated.js.map +1 -1
  80. package/dist/models.js +8 -8
  81. package/dist/models.js.map +1 -1
  82. package/dist/providers/all.d.ts.map +1 -1
  83. package/dist/providers/all.js +2 -0
  84. package/dist/providers/all.js.map +1 -1
  85. package/dist/providers/amazon-bedrock.models.js +1 -1
  86. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  87. package/dist/providers/ant-ling.models.js +1 -1
  88. package/dist/providers/ant-ling.models.js.map +1 -1
  89. package/dist/providers/anthropic.models.js +1 -1
  90. package/dist/providers/anthropic.models.js.map +1 -1
  91. package/dist/providers/azure.models.js +1 -1
  92. package/dist/providers/azure.models.js.map +1 -1
  93. package/dist/providers/baseten.models.js +1 -1
  94. package/dist/providers/baseten.models.js.map +1 -1
  95. package/dist/providers/cerebras.models.js +1 -1
  96. package/dist/providers/cerebras.models.js.map +1 -1
  97. package/dist/providers/cloudflare-ai-gateway.models.js +1 -1
  98. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  99. package/dist/providers/cloudflare-workers-ai.models.js +1 -1
  100. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -1
  101. package/dist/providers/compat-schema.d.ts +441 -456
  102. package/dist/providers/compat-schema.d.ts.map +1 -1
  103. package/dist/providers/compat-schema.js +163 -112
  104. package/dist/providers/compat-schema.js.map +1 -1
  105. package/dist/providers/data/.manifest.json +1 -1
  106. package/dist/providers/data/amazon-bedrock.json +1 -1
  107. package/dist/providers/data/anthropic.json +1 -1
  108. package/dist/providers/data/azure.json +1 -1
  109. package/dist/providers/data/baseten.json +1 -1
  110. package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  111. package/dist/providers/data/cloudflare-workers-ai.json +1 -1
  112. package/dist/providers/data/fireworks.json +1 -1
  113. package/dist/providers/data/github-copilot.json +1 -1
  114. package/dist/providers/data/google-vertex.json +1 -1
  115. package/dist/providers/data/google.json +1 -1
  116. package/dist/providers/data/huggingface.json +1 -1
  117. package/dist/providers/data/kimi-coding.json +1 -1
  118. package/dist/providers/data/mistral.json +1 -1
  119. package/dist/providers/data/nvidia.json +1 -1
  120. package/dist/providers/data/openai-codex.json +1 -1
  121. package/dist/providers/data/openai.json +1 -1
  122. package/dist/providers/data/opencode-go.json +1 -1
  123. package/dist/providers/data/opencode.json +1 -1
  124. package/dist/providers/data/openrouter.json +1 -1
  125. package/dist/providers/data/qwen-token-plan-cn.json +1 -1
  126. package/dist/providers/data/qwen-token-plan-individual-cn.json +1 -0
  127. package/dist/providers/data/qwen-token-plan-individual.json +1 -1
  128. package/dist/providers/data/qwen-token-plan.json +1 -1
  129. package/dist/providers/data/radius.json +1 -1
  130. package/dist/providers/data/together.json +1 -1
  131. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  132. package/dist/providers/data/xai.json +1 -1
  133. package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
  134. package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
  135. package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
  136. package/dist/providers/data/xiaomi.json +1 -1
  137. package/dist/providers/data/zai-coding-cn.json +1 -1
  138. package/dist/providers/data/zai.json +1 -1
  139. package/dist/providers/deepseek.models.js +1 -1
  140. package/dist/providers/deepseek.models.js.map +1 -1
  141. package/dist/providers/fireworks.models.js +1 -1
  142. package/dist/providers/fireworks.models.js.map +1 -1
  143. package/dist/providers/github-copilot.d.ts +3 -1
  144. package/dist/providers/github-copilot.d.ts.map +1 -1
  145. package/dist/providers/github-copilot.js +13 -2
  146. package/dist/providers/github-copilot.js.map +1 -1
  147. package/dist/providers/github-copilot.models.js +1 -1
  148. package/dist/providers/github-copilot.models.js.map +1 -1
  149. package/dist/providers/google-vertex.models.js +1 -1
  150. package/dist/providers/google-vertex.models.js.map +1 -1
  151. package/dist/providers/google.models.js +1 -1
  152. package/dist/providers/google.models.js.map +1 -1
  153. package/dist/providers/groq.models.js +1 -1
  154. package/dist/providers/groq.models.js.map +1 -1
  155. package/dist/providers/huggingface.models.js +1 -1
  156. package/dist/providers/huggingface.models.js.map +1 -1
  157. package/dist/providers/kimi-coding.models.js +1 -1
  158. package/dist/providers/kimi-coding.models.js.map +1 -1
  159. package/dist/providers/meta.models.js +1 -1
  160. package/dist/providers/meta.models.js.map +1 -1
  161. package/dist/providers/minimax-cn.models.js +1 -1
  162. package/dist/providers/minimax-cn.models.js.map +1 -1
  163. package/dist/providers/minimax.models.js +1 -1
  164. package/dist/providers/minimax.models.js.map +1 -1
  165. package/dist/providers/mistral.models.js +1 -1
  166. package/dist/providers/mistral.models.js.map +1 -1
  167. package/dist/providers/model-schema.d.ts +65 -65
  168. package/dist/providers/model-schema.d.ts.map +1 -1
  169. package/dist/providers/model-schema.js +41 -30
  170. package/dist/providers/model-schema.js.map +1 -1
  171. package/dist/providers/moonshotai-cn.models.js +1 -1
  172. package/dist/providers/moonshotai-cn.models.js.map +1 -1
  173. package/dist/providers/moonshotai.models.js +1 -1
  174. package/dist/providers/moonshotai.models.js.map +1 -1
  175. package/dist/providers/nvidia.models.js +1 -1
  176. package/dist/providers/nvidia.models.js.map +1 -1
  177. package/dist/providers/openai-codex-catalog.d.ts.map +1 -1
  178. package/dist/providers/openai-codex-catalog.js +44 -44
  179. package/dist/providers/openai-codex-catalog.js.map +1 -1
  180. package/dist/providers/openai-codex.models.js +1 -1
  181. package/dist/providers/openai-codex.models.js.map +1 -1
  182. package/dist/providers/openai.models.js +1 -1
  183. package/dist/providers/openai.models.js.map +1 -1
  184. package/dist/providers/opencode-go.models.js +1 -1
  185. package/dist/providers/opencode-go.models.js.map +1 -1
  186. package/dist/providers/opencode.js +1 -1
  187. package/dist/providers/opencode.js.map +1 -1
  188. package/dist/providers/opencode.models.js +1 -1
  189. package/dist/providers/opencode.models.js.map +1 -1
  190. package/dist/providers/openrouter.models.js +1 -1
  191. package/dist/providers/openrouter.models.js.map +1 -1
  192. package/dist/providers/qwen-token-plan-cn.models.js +1 -1
  193. package/dist/providers/qwen-token-plan-cn.models.js.map +1 -1
  194. package/dist/providers/qwen-token-plan-individual-cn.d.ts +3 -0
  195. package/dist/providers/qwen-token-plan-individual-cn.d.ts.map +1 -0
  196. package/dist/providers/qwen-token-plan-individual-cn.js +15 -0
  197. package/dist/providers/qwen-token-plan-individual-cn.js.map +1 -0
  198. package/dist/providers/qwen-token-plan-individual-cn.models.d.ts +6 -0
  199. package/dist/providers/qwen-token-plan-individual-cn.models.d.ts.map +1 -0
  200. package/dist/providers/qwen-token-plan-individual-cn.models.js +8 -0
  201. package/dist/providers/qwen-token-plan-individual-cn.models.js.map +1 -0
  202. package/dist/providers/qwen-token-plan-individual.models.js +1 -1
  203. package/dist/providers/qwen-token-plan-individual.models.js.map +1 -1
  204. package/dist/providers/qwen-token-plan.models.js +1 -1
  205. package/dist/providers/qwen-token-plan.models.js.map +1 -1
  206. package/dist/providers/radius.models.js +1 -1
  207. package/dist/providers/radius.models.js.map +1 -1
  208. package/dist/providers/schema-builders.d.ts +10 -0
  209. package/dist/providers/schema-builders.d.ts.map +1 -0
  210. package/dist/providers/schema-builders.js +18 -0
  211. package/dist/providers/schema-builders.js.map +1 -0
  212. package/dist/providers/together.models.js +1 -1
  213. package/dist/providers/together.models.js.map +1 -1
  214. package/dist/providers/typesafe.models.js +1 -1
  215. package/dist/providers/typesafe.models.js.map +1 -1
  216. package/dist/providers/vercel-ai-gateway.models.js +1 -1
  217. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  218. package/dist/providers/xai.models.js +1 -1
  219. package/dist/providers/xai.models.js.map +1 -1
  220. package/dist/providers/xiaomi-token-plan-ams.models.js +1 -1
  221. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  222. package/dist/providers/xiaomi-token-plan-cn.models.js +1 -1
  223. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  224. package/dist/providers/xiaomi-token-plan-sgp.models.js +1 -1
  225. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  226. package/dist/providers/xiaomi.models.js +1 -1
  227. package/dist/providers/xiaomi.models.js.map +1 -1
  228. package/dist/providers/zai-coding-cn.models.js +1 -1
  229. package/dist/providers/zai-coding-cn.models.js.map +1 -1
  230. package/dist/providers/zai.models.js +1 -1
  231. package/dist/providers/zai.models.js.map +1 -1
  232. package/dist/types.d.ts +13 -3
  233. package/dist/types.d.ts.map +1 -1
  234. package/dist/types.js.map +1 -1
  235. package/dist/utils/error-body.d.ts +8 -0
  236. package/dist/utils/error-body.d.ts.map +1 -1
  237. package/dist/utils/error-body.js +28 -1
  238. package/dist/utils/error-body.js.map +1 -1
  239. package/dist/utils/overflow.d.ts.map +1 -1
  240. package/dist/utils/overflow.js +2 -0
  241. package/dist/utils/overflow.js.map +1 -1
  242. package/dist/utils/retry.d.ts.map +1 -1
  243. package/dist/utils/retry.js +3 -0
  244. package/dist/utils/retry.js.map +1 -1
  245. package/dist/utils/{typebox-helpers.d.ts → string-enum.d.ts} +5 -5
  246. package/dist/utils/string-enum.d.ts.map +1 -0
  247. package/dist/utils/{typebox-helpers.js → string-enum.js} +5 -6
  248. package/dist/utils/string-enum.js.map +1 -0
  249. package/dist/utils/transcript.d.ts +1 -1
  250. package/dist/utils/transcript.js +1 -1
  251. package/dist/utils/transcript.js.map +1 -1
  252. package/dist/utils/validation.d.ts +5 -3
  253. package/dist/utils/validation.d.ts.map +1 -1
  254. package/dist/utils/validation.js +25 -446
  255. package/dist/utils/validation.js.map +1 -1
  256. package/dist/utils/version.d.ts +1 -1
  257. package/dist/utils/version.js +1 -1
  258. package/dist/utils/version.js.map +1 -1
  259. package/package.json +18 -9
  260. package/dist/utils/typebox-helpers.d.ts.map +0 -1
  261. package/dist/utils/typebox-helpers.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openai-codex-catalog.js","sourceRoot":"","sources":["../../src/providers/openai-codex-catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { Compile } from \"typebox/compile\";\nimport type { RefreshModelsContext } from \"../models.ts\";\nimport type { Model, ModelThinkingLevel } from \"../types.ts\";\nimport modelDataManifest from \"./data/.manifest.json\" with { type: \"json\" };\n\nconst PROVIDER = \"openai-codex\";\nconst BASE_URL = \"https://chatgpt.com/backend-api\";\nconst REFRESH_INTERVAL_MS = 4 * 60 * 60_000;\nconst THINKING_LEVELS: ModelThinkingLevel[] = [\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"];\nconst WIRE_EFFORTS = new Set([\"none\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"]);\nconst CATALOG_SOURCE = `${BASE_URL}/codex/models`;\nconst validateTokenClaims = Compile(\n\tType.Object({\n\t\t\"https://api.openai.com/auth\": Type.Object({ chatgpt_account_id: Type.String({ minLength: 1 }) }),\n\t}),\n);\nconst catalogVersionSchema = Type.Object({ version: Type.String({ pattern: \"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+$\" }) });\nconst validateVersion = Compile(catalogVersionSchema);\nconst nativeCatalogSchema = Type.Object({\n\tmodels: Type.Array(\n\t\tType.Object({\n\t\t\tslug: Type.String({ minLength: 1, maxLength: 256 }),\n\t\t\tdisplay_name: Type.String({ minLength: 1, maxLength: 256 }),\n\t\t\tvisibility: Type.String(),\n\t\t\tcontext_window: Type.Optional(Type.Union([Type.Integer({ minimum: 1 }), Type.Null()])),\n\t\t\tmax_context_window: Type.Optional(Type.Union([Type.Integer({ minimum: 1 }), Type.Null()])),\n\t\t\tsupported_reasoning_levels: Type.Array(Type.Object({ effort: Type.String() })),\n\t\t\tinput_modalities: Type.Optional(Type.Array(Type.String())),\n\t\t}),\n\t),\n});\nconst validateNativeCatalog = Compile(nativeCatalogSchema);\nconst costRates = {\n\tinput: Type.Number({ minimum: 0 }),\n\toutput: Type.Number({ minimum: 0 }),\n\tcacheRead: Type.Number({ minimum: 0 }),\n\tcacheWrite: Type.Number({ minimum: 0 }),\n};\nconst metadataSchema = Type.Object({\n\tid: Type.String({ minLength: 1, maxLength: 256 }),\n\tname: Type.String({ minLength: 1 }),\n\treasoning: Type.Boolean(),\n\tinput: Type.Array(Type.Union([Type.Literal(\"text\"), Type.Literal(\"image\")])),\n\tcontextWindow: Type.Integer({ minimum: 1 }),\n\tmaxTokens: Type.Integer({ minimum: 1 }),\n\tmaxContextWindow: Type.Optional(Type.Integer({ minimum: 1 })),\n\tcost: Type.Object({\n\t\t...costRates,\n\t\ttiers: Type.Optional(Type.Array(Type.Object({ inputTokensAbove: Type.Number({ minimum: 0 }), ...costRates }))),\n\t}),\n\tthinkingLevelMap: Type.Optional(Type.Record(Type.String(), Type.Union([Type.String(), Type.Null()]))),\n\tcompat: Type.Optional(\n\t\tType.Object({\n\t\t\tsupportsDeveloperRole: Type.Optional(Type.Boolean()),\n\t\t\tsupportsLongCacheRetention: Type.Optional(Type.Boolean()),\n\t\t\tsupportsStrictMode: Type.Optional(Type.Boolean()),\n\t\t\tsupportsOpenAIGrammarTools: Type.Optional(Type.Boolean()),\n\t\t\tsupportsToolSearch: Type.Optional(Type.Boolean()),\n\t\t\tsupportsExplicitPromptCacheMode: Type.Optional(Type.Boolean()),\n\t\t}),\n\t),\n});\nconst validateMetadata = Compile(metadataSchema);\ntype NativeModel = Static<typeof nativeCatalogSchema>[\"models\"][number];\ntype CodexModel = Model<\"openai-codex-responses\">;\n\nexport interface OpenAICodexCatalogOptions {\n\t/** Native catalog transport only. Public version/pricing lookups never receive provider credentials. */\n\tcatalogFetch?: typeof fetch;\n\t/** A host relay authenticates catalog requests instead of a local OAuth token. */\n\tcatalogAuthMode?: \"oauth\" | \"transport\";\n\t/** Public metadata transport; useful for hosts with an explicit outbound HTTP adapter. */\n\tmetadataFetch?: typeof fetch;\n}\n\nfunction parseMetadata(value: unknown): CodexModel[] {\n\tconst rows: unknown[] = Array.isArray(value)\n\t\t? value\n\t\t: typeof value === \"object\" && value !== null\n\t\t\t? Object.values(value)\n\t\t\t: [];\n\treturn rows.flatMap((row) => {\n\t\tif (!validateMetadata.Check(row)) return [];\n\t\t// Catalogs describe model data, never where OAuth credentials are sent.\n\t\tconst { id, name, reasoning, input, contextWindow, maxTokens, maxContextWindow, cost, compat } = row;\n\t\tlet thinkingLevelMap: CodexModel[\"thinkingLevelMap\"];\n\t\tif (row.thinkingLevelMap) {\n\t\t\tthinkingLevelMap = {};\n\t\t\tfor (const level of THINKING_LEVELS) {\n\t\t\t\tconst mapped = row.thinkingLevelMap[level];\n\t\t\t\tif (mapped !== undefined)\n\t\t\t\t\tthinkingLevelMap[level] = mapped === null || WIRE_EFFORTS.has(mapped) ? mapped : null;\n\t\t\t}\n\t\t}\n\t\treturn [\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\treasoning,\n\t\t\t\tinput,\n\t\t\t\tcontextWindow,\n\t\t\t\tmaxTokens,\n\t\t\t\tmaxContextWindow,\n\t\t\t\tcost,\n\t\t\t\tthinkingLevelMap,\n\t\t\t\tcompat,\n\t\t\t\tprovider: PROVIDER,\n\t\t\t\tapi: \"openai-codex-responses\" as const,\n\t\t\t\tbaseUrl: BASE_URL,\n\t\t\t},\n\t\t];\n\t});\n}\n\nfunction applyNativeMetadata(native: NativeModel, known: CodexModel): CodexModel {\n\tconst thinkingLevelMap = { ...known.thinkingLevelMap };\n\tfor (const { effort } of native.supported_reasoning_levels) {\n\t\tif (WIRE_EFFORTS.has(effort)) {\n\t\t\tthinkingLevelMap[(effort === \"none\" ? \"off\" : effort) as ModelThinkingLevel] = effort;\n\t\t}\n\t}\n\tconst modalities = native.input_modalities?.filter(\n\t\t(value): value is \"text\" | \"image\" => value === \"text\" || value === \"image\",\n\t);\n\tconst contextWindow = native.context_window ?? known.contextWindow;\n\tconst maxContextWindow = native.max_context_window ?? known.maxContextWindow;\n\tif (maxContextWindow !== undefined && maxContextWindow < contextWindow) {\n\t\tthrow new Error(`Codex catalog has inconsistent context limits for ${native.slug}.`);\n\t}\n\treturn {\n\t\t...known,\n\t\tid: native.slug,\n\t\tname: native.display_name,\n\t\tcontextWindow,\n\t\tmaxContextWindow,\n\t\treasoning: known.reasoning || native.supported_reasoning_levels.length > 0,\n\t\tthinkingLevelMap,\n\t\tinput: modalities?.length ? modalities : known.input,\n\t};\n}\n\n/** Provider-owned, additive discovery over Pi's existing provider-scoped ModelsStore. */\nexport function createOpenAICodexCatalog(baseline: readonly CodexModel[], options: OpenAICodexCatalogOptions = {}) {\n\tlet models = [...baseline];\n\tlet pending: Promise<void> | undefined;\n\tconst metadataFetch: typeof fetch = options.metadataFetch ?? ((url, init) => globalThis.fetch(url, init));\n\tconst nativeFetch: typeof fetch = options.catalogFetch ?? ((url, init) => globalThis.fetch(url, init));\n\n\treturn {\n\t\tgetModels: (): readonly CodexModel[] => models,\n\t\tgetAllModels: (): readonly CodexModel[] => models,\n\t\trefreshModels(context: RefreshModelsContext): Promise<void> {\n\t\t\tif (pending) return pending;\n\t\t\tconst current = (async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst stored = context.stored;\n\t\t\t\t\tconst generatedAt = Date.parse(modelDataManifest.generatedAt);\n\t\t\t\t\tconst staleLegacyOverlay =\n\t\t\t\t\t\tstored?.source !== CATALOG_SOURCE &&\n\t\t\t\t\t\t(stored?.lastModified === undefined || stored.lastModified <= generatedAt);\n\t\t\t\t\tconst baselineIds = new Set(baseline.map((model) => model.id));\n\t\t\t\t\t// Preserve the bundled fixes that previously superseded old pi.dev\n\t\t\t\t\t// overlays. Unknown IDs remain additive; native metadata owns its\n\t\t\t\t\t// own freshness rather than borrowing the public feed's timestamp.\n\t\t\t\t\tconst cached = parseMetadata(stored?.models ?? []).filter(\n\t\t\t\t\t\t(model) => !staleLegacyOverlay || !baselineIds.has(model.id),\n\t\t\t\t\t);\n\t\t\t\t\tmodels = [...new Map([...baseline, ...cached].map((model) => [model.id, model])).values()];\n\t\t\t\t\tif (!context.allowNetwork || context.signal?.aborted) return;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!context.force &&\n\t\t\t\t\t\tstored?.source === CATALOG_SOURCE &&\n\t\t\t\t\t\tstored.checkedAt &&\n\t\t\t\t\t\tDate.now() - stored.checkedAt < REFRESH_INTERVAL_MS\n\t\t\t\t\t)\n\t\t\t\t\t\treturn;\n\t\t\t\t\tconst signal = AbortSignal.any([AbortSignal.timeout(20_000), context.signal]);\n\t\t\t\t\t// This is a catalog-query version, not an executable download or a\n\t\t\t\t\t// claim that Pi implements every feature of that Codex CLI release.\n\t\t\t\t\tconst versionResponse = await metadataFetch(\"https://registry.npmjs.org/@openai/codex/latest\", {\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t});\n\t\t\t\t\tif (!versionResponse.ok)\n\t\t\t\t\t\tthrow new Error(`Codex catalog version lookup failed (${versionResponse.status}).`);\n\t\t\t\t\tconst version: unknown = await versionResponse.json();\n\t\t\t\t\tif (!validateVersion.Check(version)) throw new Error(\"Codex catalog version metadata is invalid.\");\n\t\t\t\t\tconst headers = new Headers({ accept: \"application/json\", originator: \"pi\" });\n\t\t\t\t\tif (options.catalogAuthMode !== \"transport\") {\n\t\t\t\t\t\tconst credential = context.credential;\n\t\t\t\t\t\tif (credential?.type !== \"oauth\")\n\t\t\t\t\t\t\tthrow new Error(\"Codex catalog discovery requires OAuth or an authenticated host transport.\");\n\t\t\t\t\t\tlet accountId = credential.accountId;\n\t\t\t\t\t\tif (typeof accountId !== \"string\" || !accountId) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst payload: unknown = JSON.parse(atob(credential.access.split(\".\")[1] ?? \"\"));\n\t\t\t\t\t\t\t\tif (!validateTokenClaims.Check(payload)) throw new Error(\"Missing account ID\");\n\t\t\t\t\t\t\t\taccountId = payload[\"https://api.openai.com/auth\"].chatgpt_account_id;\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tthrow new Error(\"Codex catalog credential has no account ID.\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof accountId !== \"string\" || !accountId)\n\t\t\t\t\t\t\tthrow new Error(\"Codex catalog credential has no account ID.\");\n\t\t\t\t\t\theaders.set(\"Authorization\", `Bearer ${credential.access}`);\n\t\t\t\t\t\theaders.set(\"chatgpt-account-id\", accountId);\n\t\t\t\t\t}\n\t\t\t\t\tconst response = await nativeFetch(\n\t\t\t\t\t\t`${CATALOG_SOURCE}?client_version=${encodeURIComponent(version.version)}`,\n\t\t\t\t\t\t{ headers, signal },\n\t\t\t\t\t);\n\t\t\t\t\tif (!response.ok) throw new Error(`Codex model discovery failed (${response.status}).`);\n\t\t\t\t\tconst catalog: unknown = await response.json();\n\t\t\t\t\tif (!validateNativeCatalog.Check(catalog))\n\t\t\t\t\t\tthrow new Error(\"Codex model discovery returned an invalid catalog.\");\n\t\t\t\t\tlet metadata: CodexModel[] = [];\n\t\t\t\t\tlet metadataError: Error | undefined;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst enrichment = await metadataFetch(\"https://pi.dev/api/models/providers/openai-codex\", {\n\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t\theaders: { accept: \"application/json\" },\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (!enrichment.ok) throw new Error(`Codex model metadata request failed (${enrichment.status}).`);\n\t\t\t\t\t\tmetadata = parseMetadata(await enrichment.json());\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tmetadataError = error instanceof Error ? error : new Error(\"Codex model metadata is unavailable.\");\n\t\t\t\t\t}\n\t\t\t\t\tsignal.throwIfAborted();\n\t\t\t\t\tconst known = new Map([...models, ...metadata].map((model) => [model.id, model]));\n\t\t\t\t\tconst merged = new Map(models.map((model) => [model.id, model]));\n\t\t\t\t\tconst missing: string[] = [];\n\t\t\t\t\tfor (const model of catalog.models) {\n\t\t\t\t\t\tif (model.visibility !== \"list\" && !merged.has(model.slug)) continue;\n\t\t\t\t\t\tconst details = known.get(model.slug);\n\t\t\t\t\t\tif (!details) {\n\t\t\t\t\t\t\tmissing.push(model.slug);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmerged.set(model.slug, applyNativeMetadata(model, details));\n\t\t\t\t\t}\n\t\t\t\t\tconst refreshed = [...merged.values()];\n\t\t\t\t\tawait context.publish({\n\t\t\t\t\t\tpersist: { models: refreshed, source: CATALOG_SOURCE, checkedAt: Date.now() },\n\t\t\t\t\t\tupdate: () => {\n\t\t\t\t\t\t\tmodels = refreshed;\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tif (missing.length)\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Codex catalog refreshed; these models await output/pricing metadata: ${missing.join(\", \")}.`,\n\t\t\t\t\t\t);\n\t\t\t\t\tif (metadataError) throw metadataError;\n\t\t\t\t} finally {\n\t\t\t\t\t// Settled only after assignment below, even when the body finishes synchronously.\n\t\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t\tif (pending === current) pending = undefined;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})();\n\t\t\tpending = current;\n\t\t\treturn current;\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"openai-codex-catalog.js","sourceRoot":"","sources":["../../src/providers/openai-codex-catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import { arr, bool, compile, int, map, nul, num, oneOf, opt, type Static, str, union } from \"@earendil-works/pi-schema\";\nimport type { RefreshModelsContext } from \"../models.ts\";\nimport type { Model, ModelThinkingLevel } from \"../types.ts\";\nimport modelDataManifest from \"./data/.manifest.json\" with { type: \"json\" };\nimport { openObject as object } from \"./schema-builders.ts\";\n\nconst PROVIDER = \"openai-codex\";\nconst BASE_URL = \"https://chatgpt.com/backend-api\";\nconst REFRESH_INTERVAL_MS = 4 * 60 * 60_000;\nconst THINKING_LEVELS: ModelThinkingLevel[] = [\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"];\nconst WIRE_EFFORTS = new Set([\"none\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"]);\nconst CATALOG_SOURCE = `${BASE_URL}/codex/models`;\nconst validateTokenClaims = compile(\n\tobject({\n\t\t\"https://api.openai.com/auth\": object({ chatgpt_account_id: str({ minLength: 1 }) }),\n\t}),\n).check;\nconst catalogVersionSchema = object({ version: str({ pattern: \"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+$\" }) });\nconst validateVersion = compile(catalogVersionSchema).check;\nconst nativeCatalogSchema = object({\n\tmodels: arr(\n\t\tobject({\n\t\t\tslug: str({ minLength: 1, maxLength: 256 }),\n\t\t\tdisplay_name: str({ minLength: 1, maxLength: 256 }),\n\t\t\tvisibility: str(),\n\t\t\tcontext_window: opt(union([int({ minimum: 1 }), nul()])),\n\t\t\tmax_context_window: opt(union([int({ minimum: 1 }), nul()])),\n\t\t\tsupported_reasoning_levels: arr(object({ effort: str() })),\n\t\t\tinput_modalities: opt(arr(str())),\n\t\t}),\n\t),\n});\nconst validateNativeCatalog = compile(nativeCatalogSchema).check;\nconst costRates = {\n\tinput: num({ minimum: 0 }),\n\toutput: num({ minimum: 0 }),\n\tcacheRead: num({ minimum: 0 }),\n\tcacheWrite: num({ minimum: 0 }),\n};\nconst metadataSchema = object({\n\tid: str({ minLength: 1, maxLength: 256 }),\n\tname: str({ minLength: 1 }),\n\treasoning: bool(),\n\tinput: arr(oneOf([\"text\", \"image\"])),\n\tcontextWindow: int({ minimum: 1 }),\n\tmaxTokens: int({ minimum: 1 }),\n\tmaxContextWindow: opt(int({ minimum: 1 })),\n\tcost: object({\n\t\t...costRates,\n\t\ttiers: opt(arr(object({ inputTokensAbove: num({ minimum: 0 }), ...costRates }))),\n\t}),\n\tthinkingLevelMap: opt(map(union([str(), nul()]))),\n\tcompat: opt(\n\t\tobject({\n\t\t\tsupportsDeveloperRole: opt(bool()),\n\t\t\tsupportsLongCacheRetention: opt(bool()),\n\t\t\tsupportsStrictMode: opt(bool()),\n\t\t\tsupportsOpenAIGrammarTools: opt(bool()),\n\t\t\tsupportsToolSearch: opt(bool()),\n\t\t\tsupportsExplicitPromptCacheMode: opt(bool()),\n\t\t}),\n\t),\n});\nconst validateMetadata = compile(metadataSchema).check;\ntype NativeModel = Static<typeof nativeCatalogSchema>[\"models\"][number];\ntype CodexModel = Model<\"openai-codex-responses\">;\n\nexport interface OpenAICodexCatalogOptions {\n\t/** Native catalog transport only. Public version/pricing lookups never receive provider credentials. */\n\tcatalogFetch?: typeof fetch;\n\t/** A host relay authenticates catalog requests instead of a local OAuth token. */\n\tcatalogAuthMode?: \"oauth\" | \"transport\";\n\t/** Public metadata transport; useful for hosts with an explicit outbound HTTP adapter. */\n\tmetadataFetch?: typeof fetch;\n}\n\nfunction parseMetadata(value: unknown): CodexModel[] {\n\tconst rows: unknown[] = Array.isArray(value)\n\t\t? value\n\t\t: typeof value === \"object\" && value !== null\n\t\t\t? Object.values(value)\n\t\t\t: [];\n\treturn rows.flatMap((row) => {\n\t\tif (!validateMetadata(row)) return [];\n\t\t// Catalogs describe model data, never where OAuth credentials are sent.\n\t\tconst { id, name, reasoning, input, contextWindow, maxTokens, maxContextWindow, cost, compat } = row;\n\t\tlet thinkingLevelMap: CodexModel[\"thinkingLevelMap\"];\n\t\tif (row.thinkingLevelMap) {\n\t\t\tthinkingLevelMap = {};\n\t\t\tfor (const level of THINKING_LEVELS) {\n\t\t\t\tconst mapped = row.thinkingLevelMap[level];\n\t\t\t\tif (mapped !== undefined)\n\t\t\t\t\tthinkingLevelMap[level] = mapped === null || WIRE_EFFORTS.has(mapped) ? mapped : null;\n\t\t\t}\n\t\t}\n\t\treturn [\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\treasoning,\n\t\t\t\tinput,\n\t\t\t\tcontextWindow,\n\t\t\t\tmaxTokens,\n\t\t\t\tmaxContextWindow,\n\t\t\t\tcost,\n\t\t\t\tthinkingLevelMap,\n\t\t\t\tcompat,\n\t\t\t\tprovider: PROVIDER,\n\t\t\t\tapi: \"openai-codex-responses\" as const,\n\t\t\t\tbaseUrl: BASE_URL,\n\t\t\t},\n\t\t];\n\t});\n}\n\nfunction applyNativeMetadata(native: NativeModel, known: CodexModel): CodexModel {\n\tconst thinkingLevelMap = { ...known.thinkingLevelMap };\n\tfor (const { effort } of native.supported_reasoning_levels) {\n\t\tif (WIRE_EFFORTS.has(effort)) {\n\t\t\tthinkingLevelMap[(effort === \"none\" ? \"off\" : effort) as ModelThinkingLevel] = effort;\n\t\t}\n\t}\n\tconst modalities = native.input_modalities?.filter(\n\t\t(value): value is \"text\" | \"image\" => value === \"text\" || value === \"image\",\n\t);\n\tconst contextWindow = native.context_window ?? known.contextWindow;\n\tconst maxContextWindow = native.max_context_window ?? known.maxContextWindow;\n\tif (maxContextWindow !== undefined && maxContextWindow < contextWindow) {\n\t\tthrow new Error(`Codex catalog has inconsistent context limits for ${native.slug}.`);\n\t}\n\treturn {\n\t\t...known,\n\t\tid: native.slug,\n\t\tname: native.display_name,\n\t\tcontextWindow,\n\t\tmaxContextWindow,\n\t\treasoning: known.reasoning || native.supported_reasoning_levels.length > 0,\n\t\tthinkingLevelMap,\n\t\tinput: modalities?.length ? modalities : known.input,\n\t};\n}\n\n/** Provider-owned, additive discovery over Pi's existing provider-scoped ModelsStore. */\nexport function createOpenAICodexCatalog(baseline: readonly CodexModel[], options: OpenAICodexCatalogOptions = {}) {\n\tlet models = [...baseline];\n\tlet pending: Promise<void> | undefined;\n\tconst metadataFetch: typeof fetch = options.metadataFetch ?? ((url, init) => globalThis.fetch(url, init));\n\tconst nativeFetch: typeof fetch = options.catalogFetch ?? ((url, init) => globalThis.fetch(url, init));\n\n\treturn {\n\t\tgetModels: (): readonly CodexModel[] => models,\n\t\tgetAllModels: (): readonly CodexModel[] => models,\n\t\trefreshModels(context: RefreshModelsContext): Promise<void> {\n\t\t\tif (pending) return pending;\n\t\t\tconst current = (async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst stored = context.stored;\n\t\t\t\t\tconst generatedAt = Date.parse(modelDataManifest.generatedAt);\n\t\t\t\t\tconst staleLegacyOverlay =\n\t\t\t\t\t\tstored?.source !== CATALOG_SOURCE &&\n\t\t\t\t\t\t(stored?.lastModified === undefined || stored.lastModified <= generatedAt);\n\t\t\t\t\tconst baselineIds = new Set(baseline.map((model) => model.id));\n\t\t\t\t\t// Preserve the bundled fixes that previously superseded old pi.dev\n\t\t\t\t\t// overlays. Unknown IDs remain additive; native metadata owns its\n\t\t\t\t\t// own freshness rather than borrowing the public feed's timestamp.\n\t\t\t\t\tconst cached = parseMetadata(stored?.models ?? []).filter(\n\t\t\t\t\t\t(model) => !staleLegacyOverlay || !baselineIds.has(model.id),\n\t\t\t\t\t);\n\t\t\t\t\tmodels = [...new Map([...baseline, ...cached].map((model) => [model.id, model])).values()];\n\t\t\t\t\tif (!context.allowNetwork || context.signal?.aborted) return;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!context.force &&\n\t\t\t\t\t\tstored?.source === CATALOG_SOURCE &&\n\t\t\t\t\t\tstored.checkedAt &&\n\t\t\t\t\t\tDate.now() - stored.checkedAt < REFRESH_INTERVAL_MS\n\t\t\t\t\t)\n\t\t\t\t\t\treturn;\n\t\t\t\t\tconst signal = AbortSignal.any([AbortSignal.timeout(20_000), context.signal]);\n\t\t\t\t\t// This is a catalog-query version, not an executable download or a\n\t\t\t\t\t// claim that Pi implements every feature of that Codex CLI release.\n\t\t\t\t\tconst versionResponse = await metadataFetch(\"https://registry.npmjs.org/@openai/codex/latest\", {\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t});\n\t\t\t\t\tif (!versionResponse.ok)\n\t\t\t\t\t\tthrow new Error(`Codex catalog version lookup failed (${versionResponse.status}).`);\n\t\t\t\t\tconst version: unknown = await versionResponse.json();\n\t\t\t\t\tif (!validateVersion(version)) throw new Error(\"Codex catalog version metadata is invalid.\");\n\t\t\t\t\tconst headers = new Headers({ accept: \"application/json\", originator: \"pi\" });\n\t\t\t\t\tif (options.catalogAuthMode !== \"transport\") {\n\t\t\t\t\t\tconst credential = context.credential;\n\t\t\t\t\t\tif (credential?.type !== \"oauth\")\n\t\t\t\t\t\t\tthrow new Error(\"Codex catalog discovery requires OAuth or an authenticated host transport.\");\n\t\t\t\t\t\tlet accountId = credential.accountId;\n\t\t\t\t\t\tif (typeof accountId !== \"string\" || !accountId) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst payload: unknown = JSON.parse(atob(credential.access.split(\".\")[1] ?? \"\"));\n\t\t\t\t\t\t\t\tif (!validateTokenClaims(payload)) throw new Error(\"Missing account ID\");\n\t\t\t\t\t\t\t\taccountId = payload[\"https://api.openai.com/auth\"].chatgpt_account_id;\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tthrow new Error(\"Codex catalog credential has no account ID.\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof accountId !== \"string\" || !accountId)\n\t\t\t\t\t\t\tthrow new Error(\"Codex catalog credential has no account ID.\");\n\t\t\t\t\t\theaders.set(\"Authorization\", `Bearer ${credential.access}`);\n\t\t\t\t\t\theaders.set(\"chatgpt-account-id\", accountId);\n\t\t\t\t\t}\n\t\t\t\t\tconst response = await nativeFetch(\n\t\t\t\t\t\t`${CATALOG_SOURCE}?client_version=${encodeURIComponent(version.version)}`,\n\t\t\t\t\t\t{ headers, signal },\n\t\t\t\t\t);\n\t\t\t\t\tif (!response.ok) throw new Error(`Codex model discovery failed (${response.status}).`);\n\t\t\t\t\tconst catalog: unknown = await response.json();\n\t\t\t\t\tif (!validateNativeCatalog(catalog))\n\t\t\t\t\t\tthrow new Error(\"Codex model discovery returned an invalid catalog.\");\n\t\t\t\t\tlet metadata: CodexModel[] = [];\n\t\t\t\t\tlet metadataError: Error | undefined;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst enrichment = await metadataFetch(\"https://pi.dev/api/models/providers/openai-codex\", {\n\t\t\t\t\t\t\tsignal,\n\t\t\t\t\t\t\theaders: { accept: \"application/json\" },\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (!enrichment.ok) throw new Error(`Codex model metadata request failed (${enrichment.status}).`);\n\t\t\t\t\t\tmetadata = parseMetadata(await enrichment.json());\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tmetadataError = error instanceof Error ? error : new Error(\"Codex model metadata is unavailable.\");\n\t\t\t\t\t}\n\t\t\t\t\tsignal.throwIfAborted();\n\t\t\t\t\tconst known = new Map([...models, ...metadata].map((model) => [model.id, model]));\n\t\t\t\t\tconst merged = new Map(models.map((model) => [model.id, model]));\n\t\t\t\t\tconst missing: string[] = [];\n\t\t\t\t\tfor (const model of catalog.models) {\n\t\t\t\t\t\tif (model.visibility !== \"list\" && !merged.has(model.slug)) continue;\n\t\t\t\t\t\tconst details = known.get(model.slug);\n\t\t\t\t\t\tif (!details) {\n\t\t\t\t\t\t\tmissing.push(model.slug);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmerged.set(model.slug, applyNativeMetadata(model, details));\n\t\t\t\t\t}\n\t\t\t\t\tconst refreshed = [...merged.values()];\n\t\t\t\t\tawait context.publish({\n\t\t\t\t\t\tpersist: { models: refreshed, source: CATALOG_SOURCE, checkedAt: Date.now() },\n\t\t\t\t\t\tupdate: () => {\n\t\t\t\t\t\t\tmodels = refreshed;\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tif (missing.length)\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Codex catalog refreshed; these models await output/pricing metadata: ${missing.join(\", \")}.`,\n\t\t\t\t\t\t);\n\t\t\t\t\tif (metadataError) throw metadataError;\n\t\t\t\t} finally {\n\t\t\t\t\t// Settled only after assignment below, even when the body finishes synchronously.\n\t\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t\tif (pending === current) pending = undefined;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})();\n\t\t\tpending = current;\n\t\t\treturn current;\n\t\t},\n\t};\n}\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/openai-codex.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"openai-codex.models.js","sourceRoot":"","sources":["../../src/providers/openai-codex.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,0BAA0B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,mBAAmB,GAC/B,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,yBAAyB,GACrC,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,8BAA8B,GAC1C,6BAA6B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/openai-codex.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENAI_CODEX_MODELS: ChatModelCatalog<typeof values, \"openai-codex\"> =\n\tflattenChatModelCatalog(\"openai-codex\", values);\n\nexport const OPENAI_CODEX_IMAGE_MODELS: ImageModelCatalog<typeof values, \"openai-codex\"> =\n\tflattenImageModelCatalog(\"openai-codex\", values);\n\nexport const OPENAI_CODEX_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"openai-codex\"> =\n\tflattenClassifierModelCatalog(\"openai-codex\", values);\n"]}
1
+ {"version":3,"file":"openai-codex.models.js","sourceRoot":"","sources":["../../src/providers/openai-codex.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,0BAA0B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,mBAAmB,GAC/B,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,yBAAyB,GACrC,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,8BAA8B,GAC1C,6BAA6B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/openai-codex.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENAI_CODEX_MODELS: ChatModelCatalog<typeof values, \"openai-codex\"> =\n\tflattenChatModelCatalog(\"openai-codex\", values);\n\nexport const OPENAI_CODEX_IMAGE_MODELS: ImageModelCatalog<typeof values, \"openai-codex\"> =\n\tflattenImageModelCatalog(\"openai-codex\", values);\n\nexport const OPENAI_CODEX_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"openai-codex\"> =\n\tflattenClassifierModelCatalog(\"openai-codex\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/openai.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"openai.models.js","sourceRoot":"","sources":["../../src/providers/openai.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,aAAa,GACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC/B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GACpC,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/openai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENAI_MODELS: ChatModelCatalog<typeof values, \"openai\"> =\n\tflattenChatModelCatalog(\"openai\", values);\n\nexport const OPENAI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"openai\"> =\n\tflattenImageModelCatalog(\"openai\", values);\n\nexport const OPENAI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"openai\"> =\n\tflattenClassifierModelCatalog(\"openai\", values);\n"]}
1
+ {"version":3,"file":"openai.models.js","sourceRoot":"","sources":["../../src/providers/openai.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,aAAa,GACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC/B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GACpC,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/openai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENAI_MODELS: ChatModelCatalog<typeof values, \"openai\"> =\n\tflattenChatModelCatalog(\"openai\", values);\n\nexport const OPENAI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"openai\"> =\n\tflattenImageModelCatalog(\"openai\", values);\n\nexport const OPENAI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"openai\"> =\n\tflattenClassifierModelCatalog(\"openai\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/opencode-go.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-go.models.js","sourceRoot":"","sources":["../../src/providers/opencode-go.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,yBAAyB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,kBAAkB,GAC9B,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,wBAAwB,GACpC,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,6BAA6B,GACzC,6BAA6B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/opencode-go.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENCODE_GO_MODELS: ChatModelCatalog<typeof values, \"opencode-go\"> =\n\tflattenChatModelCatalog(\"opencode-go\", values);\n\nexport const OPENCODE_GO_IMAGE_MODELS: ImageModelCatalog<typeof values, \"opencode-go\"> =\n\tflattenImageModelCatalog(\"opencode-go\", values);\n\nexport const OPENCODE_GO_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"opencode-go\"> =\n\tflattenClassifierModelCatalog(\"opencode-go\", values);\n"]}
1
+ {"version":3,"file":"opencode-go.models.js","sourceRoot":"","sources":["../../src/providers/opencode-go.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,yBAAyB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,kBAAkB,GAC9B,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,wBAAwB,GACpC,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,6BAA6B,GACzC,6BAA6B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/opencode-go.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENCODE_GO_MODELS: ChatModelCatalog<typeof values, \"opencode-go\"> =\n\tflattenChatModelCatalog(\"opencode-go\", values);\n\nexport const OPENCODE_GO_IMAGE_MODELS: ImageModelCatalog<typeof values, \"opencode-go\"> =\n\tflattenImageModelCatalog(\"opencode-go\", values);\n\nexport const OPENCODE_GO_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"opencode-go\"> =\n\tflattenClassifierModelCatalog(\"opencode-go\", values);\n"]}
@@ -19,7 +19,7 @@ export function opencodeProvider() {
19
19
  "openai-completions": withOpenCodeSessionHeader(openAICompletionsApi()),
20
20
  "openai-responses": withOpenCodeSessionHeader(openAIResponsesApi()),
21
21
  },
22
- // OpenCode Zen serves TypeSafe's System One protocol at /zen/v1/systemone.
22
+ // OpenCode Zen serves TypeSafe's System One protocol at /inference/systemone/v1/systemone.
23
23
  classifiers: { "typesafe-system-one": typesafeSystemOneApi() },
24
24
  });
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,MAAM,UAAU,gBAAgB;IAC/B,OAAO,cAAc,CAAc;QAClC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;QACzE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACzF,GAAG,EAAE;YACJ,oBAAoB,EAAE,yBAAyB,CAAC,oBAAoB,EAAE,CAAC;YACvE,sBAAsB,EAAE,yBAAyB,CAAC,qBAAqB,EAAE,CAAC;YAC1E,oBAAoB,EAAE,yBAAyB,CAAC,oBAAoB,EAAE,CAAC;YACvE,kBAAkB,EAAE,yBAAyB,CAAC,kBAAkB,EAAE,CAAC;SACnE;QACD,2EAA2E;QAC3E,WAAW,EAAE,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,EAAE;KAC9D,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { googleGenerativeAIApi } from \"../api/google-generative-ai.lazy.ts\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.ts\";\nimport { typesafeSystemOneApi } from \"../api/typesafe-system-one.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { OPENCODE_CLASSIFIER_MODELS, OPENCODE_MODELS } from \"./opencode.models.ts\";\nimport { withOpenCodeSessionHeader } from \"./opencode-headers.ts\";\n\ntype OpenCodeApi = \"anthropic-messages\" | \"google-generative-ai\" | \"openai-completions\" | \"openai-responses\";\n\nexport function opencodeProvider(): Provider<OpenCodeApi> {\n\treturn createProvider<OpenCodeApi>({\n\t\tid: \"opencode\",\n\t\tname: \"OpenCode Zen\",\n\t\tauth: { apiKey: envApiKeyAuth(\"OpenCode API key\", [\"OPENCODE_API_KEY\"]) },\n\t\tmodels: [...Object.values(OPENCODE_MODELS), ...Object.values(OPENCODE_CLASSIFIER_MODELS)],\n\t\tapi: {\n\t\t\t\"anthropic-messages\": withOpenCodeSessionHeader(anthropicMessagesApi()),\n\t\t\t\"google-generative-ai\": withOpenCodeSessionHeader(googleGenerativeAIApi()),\n\t\t\t\"openai-completions\": withOpenCodeSessionHeader(openAICompletionsApi()),\n\t\t\t\"openai-responses\": withOpenCodeSessionHeader(openAIResponsesApi()),\n\t\t},\n\t\t// OpenCode Zen serves TypeSafe's System One protocol at /zen/v1/systemone.\n\t\tclassifiers: { \"typesafe-system-one\": typesafeSystemOneApi() },\n\t});\n}\n"]}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,MAAM,UAAU,gBAAgB;IAC/B,OAAO,cAAc,CAAc;QAClC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;QACzE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACzF,GAAG,EAAE;YACJ,oBAAoB,EAAE,yBAAyB,CAAC,oBAAoB,EAAE,CAAC;YACvE,sBAAsB,EAAE,yBAAyB,CAAC,qBAAqB,EAAE,CAAC;YAC1E,oBAAoB,EAAE,yBAAyB,CAAC,oBAAoB,EAAE,CAAC;YACvE,kBAAkB,EAAE,yBAAyB,CAAC,kBAAkB,EAAE,CAAC;SACnE;QACD,2FAA2F;QAC3F,WAAW,EAAE,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,EAAE;KAC9D,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { googleGenerativeAIApi } from \"../api/google-generative-ai.lazy.ts\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.ts\";\nimport { typesafeSystemOneApi } from \"../api/typesafe-system-one.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { OPENCODE_CLASSIFIER_MODELS, OPENCODE_MODELS } from \"./opencode.models.ts\";\nimport { withOpenCodeSessionHeader } from \"./opencode-headers.ts\";\n\ntype OpenCodeApi = \"anthropic-messages\" | \"google-generative-ai\" | \"openai-completions\" | \"openai-responses\";\n\nexport function opencodeProvider(): Provider<OpenCodeApi> {\n\treturn createProvider<OpenCodeApi>({\n\t\tid: \"opencode\",\n\t\tname: \"OpenCode Zen\",\n\t\tauth: { apiKey: envApiKeyAuth(\"OpenCode API key\", [\"OPENCODE_API_KEY\"]) },\n\t\tmodels: [...Object.values(OPENCODE_MODELS), ...Object.values(OPENCODE_CLASSIFIER_MODELS)],\n\t\tapi: {\n\t\t\t\"anthropic-messages\": withOpenCodeSessionHeader(anthropicMessagesApi()),\n\t\t\t\"google-generative-ai\": withOpenCodeSessionHeader(googleGenerativeAIApi()),\n\t\t\t\"openai-completions\": withOpenCodeSessionHeader(openAICompletionsApi()),\n\t\t\t\"openai-responses\": withOpenCodeSessionHeader(openAIResponsesApi()),\n\t\t},\n\t\t// OpenCode Zen serves TypeSafe's System One protocol at /inference/systemone/v1/systemone.\n\t\tclassifiers: { \"typesafe-system-one\": typesafeSystemOneApi() },\n\t});\n}\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/opencode.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.models.js","sourceRoot":"","sources":["../../src/providers/opencode.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,eAAe,GAC3B,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GACjC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GACtC,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/opencode.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENCODE_MODELS: ChatModelCatalog<typeof values, \"opencode\"> =\n\tflattenChatModelCatalog(\"opencode\", values);\n\nexport const OPENCODE_IMAGE_MODELS: ImageModelCatalog<typeof values, \"opencode\"> =\n\tflattenImageModelCatalog(\"opencode\", values);\n\nexport const OPENCODE_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"opencode\"> =\n\tflattenClassifierModelCatalog(\"opencode\", values);\n"]}
1
+ {"version":3,"file":"opencode.models.js","sourceRoot":"","sources":["../../src/providers/opencode.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,eAAe,GAC3B,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GACjC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GACtC,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/opencode.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENCODE_MODELS: ChatModelCatalog<typeof values, \"opencode\"> =\n\tflattenChatModelCatalog(\"opencode\", values);\n\nexport const OPENCODE_IMAGE_MODELS: ImageModelCatalog<typeof values, \"opencode\"> =\n\tflattenImageModelCatalog(\"opencode\", values);\n\nexport const OPENCODE_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"opencode\"> =\n\tflattenClassifierModelCatalog(\"opencode\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/openrouter.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.models.js","sourceRoot":"","sources":["../../src/providers/openrouter.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,iBAAiB,GAC7B,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,uBAAuB,GACnC,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,4BAA4B,GACxC,6BAA6B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/openrouter.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENROUTER_MODELS: ChatModelCatalog<typeof values, \"openrouter\"> =\n\tflattenChatModelCatalog(\"openrouter\", values);\n\nexport const OPENROUTER_IMAGE_MODELS: ImageModelCatalog<typeof values, \"openrouter\"> =\n\tflattenImageModelCatalog(\"openrouter\", values);\n\nexport const OPENROUTER_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"openrouter\"> =\n\tflattenClassifierModelCatalog(\"openrouter\", values);\n"]}
1
+ {"version":3,"file":"openrouter.models.js","sourceRoot":"","sources":["../../src/providers/openrouter.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,iBAAiB,GAC7B,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,uBAAuB,GACnC,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,4BAA4B,GACxC,6BAA6B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/openrouter.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const OPENROUTER_MODELS: ChatModelCatalog<typeof values, \"openrouter\"> =\n\tflattenChatModelCatalog(\"openrouter\", values);\n\nexport const OPENROUTER_IMAGE_MODELS: ImageModelCatalog<typeof values, \"openrouter\"> =\n\tflattenImageModelCatalog(\"openrouter\", values);\n\nexport const OPENROUTER_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"openrouter\"> =\n\tflattenClassifierModelCatalog(\"openrouter\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/qwen-token-plan-cn.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"qwen-token-plan-cn.models.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-cn.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,yBAAyB,GACrC,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,+BAA+B,GAC3C,wBAAwB,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,oCAAoC,GAChD,6BAA6B,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/qwen-token-plan-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const QWEN_TOKEN_PLAN_CN_MODELS: ChatModelCatalog<typeof values, \"qwen-token-plan-cn\"> =\n\tflattenChatModelCatalog(\"qwen-token-plan-cn\", values);\n\nexport const QWEN_TOKEN_PLAN_CN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"qwen-token-plan-cn\"> =\n\tflattenImageModelCatalog(\"qwen-token-plan-cn\", values);\n\nexport const QWEN_TOKEN_PLAN_CN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"qwen-token-plan-cn\"> =\n\tflattenClassifierModelCatalog(\"qwen-token-plan-cn\", values);\n"]}
1
+ {"version":3,"file":"qwen-token-plan-cn.models.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-cn.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,yBAAyB,GACrC,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,+BAA+B,GAC3C,wBAAwB,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,oCAAoC,GAChD,6BAA6B,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/qwen-token-plan-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const QWEN_TOKEN_PLAN_CN_MODELS: ChatModelCatalog<typeof values, \"qwen-token-plan-cn\"> =\n\tflattenChatModelCatalog(\"qwen-token-plan-cn\", values);\n\nexport const QWEN_TOKEN_PLAN_CN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"qwen-token-plan-cn\"> =\n\tflattenImageModelCatalog(\"qwen-token-plan-cn\", values);\n\nexport const QWEN_TOKEN_PLAN_CN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"qwen-token-plan-cn\"> =\n\tflattenClassifierModelCatalog(\"qwen-token-plan-cn\", values);\n"]}
@@ -0,0 +1,3 @@
1
+ import { type Provider } from "../models.ts";
2
+ export declare function qwenTokenPlanIndividualCnProvider(): Provider<"openai-completions">;
3
+ //# sourceMappingURL=qwen-token-plan-individual-cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qwen-token-plan-individual-cn.d.ts","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-individual-cn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,iCAAiC,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CASlF"}
@@ -0,0 +1,15 @@
1
+ import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
2
+ import { envApiKeyAuth } from "../auth/helpers.js";
3
+ import { createProvider } from "../models.js";
4
+ import { QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS } from "./qwen-token-plan-individual-cn.models.js";
5
+ export function qwenTokenPlanIndividualCnProvider() {
6
+ return createProvider({
7
+ id: "qwen-token-plan-individual-cn",
8
+ name: "Qwen Token Plan Individual CN",
9
+ baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
10
+ auth: { apiKey: envApiKeyAuth("Qwen Token Plan Individual CN API key", ["QWEN_TOKEN_PLAN_CN_API_KEY"]) },
11
+ models: Object.values(QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS),
12
+ api: openAICompletionsApi(),
13
+ });
14
+ }
15
+ //# sourceMappingURL=qwen-token-plan-individual-cn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qwen-token-plan-individual-cn.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-individual-cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,oCAAoC,EAAE,MAAM,2CAA2C,CAAC;AAEjG,MAAM,UAAU,iCAAiC;IAChD,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,+BAA+B;QACnC,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,oEAAoE;QAC7E,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,uCAAuC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE;QACxG,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC;QAC3D,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS } from \"./qwen-token-plan-individual-cn.models.ts\";\n\nexport function qwenTokenPlanIndividualCnProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"qwen-token-plan-individual-cn\",\n\t\tname: \"Qwen Token Plan Individual CN\",\n\t\tbaseUrl: \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Qwen Token Plan Individual CN API key\", [\"QWEN_TOKEN_PLAN_CN_API_KEY\"]) },\n\t\tmodels: Object.values(QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import values from "./data/qwen-token-plan-individual-cn.json";
2
+ import { type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from "../model-catalog.ts";
3
+ export declare const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS: ChatModelCatalog<typeof values, "qwen-token-plan-individual-cn">;
4
+ export declare const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_IMAGE_MODELS: ImageModelCatalog<typeof values, "qwen-token-plan-individual-cn">;
5
+ export declare const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, "qwen-token-plan-individual-cn">;
6
+ //# sourceMappingURL=qwen-token-plan-individual-cn.models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qwen-token-plan-individual-cn.models.d.ts","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-individual-cn.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,2CAA2C,CAAuB;AACrF,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,oCAAoC,EAAE,gBAAgB,CAAC,OAAO,MAAM,EAAE,+BAA+B,CACjD,CAAC;AAElE,eAAO,MAAM,0CAA0C,EAAE,iBAAiB,CAAC,OAAO,MAAM,EAAE,+BAA+B,CACvD,CAAC;AAEnE,eAAO,MAAM,+CAA+C,EAAE,sBAAsB,CAAC,OAAO,MAAM,EAAE,+BAA+B,CAC5D,CAAC"}
@@ -0,0 +1,8 @@
1
+ // This file is auto-generated by catalog/generate.ts
2
+ // Do not edit manually - run 'npm run generate-models' to update
3
+ import values from "./data/qwen-token-plan-individual-cn.json" with { type: "json" };
4
+ import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
5
+ export const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS = flattenChatModelCatalog("qwen-token-plan-individual-cn", values);
6
+ export const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_IMAGE_MODELS = flattenImageModelCatalog("qwen-token-plan-individual-cn", values);
7
+ export const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_CLASSIFIER_MODELS = flattenClassifierModelCatalog("qwen-token-plan-individual-cn", values);
8
+ //# sourceMappingURL=qwen-token-plan-individual-cn.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qwen-token-plan-individual-cn.models.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-individual-cn.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,2CAA2C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,oCAAoC,GAChD,uBAAuB,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,0CAA0C,GACtD,wBAAwB,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,+CAA+C,GAC3D,6BAA6B,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/qwen-token-plan-individual-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS: ChatModelCatalog<typeof values, \"qwen-token-plan-individual-cn\"> =\n\tflattenChatModelCatalog(\"qwen-token-plan-individual-cn\", values);\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"qwen-token-plan-individual-cn\"> =\n\tflattenImageModelCatalog(\"qwen-token-plan-individual-cn\", values);\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_CN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"qwen-token-plan-individual-cn\"> =\n\tflattenClassifierModelCatalog(\"qwen-token-plan-individual-cn\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/qwen-token-plan-individual.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"qwen-token-plan-individual.models.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-individual.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,wCAAwC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,iCAAiC,GAC7C,uBAAuB,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,uCAAuC,GACnD,wBAAwB,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,4CAA4C,GACxD,6BAA6B,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/qwen-token-plan-individual.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS: ChatModelCatalog<typeof values, \"qwen-token-plan-individual\"> =\n\tflattenChatModelCatalog(\"qwen-token-plan-individual\", values);\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_IMAGE_MODELS: ImageModelCatalog<typeof values, \"qwen-token-plan-individual\"> =\n\tflattenImageModelCatalog(\"qwen-token-plan-individual\", values);\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"qwen-token-plan-individual\"> =\n\tflattenClassifierModelCatalog(\"qwen-token-plan-individual\", values);\n"]}
1
+ {"version":3,"file":"qwen-token-plan-individual.models.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan-individual.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,wCAAwC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,iCAAiC,GAC7C,uBAAuB,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,uCAAuC,GACnD,wBAAwB,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,4CAA4C,GACxD,6BAA6B,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/qwen-token-plan-individual.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS: ChatModelCatalog<typeof values, \"qwen-token-plan-individual\"> =\n\tflattenChatModelCatalog(\"qwen-token-plan-individual\", values);\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_IMAGE_MODELS: ImageModelCatalog<typeof values, \"qwen-token-plan-individual\"> =\n\tflattenImageModelCatalog(\"qwen-token-plan-individual\", values);\n\nexport const QWEN_TOKEN_PLAN_INDIVIDUAL_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"qwen-token-plan-individual\"> =\n\tflattenClassifierModelCatalog(\"qwen-token-plan-individual\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/qwen-token-plan.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"qwen-token-plan.models.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,sBAAsB,GAClC,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,4BAA4B,GACxC,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,iCAAiC,GAC7C,6BAA6B,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/qwen-token-plan.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const QWEN_TOKEN_PLAN_MODELS: ChatModelCatalog<typeof values, \"qwen-token-plan\"> =\n\tflattenChatModelCatalog(\"qwen-token-plan\", values);\n\nexport const QWEN_TOKEN_PLAN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"qwen-token-plan\"> =\n\tflattenImageModelCatalog(\"qwen-token-plan\", values);\n\nexport const QWEN_TOKEN_PLAN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"qwen-token-plan\"> =\n\tflattenClassifierModelCatalog(\"qwen-token-plan\", values);\n"]}
1
+ {"version":3,"file":"qwen-token-plan.models.js","sourceRoot":"","sources":["../../src/providers/qwen-token-plan.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,sBAAsB,GAClC,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,4BAA4B,GACxC,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,iCAAiC,GAC7C,6BAA6B,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/qwen-token-plan.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const QWEN_TOKEN_PLAN_MODELS: ChatModelCatalog<typeof values, \"qwen-token-plan\"> =\n\tflattenChatModelCatalog(\"qwen-token-plan\", values);\n\nexport const QWEN_TOKEN_PLAN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"qwen-token-plan\"> =\n\tflattenImageModelCatalog(\"qwen-token-plan\", values);\n\nexport const QWEN_TOKEN_PLAN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"qwen-token-plan\"> =\n\tflattenClassifierModelCatalog(\"qwen-token-plan\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/radius.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"radius.models.js","sourceRoot":"","sources":["../../src/providers/radius.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,aAAa,GACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC/B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GACpC,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/radius.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const RADIUS_MODELS: ChatModelCatalog<typeof values, \"radius\"> =\n\tflattenChatModelCatalog(\"radius\", values);\n\nexport const RADIUS_IMAGE_MODELS: ImageModelCatalog<typeof values, \"radius\"> =\n\tflattenImageModelCatalog(\"radius\", values);\n\nexport const RADIUS_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"radius\"> =\n\tflattenClassifierModelCatalog(\"radius\", values);\n"]}
1
+ {"version":3,"file":"radius.models.js","sourceRoot":"","sources":["../../src/providers/radius.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,aAAa,GACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC/B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GACpC,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/radius.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const RADIUS_MODELS: ChatModelCatalog<typeof values, \"radius\"> =\n\tflattenChatModelCatalog(\"radius\", values);\n\nexport const RADIUS_IMAGE_MODELS: ImageModelCatalog<typeof values, \"radius\"> =\n\tflattenImageModelCatalog(\"radius\", values);\n\nexport const RADIUS_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"radius\"> =\n\tflattenClassifierModelCatalog(\"radius\", values);\n"]}
@@ -0,0 +1,10 @@
1
+ import { type Annotations, type Properties, type Schema, type Static, type StaticObject } from "@earendil-works/pi-schema";
2
+ /** An object that allows other properties; `additionalProperties: true` says so explicitly. */
3
+ export declare function openObject<const P extends Properties>(properties: P, options?: Annotations<StaticObject<P>> & {
4
+ readonly additionalProperties?: true;
5
+ }): Schema<StaticObject<P>>;
6
+ /** One string: `{ type: "string", const: value }`. */
7
+ export declare function stringLiteral<const V extends string>(value: V, options?: Annotations<V>): Schema<V>;
8
+ /** An object with any string keys and values of `value`: `{ type: "object", patternProperties: { "^.*$": value } }`. */
9
+ export declare function stringRecord<S extends Schema>(value: S, options?: Annotations<Record<string, Static<S>>>): Schema<Record<string, Static<S>>>;
10
+ //# sourceMappingURL=schema-builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-builders.d.ts","sourceRoot":"","sources":["../../src/providers/schema-builders.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,WAAW,EAEhB,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,MAAM,2BAA2B,CAAC;AAEnC,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,EACpD,UAAU,EAAE,CAAC,EACb,OAAO,GAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAA;CAAO,GACnF,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAIzB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,WAAW,CAAC,CAAC,CAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAEvG;AAED,wHAAwH;AACxH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC5C,KAAK,EAAE,CAAC,EACR,OAAO,GAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,GAClD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAEnC"}
@@ -0,0 +1,18 @@
1
+ // Builders for pi-ai's own configuration schemas (model metadata, compat settings): pi-schema's builders, shaped like the
2
+ // TypeBox schemas they replace, so models.json and the catalog validate exactly as before.
3
+ import { obj, } from "@earendil-works/pi-schema";
4
+ /** An object that allows other properties; `additionalProperties: true` says so explicitly. */
5
+ export function openObject(properties, options = {}) {
6
+ const { additionalProperties, ...annotations } = options;
7
+ const schema = obj(properties, { ...annotations, open: true });
8
+ return additionalProperties ? { ...schema, additionalProperties } : schema;
9
+ }
10
+ /** One string: `{ type: "string", const: value }`. */
11
+ export function stringLiteral(value, options = {}) {
12
+ return { type: "string", const: value, ...options };
13
+ }
14
+ /** An object with any string keys and values of `value`: `{ type: "object", patternProperties: { "^.*$": value } }`. */
15
+ export function stringRecord(value, options = {}) {
16
+ return { type: "object", patternProperties: { "^.*$": value }, ...options };
17
+ }
18
+ //# sourceMappingURL=schema-builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-builders.js","sourceRoot":"","sources":["../../src/providers/schema-builders.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,2FAA2F;AAE3F,OAAO,EAEN,GAAG,GAKH,MAAM,2BAA2B,CAAC;AAEnC,+FAA+F;AAC/F,MAAM,UAAU,UAAU,CACzB,UAAa,EACb,OAAO,GAA4E,EAAE;IAErF,MAAM,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,OAAO,oBAAoB,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC5E,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,aAAa,CAAyB,KAAQ,EAAE,OAAO,GAAmB,EAAE;IAC3F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACrD,CAAC;AAED,wHAAwH;AACxH,MAAM,UAAU,YAAY,CAC3B,KAAQ,EACR,OAAO,GAA2C,EAAE;IAEpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7E,CAAC","sourcesContent":["// Builders for pi-ai's own configuration schemas (model metadata, compat settings): pi-schema's builders, shaped like the\n// TypeBox schemas they replace, so models.json and the catalog validate exactly as before.\n\nimport {\n\ttype Annotations,\n\tobj,\n\ttype Properties,\n\ttype Schema,\n\ttype Static,\n\ttype StaticObject,\n} from \"@earendil-works/pi-schema\";\n\n/** An object that allows other properties; `additionalProperties: true` says so explicitly. */\nexport function openObject<const P extends Properties>(\n\tproperties: P,\n\toptions: Annotations<StaticObject<P>> & { readonly additionalProperties?: true } = {},\n): Schema<StaticObject<P>> {\n\tconst { additionalProperties, ...annotations } = options;\n\tconst schema = obj(properties, { ...annotations, open: true });\n\treturn additionalProperties ? { ...schema, additionalProperties } : schema;\n}\n\n/** One string: `{ type: \"string\", const: value }`. */\nexport function stringLiteral<const V extends string>(value: V, options: Annotations<V> = {}): Schema<V> {\n\treturn { type: \"string\", const: value, ...options };\n}\n\n/** An object with any string keys and values of `value`: `{ type: \"object\", patternProperties: { \"^.*$\": value } }`. */\nexport function stringRecord<S extends Schema>(\n\tvalue: S,\n\toptions: Annotations<Record<string, Static<S>>> = {},\n): Schema<Record<string, Static<S>>> {\n\treturn { type: \"object\", patternProperties: { \"^.*$\": value }, ...options };\n}\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/together.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"together.models.js","sourceRoot":"","sources":["../../src/providers/together.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,eAAe,GAC3B,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GACjC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GACtC,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/together.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const TOGETHER_MODELS: ChatModelCatalog<typeof values, \"together\"> =\n\tflattenChatModelCatalog(\"together\", values);\n\nexport const TOGETHER_IMAGE_MODELS: ImageModelCatalog<typeof values, \"together\"> =\n\tflattenImageModelCatalog(\"together\", values);\n\nexport const TOGETHER_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"together\"> =\n\tflattenClassifierModelCatalog(\"together\", values);\n"]}
1
+ {"version":3,"file":"together.models.js","sourceRoot":"","sources":["../../src/providers/together.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,eAAe,GAC3B,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GACjC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GACtC,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/together.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const TOGETHER_MODELS: ChatModelCatalog<typeof values, \"together\"> =\n\tflattenChatModelCatalog(\"together\", values);\n\nexport const TOGETHER_IMAGE_MODELS: ImageModelCatalog<typeof values, \"together\"> =\n\tflattenImageModelCatalog(\"together\", values);\n\nexport const TOGETHER_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"together\"> =\n\tflattenClassifierModelCatalog(\"together\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/typesafe.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"typesafe.models.js","sourceRoot":"","sources":["../../src/providers/typesafe.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,eAAe,GAC3B,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GACjC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GACtC,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/typesafe.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const TYPESAFE_MODELS: ChatModelCatalog<typeof values, \"typesafe\"> =\n\tflattenChatModelCatalog(\"typesafe\", values);\n\nexport const TYPESAFE_IMAGE_MODELS: ImageModelCatalog<typeof values, \"typesafe\"> =\n\tflattenImageModelCatalog(\"typesafe\", values);\n\nexport const TYPESAFE_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"typesafe\"> =\n\tflattenClassifierModelCatalog(\"typesafe\", values);\n"]}
1
+ {"version":3,"file":"typesafe.models.js","sourceRoot":"","sources":["../../src/providers/typesafe.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,eAAe,GAC3B,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GACjC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GACtC,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/typesafe.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const TYPESAFE_MODELS: ChatModelCatalog<typeof values, \"typesafe\"> =\n\tflattenChatModelCatalog(\"typesafe\", values);\n\nexport const TYPESAFE_IMAGE_MODELS: ImageModelCatalog<typeof values, \"typesafe\"> =\n\tflattenImageModelCatalog(\"typesafe\", values);\n\nexport const TYPESAFE_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"typesafe\"> =\n\tflattenClassifierModelCatalog(\"typesafe\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/vercel-ai-gateway.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"vercel-ai-gateway.models.js","sourceRoot":"","sources":["../../src/providers/vercel-ai-gateway.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,wBAAwB,GACpC,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,8BAA8B,GAC1C,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,mCAAmC,GAC/C,6BAA6B,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/vercel-ai-gateway.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const VERCEL_AI_GATEWAY_MODELS: ChatModelCatalog<typeof values, \"vercel-ai-gateway\"> =\n\tflattenChatModelCatalog(\"vercel-ai-gateway\", values);\n\nexport const VERCEL_AI_GATEWAY_IMAGE_MODELS: ImageModelCatalog<typeof values, \"vercel-ai-gateway\"> =\n\tflattenImageModelCatalog(\"vercel-ai-gateway\", values);\n\nexport const VERCEL_AI_GATEWAY_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"vercel-ai-gateway\"> =\n\tflattenClassifierModelCatalog(\"vercel-ai-gateway\", values);\n"]}
1
+ {"version":3,"file":"vercel-ai-gateway.models.js","sourceRoot":"","sources":["../../src/providers/vercel-ai-gateway.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,wBAAwB,GACpC,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,8BAA8B,GAC1C,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,mCAAmC,GAC/C,6BAA6B,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/vercel-ai-gateway.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const VERCEL_AI_GATEWAY_MODELS: ChatModelCatalog<typeof values, \"vercel-ai-gateway\"> =\n\tflattenChatModelCatalog(\"vercel-ai-gateway\", values);\n\nexport const VERCEL_AI_GATEWAY_IMAGE_MODELS: ImageModelCatalog<typeof values, \"vercel-ai-gateway\"> =\n\tflattenImageModelCatalog(\"vercel-ai-gateway\", values);\n\nexport const VERCEL_AI_GATEWAY_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"vercel-ai-gateway\"> =\n\tflattenClassifierModelCatalog(\"vercel-ai-gateway\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/xai.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"xai.models.js","sourceRoot":"","sources":["../../src/providers/xai.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,UAAU,GACtB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAC5B,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GACjC,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/xai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XAI_MODELS: ChatModelCatalog<typeof values, \"xai\"> =\n\tflattenChatModelCatalog(\"xai\", values);\n\nexport const XAI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xai\"> =\n\tflattenImageModelCatalog(\"xai\", values);\n\nexport const XAI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xai\"> =\n\tflattenClassifierModelCatalog(\"xai\", values);\n"]}
1
+ {"version":3,"file":"xai.models.js","sourceRoot":"","sources":["../../src/providers/xai.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,UAAU,GACtB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAC5B,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GACjC,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/xai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XAI_MODELS: ChatModelCatalog<typeof values, \"xai\"> =\n\tflattenChatModelCatalog(\"xai\", values);\n\nexport const XAI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xai\"> =\n\tflattenImageModelCatalog(\"xai\", values);\n\nexport const XAI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xai\"> =\n\tflattenClassifierModelCatalog(\"xai\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/xiaomi-token-plan-ams.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"xiaomi-token-plan-ams.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi-token-plan-ams.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,4BAA4B,GACxC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kCAAkC,GAC9C,wBAAwB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,uCAAuC,GACnD,6BAA6B,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/xiaomi-token-plan-ams.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_TOKEN_PLAN_AMS_MODELS: ChatModelCatalog<typeof values, \"xiaomi-token-plan-ams\"> =\n\tflattenChatModelCatalog(\"xiaomi-token-plan-ams\", values);\n\nexport const XIAOMI_TOKEN_PLAN_AMS_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi-token-plan-ams\"> =\n\tflattenImageModelCatalog(\"xiaomi-token-plan-ams\", values);\n\nexport const XIAOMI_TOKEN_PLAN_AMS_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi-token-plan-ams\"> =\n\tflattenClassifierModelCatalog(\"xiaomi-token-plan-ams\", values);\n"]}
1
+ {"version":3,"file":"xiaomi-token-plan-ams.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi-token-plan-ams.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,4BAA4B,GACxC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kCAAkC,GAC9C,wBAAwB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,uCAAuC,GACnD,6BAA6B,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/xiaomi-token-plan-ams.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_TOKEN_PLAN_AMS_MODELS: ChatModelCatalog<typeof values, \"xiaomi-token-plan-ams\"> =\n\tflattenChatModelCatalog(\"xiaomi-token-plan-ams\", values);\n\nexport const XIAOMI_TOKEN_PLAN_AMS_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi-token-plan-ams\"> =\n\tflattenImageModelCatalog(\"xiaomi-token-plan-ams\", values);\n\nexport const XIAOMI_TOKEN_PLAN_AMS_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi-token-plan-ams\"> =\n\tflattenClassifierModelCatalog(\"xiaomi-token-plan-ams\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/xiaomi-token-plan-cn.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"xiaomi-token-plan-cn.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi-token-plan-cn.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,kCAAkC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,2BAA2B,GACvC,uBAAuB,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,iCAAiC,GAC7C,wBAAwB,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,sCAAsC,GAClD,6BAA6B,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/xiaomi-token-plan-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_TOKEN_PLAN_CN_MODELS: ChatModelCatalog<typeof values, \"xiaomi-token-plan-cn\"> =\n\tflattenChatModelCatalog(\"xiaomi-token-plan-cn\", values);\n\nexport const XIAOMI_TOKEN_PLAN_CN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi-token-plan-cn\"> =\n\tflattenImageModelCatalog(\"xiaomi-token-plan-cn\", values);\n\nexport const XIAOMI_TOKEN_PLAN_CN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi-token-plan-cn\"> =\n\tflattenClassifierModelCatalog(\"xiaomi-token-plan-cn\", values);\n"]}
1
+ {"version":3,"file":"xiaomi-token-plan-cn.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi-token-plan-cn.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,kCAAkC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,2BAA2B,GACvC,uBAAuB,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,iCAAiC,GAC7C,wBAAwB,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,sCAAsC,GAClD,6BAA6B,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/xiaomi-token-plan-cn.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_TOKEN_PLAN_CN_MODELS: ChatModelCatalog<typeof values, \"xiaomi-token-plan-cn\"> =\n\tflattenChatModelCatalog(\"xiaomi-token-plan-cn\", values);\n\nexport const XIAOMI_TOKEN_PLAN_CN_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi-token-plan-cn\"> =\n\tflattenImageModelCatalog(\"xiaomi-token-plan-cn\", values);\n\nexport const XIAOMI_TOKEN_PLAN_CN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi-token-plan-cn\"> =\n\tflattenClassifierModelCatalog(\"xiaomi-token-plan-cn\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/xiaomi-token-plan-sgp.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"xiaomi-token-plan-sgp.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi-token-plan-sgp.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,4BAA4B,GACxC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kCAAkC,GAC9C,wBAAwB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,uCAAuC,GACnD,6BAA6B,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/xiaomi-token-plan-sgp.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_TOKEN_PLAN_SGP_MODELS: ChatModelCatalog<typeof values, \"xiaomi-token-plan-sgp\"> =\n\tflattenChatModelCatalog(\"xiaomi-token-plan-sgp\", values);\n\nexport const XIAOMI_TOKEN_PLAN_SGP_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi-token-plan-sgp\"> =\n\tflattenImageModelCatalog(\"xiaomi-token-plan-sgp\", values);\n\nexport const XIAOMI_TOKEN_PLAN_SGP_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi-token-plan-sgp\"> =\n\tflattenClassifierModelCatalog(\"xiaomi-token-plan-sgp\", values);\n"]}
1
+ {"version":3,"file":"xiaomi-token-plan-sgp.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi-token-plan-sgp.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,4BAA4B,GACxC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kCAAkC,GAC9C,wBAAwB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,uCAAuC,GACnD,6BAA6B,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/xiaomi-token-plan-sgp.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_TOKEN_PLAN_SGP_MODELS: ChatModelCatalog<typeof values, \"xiaomi-token-plan-sgp\"> =\n\tflattenChatModelCatalog(\"xiaomi-token-plan-sgp\", values);\n\nexport const XIAOMI_TOKEN_PLAN_SGP_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi-token-plan-sgp\"> =\n\tflattenImageModelCatalog(\"xiaomi-token-plan-sgp\", values);\n\nexport const XIAOMI_TOKEN_PLAN_SGP_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi-token-plan-sgp\"> =\n\tflattenClassifierModelCatalog(\"xiaomi-token-plan-sgp\", values);\n"]}
@@ -1,4 +1,4 @@
1
- // This file is auto-generated by scripts/generate-models.ts
1
+ // This file is auto-generated by catalog/generate.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/xiaomi.json" with { type: "json" };
4
4
  import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
@@ -1 +1 @@
1
- {"version":3,"file":"xiaomi.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,aAAa,GACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC/B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GACpC,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","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 values from \"./data/xiaomi.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_MODELS: ChatModelCatalog<typeof values, \"xiaomi\"> =\n\tflattenChatModelCatalog(\"xiaomi\", values);\n\nexport const XIAOMI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi\"> =\n\tflattenImageModelCatalog(\"xiaomi\", values);\n\nexport const XIAOMI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi\"> =\n\tflattenClassifierModelCatalog(\"xiaomi\", values);\n"]}
1
+ {"version":3,"file":"xiaomi.models.js","sourceRoot":"","sources":["../../src/providers/xiaomi.models.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AAEjE,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,aAAa,GACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAC/B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,wBAAwB,GACpC,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","sourcesContent":["// This file is auto-generated by catalog/generate.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport values from \"./data/xiaomi.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const XIAOMI_MODELS: ChatModelCatalog<typeof values, \"xiaomi\"> =\n\tflattenChatModelCatalog(\"xiaomi\", values);\n\nexport const XIAOMI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"xiaomi\"> =\n\tflattenImageModelCatalog(\"xiaomi\", values);\n\nexport const XIAOMI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"xiaomi\"> =\n\tflattenClassifierModelCatalog(\"xiaomi\", values);\n"]}