@psnext/slingcli 2.5.20260623-1 → 2.5.20260705-1

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 (445) hide show
  1. package/node_modules/@aws/lambda-invoke-store/README.md +25 -1
  2. package/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +12 -0
  3. package/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +12 -0
  4. package/node_modules/@aws/lambda-invoke-store/dist-types/invoke-store.d.ts +6 -0
  5. package/node_modules/@aws/lambda-invoke-store/package.json +1 -1
  6. package/node_modules/@aws-sdk/core/account-id-endpoint.d.ts +1 -3
  7. package/node_modules/@aws-sdk/core/client.d.ts +1 -3
  8. package/node_modules/@aws-sdk/core/httpAuthSchemes.d.ts +1 -3
  9. package/node_modules/@aws-sdk/core/package.json +10 -17
  10. package/node_modules/@aws-sdk/core/protocols.d.ts +1 -3
  11. package/node_modules/@aws-sdk/core/util.d.ts +1 -3
  12. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  13. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +172 -1
  14. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
  15. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
  16. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
  17. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +4 -4
  18. package/node_modules/@aws-sdk/credential-provider-http/package.json +8 -10
  19. package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
  20. package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
  21. package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -11
  22. package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
  23. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +6 -6
  24. package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
  25. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +58 -3
  26. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -8
  27. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +4 -4
  28. package/node_modules/@aws-sdk/middleware-eventstream/package.json +4 -4
  29. package/node_modules/@aws-sdk/middleware-websocket/package.json +7 -7
  30. package/node_modules/@aws-sdk/nested-clients/cognito-identity.d.ts +1 -3
  31. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +13 -25
  32. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +13 -17
  33. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +12 -15
  34. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +12 -15
  35. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +13 -25
  36. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/commandBuilder.js +6 -0
  37. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/commands/GetCredentialsForIdentityCommand.js +2 -14
  38. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/commands/GetIdCommand.js +2 -14
  39. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/index.js +1 -0
  40. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.browser.js +0 -2
  41. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.js +1 -2
  42. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.native.js +0 -2
  43. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.shared.js +2 -0
  44. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commandBuilder.js +8 -0
  45. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js +2 -17
  46. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/index.js +1 -0
  47. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.browser.js +0 -2
  48. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.js +1 -2
  49. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.native.js +0 -2
  50. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.shared.js +2 -0
  51. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commandBuilder.js +6 -0
  52. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commands/GetRoleCredentialsCommand.js +2 -14
  53. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/index.js +1 -0
  54. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.browser.js +0 -2
  55. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.js +1 -2
  56. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.native.js +0 -2
  57. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.shared.js +2 -0
  58. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commandBuilder.js +6 -0
  59. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +2 -14
  60. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +1 -0
  61. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.browser.js +0 -2
  62. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +1 -2
  63. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.native.js +0 -2
  64. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +2 -0
  65. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commandBuilder.js +6 -0
  66. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +2 -14
  67. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +2 -14
  68. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +1 -0
  69. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.browser.js +0 -2
  70. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +1 -2
  71. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.native.js +0 -2
  72. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +2 -0
  73. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/commandBuilder.d.ts +18 -0
  74. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/commands/GetCredentialsForIdentityCommand.d.ts +3 -8
  75. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/commands/GetIdCommand.d.ts +3 -8
  76. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/index.d.ts +1 -0
  77. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.browser.d.ts +2 -2
  78. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.d.ts +2 -2
  79. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.native.d.ts +2 -2
  80. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.shared.d.ts +1 -0
  81. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commandBuilder.d.ts +18 -0
  82. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +3 -8
  83. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/index.d.ts +1 -0
  84. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +2 -2
  85. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +2 -2
  86. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +2 -2
  87. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.shared.d.ts +1 -0
  88. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/commandBuilder.d.ts +18 -0
  89. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/commands/GetRoleCredentialsCommand.d.ts +3 -8
  90. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/index.d.ts +1 -0
  91. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.browser.d.ts +2 -2
  92. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.d.ts +2 -2
  93. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.native.d.ts +2 -2
  94. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.shared.d.ts +1 -0
  95. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commandBuilder.d.ts +18 -0
  96. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +3 -8
  97. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +1 -0
  98. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +2 -2
  99. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +2 -2
  100. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +2 -2
  101. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +1 -0
  102. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commandBuilder.d.ts +18 -0
  103. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +3 -8
  104. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +3 -8
  105. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +1 -0
  106. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +2 -2
  107. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +2 -2
  108. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +2 -2
  109. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +1 -0
  110. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/commandBuilder.d.ts +46 -0
  111. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/commands/GetCredentialsForIdentityCommand.d.ts +7 -16
  112. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/commands/GetIdCommand.d.ts +7 -16
  113. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/index.d.ts +1 -0
  114. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.browser.d.ts +8 -2
  115. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.d.ts +8 -2
  116. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.native.d.ts +8 -2
  117. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.shared.d.ts +1 -0
  118. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/commandBuilder.d.ts +42 -0
  119. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +3 -8
  120. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/index.d.ts +1 -0
  121. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +8 -2
  122. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +8 -2
  123. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +8 -2
  124. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.shared.d.ts +1 -0
  125. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/commandBuilder.d.ts +42 -0
  126. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/commands/GetRoleCredentialsCommand.d.ts +3 -8
  127. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/index.d.ts +1 -0
  128. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.browser.d.ts +8 -2
  129. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.d.ts +8 -2
  130. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.native.d.ts +8 -2
  131. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.shared.d.ts +1 -0
  132. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/commandBuilder.d.ts +42 -0
  133. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +3 -8
  134. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/index.d.ts +1 -0
  135. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +8 -2
  136. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +8 -2
  137. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +8 -2
  138. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +1 -0
  139. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commandBuilder.d.ts +46 -0
  140. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/AssumeRoleCommand.d.ts +7 -16
  141. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +7 -16
  142. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/index.d.ts +1 -0
  143. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +8 -2
  144. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +8 -2
  145. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +8 -2
  146. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +1 -0
  147. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
  148. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
  149. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
  150. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +4 -4
  151. package/node_modules/@aws-sdk/nested-clients/package.json +8 -10
  152. package/node_modules/@aws-sdk/nested-clients/signin.d.ts +1 -3
  153. package/node_modules/@aws-sdk/nested-clients/sso-oidc.d.ts +1 -3
  154. package/node_modules/@aws-sdk/nested-clients/sso.d.ts +1 -3
  155. package/node_modules/@aws-sdk/nested-clients/sts.d.ts +1 -3
  156. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +4 -4
  157. package/node_modules/@aws-sdk/types/package.json +2 -2
  158. package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +236 -3
  159. package/node_modules/@aws-sdk/xml-builder/package.json +3 -4
  160. package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +10 -1
  161. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +9 -8
  162. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +20 -2
  163. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +2 -1
  164. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +1 -1
  165. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  166. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +51 -47
  167. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +11 -17
  168. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +25 -11
  169. package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.js +0 -18
  170. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +8 -4
  171. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +8 -4
  172. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +1 -1
  173. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +68 -43
  174. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +38 -29
  175. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +189 -204
  176. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +26 -35
  177. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +4 -6
  178. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +11 -2
  179. package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +2 -2
  180. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +19 -4
  181. package/node_modules/@earendil-works/pi-ai/dist/compat.js +81 -7
  182. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +60 -45
  183. package/node_modules/@earendil-works/pi-ai/dist/images-models.js +7 -3
  184. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
  185. package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js +49 -0
  186. package/node_modules/@earendil-works/pi-ai/dist/models.js +7 -3
  187. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +149 -12
  188. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +3 -3
  189. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +18 -34
  190. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +20 -0
  191. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +2 -2
  192. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +39 -9
  193. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js +85 -0
  194. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js +2 -2
  195. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +13 -13
  196. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +2 -2
  197. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +1 -20
  198. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +20 -1
  199. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +57 -0
  200. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +1 -1
  201. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +72 -0
  202. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +4 -4
  203. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +4 -4
  204. package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js +4 -4
  205. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +23 -4
  206. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +16 -16
  207. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +90 -17
  208. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +390 -102
  209. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +39 -20
  210. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +389 -80
  211. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +7 -0
  212. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +12 -12
  213. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +12 -12
  214. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +12 -12
  215. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +15 -15
  216. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +6 -6
  217. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +6 -6
  218. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +109 -0
  219. package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js +95 -0
  220. package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js +10 -0
  221. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js +15 -2
  222. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +3 -2
  223. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +2 -2
  224. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +3 -0
  225. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +87 -0
  226. package/node_modules/@earendil-works/pi-ai/package.json +1 -33
  227. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +13 -25
  228. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +50 -34
  229. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +13 -5
  230. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +11 -11
  231. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +11 -1
  232. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +33 -1
  233. package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js +28 -1
  234. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +2 -4
  235. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +15 -18
  236. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js +1 -1
  237. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js +0 -10
  238. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +2 -0
  239. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +96 -73
  240. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +19 -0
  241. package/node_modules/@earendil-works/pi-coding-agent/dist/core/timings.js +24 -14
  242. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +20 -5
  243. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +2 -2
  244. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +12 -25
  245. package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +2 -1
  246. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +20 -4
  247. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +23 -15
  248. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-entry.js +52 -0
  249. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +12 -3
  250. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.js +14 -3
  251. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +13 -1
  252. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/status-indicator.js +60 -0
  253. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js +19 -6
  254. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +180 -155
  255. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +14 -0
  256. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +16 -0
  257. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +7 -0
  258. package/node_modules/@earendil-works/pi-coding-agent/dist/rpc-entry.js +10 -0
  259. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.js +21 -15
  260. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-process.js +83 -0
  261. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/mime.js +41 -0
  262. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -12
  263. package/node_modules/@earendil-works/pi-coding-agent/package.json +8 -5
  264. package/node_modules/@earendil-works/pi-orchestrator/dist/cli.js +136 -0
  265. package/node_modules/@earendil-works/pi-orchestrator/dist/config.js +55 -0
  266. package/node_modules/@earendil-works/pi-orchestrator/dist/handler.js +105 -0
  267. package/node_modules/@earendil-works/pi-orchestrator/dist/index.js +11 -0
  268. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/client.js +56 -0
  269. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/protocol.js +12 -0
  270. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/server.js +145 -0
  271. package/node_modules/@earendil-works/pi-orchestrator/dist/radius.js +365 -0
  272. package/node_modules/@earendil-works/pi-orchestrator/dist/rpc-process.js +168 -0
  273. package/node_modules/@earendil-works/pi-orchestrator/dist/serve.js +70 -0
  274. package/node_modules/@earendil-works/pi-orchestrator/dist/storage.js +58 -0
  275. package/node_modules/@earendil-works/pi-orchestrator/dist/supervisor.js +290 -0
  276. package/node_modules/@earendil-works/pi-orchestrator/dist/types.js +2 -0
  277. package/node_modules/@earendil-works/pi-orchestrator/package.json +45 -0
  278. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +3 -0
  279. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  280. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.browser.js +358 -145
  281. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +462 -142
  282. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.native.js +358 -145
  283. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +18 -0
  284. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +108 -63
  285. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +11 -8
  286. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +11 -8
  287. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +5 -2
  288. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +30 -36
  289. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +85 -137
  290. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +30 -36
  291. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +30 -0
  292. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +24 -0
  293. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.browser.js +7 -1
  294. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +7 -1
  295. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.native.js +7 -1
  296. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +92 -0
  297. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +29 -0
  298. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +179 -0
  299. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +59 -0
  300. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +71 -0
  301. package/node_modules/@smithy/core/dist-es/submodules/client/index.js +1 -0
  302. package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client-command-builder.js +17 -0
  303. package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/config.js +6 -1
  304. package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.js +92 -0
  305. package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/constants.js +3 -0
  306. package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/resolveDefaultsModeConfig.js +3 -56
  307. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/EventStreamCodec.js +5 -3
  308. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/splitMessage.js +7 -6
  309. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +4 -1
  310. package/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +15 -0
  311. package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +2 -0
  312. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
  313. package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +2 -0
  314. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +35 -27
  315. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +2 -1
  316. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +12 -38
  317. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +18 -33
  318. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js +3 -0
  319. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +3 -0
  320. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Js.d.ts +18 -0
  321. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Node.d.ts +18 -0
  322. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.browser.d.ts +7 -1
  323. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.d.ts +7 -1
  324. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.native.d.ts +7 -1
  325. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Js.d.ts +19 -0
  326. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Node.d.ts +17 -0
  327. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Js.d.ts +28 -0
  328. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Node.d.ts +13 -0
  329. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256WebCrypto.d.ts +22 -0
  330. package/node_modules/@smithy/core/dist-types/submodules/client/index.d.ts +1 -0
  331. package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/client-command-builder.d.ts +22 -0
  332. package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/command.d.ts +5 -6
  333. package/node_modules/@smithy/core/dist-types/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.d.ts +7 -0
  334. package/node_modules/@smithy/core/dist-types/submodules/config/defaults-mode/constants.d.ts +12 -0
  335. package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.browser.d.ts +4 -5
  336. package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.d.ts +4 -5
  337. package/node_modules/@smithy/core/dist-types/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromInstructions.d.ts +3 -4
  338. package/node_modules/@smithy/core/dist-types/submodules/endpoints/middleware-endpoint/endpointMiddleware.d.ts +1 -2
  339. package/node_modules/@smithy/core/dist-types/submodules/endpoints/middleware-endpoint/getEndpointPlugin.d.ts +1 -2
  340. package/node_modules/@smithy/core/dist-types/submodules/serde/concatBytes.d.ts +6 -0
  341. package/node_modules/@smithy/core/dist-types/submodules/serde/index.browser.d.ts +2 -0
  342. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
  343. package/node_modules/@smithy/core/dist-types/submodules/serde/index.native.d.ts +2 -0
  344. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/checksum/ChecksumStream.d.ts +29 -12
  345. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.browser.d.ts +8 -2
  346. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.d.ts +4 -1
  347. package/node_modules/@smithy/core/package.json +5 -5
  348. package/node_modules/@smithy/credential-provider-imds/package.json +3 -3
  349. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -55
  350. package/node_modules/@smithy/fetch-http-handler/dist-es/index.js +2 -2
  351. package/node_modules/@smithy/fetch-http-handler/dist-types/index.d.ts +2 -2
  352. package/node_modules/@smithy/fetch-http-handler/package.json +4 -4
  353. package/node_modules/@smithy/signature-v4/package.json +3 -4
  354. package/node_modules/@smithy/types/dist-types/index.d.ts +1 -0
  355. package/node_modules/@smithy/types/package.json +1 -1
  356. package/node_modules/@types/node/README.md +1 -1
  357. package/node_modules/@types/node/buffer.d.ts +64 -25
  358. package/node_modules/@types/node/crypto.d.ts +18 -5
  359. package/node_modules/@types/node/diagnostics_channel.d.ts +254 -23
  360. package/node_modules/@types/node/dns.d.ts +1 -1
  361. package/node_modules/@types/node/ffi.d.ts +486 -0
  362. package/node_modules/@types/node/fs/promises.d.ts +3 -0
  363. package/node_modules/@types/node/fs.d.ts +21 -6
  364. package/node_modules/@types/node/http.d.ts +25 -0
  365. package/node_modules/@types/node/index.d.ts +1 -0
  366. package/node_modules/@types/node/package.json +2 -2
  367. package/node_modules/@types/node/process.d.ts +14 -1
  368. package/node_modules/@types/node/quic.d.ts +92 -11
  369. package/node_modules/@types/node/sqlite.d.ts +55 -0
  370. package/node_modules/@types/node/stream/iter.d.ts +150 -0
  371. package/node_modules/@types/node/stream.d.ts +32 -0
  372. package/node_modules/@types/node/test.d.ts +112 -2
  373. package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
  374. package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
  375. package/node_modules/@types/node/util.d.ts +19 -2
  376. package/node_modules/@types/node/v8.d.ts +84 -2
  377. package/node_modules/@types/node/worker_threads.d.ts +8 -7
  378. package/node_modules/brace-expansion/dist/commonjs/index.js +24 -14
  379. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  380. package/node_modules/brace-expansion/dist/esm/index.js +24 -14
  381. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  382. package/node_modules/brace-expansion/package.json +2 -2
  383. package/node_modules/google-auth-library/build/src/auth/googleauth.js +1 -1
  384. package/node_modules/google-auth-library/package.json +4 -4
  385. package/node_modules/protobufjs/dist/light/protobuf.js +2 -2
  386. package/node_modules/protobufjs/dist/light/protobuf.min.js +2 -2
  387. package/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
  388. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  389. package/node_modules/protobufjs/dist/protobuf.js +5 -2
  390. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  391. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  392. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  393. package/node_modules/protobufjs/package.json +1 -1
  394. package/node_modules/protobufjs/src/parse.js +3 -0
  395. package/package.json +7 -6
  396. package/slingshot/index.js +293 -295
  397. package/node_modules/@aws-crypto/crc32/CHANGELOG.md +0 -100
  398. package/node_modules/@aws-crypto/crc32/LICENSE +0 -201
  399. package/node_modules/@aws-crypto/crc32/README.md +0 -16
  400. package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.d.ts +0 -7
  401. package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js +0 -31
  402. package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js.map +0 -1
  403. package/node_modules/@aws-crypto/crc32/build/main/index.d.ts +0 -7
  404. package/node_modules/@aws-crypto/crc32/build/main/index.js +0 -108
  405. package/node_modules/@aws-crypto/crc32/build/main/index.js.map +0 -1
  406. package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.d.ts +0 -7
  407. package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js +0 -28
  408. package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js.map +0 -1
  409. package/node_modules/@aws-crypto/crc32/build/module/index.d.ts +0 -7
  410. package/node_modules/@aws-crypto/crc32/build/module/index.js +0 -103
  411. package/node_modules/@aws-crypto/crc32/build/module/index.js.map +0 -1
  412. package/node_modules/@aws-crypto/crc32/package.json +0 -32
  413. package/node_modules/@aws-crypto/crc32/src/aws_crc32.ts +0 -24
  414. package/node_modules/@aws-crypto/crc32/src/index.ts +0 -92
  415. package/node_modules/@aws-crypto/crc32/tsconfig.json +0 -9
  416. package/node_modules/@aws-crypto/crc32/tsconfig.module.json +0 -7
  417. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.browser.js +0 -869
  418. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.native.js +0 -862
  419. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js +0 -42
  420. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.browser.js +0 -27
  421. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +0 -71
  422. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js +0 -49
  423. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js +0 -13
  424. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.browser.js +0 -2
  425. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  426. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  427. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  428. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
  429. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +0 -29
  430. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +0 -25
  431. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  432. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  433. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  434. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
  435. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +0 -57
  436. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +0 -234
  437. package/node_modules/@earendil-works/pi-ai/dist/api-registry.js +0 -44
  438. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/constants.js +0 -3
  439. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/md5.js +0 -168
  440. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/constants.d.ts +0 -12
  441. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/md5.d.ts +0 -16
  442. package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +0 -53
  443. package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +0 -2
  444. /package/node_modules/@smithy/{core/dist-es/submodules/endpoints/middleware-endpoint/types.js → types/dist-es/endpoints/EndpointParameterInstructions.js} +0 -0
  445. /package/node_modules/@smithy/{core/dist-types/submodules/endpoints/middleware-endpoint/types.d.ts → types/dist-types/endpoints/EndpointParameterInstructions.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  import { AzureOpenAI } from "openai";
2
2
  import { clampThinkingLevel } from "../models.js";
3
+ import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
3
4
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
4
5
  import { headersToRecord } from "../utils/headers.js";
5
6
  import { getProviderEnvValue } from "../utils/provider-env.js";
@@ -31,20 +32,7 @@ function resolveDeploymentName(model, options) {
31
32
  return mappedDeployment || model.id;
32
33
  }
33
34
  function formatAzureOpenAIError(error) {
34
- if (error instanceof Error) {
35
- const status = error.status;
36
- const statusCode = typeof status === "number" ? status : undefined;
37
- if (statusCode !== undefined) {
38
- return `Azure OpenAI API error (${statusCode}): ${error.message}`;
39
- }
40
- return error.message;
41
- }
42
- try {
43
- return JSON.stringify(error);
44
- }
45
- catch {
46
- return String(error);
47
- }
35
+ return formatProviderError(normalizeProviderError(error), "Azure OpenAI API error");
48
36
  }
49
37
  /**
50
38
  * Generate function for Azure OpenAI Responses API
@@ -120,7 +108,7 @@ export const streamSimple = (model, context, options) => {
120
108
  if (!apiKey) {
121
109
  throw new Error(`No API key for provider: ${model.provider}`);
122
110
  }
123
- const base = buildBaseOptions(model, options, apiKey);
111
+ const base = buildBaseOptions(model, context, options, apiKey);
124
112
  const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;
125
113
  const reasoningEffort = clampedReasoning === "off" ? undefined : clampedReasoning;
126
114
  return stream(model, context, {
@@ -137,11 +125,17 @@ function normalizeAzureBaseUrl(baseUrl) {
137
125
  catch {
138
126
  throw new Error(`Invalid Azure OpenAI base URL: ${baseUrl}`);
139
127
  }
140
- const isAzureHost = url.hostname.endsWith(".openai.azure.com") || url.hostname.endsWith(".cognitiveservices.azure.com");
128
+ const isAzureHost = url.hostname.endsWith(".openai.azure.com") ||
129
+ url.hostname.endsWith(".cognitiveservices.azure.com") ||
130
+ url.hostname.endsWith(".ai.azure.com");
141
131
  const normalizedPath = url.pathname.replace(/\/+$/, "");
142
132
  // Ensure Azure hosts have /openai/v1 as base path so the AzureOpenAI SDK
143
133
  // can append /deployments/<model>/... and ?api-version=v1 correctly.
144
- if (isAzureHost && (normalizedPath === "" || normalizedPath === "/" || normalizedPath === "/openai")) {
134
+ if (isAzureHost &&
135
+ (normalizedPath === "" ||
136
+ normalizedPath === "/" ||
137
+ normalizedPath === "/openai" ||
138
+ normalizedPath === "/openai/v1/responses")) {
145
139
  url.pathname = "/openai/v1";
146
140
  url.search = "";
147
141
  }
@@ -3,12 +3,14 @@ import { NodeHttpHandler } from "@smithy/node-http-handler";
3
3
  import { HttpProxyAgent } from "http-proxy-agent";
4
4
  import { HttpsProxyAgent } from "https-proxy-agent";
5
5
  import { calculateCost } from "../models.js";
6
+ import { normalizeProviderError } from "../utils/error-body.js";
6
7
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
8
+ import { providerHeadersToRecord } from "../utils/headers.js";
7
9
  import { parseStreamingJson } from "../utils/json-parse.js";
8
10
  import { resolveHttpProxyUrlForTarget } from "../utils/node-http-proxy.js";
9
11
  import { getProviderEnvValue } from "../utils/provider-env.js";
10
12
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
11
- import { adjustMaxTokensForThinking, buildBaseOptions, clampReasoning } from "./simple-options.js";
13
+ import { adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToContext, clampReasoning, } from "./simple-options.js";
12
14
  import { transformMessages } from "./transform-messages.js";
13
15
  const EMPTY_TEXT_PLACEHOLDER = "<empty>";
14
16
  export const stream = (model, context, options = {}) => {
@@ -105,8 +107,9 @@ export const stream = (model, context, options = {}) => {
105
107
  }
106
108
  try {
107
109
  const client = new BedrockRuntimeClient(config);
108
- if (options.headers && Object.keys(options.headers).length > 0) {
109
- addCustomHeadersMiddleware(client, options.headers);
110
+ const customHeaders = providerHeadersToRecord(options.headers);
111
+ if (customHeaders) {
112
+ addCustomHeadersMiddleware(client, customHeaders);
110
113
  }
111
114
  const cacheRetention = resolveCacheRetention(options.cacheRetention, options.env);
112
115
  const inferenceMaxTokens = options.maxTokens ?? (isAnthropicClaudeModel(model) ? model.maxTokens : undefined);
@@ -223,15 +226,21 @@ const BEDROCK_DATA_RETENTION_DOCS_URL = "https://docs.aws.amazon.com/bedrock/lat
223
226
  * detection) can distinguish error categories via simple string matching.
224
227
  */
225
228
  function formatBedrockError(error) {
226
- const message = error instanceof Error ? error.message : JSON.stringify(error);
227
- const dataRetentionHint = /data retention mode/i.test(message)
229
+ const norm = normalizeProviderError(error);
230
+ // Surface the raw HTTP body (with status) when the SDK did not fold it into
231
+ // the message; otherwise fall back to the message. This is what stops a
232
+ // gateway 403 from collapsing to `Unknown: UnknownError`.
233
+ const core = !norm.messageCarriesBody && norm.status !== undefined && norm.body !== undefined
234
+ ? `${norm.status}: ${norm.body}`
235
+ : norm.message;
236
+ const dataRetentionHint = /data retention mode/i.test(core)
228
237
  ? ` See ${BEDROCK_DATA_RETENTION_DOCS_URL} for supported data retention modes.`
229
238
  : "";
230
239
  if (error instanceof BedrockRuntimeServiceException) {
231
240
  const prefix = BEDROCK_ERROR_PREFIXES[error.name] ?? error.name;
232
- return `${prefix}: ${message}${dataRetentionHint}`;
241
+ return `${prefix}: ${core}${dataRetentionHint}`;
233
242
  }
234
- return `${message}${dataRetentionHint}`;
243
+ return `${core}${dataRetentionHint}`;
235
244
  }
236
245
  /**
237
246
  * Header keys that must never be overwritten by caller-supplied headers.
@@ -267,7 +276,7 @@ function addCustomHeadersMiddleware(client, headers) {
267
276
  client.middlewareStack.add(middleware, { step: "build", name: "pi-ai-custom-headers", priority: "low" });
268
277
  }
269
278
  export const streamSimple = (model, context, options) => {
270
- const base = buildBaseOptions(model, options, undefined);
279
+ const base = buildBaseOptions(model, context, options, undefined);
271
280
  if (!options?.reasoning) {
272
281
  return stream(model, context, { ...base, reasoning: undefined });
273
282
  }
@@ -282,13 +291,14 @@ export const streamSimple = (model, context, options) => {
282
291
  // Undefined means the caller did not request an output cap; let the helper use the model cap.
283
292
  // Do not coerce to 0 here, or the thinking budget would become the entire maxTokens value.
284
293
  const adjusted = adjustMaxTokensForThinking(base.maxTokens, model.maxTokens, options.reasoning, options.thinkingBudgets);
294
+ const maxTokens = clampMaxTokensToContext(model, context, adjusted.maxTokens);
285
295
  return stream(model, context, {
286
296
  ...base,
287
- maxTokens: adjusted.maxTokens,
297
+ maxTokens,
288
298
  reasoning: options.reasoning,
289
299
  thinkingBudgets: {
290
300
  ...(options.thinkingBudgets || {}),
291
- [clampReasoning(options.reasoning)]: adjusted.thinkingBudget,
301
+ [clampReasoning(options.reasoning)]: Math.min(adjusted.thinkingBudget, Math.max(0, maxTokens - 1024)),
292
302
  },
293
303
  });
294
304
  }
@@ -415,6 +425,7 @@ function supportsAdaptiveThinking(modelId, modelName) {
415
425
  s.includes("opus-4-7") ||
416
426
  s.includes("opus-4-8") ||
417
427
  s.includes("sonnet-4-6") ||
428
+ s.includes("sonnet-5") ||
418
429
  s.includes("fable-5"));
419
430
  }
420
431
  function supportsNativeXhighEffort(model) {
@@ -468,7 +479,7 @@ function isAnthropicClaudeModel(model) {
468
479
  }
469
480
  /**
470
481
  * Check if the model supports prompt caching.
471
- * Supported: Claude 3.5 Haiku, Claude 3.7 Sonnet, Claude 4.x models
482
+ * Supported: Claude 3.5 Haiku, Claude 3.7 Sonnet, Claude 4.x models, Claude 5 models
472
483
  *
473
484
  * For base models and system-defined inference profiles the model ID / ARN
474
485
  * contains the model name, so we can decide locally.
@@ -488,6 +499,9 @@ function supportsPromptCaching(model, env) {
488
499
  return true;
489
500
  return false;
490
501
  }
502
+ // Claude 5 models (fable-5, sonnet-5)
503
+ if (candidates.some((s) => s.includes("fable-5") || s.includes("sonnet-5")))
504
+ return true;
491
505
  // Claude 4.x models (opus-4, sonnet-4, haiku-4)
492
506
  if (candidates.some((s) => s.includes("-4-")))
493
507
  return true;
@@ -1,4 +1,3 @@
1
- import { getProviderEnvValue } from "../utils/provider-env.js";
2
1
  /** Workers AI direct endpoint. */
3
2
  export const CLOUDFLARE_WORKERS_AI_BASE_URL = "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1";
4
3
  /** AI Gateway Unified API. https://developers.cloudflare.com/ai-gateway/usage/unified-api/ */
@@ -7,21 +6,4 @@ export const CLOUDFLARE_AI_GATEWAY_COMPAT_BASE_URL = "https://gateway.ai.cloudfl
7
6
  export const CLOUDFLARE_AI_GATEWAY_OPENAI_BASE_URL = "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai";
8
7
  /** AI Gateway → Anthropic passthrough. */
9
8
  export const CLOUDFLARE_AI_GATEWAY_ANTHROPIC_BASE_URL = "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic";
10
- export function isCloudflareProvider(provider) {
11
- return provider === "cloudflare-workers-ai" || provider === "cloudflare-ai-gateway";
12
- }
13
- /** Substitute `{VAR}` placeholders in a Cloudflare baseUrl from provider env or process.env. */
14
- export function resolveCloudflareBaseUrl(model, env) {
15
- const url = model.baseUrl;
16
- if (!url.includes("{"))
17
- return url;
18
- const baseUrl = url.replace(/\{([A-Z_][A-Z0-9_]*)\}/g, (_match, name) => {
19
- const value = getProviderEnvValue(name, env);
20
- if (!value) {
21
- throw new Error(`${name} is required for provider ${model.provider} but is not set.`);
22
- }
23
- return value;
24
- });
25
- return baseUrl;
26
- }
27
9
  //# sourceMappingURL=cloudflare.js.map
@@ -1,6 +1,8 @@
1
1
  import { GoogleGenAI, } from "@google/genai";
2
2
  import { calculateCost, clampThinkingLevel } from "../models.js";
3
+ import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
3
4
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
5
+ import { providerHeadersToRecord } from "../utils/headers.js";
4
6
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
5
7
  import { convertMessages, convertTools, isThinkingPart, mapStopReason, mapToolChoice, retainThoughtSignature, } from "./google-shared.js";
6
8
  import { buildBaseOptions } from "./simple-options.js";
@@ -161,6 +163,7 @@ export const stream = (model, context, options) => {
161
163
  output: (chunk.usageMetadata.candidatesTokenCount || 0) + (chunk.usageMetadata.thoughtsTokenCount || 0),
162
164
  cacheRead: chunk.usageMetadata.cachedContentTokenCount || 0,
163
165
  cacheWrite: 0,
166
+ reasoning: chunk.usageMetadata.thoughtsTokenCount || 0,
164
167
  totalTokens: chunk.usageMetadata.totalTokenCount || 0,
165
168
  cost: {
166
169
  input: 0,
@@ -208,7 +211,7 @@ export const stream = (model, context, options) => {
208
211
  }
209
212
  }
210
213
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
211
- output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
214
+ output.errorMessage = formatProviderError(normalizeProviderError(error));
212
215
  stream.push({ type: "error", reason: output.stopReason, error: output });
213
216
  stream.end();
214
217
  }
@@ -220,7 +223,7 @@ export const streamSimple = (model, context, options) => {
220
223
  if (!apiKey) {
221
224
  throw new Error(`No API key for provider: ${model.provider}`);
222
225
  }
223
- const base = buildBaseOptions(model, options, apiKey);
226
+ const base = buildBaseOptions(model, context, options, apiKey);
224
227
  if (!options?.reasoning) {
225
228
  return stream(model, context, { ...base, thinking: { enabled: false } });
226
229
  }
@@ -250,8 +253,9 @@ function createClient(model, apiKey, optionsHeaders) {
250
253
  httpOptions.baseUrl = model.baseUrl;
251
254
  httpOptions.apiVersion = ""; // baseUrl already includes version path, don't append
252
255
  }
253
- if (model.headers || optionsHeaders) {
254
- httpOptions.headers = { ...model.headers, ...optionsHeaders };
256
+ const headers = providerHeadersToRecord({ ...model.headers, ...optionsHeaders });
257
+ if (headers) {
258
+ httpOptions.headers = headers;
255
259
  }
256
260
  return new GoogleGenAI({
257
261
  apiKey,
@@ -1,6 +1,8 @@
1
1
  import { GoogleGenAI, ResourceScope, ThinkingLevel, } from "@google/genai";
2
2
  import { calculateCost, clampThinkingLevel } from "../models.js";
3
+ import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
3
4
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
5
+ import { providerHeadersToRecord } from "../utils/headers.js";
4
6
  import { getProviderEnvValue } from "../utils/provider-env.js";
5
7
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
6
8
  import { convertMessages, convertTools, isThinkingPart, mapStopReason, mapToolChoice, retainThoughtSignature, } from "./google-shared.js";
@@ -170,6 +172,7 @@ export const stream = (model, context, options) => {
170
172
  output: (chunk.usageMetadata.candidatesTokenCount || 0) + (chunk.usageMetadata.thoughtsTokenCount || 0),
171
173
  cacheRead: chunk.usageMetadata.cachedContentTokenCount || 0,
172
174
  cacheWrite: 0,
175
+ reasoning: chunk.usageMetadata.thoughtsTokenCount || 0,
173
176
  totalTokens: chunk.usageMetadata.totalTokenCount || 0,
174
177
  cost: {
175
178
  input: 0,
@@ -217,7 +220,7 @@ export const stream = (model, context, options) => {
217
220
  }
218
221
  }
219
222
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
220
- output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
223
+ output.errorMessage = formatProviderError(normalizeProviderError(error));
221
224
  stream.push({ type: "error", reason: output.stopReason, error: output });
222
225
  stream.end();
223
226
  }
@@ -225,7 +228,7 @@ export const stream = (model, context, options) => {
225
228
  return stream;
226
229
  };
227
230
  export const streamSimple = (model, context, options) => {
228
- const base = buildBaseOptions(model, options, undefined);
231
+ const base = buildBaseOptions(model, context, options, undefined);
229
232
  if (!options?.reasoning) {
230
233
  return stream(model, context, {
231
234
  ...base,
@@ -281,8 +284,9 @@ function buildHttpOptions(model, optionsHeaders) {
281
284
  httpOptions.apiVersion = "";
282
285
  }
283
286
  }
284
- if (model.headers || optionsHeaders) {
285
- httpOptions.headers = { ...model.headers, ...optionsHeaders };
287
+ const headers = providerHeadersToRecord({ ...model.headers, ...optionsHeaders });
288
+ if (headers) {
289
+ httpOptions.headers = headers;
286
290
  }
287
291
  return Object.keys(httpOptions).length > 0 ? httpOptions : undefined;
288
292
  }
@@ -65,7 +65,7 @@ export const streamSimple = (model, context, options) => {
65
65
  if (!apiKey) {
66
66
  throw new Error(`No API key for provider: ${model.provider}`);
67
67
  }
68
- const base = buildBaseOptions(model, options, apiKey);
68
+ const base = buildBaseOptions(model, context, options, apiKey);
69
69
  const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;
70
70
  const reasoning = clampedReasoning === "off" ? undefined : clampedReasoning;
71
71
  const shouldUseReasoning = model.reasoning && reasoning !== undefined;
@@ -1,24 +1,16 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
1
+ function loadNodeOs() {
2
+ if (typeof process === "undefined" || !(process.versions?.node || process.versions?.bun)) {
3
+ return null;
6
4
  }
7
- return path;
8
- };
9
- // NEVER convert to top-level runtime imports - breaks browser/Vite builds
10
- let _os = null;
11
- const dynamicImport = (specifier) => import(__rewriteRelativeImportExtension(specifier));
12
- const NODE_OS_SPECIFIER = "node:" + "os";
13
- if (typeof process !== "undefined" && (process.versions?.node || process.versions?.bun)) {
14
- dynamicImport(NODE_OS_SPECIFIER).then((m) => {
15
- _os = m;
16
- });
5
+ return process.getBuiltinModule?.("node:os") ?? null;
17
6
  }
7
+ // NEVER convert to top-level runtime imports - breaks browser/Vite builds
8
+ const _os = loadNodeOs();
18
9
  import { clampThinkingLevel } from "../models.js";
19
10
  import { registerSessionResourceCleanup } from "../session-resources.js";
20
11
  import { combineAbortSignals } from "../utils/abort-signals.js";
21
12
  import { appendAssistantMessageDiagnostic, createAssistantMessageDiagnostic, formatThrownValue, } from "../utils/diagnostics.js";
13
+ import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
22
14
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
23
15
  import { headersToRecord } from "../utils/headers.js";
24
16
  import { resolveHttpProxyUrlForTarget } from "../utils/node-http-proxy.js";
@@ -33,10 +25,10 @@ const JWT_CLAIM_PATH = "https://api.openai.com/auth";
33
25
  const DEFAULT_MAX_RETRIES = 0;
34
26
  const BASE_DELAY_MS = 1000;
35
27
  const DEFAULT_MAX_RETRY_DELAY_MS = 60_000;
36
- // Keep a bounded pre-header timeout so zero-event Codex SSE stalls fail instead of
37
- // leaving callers stuck on "Working..." indefinitely. See #4945.
38
- const DEFAULT_SSE_HEADER_TIMEOUT_MS = 20_000;
39
28
  const DEFAULT_WEBSOCKET_CONNECT_TIMEOUT_MS = 15_000;
29
+ // The Codex backend accepts zstd-compressed request bodies on the SSE responses
30
+ // endpoint (the same endpoint the official Codex client compresses against).
31
+ const REQUEST_COMPRESSION_ZSTD_LEVEL = 3;
40
32
  const CODEX_TOOL_CALL_PROVIDERS = new Set(["openai", "openai-codex", "opencode"]);
41
33
  const WEBSOCKET_MESSAGE_TOO_BIG_CLOSE_CODE = 1009;
42
34
  const WEBSOCKET_CONNECTION_LIMIT_REACHED_CODE = "websocket_connection_limit_reached";
@@ -110,18 +102,29 @@ function normalizeTimeoutMs(value) {
110
102
  }
111
103
  return Math.floor(value);
112
104
  }
113
- function createSSEHeaderTimeout() {
114
- const controller = new AbortController();
115
- let error;
116
- const timeout = setTimeout(() => {
117
- error = new Error(`Codex SSE response headers timed out after ${DEFAULT_SSE_HEADER_TIMEOUT_MS}ms`);
118
- controller.abort(error);
119
- }, DEFAULT_SSE_HEADER_TIMEOUT_MS);
120
- return {
121
- signal: controller.signal,
122
- clear: () => clearTimeout(timeout),
123
- error: () => error,
124
- };
105
+ function loadNodeZlib() {
106
+ if (typeof process === "undefined" || !(process.versions?.node || process.versions?.bun)) {
107
+ return null;
108
+ }
109
+ return process.getBuiltinModule?.("node:zlib") ?? null;
110
+ }
111
+ // Returns the zstd-compressed body bytes, or null when compression is
112
+ // unavailable (browser/Vite builds). Callers fall back to sending the
113
+ // uncompressed JSON when this returns null.
114
+ function compressRequestBodyZstd(bodyJson) {
115
+ const zlib = loadNodeZlib();
116
+ if (!zlib || typeof zlib.zstdCompressSync !== "function") {
117
+ return null;
118
+ }
119
+ try {
120
+ const compressed = zlib.zstdCompressSync(bodyJson, {
121
+ params: { [zlib.constants.ZSTD_c_compressionLevel]: REQUEST_COMPRESSION_ZSTD_LEVEL },
122
+ });
123
+ return new Uint8Array(compressed.buffer, compressed.byteOffset, compressed.byteLength);
124
+ }
125
+ catch {
126
+ return null;
127
+ }
125
128
  }
126
129
  // ============================================================================
127
130
  // Main Stream Function
@@ -161,7 +164,7 @@ export const stream = (model, context, options) => {
161
164
  const sseHeaders = buildSSEHeaders(model.headers, options?.headers, accountId, apiKey, options?.sessionId);
162
165
  const websocketHeaders = buildWebSocketHeaders(model.headers, options?.headers, accountId, apiKey, websocketRequestId);
163
166
  const bodyJson = JSON.stringify(body);
164
- const idleTimeoutMs = normalizeTimeoutMs(options?.timeoutMs);
167
+ const httpTimeoutMs = normalizeTimeoutMs(options?.timeoutMs);
165
168
  const websocketConnectTimeoutMs = normalizeTimeoutMs(options?.websocketConnectTimeoutMs);
166
169
  const transport = options?.transport || "auto";
167
170
  const websocketDisabledForSession = transport !== "sse" && isWebSocketSseFallbackActive(options?.sessionId);
@@ -176,7 +179,7 @@ export const stream = (model, context, options) => {
176
179
  try {
177
180
  await processWebSocketStream(resolveCodexWebSocketUrl(model.baseUrl), body, websocketHeaders, output, stream, model, () => {
178
181
  websocketStarted = true;
179
- }, idleTimeoutMs, websocketConnectTimeoutMs, options);
182
+ }, httpTimeoutMs, websocketConnectTimeoutMs, options);
180
183
  if (options?.signal?.aborted) {
181
184
  throw new Error("Request was aborted");
182
185
  }
@@ -214,6 +217,14 @@ export const stream = (model, context, options) => {
214
217
  }
215
218
  }
216
219
  }
220
+ // Compress the request body once for the SSE path. The Codex backend
221
+ // decodes Content-Encoding: zstd; the WebSocket transport above sends the
222
+ // uncompressed JSON frame, matching the official Codex client.
223
+ const compressedBody = compressRequestBodyZstd(bodyJson);
224
+ if (compressedBody) {
225
+ sseHeaders.set("content-encoding", "zstd");
226
+ }
227
+ const sseBody = compressedBody ?? bodyJson;
217
228
  // Fetch with retry logic for rate limits and transient errors
218
229
  let response;
219
230
  let lastError;
@@ -223,23 +234,24 @@ export const stream = (model, context, options) => {
223
234
  throw new Error("Request was aborted");
224
235
  }
225
236
  try {
226
- const headerTimeout = createSSEHeaderTimeout();
227
- const combinedSignal = combineAbortSignals([options?.signal, headerTimeout.signal]);
237
+ const headerTimeoutSignal = httpTimeoutMs !== undefined && httpTimeoutMs > 0 ? AbortSignal.timeout(httpTimeoutMs) : undefined;
238
+ const combinedSignal = combineAbortSignals([options?.signal, headerTimeoutSignal]);
228
239
  try {
229
240
  response = await fetch(resolveCodexUrl(model.baseUrl), {
230
241
  method: "POST",
231
242
  headers: sseHeaders,
232
- body: bodyJson,
243
+ body: sseBody,
233
244
  signal: combinedSignal.signal,
234
245
  });
235
246
  }
236
247
  catch (error) {
237
- const timeoutError = headerTimeout.error();
238
- throw timeoutError && !options?.signal?.aborted ? timeoutError : error;
248
+ if (headerTimeoutSignal?.aborted && !options?.signal?.aborted) {
249
+ throw new Error(`Codex SSE response headers timed out after ${httpTimeoutMs}ms`);
250
+ }
251
+ throw error;
239
252
  }
240
253
  finally {
241
254
  combinedSignal.cleanup();
242
- headerTimeout.clear();
243
255
  }
244
256
  await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);
245
257
  if (response.ok) {
@@ -300,7 +312,7 @@ export const stream = (model, context, options) => {
300
312
  delete block.partialJson;
301
313
  }
302
314
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
303
- output.errorMessage = error instanceof Error ? error.message : String(error);
315
+ output.errorMessage = formatProviderError(normalizeProviderError(error));
304
316
  stream.push({ type: "error", reason: output.stopReason, error: output });
305
317
  stream.end();
306
318
  }
@@ -312,7 +324,7 @@ export const streamSimple = (model, context, options) => {
312
324
  if (!apiKey) {
313
325
  throw new Error(`No API key for provider: ${model.provider}`);
314
326
  }
315
- const base = buildBaseOptions(model, options, apiKey);
327
+ const base = buildBaseOptions(model, context, options, apiKey);
316
328
  const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;
317
329
  const reasoningEffort = clampedReasoning === "off" ? undefined : clampedReasoning;
318
330
  return stream(model, context, {
@@ -553,6 +565,7 @@ async function* parseSSE(response, signal) {
553
565
  // ============================================================================
554
566
  const OPENAI_BETA_RESPONSES_WEBSOCKETS = "responses_websockets=2026-02-06";
555
567
  const SESSION_WEBSOCKET_CACHE_TTL_MS = 5 * 60 * 1000;
568
+ const SESSION_WEBSOCKET_MAX_AGE_MS = 55 * 60 * 1000;
556
569
  const websocketSessionCache = new Map();
557
570
  const websocketDebugStats = new Map();
558
571
  const websocketSseFallbackSessions = new Set();
@@ -677,6 +690,9 @@ function isWebSocketReusable(socket) {
677
690
  // If readyState is unavailable, assume the runtime keeps it open/reusable.
678
691
  return readyState === undefined || readyState === 1;
679
692
  }
693
+ function isWebSocketSessionExpired(entry) {
694
+ return Date.now() - entry.createdAt >= SESSION_WEBSOCKET_MAX_AGE_MS;
695
+ }
680
696
  function closeWebSocketSilently(socket, code = 1000, reason = "done") {
681
697
  try {
682
698
  socket.close(code, reason);
@@ -777,7 +793,11 @@ async function acquireWebSocket(url, headers, sessionId, signal, connectTimeoutM
777
793
  clearTimeout(cached.idleTimer);
778
794
  cached.idleTimer = undefined;
779
795
  }
780
- if (!cached.busy && isWebSocketReusable(cached.socket)) {
796
+ if (!cached.busy && isWebSocketSessionExpired(cached)) {
797
+ closeWebSocketSilently(cached.socket, 1000, "connection_age_limit");
798
+ websocketSessionCache.delete(sessionId);
799
+ }
800
+ else if (!cached.busy && isWebSocketReusable(cached.socket)) {
781
801
  cached.busy = true;
782
802
  return {
783
803
  socket: cached.socket,
@@ -810,7 +830,7 @@ async function acquireWebSocket(url, headers, sessionId, signal, connectTimeoutM
810
830
  }
811
831
  }
812
832
  const socket = await connectWebSocket(url, headers, signal, connectTimeoutMs, env);
813
- const entry = { socket, busy: true };
833
+ const entry = { socket, busy: true, createdAt: Date.now() };
814
834
  websocketSessionCache.set(sessionId, entry);
815
835
  return {
816
836
  socket,
@@ -1164,7 +1184,12 @@ function createCodexRequestId() {
1164
1184
  function buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token) {
1165
1185
  const headers = new Headers(initHeaders);
1166
1186
  for (const [key, value] of Object.entries(additionalHeaders || {})) {
1167
- headers.set(key, value);
1187
+ if (value === null) {
1188
+ headers.delete(key);
1189
+ }
1190
+ else {
1191
+ headers.set(key, value);
1192
+ }
1168
1193
  }
1169
1194
  headers.set("Authorization", `Bearer ${token}`);
1170
1195
  headers.set("chatgpt-account-id", accountId);