@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.
- package/bin/sling.js +3 -1
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +66 -28
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +133 -15
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js +7 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +28 -14
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.js +1 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.js +3 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.js +8 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js +1 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +3 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.browser.js +9 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js +5 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js +1 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js +12 -6
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js +2 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js +1 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +10 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +10 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/detectBufferParsing.js +18 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.js +13 -15
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/ByteJsonShapeSerializer.js +27 -17
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/jsonReviver.js +22 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/needsReviver.js +41 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js +33 -13
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/writeKey.js +3 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +4 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +2 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.d.ts +6 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.d.ts +7 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.d.ts +13 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/index.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +22 -6
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/index.browser.d.ts +11 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/index.d.ts +7 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/utils/getDateHeader.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.d.ts +22 -6
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/utils/index.d.ts +2 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +1 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/experimental/ByteJsonShapeSerializer.d.ts +0 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/needsReviver.d.ts +11 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +7 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/api-extractor-type-index.d.ts +7 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/index.d.ts +21 -61
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +27 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConstants.d.ts +16 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/NodeAccountIdEndpointModeConfigOptions.d.ts +14 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/index.d.ts +5 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/emitWarningIfUnsupportedVersion.d.ts +11 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.browser.d.ts +47 -107
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.d.ts +39 -112
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.native.d.ts +48 -107
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/longPollMiddleware.d.ts +14 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-host-header/hostHeaderMiddleware.d.ts +35 -25
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-logger/loggerMiddleware.d.ts +4 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/configuration.d.ts +6 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.browser.d.ts +5 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.d.ts +5 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.browser.d.ts +6 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.d.ts +10 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.native.d.ts +6 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/check-features.d.ts +20 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/configurations.d.ts +44 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/constants.d.ts +7 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/encode-features.d.ts +5 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/user-agent-middleware.d.ts +18 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/awsRegionConfig.d.ts +11 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/extensions.d.ts +16 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.browser.d.ts +4 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.d.ts +14 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.native.d.ts +4 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setCredentialFeature.d.ts +7 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setFeature.d.ts +12 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setTokenFeature.d.ts +7 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/aws.d.ts +2 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/isVirtualHostableS3Bucket.d.ts +5 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/parseArn.d.ts +7 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partition.d.ts +38 -28
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partitions.d.ts +638 -647
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/isIpAddress.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/resolveDefaultAwsRegionalEndpointsConfig.d.ts +56 -29
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/resolveEndpoint.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/EndpointError.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/EndpointRuleObject.d.ts +1 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/ErrorRuleObject.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/RuleSetObject.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/TreeRuleObject.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/shared.d.ts +1 -12
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/configurations.d.ts +7 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/createUserAgentStringParsingProvider.d.ts +14 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.browser.d.ts +2 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.d.ts +27 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.native.d.ts +18 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/crt-availability.d.ts +8 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/defaultUserAgent.d.ts +28 -17
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/getRuntimeUserAgentPair.d.ts +6 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/is-crt-available.d.ts +5 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/nodeAppIdConfigOptions.d.ts +13 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +10 -9
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +44 -37
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.d.ts +5 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.d.ts +6 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.d.ts +7 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.d.ts +13 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/index.d.ts +7 -23
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +38 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +133 -56
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.browser.d.ts +11 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.d.ts +9 -24
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.d.ts +8 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.d.ts +6 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getDateHeader.d.ts +8 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.d.ts +8 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.d.ts +26 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/index.d.ts +4 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/isClockSkewed.d.ts +9 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +74 -40
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -9
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +25 -36
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/coercing-serializers.d.ts +18 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +22 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +22 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +22 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +29 -49
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +36 -49
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonCodec.d.ts +19 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeDeserializer.d.ts +13 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +28 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/awsExpectUnion.d.ts +7 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.d.ts +29 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/ByteJsonShapeSerializer.d.ts +57 -30
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +22 -9
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +27 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +49 -57
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QuerySerializerSettings.d.ts +13 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QueryShapeSerializer.d.ts +16 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +31 -47
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlCodec.d.ts +14 -17
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlShapeDeserializer.d.ts +20 -15
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlShapeSerializer.d.ts +21 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/parseXmlBody.d.ts +13 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/simpleFormatXml.d.ts +6 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/index.d.ts +3 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/util-arn-parser/arn.d.ts +32 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/util-format-url/format-url.d.ts +2 -4
- package/node_modules/@aws-sdk/core/package.json +10 -6
- package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-node/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
- package/node_modules/@aws-sdk/eventstream-handler-node/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-eventstream/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-websocket/package.json +5 -5
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +2 -0
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +2 -2
- package/node_modules/@aws-sdk/nested-clients/package.json +6 -6
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +14 -4
- package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +14 -4
- package/node_modules/@aws-sdk/xml-builder/package.json +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js +17 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +8 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +118 -11
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/bash.js +132 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit-diff.js +386 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js +95 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/file-mutation-queue.js +46 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/image.js +106 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/index.js +5 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/path-utils.js +26 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/read.js +110 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/tool-context.js +2 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js +31 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +90 -35
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.js +10 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js +1 -0
- package/node_modules/@earendil-works/pi-agent-core/package.json +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +26 -10
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +21 -8
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +17 -10
- package/node_modules/@earendil-works/pi-ai/dist/api/constrained-sampling.js +100 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +7 -11
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +17 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +7 -11
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +13 -9
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +68 -27
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +131 -34
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +173 -66
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +29 -7
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +8 -3
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/load.js +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.js +222 -0
- package/node_modules/@earendil-works/pi-ai/dist/bun-oauth.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +9 -3
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/model-catalog.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +5 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +30 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/ant-ling.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/deepseek.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/google.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/groq.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/kimi-coding.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter-images.js +10 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js +10 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-cn.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.js +94 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +3 -0
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +7 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +11 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-config.js +6 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +7 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-runtime.js +3 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/remote-catalog-provider.js +5 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +34 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.js +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/extensions/llama/provider.js +1 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +16 -46
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/external-editor.js +37 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +29 -47
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js +19 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +16 -15
- package/node_modules/@earendil-works/pi-coding-agent/package.json +6 -6
- package/node_modules/@earendil-works/pi-server/package.json +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +15 -12
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +6 -3
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.browser.js +1 -0
- package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.js +1 -0
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +2 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +2 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +2 -2
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-decode.js +1 -1
- package/node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/constants.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/retry/service-error-classification/constants.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/retry/service-error-classification/constants.d.ts +1 -0
- package/node_modules/@smithy/core/package.json +1 -1
- package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
- package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
- package/node_modules/@smithy/signature-v4/package.json +2 -2
- package/node_modules/brace-expansion/README.md +12 -0
- package/node_modules/brace-expansion/dist/commonjs/index.d.ts +2 -0
- package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/brace-expansion/dist/commonjs/index.js +138 -86
- package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
- package/node_modules/brace-expansion/dist/esm/index.d.ts +2 -0
- package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
- package/node_modules/brace-expansion/dist/esm/index.js +137 -85
- package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
- package/node_modules/brace-expansion/package.json +2 -2
- package/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
- package/node_modules/gaxios/package.json +1 -1
- package/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
- package/node_modules/google-auth-library/package.json +1 -1
- package/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/node_modules/undici/lib/core/request.js +12 -1
- package/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
- package/node_modules/undici/lib/handler/cache-handler.js +246 -64
- package/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
- package/node_modules/undici/lib/handler/retry-handler.js +24 -0
- package/node_modules/undici/lib/interceptor/cache.js +159 -52
- package/node_modules/undici/lib/util/cache.js +324 -62
- package/node_modules/undici/lib/util/date.js +23 -6
- package/node_modules/undici/lib/web/cookies/util.js +79 -9
- package/node_modules/undici/package.json +1 -1
- package/package.json +7 -7
- package/sling-default-packages.json +2 -1
- 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:
|
|
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
|
-
//
|
|
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:
|
|
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
|
-
//
|
|
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 [
|
|
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
|
-
|
|
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",
|
|
@@ -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
|
-
/**
|
|
53
|
-
export function
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
{"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"}}
|