@psnext/slingcli 2.5.20260724-1 → 2.5.20260727-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 +1 -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 +25 -13
- 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/auth/oauth/radius.js +37 -35
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +11 -1
- 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/error-body.js +8 -3
- 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 +20 -3
- 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 +24 -11
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js +1 -1
- 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 +7 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.js +10 -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/components/scoped-models-selector.js +22 -13
- 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 +67 -74
- 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 +5 -4
- 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/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/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/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
package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/external-editor.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
export async function editInExternalEditor(options) {
|
|
6
|
+
const directory = mkdtempSync(join(tmpdir(), "sling-editor-"));
|
|
7
|
+
const filePath = join(directory, "prompt.md");
|
|
8
|
+
try {
|
|
9
|
+
writeFileSync(filePath, options.content, "utf-8");
|
|
10
|
+
const [editor, ...editorArgs] = options.command.split(" ");
|
|
11
|
+
process.stdout.write(`Launching external editor: ${options.command}\nPi will resume when the editor exits.\n`);
|
|
12
|
+
// Do not use spawnSync here. On Windows, synchronous child_process calls can keep
|
|
13
|
+
// Node/libuv's console input read active after the parent pauses stdin, racing
|
|
14
|
+
// vim/nvim for the console input buffer until Ctrl+C cancels the pending read.
|
|
15
|
+
const exitCode = await new Promise((resolve) => {
|
|
16
|
+
const child = spawn(editor, [...editorArgs, filePath], {
|
|
17
|
+
stdio: "inherit",
|
|
18
|
+
shell: process.platform === "win32",
|
|
19
|
+
});
|
|
20
|
+
child.on("error", () => resolve(null));
|
|
21
|
+
child.on("close", (code) => resolve(code));
|
|
22
|
+
});
|
|
23
|
+
if (exitCode !== 0) {
|
|
24
|
+
return { status: "failed" };
|
|
25
|
+
}
|
|
26
|
+
return { status: "complete", content: readFileSync(filePath, "utf-8").replace(/\n$/, "") };
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
try {
|
|
30
|
+
rmSync(directory, { recursive: true, force: true });
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Cleanup is best effort.
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=external-editor.js.map
|
package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js
CHANGED
|
@@ -17,7 +17,7 @@ import { FooterDataProvider } from "../../core/footer-data-provider.js";
|
|
|
17
17
|
import { configureHttpDispatcher, formatHttpIdleTimeoutMs } from "../../core/http-dispatcher.js";
|
|
18
18
|
import { KeybindingsManager } from "../../core/keybindings.js";
|
|
19
19
|
import { createCompactionSummaryMessage } from "../../core/messages.js";
|
|
20
|
-
import { defaultModelPerProvider, findExactModelReferenceMatch, resolveModelScope } from "../../core/model-resolver.js";
|
|
20
|
+
import { defaultModelPerProvider, findExactModelReferenceMatch, resolveModelScope, resolveModelScopeWithDiagnostics, } from "../../core/model-resolver.js";
|
|
21
21
|
import { DefaultPackageManager } from "../../core/package-manager.js";
|
|
22
22
|
import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
23
23
|
import { SessionManager, sessionEntryToContextMessages } from "../../core/session-manager.js";
|
|
@@ -30,7 +30,6 @@ import { copyToClipboard, readClipboardText } from "../../utils/clipboard.js";
|
|
|
30
30
|
import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
|
|
31
31
|
import { parseGitUrl } from "../../utils/git.js";
|
|
32
32
|
import { getCwdRelativePath } from "../../utils/paths.js";
|
|
33
|
-
import { getPiUserAgent } from "../../utils/pi-user-agent.js";
|
|
34
33
|
import { killTrackedDetachedChildren } from "../../utils/shell.js";
|
|
35
34
|
import { ensureTool } from "../../utils/tools-manager.js";
|
|
36
35
|
import { checkForNewPiVersion } from "../../utils/version-check.js";
|
|
@@ -64,6 +63,7 @@ import { TreeSelectorComponent } from "./components/tree-selector.js";
|
|
|
64
63
|
import { TrustSelectorComponent } from "./components/trust-selector.js";
|
|
65
64
|
import { UserMessageComponent } from "./components/user-message.js";
|
|
66
65
|
import { UserMessageSelectorComponent } from "./components/user-message-selector.js";
|
|
66
|
+
import { editInExternalEditor } from "./external-editor.js";
|
|
67
67
|
import { getModelSearchText } from "./model-search.js";
|
|
68
68
|
import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getThemeByName, onThemeChange, setRegisteredThemes, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
|
|
69
69
|
import { InteractiveThemeController } from "./theme/theme-controller.js";
|
|
@@ -272,7 +272,7 @@ export class InteractiveMode {
|
|
|
272
272
|
await this.rebindCurrentSession({ renderBeforeBind: true });
|
|
273
273
|
});
|
|
274
274
|
this.version = VERSION;
|
|
275
|
-
this.ui = new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor());
|
|
275
|
+
this.ui = new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor(), getAgentDir());
|
|
276
276
|
this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink());
|
|
277
277
|
this.headerContainer = new Container();
|
|
278
278
|
this.loadedResourcesContainer = new Container();
|
|
@@ -460,7 +460,7 @@ export class InteractiveMode {
|
|
|
460
460
|
return;
|
|
461
461
|
this.registerSignalHandlers();
|
|
462
462
|
// Load changelog (only show new entries, skip for resumed sessions)
|
|
463
|
-
//
|
|
463
|
+
//this.changelogMarkdown = this.getChangelogForDisplay();
|
|
464
464
|
// Ensure fd and rg are available (downloads if missing, adds to PATH via getBinDir)
|
|
465
465
|
// Both are needed: fd for autocomplete, rg for grep tool and bash commands
|
|
466
466
|
const [fdPath] = await Promise.all([ensureTool("fd"), ensureTool("rg")]);
|
|
@@ -590,7 +590,7 @@ export class InteractiveMode {
|
|
|
590
590
|
// Start version check asynchronously
|
|
591
591
|
checkForNewPiVersion(this.version).then((newRelease) => {
|
|
592
592
|
if (newRelease) {
|
|
593
|
-
this.showNewVersionNotification(newRelease);
|
|
593
|
+
//this.showNewVersionNotification(newRelease);
|
|
594
594
|
}
|
|
595
595
|
});
|
|
596
596
|
// Start package update check asynchronously
|
|
@@ -750,14 +750,14 @@ export class InteractiveMode {
|
|
|
750
750
|
if (!isInstallTelemetryEnabled(this.settingsManager)) {
|
|
751
751
|
return;
|
|
752
752
|
}
|
|
753
|
-
void fetch(`https://pi.dev/api/report-install?version=${encodeURIComponent(version)}`, {
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
})
|
|
759
|
-
|
|
760
|
-
|
|
753
|
+
// void fetch(`https://pi.dev/api/report-install?version=${encodeURIComponent(version)}`, {
|
|
754
|
+
// headers: {
|
|
755
|
+
// "User-Agent": getPiUserAgent(version),
|
|
756
|
+
// },
|
|
757
|
+
// signal: AbortSignal.timeout(5000),
|
|
758
|
+
// })
|
|
759
|
+
// .then(() => undefined)
|
|
760
|
+
// .catch(() => undefined);
|
|
761
761
|
}
|
|
762
762
|
getMarkdownThemeWithSettings() {
|
|
763
763
|
return {
|
|
@@ -798,8 +798,15 @@ export class InteractiveMode {
|
|
|
798
798
|
* Get a short path relative to the package root for display.
|
|
799
799
|
*/
|
|
800
800
|
getShortPath(fullPath, sourceInfo) {
|
|
801
|
+
const normalizedFullPath = fullPath.replace(/\\/g, "/");
|
|
801
802
|
const baseDir = sourceInfo?.baseDir;
|
|
802
803
|
if (baseDir && this.isPackageSource(sourceInfo)) {
|
|
804
|
+
const normalizedBaseDir = baseDir.replace(/\\/g, "/");
|
|
805
|
+
const npmRootMatch = normalizedBaseDir.match(/^(.*\/node_modules)\/(@?[^/]+(?:\/[^/]+)?)$/);
|
|
806
|
+
// If fullPath is under the same node_modules root as baseDir, preserve that relative topology.
|
|
807
|
+
if (npmRootMatch?.[1] && normalizedFullPath.startsWith(`${npmRootMatch[1]}/`)) {
|
|
808
|
+
return path.posix.relative(normalizedBaseDir, normalizedFullPath);
|
|
809
|
+
}
|
|
803
810
|
const relativePath = path.relative(path.resolve(baseDir), path.resolve(fullPath));
|
|
804
811
|
if (relativePath &&
|
|
805
812
|
relativePath !== "." &&
|
|
@@ -810,11 +817,11 @@ export class InteractiveMode {
|
|
|
810
817
|
}
|
|
811
818
|
}
|
|
812
819
|
const source = sourceInfo?.source ?? "";
|
|
813
|
-
const npmMatch =
|
|
820
|
+
const npmMatch = normalizedFullPath.match(/node_modules\/(@?[^/]+(?:\/[^/]+)?)\/(.*)/);
|
|
814
821
|
if (npmMatch && source.startsWith("npm:")) {
|
|
815
822
|
return npmMatch[2];
|
|
816
823
|
}
|
|
817
|
-
const gitMatch =
|
|
824
|
+
const gitMatch = normalizedFullPath.match(/git\/[^/]+\/[^/]+\/(.*)/);
|
|
818
825
|
if (gitMatch && source.startsWith("git:")) {
|
|
819
826
|
return gitMatch[1];
|
|
820
827
|
}
|
|
@@ -1354,6 +1361,7 @@ export class InteractiveMode {
|
|
|
1354
1361
|
sessionManager: this.sessionManager,
|
|
1355
1362
|
modelRegistry: extensionRunner.getModelRegistry(),
|
|
1356
1363
|
model: this.session.model,
|
|
1364
|
+
thinkingLevel: this.session.thinkingLevel,
|
|
1357
1365
|
isIdle: () => this.session.isIdle,
|
|
1358
1366
|
isProjectTrusted: () => this.settingsManager.isProjectTrusted(),
|
|
1359
1367
|
signal: this.session.agent.signal,
|
|
@@ -2039,7 +2047,7 @@ export class InteractiveMode {
|
|
|
2039
2047
|
this.defaultEditor.onAction("app.model.select", () => this.showModelSelector());
|
|
2040
2048
|
this.defaultEditor.onAction("app.tools.expand", () => this.toggleToolOutputExpansion());
|
|
2041
2049
|
this.defaultEditor.onAction("app.thinking.toggle", () => this.toggleThinkingBlockVisibility());
|
|
2042
|
-
this.defaultEditor.onAction("app.editor.external", () => this.
|
|
2050
|
+
this.defaultEditor.onAction("app.editor.external", () => void this.handleOpenExternalEditor());
|
|
2043
2051
|
this.defaultEditor.onAction("app.message.copy", () => void this.handleCopyCommand());
|
|
2044
2052
|
this.defaultEditor.onAction("app.message.followUp", () => this.handleFollowUp());
|
|
2045
2053
|
this.defaultEditor.onAction("app.message.dequeue", () => this.handleDequeue());
|
|
@@ -2401,6 +2409,9 @@ export class InteractiveMode {
|
|
|
2401
2409
|
}
|
|
2402
2410
|
this.ui.requestRender();
|
|
2403
2411
|
break;
|
|
2412
|
+
case "bash_execution_update":
|
|
2413
|
+
// The bash execution callback handles TUI output rendering.
|
|
2414
|
+
break;
|
|
2404
2415
|
case "tool_execution_start": {
|
|
2405
2416
|
let component = this.pendingTools.get(event.toolCallId);
|
|
2406
2417
|
if (!component) {
|
|
@@ -2611,7 +2622,7 @@ export class InteractiveMode {
|
|
|
2611
2622
|
case "custom": {
|
|
2612
2623
|
if (message.display) {
|
|
2613
2624
|
const renderer = this.session.extensionRunner.getMessageRenderer(message.customType);
|
|
2614
|
-
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings());
|
|
2625
|
+
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
2615
2626
|
component.setExpanded(this.toolOutputExpanded);
|
|
2616
2627
|
this.chatContainer.addChild(component);
|
|
2617
2628
|
}
|
|
@@ -3123,51 +3134,21 @@ export class InteractiveMode {
|
|
|
3123
3134
|
}
|
|
3124
3135
|
this.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? "hidden" : "visible"}`);
|
|
3125
3136
|
}
|
|
3126
|
-
async
|
|
3137
|
+
async handleOpenExternalEditor() {
|
|
3127
3138
|
const editorCmd = this.settingsManager.getExternalEditorCommand();
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
return;
|
|
3131
|
-
}
|
|
3132
|
-
const currentText = this.editor.getExpandedText?.() ?? this.editor.getText();
|
|
3133
|
-
const tmpFile = path.join(os.tmpdir(), `sling-editor-${Date.now()}.sling.md`);
|
|
3139
|
+
const content = this.editor.getExpandedText?.() ?? this.editor.getText();
|
|
3140
|
+
this.ui.stop();
|
|
3134
3141
|
try {
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
this.ui.stop();
|
|
3139
|
-
// Split by space to support editor arguments (e.g., "code --wait")
|
|
3140
|
-
const [editor, ...editorArgs] = editorCmd.split(" ");
|
|
3141
|
-
process.stdout.write(`Launching external editor: ${editorCmd}\nPi will resume when the editor exits.\n`);
|
|
3142
|
-
// Do not use spawnSync here. On Windows, synchronous child_process calls can keep
|
|
3143
|
-
// Node/libuv's console input read active after ui.stop() pauses stdin, racing
|
|
3144
|
-
// vim/nvim for the console input buffer until Ctrl+C cancels the pending read.
|
|
3145
|
-
const status = await new Promise((resolve) => {
|
|
3146
|
-
const child = spawn(editor, [...editorArgs, tmpFile], {
|
|
3147
|
-
stdio: "inherit",
|
|
3148
|
-
shell: process.platform === "win32",
|
|
3149
|
-
});
|
|
3150
|
-
child.on("error", () => resolve(null));
|
|
3151
|
-
child.on("close", (code) => resolve(code));
|
|
3142
|
+
const result = await editInExternalEditor({
|
|
3143
|
+
command: editorCmd,
|
|
3144
|
+
content,
|
|
3152
3145
|
});
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
const newContent = fs.readFileSync(tmpFile, "utf-8").replace(/\n$/, "");
|
|
3156
|
-
this.editor.setText(newContent);
|
|
3146
|
+
if (result.status === "complete") {
|
|
3147
|
+
this.editor.setText(result.content);
|
|
3157
3148
|
}
|
|
3158
|
-
// On non-zero exit, keep original text (no action needed)
|
|
3159
3149
|
}
|
|
3160
3150
|
finally {
|
|
3161
|
-
// Clean up temp file
|
|
3162
|
-
try {
|
|
3163
|
-
fs.unlinkSync(tmpFile);
|
|
3164
|
-
}
|
|
3165
|
-
catch {
|
|
3166
|
-
// Ignore cleanup errors
|
|
3167
|
-
}
|
|
3168
|
-
// Restart TUI
|
|
3169
3151
|
this.ui.start();
|
|
3170
|
-
// Force full re-render since external editor uses alternate screen
|
|
3171
3152
|
this.ui.requestRender(true);
|
|
3172
3153
|
}
|
|
3173
3154
|
}
|
|
@@ -3544,7 +3525,9 @@ export class InteractiveMode {
|
|
|
3544
3525
|
this.outputPad = padding;
|
|
3545
3526
|
if (this.streamingComponent || this.session.isStreaming) {
|
|
3546
3527
|
for (const child of this.chatContainer.children) {
|
|
3547
|
-
if (child instanceof AssistantMessageComponent ||
|
|
3528
|
+
if (child instanceof AssistantMessageComponent ||
|
|
3529
|
+
child instanceof CustomMessageComponent ||
|
|
3530
|
+
child instanceof UserMessageComponent) {
|
|
3548
3531
|
child.setOutputPad(padding);
|
|
3549
3532
|
}
|
|
3550
3533
|
}
|
|
@@ -3634,15 +3617,15 @@ export class InteractiveMode {
|
|
|
3634
3617
|
if (this.settingsManager.getWarnings().anthropicExtraUsage === false) {
|
|
3635
3618
|
return;
|
|
3636
3619
|
}
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3620
|
+
if (this.anthropicSubscriptionWarningShown) {
|
|
3621
|
+
return;
|
|
3622
|
+
}
|
|
3640
3623
|
if (!model || model.provider !== "anthropic") {
|
|
3641
3624
|
return;
|
|
3642
3625
|
}
|
|
3643
3626
|
try {
|
|
3644
3627
|
if ((await this.session.modelRuntime.checkAuth("anthropic"))?.type === "oauth") {
|
|
3645
|
-
|
|
3628
|
+
this.anthropicSubscriptionWarningShown = true;
|
|
3646
3629
|
this.showWarning(ANTHROPIC_SUBSCRIPTION_AUTH_WARNING);
|
|
3647
3630
|
return;
|
|
3648
3631
|
}
|
|
@@ -3650,7 +3633,7 @@ export class InteractiveMode {
|
|
|
3650
3633
|
if (!isAnthropicSubscriptionAuthKey(apiKey)) {
|
|
3651
3634
|
return;
|
|
3652
3635
|
}
|
|
3653
|
-
|
|
3636
|
+
this.anthropicSubscriptionWarningShown = true;
|
|
3654
3637
|
this.showWarning(ANTHROPIC_SUBSCRIPTION_AUTH_WARNING);
|
|
3655
3638
|
}
|
|
3656
3639
|
catch {
|
|
@@ -3729,12 +3712,17 @@ export class InteractiveMode {
|
|
|
3729
3712
|
// Get all available models
|
|
3730
3713
|
await this.session.modelRuntime.refresh();
|
|
3731
3714
|
const allModels = [...(await this.session.modelRuntime.getAvailable())];
|
|
3732
|
-
|
|
3715
|
+
const allModelIds = new Set(allModels.map((model) => `${model.provider}/${model.id}`));
|
|
3716
|
+
const configuredPatterns = this.settingsManager.getEnabledModels();
|
|
3717
|
+
const sessionScopedModels = this.session.scopedModels;
|
|
3718
|
+
if (allModels.length === 0 && !configuredPatterns?.length && sessionScopedModels.length === 0) {
|
|
3733
3719
|
this.showStatus("No models available");
|
|
3734
3720
|
return;
|
|
3735
3721
|
}
|
|
3722
|
+
const configuredScope = configuredPatterns?.length
|
|
3723
|
+
? await resolveModelScopeWithDiagnostics(configuredPatterns, this.session.modelRuntime)
|
|
3724
|
+
: undefined;
|
|
3736
3725
|
// Check if session has scoped models (from previous session-only changes or CLI --models)
|
|
3737
|
-
const sessionScopedModels = this.session.scopedModels;
|
|
3738
3726
|
const hasSessionScope = sessionScopedModels.length > 0;
|
|
3739
3727
|
// Build enabled model IDs from session state or settings
|
|
3740
3728
|
let currentEnabledIds = null;
|
|
@@ -3742,18 +3730,22 @@ export class InteractiveMode {
|
|
|
3742
3730
|
// Use current session's scoped models
|
|
3743
3731
|
currentEnabledIds = sessionScopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3744
3732
|
}
|
|
3745
|
-
else {
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3733
|
+
else if (configuredScope) {
|
|
3734
|
+
currentEnabledIds = configuredScope.scopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3735
|
+
}
|
|
3736
|
+
for (const diagnostic of configuredScope?.diagnostics ?? []) {
|
|
3737
|
+
if (diagnostic.code !== "no-match")
|
|
3738
|
+
continue;
|
|
3739
|
+
currentEnabledIds ??= [];
|
|
3740
|
+
if (!currentEnabledIds.includes(diagnostic.pattern))
|
|
3741
|
+
currentEnabledIds.push(diagnostic.pattern);
|
|
3752
3742
|
}
|
|
3753
3743
|
// Helper to update session's scoped models (session-only, no persist)
|
|
3754
3744
|
const updateSessionModels = async (enabledIds) => {
|
|
3755
3745
|
currentEnabledIds = enabledIds === null ? null : [...enabledIds];
|
|
3756
|
-
|
|
3746
|
+
const hasEnabledAvailableModel = enabledIds?.some((id) => allModelIds.has(id)) ?? false;
|
|
3747
|
+
const allAvailableModelsEnabled = enabledIds !== null && [...allModelIds].every((id) => enabledIds.includes(id));
|
|
3748
|
+
if (enabledIds && hasEnabledAvailableModel && !allAvailableModelsEnabled) {
|
|
3757
3749
|
const newScopedModels = await resolveModelScope(enabledIds, this.session.modelRuntime);
|
|
3758
3750
|
this.session.setScopedModels(newScopedModels.map((sm) => ({
|
|
3759
3751
|
model: sm.model,
|
|
@@ -3777,9 +3769,10 @@ export class InteractiveMode {
|
|
|
3777
3769
|
},
|
|
3778
3770
|
onPersist: (enabledIds) => {
|
|
3779
3771
|
// Persist to settings
|
|
3780
|
-
const
|
|
3781
|
-
|
|
3782
|
-
|
|
3772
|
+
const allEnabled = enabledIds !== null &&
|
|
3773
|
+
enabledIds.length === allModels.length &&
|
|
3774
|
+
enabledIds.every((id) => allModelIds.has(id));
|
|
3775
|
+
const newPatterns = enabledIds === null || allEnabled ? undefined : enabledIds;
|
|
3783
3776
|
this.settingsManager.setEnabledModels(newPatterns ? [...newPatterns] : undefined);
|
|
3784
3777
|
this.showStatus("Model selection saved to settings");
|
|
3785
3778
|
},
|
|
@@ -437,6 +437,7 @@ export async function runRpcMode(runtimeHost) {
|
|
|
437
437
|
case "bash": {
|
|
438
438
|
const result = await session.executeBash(command.command, undefined, {
|
|
439
439
|
excludeFromContext: command.excludeFromContext,
|
|
440
|
+
id,
|
|
440
441
|
});
|
|
441
442
|
return success(id, "bash", result);
|
|
442
443
|
}
|
|
@@ -91,15 +91,26 @@ export async function copyToClipboard(text) {
|
|
|
91
91
|
try {
|
|
92
92
|
// Verify wl-copy exists (spawn errors are async and won't be caught)
|
|
93
93
|
execSync("which wl-copy", { stdio: "ignore" });
|
|
94
|
-
// wl-copy with execSync hangs due to fork behavior; use spawn instead
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
// wl-copy with execSync hangs due to fork behavior; use spawn instead.
|
|
95
|
+
// Await the exit code and only claim success on a clean exit, so a
|
|
96
|
+
// failed wl-copy falls through to the xclip/OSC 52 fallbacks.
|
|
97
|
+
const wlCopyExit = await new Promise((resolve) => {
|
|
98
|
+
const proc = spawn("wl-copy", [], { stdio: ["pipe", "ignore", "ignore"] });
|
|
99
|
+
proc.on("error", () => resolve(1));
|
|
100
|
+
proc.on("close", (code) => resolve(code ?? 1));
|
|
101
|
+
proc.stdin.on("error", () => {
|
|
102
|
+
// Ignore EPIPE errors if wl-copy exits early
|
|
103
|
+
});
|
|
104
|
+
proc.stdin.write(text);
|
|
105
|
+
proc.stdin.end();
|
|
98
106
|
});
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
107
|
+
if (wlCopyExit === 0) {
|
|
108
|
+
copied = true;
|
|
109
|
+
}
|
|
110
|
+
else if (hasX11Display) {
|
|
111
|
+
copyToX11Clipboard(options);
|
|
112
|
+
copied = true;
|
|
113
|
+
}
|
|
103
114
|
}
|
|
104
115
|
catch {
|
|
105
116
|
if (hasX11Display) {
|
|
@@ -18,7 +18,7 @@ export function isNewerPackageVersion(candidateVersion, currentVersion) {
|
|
|
18
18
|
return candidateVersion.trim() !== currentVersion.trim();
|
|
19
19
|
}
|
|
20
20
|
export async function getLatestPiRelease(currentVersion, options = {}) {
|
|
21
|
-
if (process.env.
|
|
21
|
+
if (process.env.PI_OFFLINE)
|
|
22
22
|
return undefined;
|
|
23
23
|
const response = await fetch(LATEST_VERSION_URL, {
|
|
24
24
|
headers: {
|
|
@@ -45,6 +45,8 @@ export async function getLatestPiVersion(currentVersion, options = {}) {
|
|
|
45
45
|
return (await getLatestPiRelease(currentVersion, options))?.version;
|
|
46
46
|
}
|
|
47
47
|
export async function checkForNewPiVersion(currentVersion) {
|
|
48
|
+
if (process.env.PI_SKIP_VERSION_CHECK)
|
|
49
|
+
return undefined;
|
|
48
50
|
try {
|
|
49
51
|
const latestRelease = await getLatestPiRelease(currentVersion);
|
|
50
52
|
if (latestRelease && isNewerPackageVersion(latestRelease.version, currentVersion)) {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@earendil-works/pi-coding-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.82.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@earendil-works/pi-coding-agent",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.82.1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@earendil-works/pi-agent-core": "^0.
|
|
13
|
-
"@earendil-works/pi-ai": "^0.
|
|
14
|
-
"@earendil-works/pi-tui": "^0.
|
|
12
|
+
"@earendil-works/pi-agent-core": "^0.82.1",
|
|
13
|
+
"@earendil-works/pi-ai": "^0.82.1",
|
|
14
|
+
"@earendil-works/pi-tui": "^0.82.1",
|
|
15
15
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
16
16
|
"chalk": "5.6.2",
|
|
17
17
|
"cross-spawn": "7.0.6",
|
|
@@ -474,11 +474,12 @@
|
|
|
474
474
|
}
|
|
475
475
|
},
|
|
476
476
|
"node_modules/@earendil-works/pi-agent-core": {
|
|
477
|
-
"version": "0.
|
|
478
|
-
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.
|
|
477
|
+
"version": "0.82.1",
|
|
478
|
+
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.82.1.tgz",
|
|
479
479
|
"license": "MIT",
|
|
480
480
|
"dependencies": {
|
|
481
|
-
"@earendil-works/pi-ai": "^0.
|
|
481
|
+
"@earendil-works/pi-ai": "^0.82.1",
|
|
482
|
+
"diff": "8.0.4",
|
|
482
483
|
"ignore": "7.0.5",
|
|
483
484
|
"typebox": "1.1.38",
|
|
484
485
|
"yaml": "2.9.0"
|
|
@@ -488,8 +489,8 @@
|
|
|
488
489
|
}
|
|
489
490
|
},
|
|
490
491
|
"node_modules/@earendil-works/pi-ai": {
|
|
491
|
-
"version": "0.
|
|
492
|
-
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.
|
|
492
|
+
"version": "0.82.1",
|
|
493
|
+
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.82.1.tgz",
|
|
493
494
|
"license": "MIT",
|
|
494
495
|
"dependencies": {
|
|
495
496
|
"@anthropic-ai/sdk": "0.91.1",
|
|
@@ -512,8 +513,8 @@
|
|
|
512
513
|
}
|
|
513
514
|
},
|
|
514
515
|
"node_modules/@earendil-works/pi-tui": {
|
|
515
|
-
"version": "0.
|
|
516
|
-
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.
|
|
516
|
+
"version": "0.82.1",
|
|
517
|
+
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.82.1.tgz",
|
|
517
518
|
"license": "MIT",
|
|
518
519
|
"dependencies": {
|
|
519
520
|
"get-east-asian-width": "1.6.0",
|
|
@@ -1592,9 +1593,9 @@
|
|
|
1592
1593
|
}
|
|
1593
1594
|
},
|
|
1594
1595
|
"node_modules/protobufjs": {
|
|
1595
|
-
"version": "7.6.
|
|
1596
|
-
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.
|
|
1597
|
-
"integrity": "sha512
|
|
1596
|
+
"version": "7.6.5",
|
|
1597
|
+
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.5.tgz",
|
|
1598
|
+
"integrity": "sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw==",
|
|
1598
1599
|
"license": "BSD-3-Clause",
|
|
1599
1600
|
"dependencies": {
|
|
1600
1601
|
"@protobufjs/aspromise": "^1.1.2",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@earendil-works/pi-coding-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.82.1",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"piConfig": {
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@earendil-works/pi-agent-core": "^0.
|
|
44
|
-
"@earendil-works/pi-ai": "^0.
|
|
45
|
-
"@earendil-works/pi-tui": "^0.
|
|
43
|
+
"@earendil-works/pi-agent-core": "^0.82.1",
|
|
44
|
+
"@earendil-works/pi-ai": "^0.82.1",
|
|
45
|
+
"@earendil-works/pi-tui": "^0.82.1",
|
|
46
46
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
47
47
|
"chalk": "5.6.2",
|
|
48
48
|
"cross-spawn": "7.0.6",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"yaml": "2.9.0"
|
|
61
61
|
},
|
|
62
62
|
"overrides": {
|
|
63
|
+
"protobufjs": "7.6.5",
|
|
63
64
|
"rimraf": "6.1.2",
|
|
64
65
|
"gaxios": {
|
|
65
66
|
"rimraf": "6.1.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@earendil-works/pi-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.82.1",
|
|
4
4
|
"description": "experimental server package for pi",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"node": ">=22.19.0"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
43
|
+
"@earendil-works/pi-coding-agent": "^0.82.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"shx": "0.4.0"
|
|
@@ -3,7 +3,7 @@ import { decodePrintableKey, matchesKey } from "../keys.js";
|
|
|
3
3
|
import { KillRing } from "../kill-ring.js";
|
|
4
4
|
import { CURSOR_MARKER } from "../tui.js";
|
|
5
5
|
import { UndoStack } from "../undo-stack.js";
|
|
6
|
-
import { cjkBreakRegex, getGraphemeSegmenter, getWordSegmenter, isWhitespaceChar,
|
|
6
|
+
import { cjkBreakRegex, getGraphemeSegmenter, getWordSegmenter, isWhitespaceChar, sliceByColumn, visibleWidth, } from "../utils.js";
|
|
7
7
|
import { findWordBackward, findWordForward } from "../word-navigation.js";
|
|
8
8
|
import { SelectList } from "./select-list.js";
|
|
9
9
|
const graphemeSegmenter = getGraphemeSegmenter();
|
|
@@ -178,6 +178,16 @@ function buildDebouncePattern(triggerCharacters) {
|
|
|
178
178
|
const escapedWithoutAt = triggerCharacters.filter((character) => character !== "@").map(escapeCharacterClass);
|
|
179
179
|
return new RegExp(`(?:^|[ \\t])(?:@(?:"[^"]*|[^\\s]*)|[${escapedWithoutAt.join("")}][^\\s]*)$`);
|
|
180
180
|
}
|
|
181
|
+
function createScrollBorder(direction, hiddenLineCount, width) {
|
|
182
|
+
const availableWidth = Math.max(0, width);
|
|
183
|
+
const indicator = `─── ${direction} ${hiddenLineCount} more `;
|
|
184
|
+
const remaining = availableWidth - visibleWidth(indicator);
|
|
185
|
+
if (remaining >= 0)
|
|
186
|
+
return indicator + "─".repeat(remaining);
|
|
187
|
+
const ellipsis = "...".slice(0, availableWidth);
|
|
188
|
+
const indicatorWidth = availableWidth - visibleWidth(ellipsis);
|
|
189
|
+
return sliceByColumn(indicator, 0, indicatorWidth, true) + ellipsis;
|
|
190
|
+
}
|
|
181
191
|
export class Editor {
|
|
182
192
|
state = {
|
|
183
193
|
lines: [""],
|
|
@@ -396,14 +406,8 @@ export class Editor {
|
|
|
396
406
|
const rightPadding = leftPadding;
|
|
397
407
|
// Render top border (with scroll indicator if scrolled down)
|
|
398
408
|
if (this.scrollOffset > 0) {
|
|
399
|
-
const
|
|
400
|
-
|
|
401
|
-
if (remaining >= 0) {
|
|
402
|
-
result.push(this.borderColor(indicator + "─".repeat(remaining)));
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
result.push(this.borderColor(truncateToWidth(indicator, width)));
|
|
406
|
-
}
|
|
409
|
+
const border = createScrollBorder("↑", this.scrollOffset, width);
|
|
410
|
+
result.push(this.borderColor(border));
|
|
407
411
|
}
|
|
408
412
|
else {
|
|
409
413
|
result.push(horizontal.repeat(width));
|
|
@@ -453,9 +457,8 @@ export class Editor {
|
|
|
453
457
|
// Render bottom border (with scroll indicator if more content below)
|
|
454
458
|
const linesBelow = layoutLines.length - (this.scrollOffset + visibleLines.length);
|
|
455
459
|
if (linesBelow > 0) {
|
|
456
|
-
const
|
|
457
|
-
|
|
458
|
-
result.push(this.borderColor(indicator + "─".repeat(Math.max(0, remaining))));
|
|
460
|
+
const border = createScrollBorder("↓", linesBelow, width);
|
|
461
|
+
result.push(this.borderColor(border));
|
|
459
462
|
}
|
|
460
463
|
else {
|
|
461
464
|
result.push(horizontal.repeat(width));
|
|
@@ -133,13 +133,15 @@ export class TUI extends Container {
|
|
|
133
133
|
pendingOsc11BackgroundQueries = [];
|
|
134
134
|
terminalColorSchemeListeners = new Set();
|
|
135
135
|
terminalColorSchemeNotificationsEnabled = false;
|
|
136
|
+
logDirectory;
|
|
136
137
|
// Overlay stack for modal components rendered on top of base content
|
|
137
138
|
focusOrderCounter = 0;
|
|
138
139
|
overlayStack = [];
|
|
139
140
|
overlayFocusRestore = { status: "inactive" };
|
|
140
|
-
constructor(terminal, showHardwareCursor) {
|
|
141
|
+
constructor(terminal, showHardwareCursor, logDirectory) {
|
|
141
142
|
super();
|
|
142
143
|
this.terminal = terminal;
|
|
144
|
+
this.logDirectory = logDirectory ?? process.env.PI_CODING_AGENT_DIR ?? path.join(os.homedir(), ".pi", "agent");
|
|
143
145
|
if (showHardwareCursor !== undefined) {
|
|
144
146
|
this.showHardwareCursor = showHardwareCursor;
|
|
145
147
|
}
|
|
@@ -1049,8 +1051,9 @@ export class TUI extends Container {
|
|
|
1049
1051
|
const logRedraw = (reason) => {
|
|
1050
1052
|
if (!debugRedraw)
|
|
1051
1053
|
return;
|
|
1052
|
-
const logPath = path.join(
|
|
1054
|
+
const logPath = path.join(this.logDirectory, "pi-debug.log");
|
|
1053
1055
|
const msg = `[${new Date().toISOString()}] fullRender: ${reason} (prev=${this.previousLines.length}, new=${newLines.length}, height=${height})\n`;
|
|
1056
|
+
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
|
1054
1057
|
fs.appendFileSync(logPath, msg);
|
|
1055
1058
|
};
|
|
1056
1059
|
// First render - just output everything without clearing (assumes clean screen)
|
|
@@ -1229,7 +1232,7 @@ export class TUI extends Container {
|
|
|
1229
1232
|
buffer += "\x1b[2K"; // Clear current line
|
|
1230
1233
|
if (!isImage && visibleWidth(line) > width) {
|
|
1231
1234
|
// Log all lines to crash file for debugging
|
|
1232
|
-
const crashLogPath = path.join(
|
|
1235
|
+
const crashLogPath = path.join(this.logDirectory, "pi-crash.log");
|
|
1233
1236
|
const crashData = [
|
|
1234
1237
|
`Crash at ${new Date().toISOString()}`,
|
|
1235
1238
|
`Terminal width: ${width}`,
|
|
@@ -5,6 +5,7 @@ const { parseRfc7231DateTime, v4 } = require("@smithy/core/serde");
|
|
|
5
5
|
const isStreamingPayload = (request) => request?.body instanceof ReadableStream;
|
|
6
6
|
|
|
7
7
|
const CLOCK_SKEW_ERROR_CODES = [
|
|
8
|
+
"AccessDeniedException",
|
|
8
9
|
"AuthFailure",
|
|
9
10
|
"InvalidSignatureException",
|
|
10
11
|
"RequestExpired",
|
|
@@ -7,6 +7,7 @@ const isStreamingPayload = (request) => request?.body instanceof Readable ||
|
|
|
7
7
|
(typeof ReadableStream !== "undefined" && request?.body instanceof ReadableStream);
|
|
8
8
|
|
|
9
9
|
const CLOCK_SKEW_ERROR_CODES = [
|
|
10
|
+
"AccessDeniedException",
|
|
10
11
|
"AuthFailure",
|
|
11
12
|
"InvalidSignatureException",
|
|
12
13
|
"RequestExpired",
|