@psnext/slingcli 2.5.20260723-1 → 2.5.20260725-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 (397) hide show
  1. package/bin/sling.js +3 -1
  2. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +66 -28
  3. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +133 -15
  4. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js +7 -2
  5. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +28 -14
  6. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.js +1 -0
  7. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.js +3 -0
  8. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.js +8 -0
  9. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js +1 -1
  10. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +3 -3
  11. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.browser.js +9 -0
  12. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js +5 -1
  13. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js +1 -0
  14. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js +12 -6
  15. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js +2 -1
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js +1 -1
  17. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +10 -1
  18. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +10 -0
  19. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/detectBufferParsing.js +18 -0
  20. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.js +13 -15
  21. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/ByteJsonShapeSerializer.js +27 -17
  22. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/jsonReviver.js +22 -3
  23. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/needsReviver.js +41 -0
  24. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js +33 -13
  25. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/writeKey.js +3 -0
  26. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +4 -0
  27. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +2 -1
  28. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.d.ts +6 -0
  29. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.d.ts +7 -0
  30. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.d.ts +13 -0
  31. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/index.d.ts +1 -1
  32. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +22 -6
  33. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/index.browser.d.ts +11 -0
  34. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/index.d.ts +7 -1
  35. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/utils/getDateHeader.d.ts +4 -0
  36. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.d.ts +22 -6
  37. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/utils/index.d.ts +2 -1
  38. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +1 -0
  39. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/experimental/ByteJsonShapeSerializer.d.ts +0 -2
  40. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/needsReviver.d.ts +11 -0
  41. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +7 -2
  42. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
  43. package/node_modules/@aws-sdk/core/dist-types/ts3.4/api-extractor-type-index.d.ts +7 -4
  44. package/node_modules/@aws-sdk/core/dist-types/ts3.4/index.d.ts +21 -61
  45. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +27 -13
  46. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConstants.d.ts +16 -4
  47. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/NodeAccountIdEndpointModeConfigOptions.d.ts +14 -5
  48. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/index.d.ts +5 -16
  49. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/emitWarningIfUnsupportedVersion.d.ts +11 -4
  50. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.browser.d.ts +47 -107
  51. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.d.ts +39 -112
  52. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.native.d.ts +48 -107
  53. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/longPollMiddleware.d.ts +14 -13
  54. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-host-header/hostHeaderMiddleware.d.ts +35 -25
  55. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-logger/loggerMiddleware.d.ts +4 -14
  56. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/configuration.d.ts +6 -2
  57. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.browser.d.ts +5 -2
  58. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.d.ts +5 -2
  59. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.browser.d.ts +6 -2
  60. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.d.ts +10 -2
  61. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.native.d.ts +6 -2
  62. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/check-features.d.ts +20 -16
  63. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/configurations.d.ts +44 -21
  64. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/constants.d.ts +7 -7
  65. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/encode-features.d.ts +5 -2
  66. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/user-agent-middleware.d.ts +18 -18
  67. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/awsRegionConfig.d.ts +11 -8
  68. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/extensions.d.ts +16 -14
  69. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.browser.d.ts +4 -1
  70. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.d.ts +14 -7
  71. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.native.d.ts +4 -1
  72. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setCredentialFeature.d.ts +7 -6
  73. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setFeature.d.ts +12 -6
  74. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setTokenFeature.d.ts +7 -6
  75. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/aws.d.ts +2 -2
  76. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/isVirtualHostableS3Bucket.d.ts +5 -4
  77. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/parseArn.d.ts +7 -2
  78. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partition.d.ts +38 -28
  79. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partitions.d.ts +638 -647
  80. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/isIpAddress.d.ts +1 -1
  81. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/resolveDefaultAwsRegionalEndpointsConfig.d.ts +56 -29
  82. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/resolveEndpoint.d.ts +1 -1
  83. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/EndpointError.d.ts +1 -1
  84. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/EndpointRuleObject.d.ts +1 -6
  85. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/ErrorRuleObject.d.ts +1 -1
  86. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/RuleSetObject.d.ts +1 -1
  87. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/TreeRuleObject.d.ts +1 -1
  88. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/shared.d.ts +1 -12
  89. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/configurations.d.ts +7 -4
  90. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/createUserAgentStringParsingProvider.d.ts +14 -7
  91. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.browser.d.ts +2 -7
  92. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.d.ts +27 -18
  93. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.native.d.ts +18 -13
  94. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/crt-availability.d.ts +8 -3
  95. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/defaultUserAgent.d.ts +28 -17
  96. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/getRuntimeUserAgentPair.d.ts +6 -2
  97. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/is-crt-available.d.ts +5 -2
  98. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/nodeAppIdConfigOptions.d.ts +13 -4
  99. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +10 -9
  100. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +44 -37
  101. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.d.ts +5 -2
  102. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.d.ts +6 -0
  103. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.d.ts +7 -0
  104. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.d.ts +13 -0
  105. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/index.d.ts +7 -23
  106. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +38 -13
  107. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +133 -56
  108. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.browser.d.ts +11 -0
  109. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.d.ts +9 -24
  110. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.d.ts +8 -1
  111. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.d.ts +6 -1
  112. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getDateHeader.d.ts +8 -1
  113. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.d.ts +8 -1
  114. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.d.ts +26 -4
  115. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/index.d.ts +4 -3
  116. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/isClockSkewed.d.ts +9 -1
  117. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -5
  118. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +74 -40
  119. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -9
  120. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +25 -36
  121. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/coercing-serializers.d.ts +18 -3
  122. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -5
  123. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +22 -27
  124. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +22 -21
  125. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +22 -21
  126. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +29 -49
  127. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +36 -49
  128. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonCodec.d.ts +19 -13
  129. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeDeserializer.d.ts +13 -13
  130. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +28 -18
  131. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/awsExpectUnion.d.ts +7 -1
  132. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -0
  133. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.d.ts +29 -14
  134. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/ByteJsonShapeSerializer.d.ts +57 -30
  135. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -7
  136. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -7
  137. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
  138. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +22 -9
  139. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +27 -18
  140. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +49 -57
  141. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QuerySerializerSettings.d.ts +13 -7
  142. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QueryShapeSerializer.d.ts +16 -21
  143. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
  144. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +31 -47
  145. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlCodec.d.ts +14 -17
  146. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlShapeDeserializer.d.ts +20 -15
  147. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlShapeSerializer.d.ts +21 -21
  148. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/parseXmlBody.d.ts +13 -4
  149. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/simpleFormatXml.d.ts +6 -1
  150. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/index.d.ts +3 -3
  151. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/util-arn-parser/arn.d.ts +32 -14
  152. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/util-format-url/format-url.d.ts +2 -4
  153. package/node_modules/@aws-sdk/core/package.json +10 -6
  154. package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
  155. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +2 -2
  156. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
  157. package/node_modules/@aws-sdk/credential-provider-ini/package.json +11 -11
  158. package/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
  159. package/node_modules/@aws-sdk/credential-provider-node/package.json +9 -9
  160. package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
  161. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +4 -4
  162. package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  163. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
  164. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +2 -2
  165. package/node_modules/@aws-sdk/middleware-eventstream/package.json +2 -2
  166. package/node_modules/@aws-sdk/middleware-websocket/package.json +5 -5
  167. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  168. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  169. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  170. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  171. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  172. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.browser.d.ts +2 -0
  173. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.d.ts +2 -0
  174. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.native.d.ts +2 -0
  175. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +2 -0
  176. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +2 -0
  177. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +2 -0
  178. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.browser.d.ts +2 -0
  179. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.d.ts +2 -0
  180. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.native.d.ts +2 -0
  181. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +2 -0
  182. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +2 -0
  183. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +2 -0
  184. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +2 -0
  185. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +2 -0
  186. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +2 -0
  187. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.browser.d.ts +2 -0
  188. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.d.ts +2 -0
  189. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.native.d.ts +2 -0
  190. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +2 -0
  191. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +2 -0
  192. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +2 -0
  193. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.browser.d.ts +2 -0
  194. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.d.ts +2 -0
  195. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.native.d.ts +2 -0
  196. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +2 -0
  197. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +2 -0
  198. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +2 -0
  199. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +2 -0
  200. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +2 -0
  201. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +2 -0
  202. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +2 -2
  203. package/node_modules/@aws-sdk/nested-clients/package.json +6 -6
  204. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  205. package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +14 -4
  206. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +14 -4
  207. package/node_modules/@aws-sdk/xml-builder/package.json +1 -1
  208. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js +17 -4
  209. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +8 -2
  210. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +118 -11
  211. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/bash.js +132 -0
  212. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit-diff.js +386 -0
  213. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js +95 -0
  214. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/file-mutation-queue.js +46 -0
  215. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/image.js +106 -0
  216. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/index.js +5 -0
  217. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/path-utils.js +26 -0
  218. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/read.js +110 -0
  219. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/tool-context.js +2 -0
  220. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js +31 -0
  221. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +90 -35
  222. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.js +10 -4
  223. package/node_modules/@earendil-works/pi-agent-core/dist/index.js +1 -0
  224. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -2
  225. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +26 -10
  226. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +21 -8
  227. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +17 -10
  228. package/node_modules/@earendil-works/pi-ai/dist/api/constrained-sampling.js +100 -0
  229. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +7 -11
  230. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +17 -3
  231. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +7 -11
  232. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +13 -9
  233. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +68 -27
  234. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +131 -34
  235. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +173 -66
  236. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +29 -7
  237. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +8 -3
  238. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/load.js +5 -0
  239. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.js +222 -0
  240. package/node_modules/@earendil-works/pi-ai/dist/bun-oauth.js +2 -0
  241. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +9 -3
  242. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +15 -0
  243. package/node_modules/@earendil-works/pi-ai/dist/model-catalog.js +4 -0
  244. package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +5 -3
  245. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +2 -1
  246. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +2 -1
  247. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +30 -3
  248. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +2 -1
  249. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +2 -1
  250. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +2 -1
  251. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +2 -1
  252. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +2 -1
  253. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  254. package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
  255. package/node_modules/@earendil-works/pi-ai/dist/providers/data/ant-ling.json +1 -1
  256. package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -1
  257. package/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json +1 -1
  258. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json +1 -1
  259. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  260. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -1
  261. package/node_modules/@earendil-works/pi-ai/dist/providers/data/deepseek.json +1 -1
  262. package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
  263. package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
  264. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json +1 -1
  265. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google.json +1 -1
  266. package/node_modules/@earendil-works/pi-ai/dist/providers/data/groq.json +1 -1
  267. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  268. package/node_modules/@earendil-works/pi-ai/dist/providers/data/kimi-coding.json +1 -1
  269. package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax-cn.json +1 -1
  270. package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax.json +1 -1
  271. package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -1
  272. package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai-cn.json +1 -1
  273. package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai.json +1 -1
  274. package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
  275. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
  276. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
  277. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  278. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  279. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  280. package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json +1 -1
  281. package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
  282. package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -1
  283. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  284. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
  285. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
  286. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
  287. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
  288. package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json +1 -1
  289. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
  290. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
  291. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +2 -1
  292. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +2 -1
  293. package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +2 -1
  294. package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js +2 -1
  295. package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js +2 -1
  296. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +2 -1
  297. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +2 -1
  298. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js +2 -1
  299. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +2 -1
  300. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +2 -1
  301. package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js +2 -1
  302. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js +2 -1
  303. package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js +2 -1
  304. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +2 -1
  305. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +2 -1
  306. package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +2 -1
  307. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +2 -1
  308. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +2 -1
  309. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.js +10 -2
  310. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js +10 -2
  311. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +2 -1
  312. package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-cn.models.js +2 -1
  313. package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan.models.js +2 -1
  314. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +2 -1
  315. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +2 -1
  316. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +2 -1
  317. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +2 -1
  318. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +2 -1
  319. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +2 -1
  320. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +2 -1
  321. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +2 -1
  322. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +2 -1
  323. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.js +94 -0
  324. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +3 -0
  325. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  326. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js +1 -0
  327. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.js +1 -1
  328. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js +1 -1
  329. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +7 -8
  330. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +11 -3
  331. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +4 -0
  332. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.js +6 -0
  333. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +2 -2
  334. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +7 -0
  335. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-runtime.js +3 -5
  336. package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.js +5 -10
  337. package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js +4 -4
  338. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +34 -5
  339. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.js +3 -1
  340. package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.js +1 -2
  341. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +16 -46
  342. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/external-editor.js +37 -0
  343. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +29 -47
  344. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +1 -0
  345. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js +19 -8
  346. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js +3 -1
  347. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +16 -15
  348. package/node_modules/@earendil-works/pi-coding-agent/package.json +6 -6
  349. package/node_modules/@earendil-works/pi-server/package.json +2 -2
  350. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +15 -12
  351. package/node_modules/@earendil-works/pi-tui/dist/tui.js +6 -3
  352. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  353. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1 -1
  354. package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.browser.js +1 -0
  355. package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.js +1 -0
  356. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +2 -2
  357. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +2 -2
  358. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +2 -2
  359. package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-decode.js +1 -1
  360. package/node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/constants.js +1 -0
  361. package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +2 -2
  362. package/node_modules/@smithy/core/dist-types/submodules/retry/service-error-classification/constants.d.ts +1 -0
  363. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/retry/service-error-classification/constants.d.ts +1 -0
  364. package/node_modules/@smithy/core/package.json +1 -1
  365. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  366. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  367. package/node_modules/@smithy/signature-v4/package.json +2 -2
  368. package/node_modules/brace-expansion/README.md +12 -0
  369. package/node_modules/brace-expansion/dist/commonjs/index.d.ts +2 -0
  370. package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
  371. package/node_modules/brace-expansion/dist/commonjs/index.js +138 -86
  372. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  373. package/node_modules/brace-expansion/dist/esm/index.d.ts +2 -0
  374. package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
  375. package/node_modules/brace-expansion/dist/esm/index.js +137 -85
  376. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  377. package/node_modules/brace-expansion/package.json +2 -2
  378. package/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  379. package/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
  380. package/node_modules/gaxios/package.json +1 -1
  381. package/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
  382. package/node_modules/google-auth-library/package.json +1 -1
  383. package/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
  384. package/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
  385. package/node_modules/undici/lib/core/request.js +12 -1
  386. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
  387. package/node_modules/undici/lib/handler/cache-handler.js +246 -64
  388. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
  389. package/node_modules/undici/lib/handler/retry-handler.js +24 -0
  390. package/node_modules/undici/lib/interceptor/cache.js +159 -52
  391. package/node_modules/undici/lib/util/cache.js +324 -62
  392. package/node_modules/undici/lib/util/date.js +23 -6
  393. package/node_modules/undici/lib/web/cookies/util.js +79 -9
  394. package/node_modules/undici/package.json +1 -1
  395. package/package.json +7 -7
  396. package/sling-default-packages.json +2 -1
  397. package/slingshot/index.js +337 -339
@@ -5,6 +5,8 @@ import { formatProviderError, normalizeProviderError } from "../utils/error-body
5
5
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
6
6
  import { headersToRecord } from "../utils/headers.js";
7
7
  import { getProviderEnvValue } from "../utils/provider-env.js";
8
+ import { retryProviderRequest } from "../utils/provider-retry.js";
9
+ import { createGrammarToolInputProperties } from "./constrained-sampling.js";
8
10
  import { buildCopilotDynamicHeaders, hasCopilotVisionInput } from "./github-copilot-headers.js";
9
11
  import { clampOpenAIPromptCacheKey } from "./openai-prompt-cache.js";
10
12
  import { convertResponsesMessages, convertResponsesTools, processResponsesStream } from "./openai-responses-shared.js";
@@ -50,7 +52,10 @@ function getCompat(model) {
50
52
  supportsDeveloperRole: model.compat?.supportsDeveloperRole ?? true,
51
53
  sessionAffinityFormat: model.compat?.sessionAffinityFormat ?? detectSessionAffinityFormat(model),
52
54
  supportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? true,
55
+ supportsStrictMode: model.compat?.supportsStrictMode ?? false,
56
+ supportsOpenAIGrammarTools: model.compat?.supportsOpenAIGrammarTools ?? false,
53
57
  supportsToolSearch: model.compat?.supportsToolSearch ?? false,
58
+ supportsExplicitPromptCacheMode: model.compat?.supportsExplicitPromptCacheMode ?? false,
54
59
  };
55
60
  }
56
61
  function getPromptCacheRetention(compat, cacheRetention) {
@@ -88,8 +93,10 @@ export const stream = (model, context, options) => {
88
93
  const apiKey = getClientApiKey(model.provider, options?.apiKey, options?.headers);
89
94
  const cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env);
90
95
  const cacheSessionId = cacheRetention === "none" ? undefined : options?.sessionId;
96
+ const compat = getCompat(model);
97
+ const grammarToolInputProperties = createGrammarToolInputProperties(context.tools, compat.supportsOpenAIGrammarTools);
91
98
  const client = createClient(model, context, apiKey, options?.headers, cacheSessionId);
92
- let params = buildParams(model, context, options);
99
+ let params = buildParams(model, context, options, compat, grammarToolInputProperties);
93
100
  const nextParams = await options?.onPayload?.(params, model);
94
101
  if (nextParams !== undefined) {
95
102
  params = nextParams;
@@ -97,13 +104,18 @@ export const stream = (model, context, options) => {
97
104
  const requestOptions = {
98
105
  ...(options?.signal ? { signal: options.signal } : {}),
99
106
  ...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),
100
- maxRetries: options?.maxRetries ?? 0,
107
+ maxRetries: 0,
101
108
  };
102
- const { data: openaiStream, response } = await client.responses.create(params, requestOptions).withResponse();
109
+ const { data: openaiStream, response } = await retryProviderRequest(() => client.responses.create(params, requestOptions).withResponse(), {
110
+ maxRetries: options?.maxRetries,
111
+ maxRetryDelayMs: options?.maxRetryDelayMs,
112
+ signal: options?.signal,
113
+ });
103
114
  await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);
104
115
  stream.push({ type: "start", partial: output });
105
116
  await processResponsesStream(openaiStream, output, stream, model, {
106
117
  serviceTier: options?.serviceTier,
118
+ grammarToolInputProperties,
107
119
  applyServiceTierPricing: (usage, serviceTier) => applyServiceTierPricing(usage, serviceTier, model),
108
120
  });
109
121
  if (options?.signal?.aborted) {
@@ -118,8 +130,9 @@ export const stream = (model, context, options) => {
118
130
  catch (error) {
119
131
  for (const block of output.content) {
120
132
  delete block.index;
121
- // partialJson is only a streaming scratch buffer; never persist it.
133
+ // Streaming scratch buffers are only used during parsing; never persist them.
122
134
  delete block.partialJson;
135
+ delete block.customInput;
123
136
  }
124
137
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
125
138
  output.errorMessage = formatOpenAIResponsesError(error);
@@ -172,19 +185,25 @@ function createClient(model, context, apiKey, optionsHeaders, sessionId) {
172
185
  defaultHeaders: headers,
173
186
  });
174
187
  }
175
- function buildParams(model, context, options) {
176
- const compat = getCompat(model);
188
+ function buildParams(model, context, options, compat = getCompat(model), grammarToolInputProperties = createGrammarToolInputProperties(context.tools, compat.supportsOpenAIGrammarTools)) {
177
189
  const toolPlacement = splitDeferredTools(context, compat.supportsToolSearch);
178
190
  const messages = convertResponsesMessages(model, context, OPENAI_TOOL_CALL_PROVIDERS, {
191
+ grammarToolInputProperties,
179
192
  deferredTools: toolPlacement.deferred,
193
+ toolOptions: {
194
+ supportsStrictMode: compat.supportsStrictMode,
195
+ supportsOpenAIGrammarTools: compat.supportsOpenAIGrammarTools,
196
+ },
180
197
  });
181
198
  const cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env);
199
+ const disableImplicitPromptCache = cacheRetention === "none" && compat.supportsExplicitPromptCacheMode;
182
200
  const params = {
183
201
  model: model.id,
184
202
  input: messages,
185
203
  stream: true,
186
204
  prompt_cache_key: cacheRetention === "none" ? undefined : clampOpenAIPromptCacheKey(options?.sessionId),
187
205
  prompt_cache_retention: getPromptCacheRetention(compat, cacheRetention),
206
+ prompt_cache_options: disableImplicitPromptCache ? { mode: "explicit" } : undefined,
188
207
  store: false,
189
208
  };
190
209
  if (options?.maxTokens) {
@@ -197,7 +216,10 @@ function buildParams(model, context, options) {
197
216
  params.service_tier = options.serviceTier;
198
217
  }
199
218
  if (toolPlacement.immediate.length > 0) {
200
- params.tools = convertResponsesTools(toolPlacement.immediate);
219
+ params.tools = convertResponsesTools(toolPlacement.immediate, {
220
+ supportsStrictMode: compat.supportsStrictMode,
221
+ supportsOpenAIGrammarTools: compat.supportsOpenAIGrammarTools,
222
+ });
201
223
  }
202
224
  if (options?.toolChoice !== undefined) {
203
225
  params.tool_choice = options.toolChoice;
@@ -1,6 +1,7 @@
1
1
  import OpenAI from "openai";
2
2
  import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
3
3
  import { headersToRecord, providerHeadersToRecord } from "../utils/headers.js";
4
+ import { retryProviderRequest } from "../utils/provider-retry.js";
4
5
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
5
6
  export const generateImages = async (model, context, options) => {
6
7
  const output = {
@@ -25,11 +26,15 @@ export const generateImages = async (model, context, options) => {
25
26
  const requestOptions = {
26
27
  ...(options?.signal ? { signal: options.signal } : {}),
27
28
  ...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),
28
- maxRetries: options?.maxRetries ?? 0,
29
+ maxRetries: 0,
29
30
  };
30
- const { data: response, response: rawResponse } = await client.chat.completions
31
+ const { data: response, response: rawResponse } = await retryProviderRequest(() => client.chat.completions
31
32
  .create(params, requestOptions)
32
- .withResponse();
33
+ .withResponse(), {
34
+ maxRetries: options?.maxRetries,
35
+ maxRetryDelayMs: options?.maxRetryDelayMs,
36
+ signal: options?.signal,
37
+ });
33
38
  await options?.onResponse?.({ status: rawResponse.status, headers: headersToRecord(rawResponse.headers) }, model);
34
39
  const imageResponse = response;
35
40
  output.responseId = imageResponse.id;
@@ -36,6 +36,11 @@ export const loadGitHubCopilotOAuth = async () => {
36
36
  return bundledLoaders.githubCopilot();
37
37
  return (await importOAuthModule("./github-copilot.ts")).githubCopilotOAuth;
38
38
  };
39
+ export const loadOpenRouterOAuth = async () => {
40
+ if (bundledLoaders)
41
+ return bundledLoaders.openrouter();
42
+ return (await importOAuthModule("./openrouter.ts")).openRouterOAuth;
43
+ };
39
44
  export const loadKimiCodingOAuth = async () => {
40
45
  if (bundledLoaders)
41
46
  return bundledLoaders.kimiCoding();
@@ -0,0 +1,222 @@
1
+ /**
2
+ * OpenRouter OAuth PKCE flow.
3
+ *
4
+ * OpenRouter exchanges an authorization code for a permanent, user-controlled
5
+ * API key rather than an expiring access/refresh token pair. The callback is
6
+ * handled by a one-shot loopback server on an ephemeral port.
7
+ *
8
+ * NOTE: This module uses Node.js http.createServer for the OAuth callback server.
9
+ * It is only intended for CLI use, not browser environments.
10
+ */
11
+ import { createServer } from "node:http";
12
+ import { getProviderEnvValue } from "../../utils/provider-env.js";
13
+ import { oauthErrorHtml, oauthSuccessHtml } from "./oauth-page.js";
14
+ import { generatePKCE } from "./pkce.js";
15
+ const AUTHORIZE_URL = "https://openrouter.ai/auth";
16
+ const TOKEN_URL = "https://openrouter.ai/api/v1/auth/keys";
17
+ const LOGIN_TIMEOUT_MS = 5 * 60 * 1000;
18
+ const TOKEN_EXCHANGE_TIMEOUT_MS = 30_000;
19
+ function getCallbackHost() {
20
+ return getProviderEnvValue("PI_OAUTH_CALLBACK_HOST") || "127.0.0.1";
21
+ }
22
+ function sendHtml(response, status, html) {
23
+ response.statusCode = status;
24
+ response.setHeader("content-type", "text/html; charset=utf-8");
25
+ response.setHeader("cache-control", "no-store");
26
+ response.end(html);
27
+ }
28
+ function errorDetail(body) {
29
+ if (typeof body.error_description === "string")
30
+ return body.error_description;
31
+ if (typeof body.message === "string")
32
+ return body.message;
33
+ if (typeof body.error === "string")
34
+ return body.error;
35
+ if (body.error && typeof body.error === "object" && !Array.isArray(body.error)) {
36
+ const message = body.error.message;
37
+ if (typeof message === "string")
38
+ return message;
39
+ }
40
+ return undefined;
41
+ }
42
+ async function exchangeAuthorizationCode(code, verifier, signal) {
43
+ if (signal?.aborted)
44
+ throw new Error("Login cancelled");
45
+ const controller = new AbortController();
46
+ const onAbort = () => controller.abort(signal?.reason);
47
+ signal?.addEventListener("abort", onAbort, { once: true });
48
+ const timeout = setTimeout(() => controller.abort(new Error("OpenRouter OAuth token exchange timed out")), TOKEN_EXCHANGE_TIMEOUT_MS);
49
+ let response;
50
+ let body = {};
51
+ try {
52
+ response = await fetch(TOKEN_URL, {
53
+ method: "POST",
54
+ headers: { accept: "application/json", "content-type": "application/json" },
55
+ body: JSON.stringify({ code, code_verifier: verifier, code_challenge_method: "S256" }),
56
+ signal: controller.signal,
57
+ });
58
+ try {
59
+ const parsed = (await response.json());
60
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed))
61
+ body = parsed;
62
+ }
63
+ catch {
64
+ if (response.ok)
65
+ throw new Error("OpenRouter OAuth returned invalid JSON");
66
+ }
67
+ }
68
+ catch (error) {
69
+ if (signal?.aborted)
70
+ throw new Error("Login cancelled");
71
+ if (controller.signal.aborted)
72
+ throw new Error("OpenRouter OAuth token exchange timed out");
73
+ throw error;
74
+ }
75
+ finally {
76
+ clearTimeout(timeout);
77
+ signal?.removeEventListener("abort", onAbort);
78
+ }
79
+ if (!response.ok) {
80
+ const detail = errorDetail(body);
81
+ throw new Error(`OpenRouter OAuth key exchange failed (HTTP ${response.status})${detail ? `: ${detail}` : ""}`);
82
+ }
83
+ if (typeof body.key !== "string" || body.key.length === 0) {
84
+ throw new Error('OpenRouter OAuth response carries no "key"');
85
+ }
86
+ return {
87
+ type: "oauth",
88
+ access: body.key,
89
+ refresh: "",
90
+ expires: Number.MAX_SAFE_INTEGER,
91
+ };
92
+ }
93
+ async function startCallbackServer(callbackPath, verifier, signal) {
94
+ if (signal?.aborted)
95
+ throw new Error("Login cancelled");
96
+ const callbackHost = getCallbackHost();
97
+ let resolveCredential = () => { };
98
+ let rejectCredential = () => { };
99
+ const credential = new Promise((resolve, reject) => {
100
+ resolveCredential = resolve;
101
+ rejectCredential = reject;
102
+ });
103
+ let server;
104
+ let claimed = false;
105
+ let settled = false;
106
+ let timeout;
107
+ let onAbort;
108
+ const finish = (result) => {
109
+ if (settled)
110
+ return;
111
+ settled = true;
112
+ if (timeout)
113
+ clearTimeout(timeout);
114
+ if (onAbort)
115
+ signal?.removeEventListener("abort", onAbort);
116
+ server.close();
117
+ if ("credential" in result)
118
+ resolveCredential(result.credential);
119
+ else
120
+ rejectCredential(result.error);
121
+ };
122
+ server = createServer((request, response) => {
123
+ void (async () => {
124
+ const requestUrl = new URL(request.url ?? "/", `http://${callbackHost}`);
125
+ if (request.method !== "GET" || requestUrl.pathname !== callbackPath) {
126
+ sendHtml(response, 404, oauthErrorHtml("OAuth callback route not found."));
127
+ return;
128
+ }
129
+ if (claimed || settled) {
130
+ sendHtml(response, 409, oauthErrorHtml("This OAuth callback has already been used."));
131
+ return;
132
+ }
133
+ const oauthError = requestUrl.searchParams.get("error");
134
+ if (oauthError) {
135
+ const description = requestUrl.searchParams.get("error_description") ?? oauthError;
136
+ sendHtml(response, 400, oauthErrorHtml("OpenRouter authorization was denied.", description));
137
+ finish({ error: new Error(`OpenRouter authorization failed: ${description}`) });
138
+ return;
139
+ }
140
+ const code = requestUrl.searchParams.get("code");
141
+ if (!code) {
142
+ sendHtml(response, 400, oauthErrorHtml("OpenRouter returned no authorization code."));
143
+ return;
144
+ }
145
+ claimed = true;
146
+ try {
147
+ const result = await exchangeAuthorizationCode(code, verifier, signal);
148
+ sendHtml(response, 200, oauthSuccessHtml("Signed in to OpenRouter. You may now close this page."));
149
+ finish({ credential: result });
150
+ }
151
+ catch (error) {
152
+ const message = error instanceof Error ? error.message : "Unknown token exchange error";
153
+ sendHtml(response, 502, oauthErrorHtml("OpenRouter key exchange failed.", message));
154
+ finish({ error: error instanceof Error ? error : new Error(message) });
155
+ }
156
+ })();
157
+ });
158
+ await new Promise((resolve, reject) => {
159
+ server.once("error", reject);
160
+ server.listen(0, callbackHost, () => {
161
+ server.removeListener("error", reject);
162
+ resolve();
163
+ });
164
+ });
165
+ server.on("error", (error) => finish({ error }));
166
+ onAbort = () => finish({ error: new Error("Login cancelled") });
167
+ signal?.addEventListener("abort", onAbort, { once: true });
168
+ if (signal?.aborted) {
169
+ signal.removeEventListener("abort", onAbort);
170
+ server.close();
171
+ throw new Error("Login cancelled");
172
+ }
173
+ timeout = setTimeout(() => finish({ error: new Error("OpenRouter OAuth login timed out") }), LOGIN_TIMEOUT_MS);
174
+ const address = server.address();
175
+ if (!address || typeof address === "string") {
176
+ finish({ error: new Error("Could not determine the OpenRouter OAuth callback port") });
177
+ throw new Error("Could not determine the OpenRouter OAuth callback port");
178
+ }
179
+ return {
180
+ callbackUrl: `http://${callbackHost}:${address.port}${callbackPath}`,
181
+ credential,
182
+ close: () => finish({ error: new Error("Login cancelled") }),
183
+ };
184
+ }
185
+ async function loginOpenRouter(interaction) {
186
+ const { verifier, challenge } = await generatePKCE();
187
+ const callbackPath = `/oauth/callback/${crypto.randomUUID()}`;
188
+ const callback = await startCallbackServer(callbackPath, verifier, interaction.signal);
189
+ const authorizeUrl = new URL(AUTHORIZE_URL);
190
+ authorizeUrl.search = new URLSearchParams({
191
+ callback_url: callback.callbackUrl,
192
+ code_challenge: challenge,
193
+ code_challenge_method: "S256",
194
+ }).toString();
195
+ interaction.notify({
196
+ type: "progress",
197
+ message: `Listening for OpenRouter OAuth callback on ${callback.callbackUrl}`,
198
+ });
199
+ interaction.notify({
200
+ type: "auth_url",
201
+ url: authorizeUrl.toString(),
202
+ instructions: "Complete sign-in in your browser.",
203
+ });
204
+ try {
205
+ return await callback.credential;
206
+ }
207
+ finally {
208
+ callback.close();
209
+ }
210
+ }
211
+ export const openRouterOAuth = {
212
+ name: "OpenRouter OAuth",
213
+ loginLabel: "Sign in with OpenRouter",
214
+ login: loginOpenRouter,
215
+ async refresh(credential) {
216
+ return credential;
217
+ },
218
+ async toAuth(credential) {
219
+ return { apiKey: credential.access };
220
+ },
221
+ };
222
+ //# sourceMappingURL=openrouter.js.map
@@ -3,6 +3,7 @@ import { githubCopilotOAuth } from "./auth/oauth/github-copilot.js";
3
3
  import { kimiCodingOAuth } from "./auth/oauth/kimi-coding.js";
4
4
  import { registerBundledOAuthFlowLoaders } from "./auth/oauth/load.js";
5
5
  import { openaiCodexOAuth } from "./auth/oauth/openai-codex.js";
6
+ import { openRouterOAuth } from "./auth/oauth/openrouter.js";
6
7
  import { createRadiusOAuth } from "./auth/oauth/radius.js";
7
8
  import { xaiOAuth } from "./auth/oauth/xai.js";
8
9
  /** Register OAuth flows statically embedded in the standalone Bun binary. */
@@ -11,6 +12,7 @@ export function registerBunOAuthFlows() {
11
12
  anthropic: () => anthropicOAuth,
12
13
  openaiCodex: () => openaiCodexOAuth,
13
14
  githubCopilot: () => githubCopilotOAuth,
15
+ openrouter: () => openRouterOAuth,
14
16
  kimiCoding: () => kimiCodingOAuth,
15
17
  xai: () => xaiOAuth,
16
18
  radius: createRadiusOAuth,
@@ -27,6 +27,9 @@ if (typeof process !== "undefined" && (process.versions?.node || process.version
27
27
  });
28
28
  }
29
29
  import { getProviderEnvValue } from "./utils/provider-env.js";
30
+ export const ANTHROPIC_AUTH_TOKEN_ENV = "ANTHROPIC_AUTH_TOKEN";
31
+ export const ANTHROPIC_OAUTH_TOKEN_ENV = "ANTHROPIC_OAUTH_TOKEN";
32
+ export const ANTHROPIC_API_KEY_ENV = "ANTHROPIC_API_KEY";
30
33
  let cachedVertexAdcCredentialsExists = null;
31
34
  function hasVertexAdcCredentials(env) {
32
35
  const explicitCredentialsPath = env?.GOOGLE_APPLICATION_CREDENTIALS;
@@ -61,9 +64,10 @@ function getApiKeyEnvVars(provider) {
61
64
  if (provider === "github-copilot") {
62
65
  return ["COPILOT_GITHUB_TOKEN"];
63
66
  }
64
- // ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY
67
+ // ANTHROPIC_AUTH_TOKEN participates in env discovery/status, but
68
+ // getEnvApiKey() skips it because requests must pass it as Authorization: Bearer.
65
69
  if (provider === "anthropic") {
66
- return ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"];
70
+ return [ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV];
67
71
  }
68
72
  const envMap = {
69
73
  "ant-ling": "ANT_LING_API_KEY",
@@ -114,7 +118,9 @@ export function findEnvKeys(provider, env) {
114
118
  export function getEnvApiKey(provider, env) {
115
119
  const envKeys = findEnvKeys(provider, env);
116
120
  if (envKeys?.[0]) {
117
- return getProviderEnvValue(envKeys[0], env);
121
+ const apiKeyEnv = provider === "anthropic" ? envKeys.find((key) => key !== ANTHROPIC_AUTH_TOKEN_ENV) : envKeys[0];
122
+ if (apiKeyEnv)
123
+ return getProviderEnvValue(apiKeyEnv, env);
118
124
  }
119
125
  // Vertex AI supports either an explicit API key or Application Default Credentials.
120
126
  // Auth is configured via `gcloud auth application-default login`.
@@ -227,6 +227,21 @@ export const IMAGE_MODELS = {
227
227
  cacheWrite: 0,
228
228
  },
229
229
  },
230
+ "microsoft/mai-image-2.5-pro": {
231
+ id: "microsoft/mai-image-2.5-pro",
232
+ name: "Microsoft: MAI-Image-2.5 Pro",
233
+ api: "openrouter-images",
234
+ provider: "openrouter",
235
+ baseUrl: "https://openrouter.ai/api/v1",
236
+ input: ["text", "image"],
237
+ output: ["image"],
238
+ cost: {
239
+ input: 5,
240
+ output: 0,
241
+ cacheRead: 0,
242
+ cacheWrite: 0,
243
+ },
244
+ },
230
245
  "openai/gpt-5-image": {
231
246
  id: "openai/gpt-5-image",
232
247
  name: "OpenAI: GPT-5 Image",
@@ -0,0 +1,4 @@
1
+ export function flattenModelCatalog(_provider, groups) {
2
+ return Object.assign({}, ...Object.values(groups));
3
+ }
4
+ //# sourceMappingURL=model-catalog.js.map
@@ -8,6 +8,7 @@ import { azureOpenAIResponsesProvider } from "./azure-openai-responses.js";
8
8
  import { cerebrasProvider } from "./cerebras.js";
9
9
  import { cloudflareAIGatewayProvider } from "./cloudflare-ai-gateway.js";
10
10
  import { cloudflareWorkersAIProvider } from "./cloudflare-workers-ai.js";
11
+ import modelDataManifest from "./data/.manifest.json" with { type: "json" };
11
12
  import { deepseekProvider } from "./deepseek.js";
12
13
  import { fireworksProvider } from "./fireworks.js";
13
14
  import { githubCopilotProvider } from "./github-copilot.js";
@@ -49,9 +50,10 @@ export function getBuiltinModel(provider, modelId) {
49
50
  export function getBuiltinProviders() {
50
51
  return Object.keys(MODELS);
51
52
  }
52
- /** URL of a generated provider catalog, used to compare its mtime with remote catalogs during development. */
53
- export function getBuiltinModelDataUrl(provider) {
54
- return new URL(`./data/${provider}.json`, import.meta.url);
53
+ /** Generation timestamp shared by all built-in provider catalogs. */
54
+ export function getBuiltinModelDataGeneratedAt() {
55
+ const generatedAt = Date.parse(modelDataManifest.generatedAt);
56
+ return Number.isNaN(generatedAt) ? undefined : generatedAt;
55
57
  }
56
58
  export function getBuiltinModels(provider) {
57
59
  const models = MODELS[provider];
@@ -1,5 +1,6 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/amazon-bedrock.json" with { type: "json" };
4
- export const AMAZON_BEDROCK_MODELS = values;
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const AMAZON_BEDROCK_MODELS = flattenModelCatalog("amazon-bedrock", values);
5
6
  //# sourceMappingURL=amazon-bedrock.models.js.map
@@ -1,5 +1,6 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/ant-ling.json" with { type: "json" };
4
- export const ANT_LING_MODELS = values;
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const ANT_LING_MODELS = flattenModelCatalog("ant-ling", values);
5
6
  //# sourceMappingURL=ant-ling.models.js.map
@@ -1,16 +1,43 @@
1
1
  import { anthropicMessagesApi } from "../api/anthropic-messages.lazy.js";
2
- import { envApiKeyAuth, lazyOAuth } from "../auth/helpers.js";
2
+ import { lazyOAuth } from "../auth/helpers.js";
3
3
  import { loadAnthropicOAuth } from "../auth/oauth/load.js";
4
+ import { ANTHROPIC_API_KEY_ENV, ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV } from "../env-api-keys.js";
4
5
  import { createProvider } from "../models.js";
5
6
  import { ANTHROPIC_MODELS } from "./anthropic.models.js";
7
+ function anthropicApiKeyAuth() {
8
+ return {
9
+ name: "Anthropic API key",
10
+ login: async (interaction) => ({
11
+ type: "api_key",
12
+ key: await interaction.prompt({ type: "secret", message: "Enter Anthropic API key" }),
13
+ }),
14
+ resolve: async ({ ctx, credential }) => {
15
+ if (credential?.key) {
16
+ return { auth: { apiKey: credential.key }, env: credential.env, source: "stored credential" };
17
+ }
18
+ const authToken = await ctx.env(ANTHROPIC_AUTH_TOKEN_ENV);
19
+ if (authToken) {
20
+ return {
21
+ auth: { headers: { Authorization: `Bearer ${authToken}` } },
22
+ source: ANTHROPIC_AUTH_TOKEN_ENV,
23
+ };
24
+ }
25
+ for (const envVar of [ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV]) {
26
+ const apiKey = await ctx.env(envVar);
27
+ if (apiKey)
28
+ return { auth: { apiKey }, source: envVar };
29
+ }
30
+ return undefined;
31
+ },
32
+ };
33
+ }
6
34
  export function anthropicProvider() {
7
35
  return createProvider({
8
36
  id: "anthropic",
9
37
  name: "Anthropic",
10
38
  baseUrl: "https://api.anthropic.com",
11
39
  auth: {
12
- // ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY
13
- apiKey: envApiKeyAuth("Anthropic API key", ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"]),
40
+ apiKey: anthropicApiKeyAuth(),
14
41
  oauth: lazyOAuth({ name: "Anthropic (Claude Pro/Max)", load: loadAnthropicOAuth }),
15
42
  },
16
43
  models: Object.values(ANTHROPIC_MODELS),
@@ -1,5 +1,6 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/anthropic.json" with { type: "json" };
4
- export const ANTHROPIC_MODELS = values;
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const ANTHROPIC_MODELS = flattenModelCatalog("anthropic", values);
5
6
  //# sourceMappingURL=anthropic.models.js.map
@@ -1,5 +1,6 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/azure-openai-responses.json" with { type: "json" };
4
- export const AZURE_OPENAI_RESPONSES_MODELS = values;
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const AZURE_OPENAI_RESPONSES_MODELS = flattenModelCatalog("azure-openai-responses", values);
5
6
  //# sourceMappingURL=azure-openai-responses.models.js.map
@@ -1,5 +1,6 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/cerebras.json" with { type: "json" };
4
- export const CEREBRAS_MODELS = values;
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const CEREBRAS_MODELS = flattenModelCatalog("cerebras", values);
5
6
  //# sourceMappingURL=cerebras.models.js.map
@@ -1,5 +1,6 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/cloudflare-ai-gateway.json" with { type: "json" };
4
- export const CLOUDFLARE_AI_GATEWAY_MODELS = values;
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const CLOUDFLARE_AI_GATEWAY_MODELS = flattenModelCatalog("cloudflare-ai-gateway", values);
5
6
  //# sourceMappingURL=cloudflare-ai-gateway.models.js.map
@@ -1,5 +1,6 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/cloudflare-workers-ai.json" with { type: "json" };
4
- export const CLOUDFLARE_WORKERS_AI_MODELS = values;
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const CLOUDFLARE_WORKERS_AI_MODELS = flattenModelCatalog("cloudflare-workers-ai", values);
5
6
  //# sourceMappingURL=cloudflare-workers-ai.models.js.map
@@ -1 +1 @@
1
- {"schemaVersion":1,"structureHash":"948d1cb02b53150250941305b1032a95b1c1538d0803e9c35a02df3606578a70","files":{"amazon-bedrock.json":"5e0cf6a2985c99aa41093c3a68f0585d2b271baa7a229c805bdf2f1288cc530a","ant-ling.json":"cd4dbdca109e1c31dc7b81c8f8c358c65aee98abc9354c6cba1103c6d79228d2","anthropic.json":"bcf2011f93fcd4080b97f119bd3886dc4b1f2f821c07956f785ad87888eda706","azure-openai-responses.json":"fe6e2515f7eabb0d08e25ab7dae31fee015028b022b1c6a619667de9b7f6c564","cerebras.json":"8619ed9bd0fe2a1b113b6788ac647063557550dbb99d43c6baf5f5bfd01bc001","cloudflare-ai-gateway.json":"eca203979c16273452ebc14973ff3a199a3b002663831eaa9040b08f71f143de","cloudflare-workers-ai.json":"d253a1c502ce65ad2997e53673914bea5d97890c60a1f5400932d5a3fa1c5af7","deepseek.json":"2af04396431781c4b60ff990f9709aac9a73efcd81fd081efeb194de9ee5f71e","fireworks.json":"945066898ef5abf5c62dcf9a837bd91c2539018bbb7bee69187274222efca66b","github-copilot.json":"475d52b2ab0590aa832f3037ad2336cfee42bd8b5c470e0365b347ed95a12e05","google-vertex.json":"c8eaf862f1221580dc87bcdb632695398b67c847ca2d3292530c759107b83741","google.json":"395712ce72ed29b57b1ca1db43fe26e8c8486d6a000f03df901a1910624991e7","groq.json":"4c653340ebe62dce7b1a220db966dad6b0129a604cda1fab29963932ad152220","huggingface.json":"7b7b65b84141df34908a07e3f53434524277d50a92cb4f3003ea96266322e7ed","kimi-coding.json":"4dd5bbd99cce4b8a56a583eb2fcc58329d1d836a8b87757a552af990e2b96b21","minimax-cn.json":"328aa5ee5883ce0d12aa56e5455872eb0f4782a21b16b60822bcd4a3154bf042","minimax.json":"e8c94dc0856b5803815ac38b2b7c65e5bcbbe6db7a4010cefc94b9d36d0bd8d9","mistral.json":"9f4815a902b6aefa68b0568ac6479e38693632a234b98130b40243713bd54696","moonshotai-cn.json":"13c17c1430578e52aec5b6fc80ce3b24107342499a16ea3e68b2d3d09cfa912f","moonshotai.json":"00f03c532d75b90cb4e5c863221135be8d15fbc9134396b9adf61c0886f37112","nvidia.json":"5a2533834e0e3417c32f0105ca36975f67c76c74ae2a366be5b13b957eb48f75","openai-codex.json":"d328ec901afd11df831ddc9d77eb60c125bd39e14eb1714587597d65af8fd0c7","openai.json":"0fbd2572fe008178ad0d2706ea7b5bec0d8d19bde6808d7f8c837bebf8d5505f","opencode-go.json":"193ca7096916b66166d0ec46c215425adf199cd10de969b35e659f188181efe9","opencode.json":"a4bf7b56131565620105cd82a0c6c41b8bee5f74cab736e7092515937c6b1da8","openrouter.json":"6eb52b701ad3f0b1149826f605130f759f18646eaea2ead0a5b957cb8c666083","qwen-token-plan-cn.json":"f120d1f4578e417b3c52bf7c061667aa6dc4168fd43716c3de5885e327a75d57","qwen-token-plan.json":"4ea3d8e8f4de1d3368d7080a6de11fc35984eb7a49d35ba2e38a998a1f34c161","together.json":"1987bfac017995f7a645b1100b19f26e038f21c7e732daf7182db2d26f0b2731","vercel-ai-gateway.json":"ca40f98e75cdcc185e7148a7b182743f1776c21cc8ecca18f22e88ee22d2e04b","xai.json":"3c770da7852ae9994636ae81682b37d1d8c0d064e6b878a87e69e11fc04c66b9","xiaomi-token-plan-ams.json":"c6c246e77d6cff1a7f0ae5cdcf6beabd89eb7b5ff0a697c4120d070f120f91be","xiaomi-token-plan-cn.json":"e160f2805c63f7aeb86e53b6ca9c848ce04262757144cf3966f9590e6d89d212","xiaomi-token-plan-sgp.json":"c81874b2aa8b17edc5d8e75a09c735e833d4432f21671e1b716e2ea369218ccc","xiaomi.json":"2e69ba280bb332fdfd9a3be501b9b8fd40562c421a866894640c4d667dbab562","zai-coding-cn.json":"a19a0f5385de068576ee74feec2771a89caed121c9d70329b3712d0404588be0","zai.json":"03b7cd1d97a4af5e9b67264614fce0d439f32d24767cb5894311d4afb29c5d05"}}
1
+ {"schemaVersion":3,"generatedAt":"2026-07-25T04:49:49.529Z","structureHash":"7da5294256e6c090a31898f6395e37190af6a91e1967ece9eb5bac23f88509d4","files":{"amazon-bedrock.json":"dcd1ea8bd2cd948f8f5b2e6dd1ea97dc9678848a32eac6c157a540ff164d05ef","ant-ling.json":"4979fe79d99ed97382d7ce40170c6132e932e77906de1eb54464c042e7d63633","anthropic.json":"830afd9b99a5f7306903858e4b6fb49f6e28573ab73338c7a876eff69dd0b269","azure-openai-responses.json":"2d13ecc23826b5be73f3628fca5f70cc2c5c15ff609b41e4acba8167cd40934b","cerebras.json":"3fd3e19b83ab4be07d27817e25e5be0ffe4158b1394f0311d6a22d9f03847728","cloudflare-ai-gateway.json":"9974b65a0c6dda063ea3a30f4a819cab7bf70f9a25e5e3ee2feaf85cfc167b9b","cloudflare-workers-ai.json":"03b19d69433c843512e953390d51d4578e9b91f19098a9b14ff820c001623598","deepseek.json":"0dcc807a4e5827b488c6ceac87884ff6e735e01cf4f2ddfec9dd812e6fde041b","fireworks.json":"0ea306d50e72343439f71995dcda0776473e0e43a8500c4ff42769f085fee09d","github-copilot.json":"62a6256926ef2cb44e717ad30031dfbe2c3777ed38fd0db24e48b01666254a6c","google-vertex.json":"99d0b89ac9d8dc460ed922236abffbe88c9381af4d35046d2ad3a8f08fa2560c","google.json":"bcf8a8d59ccbb75bc6fb4a261a37ac4b7c806f40ee7313b4411178964be5fa37","groq.json":"868c90a897f75f866e09a585f6aee5cb991e40a9c3281497b5842a23de7d9add","huggingface.json":"e001db7b5925939c5850f31cd08b323cd40eb586222e2f74d7890eb52a30f161","kimi-coding.json":"ba42a26a69e5cb2122c0b384ba572efae93f42239ad86f26c2b7320a14aa75a1","minimax-cn.json":"8ccd71ff838f4b78bb88809babb0dc32a4fcfaec2bc4f4083841000428df4f77","minimax.json":"253edd4c910a41c8bb252400ba099f3a4de0a8900ce154319288ab091b372987","mistral.json":"44531201e872713923b7544a1f75a048d31fa25292e3e1f9f896f608a52e412d","moonshotai-cn.json":"1e6146ff3477883636448c0f44222f0a52b3c4562ef8f4eecf7e941cdd59d12e","moonshotai.json":"d8d5209873058ddccd37c1f026833e2ea3f9476c3dc9628b4a940d407acc0b2e","nvidia.json":"f476e23d9c3743c8ed3bb24a7d43b33cf90d1539ebe61c070ea2323555853e25","openai-codex.json":"c3313710bc6910e6bbcb06d5867247e97ec3fa6c2af9bc780f8a3eefb03e32e1","openai.json":"8e3852ef3567b23d2ab03b0f52f1caeb77e6e776f248e6111f851ccbe0fca8b6","opencode-go.json":"57a677764bc885c83fbbba46ad5d418baabe012a062424a0f6d8d488352102ce","opencode.json":"080500ebc60933e415c05f6e1a4e5fcc1751571ec1a46fea3d0289445257866d","openrouter.json":"3be497ceaa7ec70a2689a73f505b2abce55385c09e09a648020b2cb93a56cfa0","qwen-token-plan-cn.json":"a1495ccc21835c51d438207652f948aa9ecf4a3d784e81deaf313e484bdab1ec","qwen-token-plan.json":"597fae649f549a8ffb0b6a28426ea6761b7ece41a78b6fdef49ca970ac029970","together.json":"1d46a57e99da9be6f7e78d8f98f5610adbb266df3de7b0a13652d6fa175086e7","vercel-ai-gateway.json":"d4802bd7cf1905103c03b5819c1cbc6b55dec57d76f8330bd76baff1189a0b58","xai.json":"4cbdbfbbf915246369b9bacbc6f1feeb56accdac9f3444456343f750547f2f38","xiaomi-token-plan-ams.json":"7ce8ed244672c45737d286ff3ca9c3a2686a5d4b2f0c5f71ab9348c14b14daf3","xiaomi-token-plan-cn.json":"684892b5fe6fa371d6040d2011c0fa33facd650d2eaf19f5dbee8efb33016200","xiaomi-token-plan-sgp.json":"b19e79b82ac4fdcb080e6d220106797504c885ed70b27fc2b3c1aa4810f32963","xiaomi.json":"810368d3828c8bb9498012a0d48639030c0c216b8c13e79da02daa515aa23448","zai-coding-cn.json":"28fcb04ce65b4c6612a6b866902e0c832e18b685e5374578c4e2872569131d39","zai.json":"474670a0cf1109f4c296ea93d2c5c6eb8f53541dc9c0bddbb0e6cb054b971ebe"}}