gsd-pi 2.74.0-dev.28a6415 → 2.74.0-dev.658744a

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 (303) hide show
  1. package/dist/resources/extensions/gsd/auto/phases.js +51 -6
  2. package/dist/resources/extensions/gsd/auto-model-selection.js +3 -3
  3. package/dist/resources/extensions/gsd/auto-post-unit.js +7 -3
  4. package/dist/resources/extensions/gsd/auto-recovery.js +24 -10
  5. package/dist/resources/extensions/gsd/auto-worktree.js +2 -0
  6. package/dist/resources/extensions/gsd/bootstrap/provider-error-resume.js +5 -3
  7. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +10 -1
  8. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +61 -9
  9. package/dist/resources/extensions/gsd/cache.js +16 -5
  10. package/dist/resources/extensions/gsd/commands/catalog.js +6 -1
  11. package/dist/resources/extensions/gsd/commands/handlers/core.js +5 -1
  12. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +50 -3
  13. package/dist/resources/extensions/gsd/docs/preferences-reference.md +2 -0
  14. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +144 -0
  15. package/dist/resources/extensions/gsd/ecosystem/loader.js +145 -0
  16. package/dist/resources/extensions/gsd/guided-flow.js +8 -6
  17. package/dist/resources/extensions/gsd/preferences-types.js +1 -0
  18. package/dist/resources/extensions/gsd/preferences-validation.js +10 -0
  19. package/dist/resources/extensions/gsd/preferences.js +5 -0
  20. package/dist/resources/extensions/gsd/safety/evidence-collector.js +15 -30
  21. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  22. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  23. package/dist/web/standalone/.next/BUILD_ID +1 -1
  24. package/dist/web/standalone/.next/app-path-routes-manifest.json +13 -13
  25. package/dist/web/standalone/.next/build-manifest.json +2 -2
  26. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  27. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  28. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  29. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  30. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  31. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  32. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  33. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  34. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  35. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  36. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  37. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  38. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  39. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  40. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  41. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  42. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  43. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  44. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  45. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +1 -1
  46. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  47. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +1 -1
  48. package/dist/web/standalone/.next/server/app/index.html +1 -1
  49. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  50. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  51. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  52. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  53. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  54. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  55. package/dist/web/standalone/.next/server/app-paths-manifest.json +13 -13
  56. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  57. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  58. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  59. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  60. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  61. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  62. package/package.json +1 -1
  63. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  64. package/packages/mcp-server/dist/workflow-tools.js +88 -6
  65. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  66. package/packages/mcp-server/src/workflow-tools.ts +95 -10
  67. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  68. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  69. package/packages/pi-ai/dist/index.d.ts +1 -9
  70. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  71. package/packages/pi-ai/dist/index.js +1 -9
  72. package/packages/pi-ai/dist/index.js.map +1 -1
  73. package/packages/pi-ai/dist/models/capability-patches.d.ts +19 -0
  74. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -0
  75. package/packages/pi-ai/dist/models/capability-patches.js +36 -0
  76. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -0
  77. package/packages/pi-ai/dist/{models.custom.d.ts → models/custom.d.ts} +1 -1
  78. package/packages/pi-ai/dist/models/custom.d.ts.map +1 -0
  79. package/packages/pi-ai/dist/{models.custom.js → models/custom.js} +4 -4
  80. package/packages/pi-ai/dist/models/custom.js.map +1 -0
  81. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +1482 -0
  82. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -0
  83. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +1484 -0
  84. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -0
  85. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +377 -0
  86. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -0
  87. package/packages/pi-ai/dist/models/generated/anthropic.js +379 -0
  88. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -0
  89. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts +700 -0
  90. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts.map +1 -0
  91. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js +702 -0
  92. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js.map +1 -0
  93. package/packages/pi-ai/dist/models/generated/cerebras.d.ts +71 -0
  94. package/packages/pi-ai/dist/models/generated/cerebras.d.ts.map +1 -0
  95. package/packages/pi-ai/dist/models/generated/cerebras.js +73 -0
  96. package/packages/pi-ai/dist/models/generated/cerebras.js.map +1 -0
  97. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts +590 -0
  98. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts.map +1 -0
  99. package/packages/pi-ai/dist/models/generated/github-copilot.js +444 -0
  100. package/packages/pi-ai/dist/models/generated/github-copilot.js.map +1 -0
  101. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +156 -0
  102. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -0
  103. package/packages/pi-ai/dist/models/generated/google-antigravity.js +158 -0
  104. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -0
  105. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts +105 -0
  106. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts.map +1 -0
  107. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js +107 -0
  108. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js.map +1 -0
  109. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts +207 -0
  110. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts.map +1 -0
  111. package/packages/pi-ai/dist/models/generated/google-vertex.js +209 -0
  112. package/packages/pi-ai/dist/models/generated/google-vertex.js.map +1 -0
  113. package/packages/pi-ai/dist/models/generated/google.d.ts +462 -0
  114. package/packages/pi-ai/dist/models/generated/google.d.ts.map +1 -0
  115. package/packages/pi-ai/dist/models/generated/google.js +464 -0
  116. package/packages/pi-ai/dist/models/generated/google.js.map +1 -0
  117. package/packages/pi-ai/dist/models/generated/groq.d.ts +309 -0
  118. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -0
  119. package/packages/pi-ai/dist/models/generated/groq.js +311 -0
  120. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -0
  121. package/packages/pi-ai/dist/models/generated/huggingface.d.ts +383 -0
  122. package/packages/pi-ai/dist/models/generated/huggingface.d.ts.map +1 -0
  123. package/packages/pi-ai/dist/models/generated/huggingface.js +347 -0
  124. package/packages/pi-ai/dist/models/generated/huggingface.js.map +1 -0
  125. package/packages/pi-ai/dist/{models.generated.d.ts → models/generated/index.d.ts} +1 -1
  126. package/packages/pi-ai/dist/{models.generated.d.ts.map → models/generated/index.d.ts.map} +1 -1
  127. package/packages/pi-ai/dist/models/generated/index.js +51 -0
  128. package/packages/pi-ai/dist/models/generated/index.js.map +1 -0
  129. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts +37 -0
  130. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts.map +1 -0
  131. package/packages/pi-ai/dist/models/generated/kimi-coding.js +39 -0
  132. package/packages/pi-ai/dist/models/generated/kimi-coding.js.map +1 -0
  133. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts +105 -0
  134. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts.map +1 -0
  135. package/packages/pi-ai/dist/models/generated/minimax-cn.js +107 -0
  136. package/packages/pi-ai/dist/models/generated/minimax-cn.js.map +1 -0
  137. package/packages/pi-ai/dist/models/generated/minimax.d.ts +105 -0
  138. package/packages/pi-ai/dist/models/generated/minimax.d.ts.map +1 -0
  139. package/packages/pi-ai/dist/models/generated/minimax.js +107 -0
  140. package/packages/pi-ai/dist/models/generated/minimax.js.map +1 -0
  141. package/packages/pi-ai/dist/models/generated/mistral.d.ts +445 -0
  142. package/packages/pi-ai/dist/models/generated/mistral.d.ts.map +1 -0
  143. package/packages/pi-ai/dist/models/generated/mistral.js +447 -0
  144. package/packages/pi-ai/dist/models/generated/mistral.js.map +1 -0
  145. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +139 -0
  146. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -0
  147. package/packages/pi-ai/dist/models/generated/openai-codex.js +141 -0
  148. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -0
  149. package/packages/pi-ai/dist/models/generated/openai.d.ts +700 -0
  150. package/packages/pi-ai/dist/models/generated/openai.d.ts.map +1 -0
  151. package/packages/pi-ai/dist/models/generated/openai.js +702 -0
  152. package/packages/pi-ai/dist/models/generated/openai.js.map +1 -0
  153. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts +122 -0
  154. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts.map +1 -0
  155. package/packages/pi-ai/dist/models/generated/opencode-go.js +124 -0
  156. package/packages/pi-ai/dist/models/generated/opencode-go.js.map +1 -0
  157. package/packages/pi-ai/dist/models/generated/opencode.d.ts +530 -0
  158. package/packages/pi-ai/dist/models/generated/opencode.d.ts.map +1 -0
  159. package/packages/pi-ai/dist/models/generated/opencode.js +532 -0
  160. package/packages/pi-ai/dist/models/generated/opencode.js.map +1 -0
  161. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +4270 -0
  162. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -0
  163. package/packages/pi-ai/dist/models/generated/openrouter.js +4272 -0
  164. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -0
  165. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts +2604 -0
  166. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts.map +1 -0
  167. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js +2606 -0
  168. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js.map +1 -0
  169. package/packages/pi-ai/dist/models/generated/xai.d.ts +411 -0
  170. package/packages/pi-ai/dist/models/generated/xai.d.ts.map +1 -0
  171. package/packages/pi-ai/dist/models/generated/xai.js +413 -0
  172. package/packages/pi-ai/dist/models/generated/xai.js.map +1 -0
  173. package/packages/pi-ai/dist/models/generated/zai.d.ts +276 -0
  174. package/packages/pi-ai/dist/models/generated/zai.d.ts.map +1 -0
  175. package/packages/pi-ai/dist/models/generated/zai.js +239 -0
  176. package/packages/pi-ai/dist/models/generated/zai.js.map +1 -0
  177. package/packages/pi-ai/dist/models/index.d.ts +27 -0
  178. package/packages/pi-ai/dist/models/index.d.ts.map +1 -0
  179. package/packages/pi-ai/dist/models/index.js +80 -0
  180. package/packages/pi-ai/dist/models/index.js.map +1 -0
  181. package/packages/pi-ai/dist/models.d.ts +1 -36
  182. package/packages/pi-ai/dist/models.d.ts.map +1 -1
  183. package/packages/pi-ai/dist/models.generated.test.js +1 -2
  184. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  185. package/packages/pi-ai/dist/models.js +3 -112
  186. package/packages/pi-ai/dist/models.js.map +1 -1
  187. package/packages/pi-ai/dist/models.test.js +6 -5
  188. package/packages/pi-ai/dist/models.test.js.map +1 -1
  189. package/packages/pi-ai/scripts/generate-models.ts +74 -40
  190. package/packages/pi-ai/src/index.ts +1 -9
  191. package/packages/pi-ai/src/models/capability-patches.ts +40 -0
  192. package/packages/pi-ai/src/{models.custom.ts → models/custom.ts} +4 -4
  193. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +1486 -0
  194. package/packages/pi-ai/src/models/generated/anthropic.ts +381 -0
  195. package/packages/pi-ai/src/models/generated/azure-openai-responses.ts +704 -0
  196. package/packages/pi-ai/src/models/generated/cerebras.ts +75 -0
  197. package/packages/pi-ai/src/models/generated/github-copilot.ts +446 -0
  198. package/packages/pi-ai/src/models/generated/google-antigravity.ts +160 -0
  199. package/packages/pi-ai/src/models/generated/google-gemini-cli.ts +109 -0
  200. package/packages/pi-ai/src/models/generated/google-vertex.ts +211 -0
  201. package/packages/pi-ai/src/models/generated/google.ts +466 -0
  202. package/packages/pi-ai/src/models/generated/groq.ts +313 -0
  203. package/packages/pi-ai/src/models/generated/huggingface.ts +349 -0
  204. package/packages/pi-ai/src/models/generated/index.ts +52 -0
  205. package/packages/pi-ai/src/models/generated/kimi-coding.ts +41 -0
  206. package/packages/pi-ai/src/models/generated/minimax-cn.ts +109 -0
  207. package/packages/pi-ai/src/models/generated/minimax.ts +109 -0
  208. package/packages/pi-ai/src/models/generated/mistral.ts +449 -0
  209. package/packages/pi-ai/src/models/generated/openai-codex.ts +143 -0
  210. package/packages/pi-ai/src/models/generated/openai.ts +704 -0
  211. package/packages/pi-ai/src/models/generated/opencode-go.ts +126 -0
  212. package/packages/pi-ai/src/models/generated/opencode.ts +534 -0
  213. package/packages/pi-ai/src/models/generated/openrouter.ts +4274 -0
  214. package/packages/pi-ai/src/models/generated/vercel-ai-gateway.ts +2608 -0
  215. package/packages/pi-ai/src/models/generated/xai.ts +415 -0
  216. package/packages/pi-ai/src/models/generated/zai.ts +241 -0
  217. package/packages/pi-ai/src/models/index.ts +106 -0
  218. package/packages/pi-ai/src/models.generated.test.ts +1 -2
  219. package/packages/pi-ai/src/models.test.ts +6 -5
  220. package/packages/pi-ai/src/models.ts +3 -153
  221. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  222. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  223. package/packages/pi-coding-agent/dist/core/agent-session.js +8 -2
  224. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  225. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +214 -0
  226. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  227. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +11 -0
  228. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  229. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  230. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  231. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +18 -8
  232. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  233. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts +11 -0
  234. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -0
  235. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +47 -0
  236. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -0
  237. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +8 -0
  238. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  239. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +68 -8
  240. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  241. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  242. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js +22 -22
  243. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
  244. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  245. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +115 -4
  246. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  247. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts +2 -0
  248. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts.map +1 -0
  249. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js +38 -0
  250. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js.map +1 -0
  251. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +14 -0
  252. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  253. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +70 -6
  254. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  255. package/packages/pi-coding-agent/src/core/agent-session.ts +12 -6
  256. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +273 -0
  257. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +19 -0
  258. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +20 -9
  259. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +67 -0
  260. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +83 -7
  261. package/packages/pi-coding-agent/src/modes/interactive/components/user-message.ts +23 -26
  262. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +176 -40
  263. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-ordering.test.ts +44 -0
  264. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +92 -6
  265. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  266. package/src/resources/extensions/gsd/auto/phases.ts +70 -6
  267. package/src/resources/extensions/gsd/auto-model-selection.ts +3 -3
  268. package/src/resources/extensions/gsd/auto-post-unit.ts +7 -3
  269. package/src/resources/extensions/gsd/auto-recovery.ts +29 -9
  270. package/src/resources/extensions/gsd/auto-worktree.ts +1 -0
  271. package/src/resources/extensions/gsd/bootstrap/provider-error-resume.ts +5 -3
  272. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +15 -1
  273. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +72 -8
  274. package/src/resources/extensions/gsd/cache.ts +16 -5
  275. package/src/resources/extensions/gsd/commands/catalog.ts +6 -1
  276. package/src/resources/extensions/gsd/commands/handlers/core.ts +5 -1
  277. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +57 -3
  278. package/src/resources/extensions/gsd/docs/preferences-reference.md +2 -0
  279. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +228 -0
  280. package/src/resources/extensions/gsd/ecosystem/loader.ts +201 -0
  281. package/src/resources/extensions/gsd/guided-flow.ts +4 -2
  282. package/src/resources/extensions/gsd/preferences-types.ts +6 -0
  283. package/src/resources/extensions/gsd/preferences-validation.ts +10 -0
  284. package/src/resources/extensions/gsd/preferences.ts +6 -0
  285. package/src/resources/extensions/gsd/safety/evidence-collector.ts +15 -31
  286. package/src/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  287. package/src/resources/extensions/gsd/tests/artifacts-table-preserved-on-cache-invalidate.test.ts +177 -0
  288. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +272 -0
  289. package/src/resources/extensions/gsd/tests/auto-warning-noise-regression.test.ts +117 -0
  290. package/src/resources/extensions/gsd/tests/health-widget.test.ts +1 -1
  291. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +3 -3
  292. package/src/resources/extensions/gsd/tests/preferences.test.ts +145 -0
  293. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +57 -2
  294. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +1 -1
  295. package/src/resources/extensions/gsd/types.ts +13 -0
  296. package/src/resources/extensions/gsd/workflow-logger.ts +2 -1
  297. package/packages/pi-ai/dist/models.custom.d.ts.map +0 -1
  298. package/packages/pi-ai/dist/models.custom.js.map +0 -1
  299. package/packages/pi-ai/dist/models.generated.js +0 -14343
  300. package/packages/pi-ai/dist/models.generated.js.map +0 -1
  301. package/packages/pi-ai/src/models.generated.ts +0 -14345
  302. /package/dist/web/standalone/.next/static/{fMaWScj7m6EsI3DbaNv2_ → Es_JWCfFZjIvYZShmjyye}/_buildManifest.js +0 -0
  303. /package/dist/web/standalone/.next/static/{fMaWScj7m6EsI3DbaNv2_ → Es_JWCfFZjIvYZShmjyye}/_ssgManifest.js +0 -0
@@ -0,0 +1,415 @@
1
+ // This file is auto-generated by scripts/generate-models.ts
2
+ // Do not edit manually - run 'npm run generate-models' to update
3
+
4
+ import type { Model } from "../../types.js";
5
+
6
+ export const XAI_MODELS = {
7
+ "grok-2": {
8
+ id: "grok-2",
9
+ name: "Grok 2",
10
+ api: "openai-completions",
11
+ provider: "xai",
12
+ baseUrl: "https://api.x.ai/v1",
13
+ reasoning: false,
14
+ input: ["text"],
15
+ cost: {
16
+ input: 2,
17
+ output: 10,
18
+ cacheRead: 2,
19
+ cacheWrite: 0,
20
+ },
21
+ contextWindow: 131072,
22
+ maxTokens: 8192,
23
+ } satisfies Model<"openai-completions">,
24
+ "grok-2-1212": {
25
+ id: "grok-2-1212",
26
+ name: "Grok 2 (1212)",
27
+ api: "openai-completions",
28
+ provider: "xai",
29
+ baseUrl: "https://api.x.ai/v1",
30
+ reasoning: false,
31
+ input: ["text"],
32
+ cost: {
33
+ input: 2,
34
+ output: 10,
35
+ cacheRead: 2,
36
+ cacheWrite: 0,
37
+ },
38
+ contextWindow: 131072,
39
+ maxTokens: 8192,
40
+ } satisfies Model<"openai-completions">,
41
+ "grok-2-latest": {
42
+ id: "grok-2-latest",
43
+ name: "Grok 2 Latest",
44
+ api: "openai-completions",
45
+ provider: "xai",
46
+ baseUrl: "https://api.x.ai/v1",
47
+ reasoning: false,
48
+ input: ["text"],
49
+ cost: {
50
+ input: 2,
51
+ output: 10,
52
+ cacheRead: 2,
53
+ cacheWrite: 0,
54
+ },
55
+ contextWindow: 131072,
56
+ maxTokens: 8192,
57
+ } satisfies Model<"openai-completions">,
58
+ "grok-2-vision": {
59
+ id: "grok-2-vision",
60
+ name: "Grok 2 Vision",
61
+ api: "openai-completions",
62
+ provider: "xai",
63
+ baseUrl: "https://api.x.ai/v1",
64
+ reasoning: false,
65
+ input: ["text", "image"],
66
+ cost: {
67
+ input: 2,
68
+ output: 10,
69
+ cacheRead: 2,
70
+ cacheWrite: 0,
71
+ },
72
+ contextWindow: 8192,
73
+ maxTokens: 4096,
74
+ } satisfies Model<"openai-completions">,
75
+ "grok-2-vision-1212": {
76
+ id: "grok-2-vision-1212",
77
+ name: "Grok 2 Vision (1212)",
78
+ api: "openai-completions",
79
+ provider: "xai",
80
+ baseUrl: "https://api.x.ai/v1",
81
+ reasoning: false,
82
+ input: ["text", "image"],
83
+ cost: {
84
+ input: 2,
85
+ output: 10,
86
+ cacheRead: 2,
87
+ cacheWrite: 0,
88
+ },
89
+ contextWindow: 8192,
90
+ maxTokens: 4096,
91
+ } satisfies Model<"openai-completions">,
92
+ "grok-2-vision-latest": {
93
+ id: "grok-2-vision-latest",
94
+ name: "Grok 2 Vision Latest",
95
+ api: "openai-completions",
96
+ provider: "xai",
97
+ baseUrl: "https://api.x.ai/v1",
98
+ reasoning: false,
99
+ input: ["text", "image"],
100
+ cost: {
101
+ input: 2,
102
+ output: 10,
103
+ cacheRead: 2,
104
+ cacheWrite: 0,
105
+ },
106
+ contextWindow: 8192,
107
+ maxTokens: 4096,
108
+ } satisfies Model<"openai-completions">,
109
+ "grok-3": {
110
+ id: "grok-3",
111
+ name: "Grok 3",
112
+ api: "openai-completions",
113
+ provider: "xai",
114
+ baseUrl: "https://api.x.ai/v1",
115
+ reasoning: false,
116
+ input: ["text"],
117
+ cost: {
118
+ input: 3,
119
+ output: 15,
120
+ cacheRead: 0.75,
121
+ cacheWrite: 0,
122
+ },
123
+ contextWindow: 131072,
124
+ maxTokens: 8192,
125
+ } satisfies Model<"openai-completions">,
126
+ "grok-3-fast": {
127
+ id: "grok-3-fast",
128
+ name: "Grok 3 Fast",
129
+ api: "openai-completions",
130
+ provider: "xai",
131
+ baseUrl: "https://api.x.ai/v1",
132
+ reasoning: false,
133
+ input: ["text"],
134
+ cost: {
135
+ input: 5,
136
+ output: 25,
137
+ cacheRead: 1.25,
138
+ cacheWrite: 0,
139
+ },
140
+ contextWindow: 131072,
141
+ maxTokens: 8192,
142
+ } satisfies Model<"openai-completions">,
143
+ "grok-3-fast-latest": {
144
+ id: "grok-3-fast-latest",
145
+ name: "Grok 3 Fast Latest",
146
+ api: "openai-completions",
147
+ provider: "xai",
148
+ baseUrl: "https://api.x.ai/v1",
149
+ reasoning: false,
150
+ input: ["text"],
151
+ cost: {
152
+ input: 5,
153
+ output: 25,
154
+ cacheRead: 1.25,
155
+ cacheWrite: 0,
156
+ },
157
+ contextWindow: 131072,
158
+ maxTokens: 8192,
159
+ } satisfies Model<"openai-completions">,
160
+ "grok-3-latest": {
161
+ id: "grok-3-latest",
162
+ name: "Grok 3 Latest",
163
+ api: "openai-completions",
164
+ provider: "xai",
165
+ baseUrl: "https://api.x.ai/v1",
166
+ reasoning: false,
167
+ input: ["text"],
168
+ cost: {
169
+ input: 3,
170
+ output: 15,
171
+ cacheRead: 0.75,
172
+ cacheWrite: 0,
173
+ },
174
+ contextWindow: 131072,
175
+ maxTokens: 8192,
176
+ } satisfies Model<"openai-completions">,
177
+ "grok-3-mini": {
178
+ id: "grok-3-mini",
179
+ name: "Grok 3 Mini",
180
+ api: "openai-completions",
181
+ provider: "xai",
182
+ baseUrl: "https://api.x.ai/v1",
183
+ reasoning: true,
184
+ input: ["text"],
185
+ cost: {
186
+ input: 0.3,
187
+ output: 0.5,
188
+ cacheRead: 0.075,
189
+ cacheWrite: 0,
190
+ },
191
+ contextWindow: 131072,
192
+ maxTokens: 8192,
193
+ } satisfies Model<"openai-completions">,
194
+ "grok-3-mini-fast": {
195
+ id: "grok-3-mini-fast",
196
+ name: "Grok 3 Mini Fast",
197
+ api: "openai-completions",
198
+ provider: "xai",
199
+ baseUrl: "https://api.x.ai/v1",
200
+ reasoning: true,
201
+ input: ["text"],
202
+ cost: {
203
+ input: 0.6,
204
+ output: 4,
205
+ cacheRead: 0.15,
206
+ cacheWrite: 0,
207
+ },
208
+ contextWindow: 131072,
209
+ maxTokens: 8192,
210
+ } satisfies Model<"openai-completions">,
211
+ "grok-3-mini-fast-latest": {
212
+ id: "grok-3-mini-fast-latest",
213
+ name: "Grok 3 Mini Fast Latest",
214
+ api: "openai-completions",
215
+ provider: "xai",
216
+ baseUrl: "https://api.x.ai/v1",
217
+ reasoning: true,
218
+ input: ["text"],
219
+ cost: {
220
+ input: 0.6,
221
+ output: 4,
222
+ cacheRead: 0.15,
223
+ cacheWrite: 0,
224
+ },
225
+ contextWindow: 131072,
226
+ maxTokens: 8192,
227
+ } satisfies Model<"openai-completions">,
228
+ "grok-3-mini-latest": {
229
+ id: "grok-3-mini-latest",
230
+ name: "Grok 3 Mini Latest",
231
+ api: "openai-completions",
232
+ provider: "xai",
233
+ baseUrl: "https://api.x.ai/v1",
234
+ reasoning: true,
235
+ input: ["text"],
236
+ cost: {
237
+ input: 0.3,
238
+ output: 0.5,
239
+ cacheRead: 0.075,
240
+ cacheWrite: 0,
241
+ },
242
+ contextWindow: 131072,
243
+ maxTokens: 8192,
244
+ } satisfies Model<"openai-completions">,
245
+ "grok-4": {
246
+ id: "grok-4",
247
+ name: "Grok 4",
248
+ api: "openai-completions",
249
+ provider: "xai",
250
+ baseUrl: "https://api.x.ai/v1",
251
+ reasoning: true,
252
+ input: ["text"],
253
+ cost: {
254
+ input: 3,
255
+ output: 15,
256
+ cacheRead: 0.75,
257
+ cacheWrite: 0,
258
+ },
259
+ contextWindow: 256000,
260
+ maxTokens: 64000,
261
+ } satisfies Model<"openai-completions">,
262
+ "grok-4-1-fast": {
263
+ id: "grok-4-1-fast",
264
+ name: "Grok 4.1 Fast",
265
+ api: "openai-completions",
266
+ provider: "xai",
267
+ baseUrl: "https://api.x.ai/v1",
268
+ reasoning: true,
269
+ input: ["text", "image"],
270
+ cost: {
271
+ input: 0.2,
272
+ output: 0.5,
273
+ cacheRead: 0.05,
274
+ cacheWrite: 0,
275
+ },
276
+ contextWindow: 2000000,
277
+ maxTokens: 30000,
278
+ } satisfies Model<"openai-completions">,
279
+ "grok-4-1-fast-non-reasoning": {
280
+ id: "grok-4-1-fast-non-reasoning",
281
+ name: "Grok 4.1 Fast (Non-Reasoning)",
282
+ api: "openai-completions",
283
+ provider: "xai",
284
+ baseUrl: "https://api.x.ai/v1",
285
+ reasoning: false,
286
+ input: ["text", "image"],
287
+ cost: {
288
+ input: 0.2,
289
+ output: 0.5,
290
+ cacheRead: 0.05,
291
+ cacheWrite: 0,
292
+ },
293
+ contextWindow: 2000000,
294
+ maxTokens: 30000,
295
+ } satisfies Model<"openai-completions">,
296
+ "grok-4-fast": {
297
+ id: "grok-4-fast",
298
+ name: "Grok 4 Fast",
299
+ api: "openai-completions",
300
+ provider: "xai",
301
+ baseUrl: "https://api.x.ai/v1",
302
+ reasoning: true,
303
+ input: ["text", "image"],
304
+ cost: {
305
+ input: 0.2,
306
+ output: 0.5,
307
+ cacheRead: 0.05,
308
+ cacheWrite: 0,
309
+ },
310
+ contextWindow: 2000000,
311
+ maxTokens: 30000,
312
+ } satisfies Model<"openai-completions">,
313
+ "grok-4-fast-non-reasoning": {
314
+ id: "grok-4-fast-non-reasoning",
315
+ name: "Grok 4 Fast (Non-Reasoning)",
316
+ api: "openai-completions",
317
+ provider: "xai",
318
+ baseUrl: "https://api.x.ai/v1",
319
+ reasoning: false,
320
+ input: ["text", "image"],
321
+ cost: {
322
+ input: 0.2,
323
+ output: 0.5,
324
+ cacheRead: 0.05,
325
+ cacheWrite: 0,
326
+ },
327
+ contextWindow: 2000000,
328
+ maxTokens: 30000,
329
+ } satisfies Model<"openai-completions">,
330
+ "grok-4.20-0309-non-reasoning": {
331
+ id: "grok-4.20-0309-non-reasoning",
332
+ name: "Grok 4.20 (Non-Reasoning)",
333
+ api: "openai-completions",
334
+ provider: "xai",
335
+ baseUrl: "https://api.x.ai/v1",
336
+ reasoning: false,
337
+ input: ["text", "image"],
338
+ cost: {
339
+ input: 2,
340
+ output: 6,
341
+ cacheRead: 0.2,
342
+ cacheWrite: 0,
343
+ },
344
+ contextWindow: 2000000,
345
+ maxTokens: 30000,
346
+ } satisfies Model<"openai-completions">,
347
+ "grok-4.20-0309-reasoning": {
348
+ id: "grok-4.20-0309-reasoning",
349
+ name: "Grok 4.20 (Reasoning)",
350
+ api: "openai-completions",
351
+ provider: "xai",
352
+ baseUrl: "https://api.x.ai/v1",
353
+ reasoning: true,
354
+ input: ["text", "image"],
355
+ cost: {
356
+ input: 2,
357
+ output: 6,
358
+ cacheRead: 0.2,
359
+ cacheWrite: 0,
360
+ },
361
+ contextWindow: 2000000,
362
+ maxTokens: 30000,
363
+ } satisfies Model<"openai-completions">,
364
+ "grok-beta": {
365
+ id: "grok-beta",
366
+ name: "Grok Beta",
367
+ api: "openai-completions",
368
+ provider: "xai",
369
+ baseUrl: "https://api.x.ai/v1",
370
+ reasoning: false,
371
+ input: ["text"],
372
+ cost: {
373
+ input: 5,
374
+ output: 15,
375
+ cacheRead: 5,
376
+ cacheWrite: 0,
377
+ },
378
+ contextWindow: 131072,
379
+ maxTokens: 4096,
380
+ } satisfies Model<"openai-completions">,
381
+ "grok-code-fast-1": {
382
+ id: "grok-code-fast-1",
383
+ name: "Grok Code Fast 1",
384
+ api: "openai-completions",
385
+ provider: "xai",
386
+ baseUrl: "https://api.x.ai/v1",
387
+ reasoning: true,
388
+ input: ["text"],
389
+ cost: {
390
+ input: 0.2,
391
+ output: 1.5,
392
+ cacheRead: 0.02,
393
+ cacheWrite: 0,
394
+ },
395
+ contextWindow: 256000,
396
+ maxTokens: 10000,
397
+ } satisfies Model<"openai-completions">,
398
+ "grok-vision-beta": {
399
+ id: "grok-vision-beta",
400
+ name: "Grok Vision Beta",
401
+ api: "openai-completions",
402
+ provider: "xai",
403
+ baseUrl: "https://api.x.ai/v1",
404
+ reasoning: false,
405
+ input: ["text", "image"],
406
+ cost: {
407
+ input: 5,
408
+ output: 15,
409
+ cacheRead: 5,
410
+ cacheWrite: 0,
411
+ },
412
+ contextWindow: 8192,
413
+ maxTokens: 4096,
414
+ } satisfies Model<"openai-completions">,
415
+ } as const satisfies Record<string, Model<any>>;
@@ -0,0 +1,241 @@
1
+ // This file is auto-generated by scripts/generate-models.ts
2
+ // Do not edit manually - run 'npm run generate-models' to update
3
+
4
+ import type { Model } from "../../types.js";
5
+
6
+ export const ZAI_MODELS = {
7
+ "glm-4.5": {
8
+ id: "glm-4.5",
9
+ name: "GLM-4.5",
10
+ api: "openai-completions",
11
+ provider: "zai",
12
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
13
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
14
+ reasoning: true,
15
+ input: ["text"],
16
+ cost: {
17
+ input: 0.6,
18
+ output: 2.2,
19
+ cacheRead: 0.11,
20
+ cacheWrite: 0,
21
+ },
22
+ contextWindow: 131072,
23
+ maxTokens: 98304,
24
+ } satisfies Model<"openai-completions">,
25
+ "glm-4.5-air": {
26
+ id: "glm-4.5-air",
27
+ name: "GLM-4.5-Air",
28
+ api: "openai-completions",
29
+ provider: "zai",
30
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
31
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
32
+ reasoning: true,
33
+ input: ["text"],
34
+ cost: {
35
+ input: 0.2,
36
+ output: 1.1,
37
+ cacheRead: 0.03,
38
+ cacheWrite: 0,
39
+ },
40
+ contextWindow: 131072,
41
+ maxTokens: 98304,
42
+ } satisfies Model<"openai-completions">,
43
+ "glm-4.5-flash": {
44
+ id: "glm-4.5-flash",
45
+ name: "GLM-4.5-Flash",
46
+ api: "openai-completions",
47
+ provider: "zai",
48
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
49
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
50
+ reasoning: true,
51
+ input: ["text"],
52
+ cost: {
53
+ input: 0,
54
+ output: 0,
55
+ cacheRead: 0,
56
+ cacheWrite: 0,
57
+ },
58
+ contextWindow: 131072,
59
+ maxTokens: 98304,
60
+ } satisfies Model<"openai-completions">,
61
+ "glm-4.5v": {
62
+ id: "glm-4.5v",
63
+ name: "GLM-4.5V",
64
+ api: "openai-completions",
65
+ provider: "zai",
66
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
67
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
68
+ reasoning: true,
69
+ input: ["text", "image"],
70
+ cost: {
71
+ input: 0.6,
72
+ output: 1.8,
73
+ cacheRead: 0,
74
+ cacheWrite: 0,
75
+ },
76
+ contextWindow: 64000,
77
+ maxTokens: 16384,
78
+ } satisfies Model<"openai-completions">,
79
+ "glm-4.6": {
80
+ id: "glm-4.6",
81
+ name: "GLM-4.6",
82
+ api: "openai-completions",
83
+ provider: "zai",
84
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
85
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
86
+ reasoning: true,
87
+ input: ["text"],
88
+ cost: {
89
+ input: 0.6,
90
+ output: 2.2,
91
+ cacheRead: 0.11,
92
+ cacheWrite: 0,
93
+ },
94
+ contextWindow: 204800,
95
+ maxTokens: 131072,
96
+ } satisfies Model<"openai-completions">,
97
+ "glm-4.6v": {
98
+ id: "glm-4.6v",
99
+ name: "GLM-4.6V",
100
+ api: "openai-completions",
101
+ provider: "zai",
102
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
103
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
104
+ reasoning: true,
105
+ input: ["text", "image"],
106
+ cost: {
107
+ input: 0.3,
108
+ output: 0.9,
109
+ cacheRead: 0,
110
+ cacheWrite: 0,
111
+ },
112
+ contextWindow: 128000,
113
+ maxTokens: 32768,
114
+ } satisfies Model<"openai-completions">,
115
+ "glm-4.7": {
116
+ id: "glm-4.7",
117
+ name: "GLM-4.7",
118
+ api: "openai-completions",
119
+ provider: "zai",
120
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
121
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
122
+ reasoning: true,
123
+ input: ["text"],
124
+ cost: {
125
+ input: 0.6,
126
+ output: 2.2,
127
+ cacheRead: 0.11,
128
+ cacheWrite: 0,
129
+ },
130
+ contextWindow: 204800,
131
+ maxTokens: 131072,
132
+ } satisfies Model<"openai-completions">,
133
+ "glm-4.7-flash": {
134
+ id: "glm-4.7-flash",
135
+ name: "GLM-4.7-Flash",
136
+ api: "openai-completions",
137
+ provider: "zai",
138
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
139
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
140
+ reasoning: true,
141
+ input: ["text"],
142
+ cost: {
143
+ input: 0,
144
+ output: 0,
145
+ cacheRead: 0,
146
+ cacheWrite: 0,
147
+ },
148
+ contextWindow: 200000,
149
+ maxTokens: 131072,
150
+ } satisfies Model<"openai-completions">,
151
+ "glm-4.7-flashx": {
152
+ id: "glm-4.7-flashx",
153
+ name: "GLM-4.7-FlashX",
154
+ api: "openai-completions",
155
+ provider: "zai",
156
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
157
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
158
+ reasoning: true,
159
+ input: ["text"],
160
+ cost: {
161
+ input: 0.07,
162
+ output: 0.4,
163
+ cacheRead: 0.01,
164
+ cacheWrite: 0,
165
+ },
166
+ contextWindow: 200000,
167
+ maxTokens: 131072,
168
+ } satisfies Model<"openai-completions">,
169
+ "glm-5": {
170
+ id: "glm-5",
171
+ name: "GLM-5",
172
+ api: "openai-completions",
173
+ provider: "zai",
174
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
175
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
176
+ reasoning: true,
177
+ input: ["text"],
178
+ cost: {
179
+ input: 1,
180
+ output: 3.2,
181
+ cacheRead: 0.2,
182
+ cacheWrite: 0,
183
+ },
184
+ contextWindow: 204800,
185
+ maxTokens: 131072,
186
+ } satisfies Model<"openai-completions">,
187
+ "glm-5-turbo": {
188
+ id: "glm-5-turbo",
189
+ name: "GLM-5-Turbo",
190
+ api: "openai-completions",
191
+ provider: "zai",
192
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
193
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
194
+ reasoning: true,
195
+ input: ["text"],
196
+ cost: {
197
+ input: 1.2,
198
+ output: 4,
199
+ cacheRead: 0.24,
200
+ cacheWrite: 0,
201
+ },
202
+ contextWindow: 200000,
203
+ maxTokens: 131072,
204
+ } satisfies Model<"openai-completions">,
205
+ "glm-5.1": {
206
+ id: "glm-5.1",
207
+ name: "GLM-5.1",
208
+ api: "openai-completions",
209
+ provider: "zai",
210
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
211
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
212
+ reasoning: true,
213
+ input: ["text"],
214
+ cost: {
215
+ input: 1.4,
216
+ output: 4.4,
217
+ cacheRead: 0.26,
218
+ cacheWrite: 0,
219
+ },
220
+ contextWindow: 200000,
221
+ maxTokens: 131072,
222
+ } satisfies Model<"openai-completions">,
223
+ "glm-5v-turbo": {
224
+ id: "glm-5v-turbo",
225
+ name: "glm-5v-turbo",
226
+ api: "openai-completions",
227
+ provider: "zai",
228
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
229
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
230
+ reasoning: true,
231
+ input: ["text", "image"],
232
+ cost: {
233
+ input: 1.2,
234
+ output: 4,
235
+ cacheRead: 0.24,
236
+ cacheWrite: 0,
237
+ },
238
+ contextWindow: 200000,
239
+ maxTokens: 131072,
240
+ } satisfies Model<"openai-completions">,
241
+ } as const satisfies Record<string, Model<any>>;