@earendil-works/pi-ai 1.4.0 → 1.5.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 +35 -35
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +59 -71
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/azure-openai-responses.d.ts.map +1 -1
  6. package/dist/api/azure-openai-responses.js +0 -6
  7. package/dist/api/azure-openai-responses.js.map +1 -1
  8. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  9. package/dist/api/bedrock-converse-stream.js +125 -103
  10. package/dist/api/bedrock-converse-stream.js.map +1 -1
  11. package/dist/api/constrained-sampling.d.ts +15 -1
  12. package/dist/api/constrained-sampling.d.ts.map +1 -1
  13. package/dist/api/constrained-sampling.js +51 -18
  14. package/dist/api/constrained-sampling.js.map +1 -1
  15. package/dist/api/google-generative-ai.d.ts.map +1 -1
  16. package/dist/api/google-generative-ai.js +0 -6
  17. package/dist/api/google-generative-ai.js.map +1 -1
  18. package/dist/api/google-shared.d.ts +2 -1
  19. package/dist/api/google-shared.d.ts.map +1 -1
  20. package/dist/api/google-shared.js +57 -2
  21. package/dist/api/google-shared.js.map +1 -1
  22. package/dist/api/google-vertex.d.ts.map +1 -1
  23. package/dist/api/google-vertex.js +0 -6
  24. package/dist/api/google-vertex.js.map +1 -1
  25. package/dist/api/mistral-conversations.d.ts.map +1 -1
  26. package/dist/api/mistral-conversations.js +17 -44
  27. package/dist/api/mistral-conversations.js.map +1 -1
  28. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  29. package/dist/api/openai-codex-responses.js +0 -5
  30. package/dist/api/openai-codex-responses.js.map +1 -1
  31. package/dist/api/openai-completions.d.ts.map +1 -1
  32. package/dist/api/openai-completions.js +42 -54
  33. package/dist/api/openai-completions.js.map +1 -1
  34. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  35. package/dist/api/openai-responses-shared.js +58 -57
  36. package/dist/api/openai-responses-shared.js.map +1 -1
  37. package/dist/api/openai-responses.d.ts.map +1 -1
  38. package/dist/api/openai-responses.js +0 -6
  39. package/dist/api/openai-responses.js.map +1 -1
  40. package/dist/api/openrouter-images.js +1 -0
  41. package/dist/api/openrouter-images.js.map +1 -1
  42. package/dist/api/pi-messages.d.ts +2 -0
  43. package/dist/api/pi-messages.d.ts.map +1 -1
  44. package/dist/api/pi-messages.js +24 -9
  45. package/dist/api/pi-messages.js.map +1 -1
  46. package/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  47. package/dist/auth/oauth/github-copilot.js +4 -11
  48. package/dist/auth/oauth/github-copilot.js.map +1 -1
  49. package/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
  50. package/dist/auth/oauth/kimi-coding.js +4 -22
  51. package/dist/auth/oauth/kimi-coding.js.map +1 -1
  52. package/dist/auth/oauth/meta.d.ts.map +1 -1
  53. package/dist/auth/oauth/meta.js +1 -14
  54. package/dist/auth/oauth/meta.js.map +1 -1
  55. package/dist/auth/oauth/radius.d.ts.map +1 -1
  56. package/dist/auth/oauth/radius.js +9 -3
  57. package/dist/auth/oauth/radius.js.map +1 -1
  58. package/dist/auth/oauth/trusted-url.d.ts +7 -0
  59. package/dist/auth/oauth/trusted-url.d.ts.map +1 -0
  60. package/dist/auth/oauth/trusted-url.js +12 -0
  61. package/dist/auth/oauth/trusted-url.js.map +1 -0
  62. package/dist/auth/types.d.ts +4 -0
  63. package/dist/auth/types.d.ts.map +1 -1
  64. package/dist/auth/types.js.map +1 -1
  65. package/dist/cli.js +6 -2
  66. package/dist/cli.js.map +1 -1
  67. package/dist/compat/extension-oauth-types.d.ts +4 -0
  68. package/dist/compat/extension-oauth-types.d.ts.map +1 -1
  69. package/dist/compat/extension-oauth-types.js.map +1 -1
  70. package/dist/index.d.ts +2 -3
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +2 -2
  73. package/dist/index.js.map +1 -1
  74. package/dist/models.d.ts.map +1 -1
  75. package/dist/models.generated.js +1 -1
  76. package/dist/models.generated.js.map +1 -1
  77. package/dist/models.js +1 -0
  78. package/dist/models.js.map +1 -1
  79. package/dist/providers/amazon-bedrock.models.js +1 -1
  80. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  81. package/dist/providers/ant-ling.models.js +1 -1
  82. package/dist/providers/ant-ling.models.js.map +1 -1
  83. package/dist/providers/anthropic.models.js +1 -1
  84. package/dist/providers/anthropic.models.js.map +1 -1
  85. package/dist/providers/azure.models.js +1 -1
  86. package/dist/providers/azure.models.js.map +1 -1
  87. package/dist/providers/baseten.models.js +1 -1
  88. package/dist/providers/baseten.models.js.map +1 -1
  89. package/dist/providers/cerebras.models.js +1 -1
  90. package/dist/providers/cerebras.models.js.map +1 -1
  91. package/dist/providers/cloudflare-ai-gateway.models.js +1 -1
  92. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  93. package/dist/providers/cloudflare-workers-ai.models.js +1 -1
  94. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -1
  95. package/dist/providers/compat-schema.d.ts +428 -456
  96. package/dist/providers/compat-schema.d.ts.map +1 -1
  97. package/dist/providers/compat-schema.js +144 -111
  98. package/dist/providers/compat-schema.js.map +1 -1
  99. package/dist/providers/data/.manifest.json +1 -1
  100. package/dist/providers/data/amazon-bedrock.json +1 -1
  101. package/dist/providers/data/anthropic.json +1 -1
  102. package/dist/providers/data/azure.json +1 -1
  103. package/dist/providers/data/baseten.json +1 -1
  104. package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  105. package/dist/providers/data/cloudflare-workers-ai.json +1 -1
  106. package/dist/providers/data/fireworks.json +1 -1
  107. package/dist/providers/data/github-copilot.json +1 -1
  108. package/dist/providers/data/google-vertex.json +1 -1
  109. package/dist/providers/data/google.json +1 -1
  110. package/dist/providers/data/huggingface.json +1 -1
  111. package/dist/providers/data/kimi-coding.json +1 -1
  112. package/dist/providers/data/mistral.json +1 -1
  113. package/dist/providers/data/moonshotai-cn.json +1 -1
  114. package/dist/providers/data/moonshotai.json +1 -1
  115. package/dist/providers/data/nvidia.json +1 -1
  116. package/dist/providers/data/openai-codex.json +1 -1
  117. package/dist/providers/data/openai.json +1 -1
  118. package/dist/providers/data/opencode-go.json +1 -1
  119. package/dist/providers/data/opencode.json +1 -1
  120. package/dist/providers/data/openrouter.json +1 -1
  121. package/dist/providers/data/qwen-token-plan-cn.json +1 -1
  122. package/dist/providers/data/qwen-token-plan-individual.json +1 -1
  123. package/dist/providers/data/qwen-token-plan.json +1 -1
  124. package/dist/providers/data/radius.json +1 -1
  125. package/dist/providers/data/together.json +1 -1
  126. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  127. package/dist/providers/data/xai.json +1 -1
  128. package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
  129. package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
  130. package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
  131. package/dist/providers/data/xiaomi.json +1 -1
  132. package/dist/providers/data/zai-coding-cn.json +1 -1
  133. package/dist/providers/data/zai.json +1 -1
  134. package/dist/providers/deepseek.models.js +1 -1
  135. package/dist/providers/deepseek.models.js.map +1 -1
  136. package/dist/providers/faux.d.ts.map +1 -1
  137. package/dist/providers/faux.js +7 -2
  138. package/dist/providers/faux.js.map +1 -1
  139. package/dist/providers/fireworks.models.js +1 -1
  140. package/dist/providers/fireworks.models.js.map +1 -1
  141. package/dist/providers/github-copilot.models.js +1 -1
  142. package/dist/providers/github-copilot.models.js.map +1 -1
  143. package/dist/providers/google-vertex.models.js +1 -1
  144. package/dist/providers/google-vertex.models.js.map +1 -1
  145. package/dist/providers/google.models.js +1 -1
  146. package/dist/providers/google.models.js.map +1 -1
  147. package/dist/providers/groq.models.js +1 -1
  148. package/dist/providers/groq.models.js.map +1 -1
  149. package/dist/providers/huggingface.models.js +1 -1
  150. package/dist/providers/huggingface.models.js.map +1 -1
  151. package/dist/providers/kimi-coding.models.js +1 -1
  152. package/dist/providers/kimi-coding.models.js.map +1 -1
  153. package/dist/providers/meta.models.js +1 -1
  154. package/dist/providers/meta.models.js.map +1 -1
  155. package/dist/providers/minimax-cn.models.js +1 -1
  156. package/dist/providers/minimax-cn.models.js.map +1 -1
  157. package/dist/providers/minimax.models.js +1 -1
  158. package/dist/providers/minimax.models.js.map +1 -1
  159. package/dist/providers/mistral.models.js +1 -1
  160. package/dist/providers/mistral.models.js.map +1 -1
  161. package/dist/providers/model-schema.d.ts +65 -65
  162. package/dist/providers/model-schema.d.ts.map +1 -1
  163. package/dist/providers/model-schema.js +41 -30
  164. package/dist/providers/model-schema.js.map +1 -1
  165. package/dist/providers/moonshotai-cn.models.js +1 -1
  166. package/dist/providers/moonshotai-cn.models.js.map +1 -1
  167. package/dist/providers/moonshotai.models.js +1 -1
  168. package/dist/providers/moonshotai.models.js.map +1 -1
  169. package/dist/providers/nvidia.models.js +1 -1
  170. package/dist/providers/nvidia.models.js.map +1 -1
  171. package/dist/providers/openai-codex.models.js +1 -1
  172. package/dist/providers/openai-codex.models.js.map +1 -1
  173. package/dist/providers/openai.models.js +1 -1
  174. package/dist/providers/openai.models.js.map +1 -1
  175. package/dist/providers/opencode-go.models.js +1 -1
  176. package/dist/providers/opencode-go.models.js.map +1 -1
  177. package/dist/providers/opencode.js +1 -1
  178. package/dist/providers/opencode.js.map +1 -1
  179. package/dist/providers/opencode.models.js +1 -1
  180. package/dist/providers/opencode.models.js.map +1 -1
  181. package/dist/providers/openrouter.models.js +1 -1
  182. package/dist/providers/openrouter.models.js.map +1 -1
  183. package/dist/providers/qwen-token-plan-cn.models.js +1 -1
  184. package/dist/providers/qwen-token-plan-cn.models.js.map +1 -1
  185. package/dist/providers/qwen-token-plan-individual.models.js +1 -1
  186. package/dist/providers/qwen-token-plan-individual.models.js.map +1 -1
  187. package/dist/providers/qwen-token-plan.models.js +1 -1
  188. package/dist/providers/qwen-token-plan.models.js.map +1 -1
  189. package/dist/providers/radius-config.d.ts.map +1 -1
  190. package/dist/providers/radius-config.js +2 -1
  191. package/dist/providers/radius-config.js.map +1 -1
  192. package/dist/providers/radius.models.js +1 -1
  193. package/dist/providers/radius.models.js.map +1 -1
  194. package/dist/providers/schema-builders.d.ts +10 -0
  195. package/dist/providers/schema-builders.d.ts.map +1 -0
  196. package/dist/providers/schema-builders.js +18 -0
  197. package/dist/providers/schema-builders.js.map +1 -0
  198. package/dist/providers/together.models.js +1 -1
  199. package/dist/providers/together.models.js.map +1 -1
  200. package/dist/providers/typesafe.models.js +1 -1
  201. package/dist/providers/typesafe.models.js.map +1 -1
  202. package/dist/providers/vercel-ai-gateway.models.js +1 -1
  203. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  204. package/dist/providers/xai.models.js +1 -1
  205. package/dist/providers/xai.models.js.map +1 -1
  206. package/dist/providers/xiaomi-token-plan-ams.models.js +1 -1
  207. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  208. package/dist/providers/xiaomi-token-plan-cn.models.js +1 -1
  209. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  210. package/dist/providers/xiaomi-token-plan-sgp.models.js +1 -1
  211. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  212. package/dist/providers/xiaomi.models.js +1 -1
  213. package/dist/providers/xiaomi.models.js.map +1 -1
  214. package/dist/providers/zai-coding-cn.models.js +1 -1
  215. package/dist/providers/zai-coding-cn.models.js.map +1 -1
  216. package/dist/providers/zai.models.js +1 -1
  217. package/dist/providers/zai.models.js.map +1 -1
  218. package/dist/telemetry.d.ts.map +1 -1
  219. package/dist/telemetry.js +2 -1
  220. package/dist/telemetry.js.map +1 -1
  221. package/dist/types.d.ts +12 -2
  222. package/dist/types.d.ts.map +1 -1
  223. package/dist/types.js.map +1 -1
  224. package/dist/utils/error-body.d.ts.map +1 -1
  225. package/dist/utils/error-body.js +2 -1
  226. package/dist/utils/error-body.js.map +1 -1
  227. package/dist/utils/openrouter-cost.d.ts +24 -0
  228. package/dist/utils/openrouter-cost.d.ts.map +1 -0
  229. package/dist/utils/openrouter-cost.js +34 -0
  230. package/dist/utils/openrouter-cost.js.map +1 -0
  231. package/dist/utils/overflow.d.ts.map +1 -1
  232. package/dist/utils/overflow.js +2 -0
  233. package/dist/utils/overflow.js.map +1 -1
  234. package/dist/utils/retry.d.ts.map +1 -1
  235. package/dist/utils/retry.js +3 -0
  236. package/dist/utils/retry.js.map +1 -1
  237. package/dist/utils/streaming-json.d.ts +84 -0
  238. package/dist/utils/streaming-json.d.ts.map +1 -0
  239. package/dist/utils/streaming-json.js +513 -0
  240. package/dist/utils/streaming-json.js.map +1 -0
  241. package/dist/utils/{typebox-helpers.d.ts → string-enum.d.ts} +5 -5
  242. package/dist/utils/string-enum.d.ts.map +1 -0
  243. package/dist/utils/{typebox-helpers.js → string-enum.js} +5 -6
  244. package/dist/utils/string-enum.js.map +1 -0
  245. package/dist/utils/text.d.ts +7 -0
  246. package/dist/utils/text.d.ts.map +1 -1
  247. package/dist/utils/text.js +9 -0
  248. package/dist/utils/text.js.map +1 -1
  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 +27 -277
  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 +11 -10
  260. package/dist/utils/typebox-helpers.d.ts.map +0 -1
  261. package/dist/utils/typebox-helpers.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-ai",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Unified LLM API with automatic model discovery and provider configuration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -56,27 +56,27 @@
56
56
  "README.md"
57
57
  ],
58
58
  "scripts": {
59
- "clean": "shx rm -rf dist",
60
- "generate-models": "node scripts/generate-models.ts --strict",
61
- "hydrate-model-data": "node scripts/generate-models.ts --strict --data-only",
62
- "generate-model-catalog": "node scripts/generate-models.ts --strict --json-only --json-output ../../.artifacts/model-catalog",
59
+ "clean": "node ../../scripts/package-files.mjs clean dist",
60
+ "generate-models": "node catalog/generate.ts --strict",
61
+ "hydrate-model-data": "node catalog/generate.ts --strict --data-only",
62
+ "generate-model-catalog": "node catalog/generate.ts --strict --json-only --json-output ../../.artifacts/model-catalog",
63
63
  "check:model-data": "node scripts/check-model-data.ts",
64
64
  "build": "npm run generate-models && npm run build:offline",
65
- "build:offline": "npm run check:model-data && tsc -p tsconfig.build.json && shx rm -rf dist/providers/data && shx cp -r src/providers/data dist/providers/data",
65
+ "build:offline": "npm run check:model-data && tsc -p tsconfig.build.json && node ../../scripts/package-files.mjs clean dist/providers/data && node ../../scripts/package-files.mjs copy src/providers/data dist/providers",
66
66
  "test": "vitest --run",
67
67
  "prepublishOnly": "npm run clean && npm run build"
68
68
  },
69
69
  "dependencies": {
70
70
  "@anthropic-ai/sdk": "0.129.0",
71
71
  "@aws-sdk/client-bedrock-runtime": "3.1127.0",
72
- "@earendil-works/pi-telemetry": "1.4.0",
72
+ "@earendil-works/pi-schema": "1.5.0",
73
+ "@earendil-works/pi-telemetry": "1.5.0",
73
74
  "@google/genai": "2.21.0",
74
75
  "@smithy/node-http-handler": "4.12.1",
75
76
  "http-proxy-agent": "9.1.0",
76
77
  "https-proxy-agent": "9.1.0",
77
78
  "openai": "7.19.0",
78
- "partial-json": "0.1.7",
79
- "typebox": "1.3.27"
79
+ "partial-json": "0.1.7"
80
80
  },
81
81
  "keywords": [
82
82
  "ai",
@@ -101,6 +101,7 @@
101
101
  "devDependencies": {
102
102
  "@types/node": "22.19.19",
103
103
  "canvas": "3.2.3",
104
- "vitest": "4.1.11"
104
+ "typebox": "1.3.27",
105
+ "vitest": "4.1.12"
105
106
  }
106
107
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"typebox-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/typebox-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAQ,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EACrD,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,GACrD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAOpB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"typebox-helpers.js","sourceRoot":"","sources":["../../src/utils/typebox-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACzB,MAAS,EACT,OAAuD;IAEvD,OAAO,IAAI,CAAC,MAAM,CAAY;QAC7B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAa;QACnB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACrD,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { type TUnsafe, Type } from \"typebox\";\n\n/**\n * Creates a string enum schema compatible with Google's API and other providers\n * that don't support anyOf/const patterns.\n *\n * @example\n * const OperationSchema = StringEnum([\"add\", \"subtract\", \"multiply\", \"divide\"], {\n * description: \"The operation to perform\"\n * });\n *\n * type Operation = Static<typeof OperationSchema>; // \"add\" | \"subtract\" | \"multiply\" | \"divide\"\n */\nexport function StringEnum<T extends readonly string[]>(\n\tvalues: T,\n\toptions?: { description?: string; default?: T[number] },\n): TUnsafe<T[number]> {\n\treturn Type.Unsafe<T[number]>({\n\t\ttype: \"string\",\n\t\tenum: values as any,\n\t\t...(options?.description && { description: options.description }),\n\t\t...(options?.default && { default: options.default }),\n\t});\n}\n"]}