@psnext/slingcli 2.5.20260727-1 → 2.5.20260731-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 +163 -0
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +856 -57
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +8 -5
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +1 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +1 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonSettings.js +1 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/{JsonCodec.js → codec-v1/JsonCodec.js} +1 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +1 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/{JsonShapeDeserializer.js → codec-v1/JsonShapeDeserializer.js} +6 -6
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/{JsonShapeSerializer.js → codec-v1/JsonShapeSerializer.js} +3 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +103 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +20 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/{experimental/BufferJsonShapeDeserializer.js → codec-v2/JsonShapeDeserializer2.js} +38 -18
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/{experimental/ByteJsonShapeSerializer.js → codec-v2/JsonShapeSerializer2.js} +66 -60
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +9 -6
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +7 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/{JsonCodec.d.ts → codec-v1/JsonCodec.d.ts} +4 -8
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +7 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/{JsonShapeDeserializer.d.ts → codec-v1/JsonShapeDeserializer.d.ts} +3 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/{JsonShapeSerializer.d.ts → codec-v1/JsonShapeSerializer.d.ts} +3 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/{experimental/BufferJsonShapeDeserializer.d.ts → codec-v2/JsonShapeDeserializer2.d.ts} +4 -3
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/{experimental/ByteJsonShapeSerializer.d.ts → codec-v2/JsonShapeSerializer2.d.ts} +19 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/api-extractor-type-index.d.ts +4 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/index.d.ts +61 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +13 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConstants.d.ts +4 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/NodeAccountIdEndpointModeConfigOptions.d.ts +5 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/index.d.ts +16 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/emitWarningIfUnsupportedVersion.d.ts +4 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.browser.d.ts +107 -47
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.d.ts +112 -39
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.native.d.ts +107 -48
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/longPollMiddleware.d.ts +13 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-host-header/hostHeaderMiddleware.d.ts +25 -35
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-logger/loggerMiddleware.d.ts +14 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/configuration.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.browser.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.browser.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.d.ts +2 -10
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.native.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/check-features.d.ts +16 -20
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/configurations.d.ts +21 -44
- 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 +2 -5
- 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 +8 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/extensions.d.ts +14 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.browser.d.ts +1 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.d.ts +7 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.native.d.ts +1 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setCredentialFeature.d.ts +6 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setFeature.d.ts +6 -12
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setTokenFeature.d.ts +6 -7
- 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 +4 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/parseArn.d.ts +2 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partition.d.ts +28 -38
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partitions.d.ts +647 -638
- 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 +29 -56
- 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 +6 -1
- 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 +12 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/configurations.d.ts +4 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/createUserAgentStringParsingProvider.d.ts +7 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.browser.d.ts +7 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.d.ts +18 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.native.d.ts +13 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/crt-availability.d.ts +3 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/defaultUserAgent.d.ts +17 -28
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/getRuntimeUserAgentPair.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/is-crt-available.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/nodeAppIdConfigOptions.d.ts +4 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +9 -10
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +39 -44
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.d.ts +1 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.d.ts +1 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.d.ts +4 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/index.d.ts +23 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +13 -38
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +57 -133
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.browser.d.ts +32 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.d.ts +32 -9
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.d.ts +1 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.d.ts +1 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getDateHeader.d.ts +2 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.d.ts +1 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.d.ts +6 -26
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/index.d.ts +4 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/isClockSkewed.d.ts +1 -9
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +5 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +40 -74
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +9 -24
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +36 -25
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/coercing-serializers.d.ts +3 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/common.d.ts +5 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +30 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +21 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +21 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +49 -29
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +49 -36
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/awsExpectUnion.d.ts +1 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +11 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +13 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +18 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +27 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +9 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +15 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +39 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +7 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +7 -15
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +2 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +14 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +18 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +57 -49
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QuerySerializerSettings.d.ts +7 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QueryShapeSerializer.d.ts +21 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +1 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +47 -31
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlCodec.d.ts +17 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlShapeDeserializer.d.ts +15 -20
- 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 +4 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/simpleFormatXml.d.ts +1 -6
- 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 +14 -32
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/util-format-url/format-url.d.ts +4 -2
- package/node_modules/@aws-sdk/core/package.json +3 -3
- 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/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/@earendil-works/pi-coding-agent/docs/compaction.md +14 -9
- package/node_modules/@earendil-works/pi-coding-agent/docs/containerization.md +16 -16
- package/node_modules/@earendil-works/pi-coding-agent/docs/custom-provider.md +12 -9
- package/node_modules/@earendil-works/pi-coding-agent/docs/docs.json +1 -5
- package/node_modules/@earendil-works/pi-coding-agent/docs/environment-variables.md +88 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md +54 -36
- package/node_modules/@earendil-works/pi-coding-agent/docs/index.md +9 -6
- package/node_modules/@earendil-works/pi-coding-agent/docs/json.md +5 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/llama-cpp.md +7 -7
- package/node_modules/@earendil-works/pi-coding-agent/docs/mcp.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +13 -9
- package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +13 -13
- package/node_modules/@earendil-works/pi-coding-agent/docs/prompt-templates.md +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/quickstart.md +22 -22
- package/node_modules/@earendil-works/pi-coding-agent/docs/rpc.md +106 -10
- package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +1186 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/security.md +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/docs/session-format.md +18 -4
- package/node_modules/@earendil-works/pi-coding-agent/docs/sessions.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/settings.md +8 -8
- package/node_modules/@earendil-works/pi-coding-agent/docs/shell-aliases.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/skills.md +6 -6
- package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/termux.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/themes.md +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/tmux.md +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +12 -25
- package/node_modules/@earendil-works/pi-coding-agent/docs/windows.md +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1561 -337
- package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +4 -205
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-encode.js +1 -1
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v1/CborShapeDeserializer.js +113 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v1/CborShapeSerializer.js +103 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v2/CborShapeDeserializer2.js +621 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v2/CborShapeSerializer2.js +602 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/index.js +5 -1
- package/node_modules/@smithy/core/dist-types/submodules/cbor/CborCodec.d.ts +5 -27
- package/node_modules/@smithy/core/dist-types/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v1/CborShapeDeserializer.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v1/CborShapeSerializer.d.ts +15 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v2/CborShapeDeserializer2.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v2/CborShapeSerializer2.d.ts +35 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/index.d.ts +5 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/CborCodec.d.ts +5 -27
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v1/CborShapeDeserializer.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v1/CborShapeSerializer.d.ts +15 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v2/CborShapeDeserializer2.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v2/CborShapeSerializer2.d.ts +35 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/index.d.ts +5 -1
- package/node_modules/@smithy/core/package.json +2 -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/@types/node/README.md +1 -1
- package/node_modules/@types/node/crypto.d.ts +1 -1
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/brace-expansion/README.md +1 -2
- package/node_modules/brace-expansion/dist/commonjs/index.js +30 -4
- package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
- package/node_modules/brace-expansion/dist/esm/index.js +30 -4
- package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
- package/node_modules/brace-expansion/package.json +1 -1
- package/package.json +2 -2
- package/slingshot/index.js +203 -205
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonCodec.d.ts +0 -19
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeDeserializer.d.ts +0 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +0 -28
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.d.ts +0 -29
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/ByteJsonShapeSerializer.d.ts +0 -57
- package/node_modules/@earendil-works/pi-coding-agent/docs/providers.md +0 -297
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-process",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.65",
|
|
4
4
|
"description": "AWS credential provider that sources credential_process from ~/.aws/credentials and ~/.aws/config",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"test:watch": "yarn g:vitest watch"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@aws-sdk/core": "^3.977.
|
|
46
|
+
"@aws-sdk/core": "^3.977.4",
|
|
47
47
|
"@aws-sdk/types": "^3.974.2",
|
|
48
|
-
"@smithy/core": "^3.
|
|
48
|
+
"@smithy/core": "^3.31.1",
|
|
49
49
|
"@smithy/types": "^4.16.1",
|
|
50
50
|
"tslib": "^2.6.2"
|
|
51
51
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/token-providers",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1100.0",
|
|
4
4
|
"description": "A collection of token providers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
"test:integration:watch": "yarn g:vitest watch -c vitest.config.integ.mts"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@aws-sdk/core": "^3.977.
|
|
52
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
51
|
+
"@aws-sdk/core": "^3.977.4",
|
|
52
|
+
"@aws-sdk/nested-clients": "^3.997.39",
|
|
53
53
|
"@aws-sdk/types": "^3.974.2",
|
|
54
|
-
"@smithy/core": "^3.
|
|
54
|
+
"@smithy/core": "^3.31.1",
|
|
55
55
|
"@smithy/types": "^4.16.1",
|
|
56
56
|
"tslib": "^2.6.2"
|
|
57
57
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-sso",
|
|
3
|
-
"version": "3.973.
|
|
3
|
+
"version": "3.973.9",
|
|
4
4
|
"description": "AWS credential provider that exchanges a resolved SSO login token file for temporary AWS credentials",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"test:integration:watch": "yarn g:vitest watch -c vitest.config.integ.mts"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@aws-sdk/core": "^3.977.
|
|
49
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
50
|
-
"@aws-sdk/token-providers": "3.
|
|
48
|
+
"@aws-sdk/core": "^3.977.4",
|
|
49
|
+
"@aws-sdk/nested-clients": "^3.997.39",
|
|
50
|
+
"@aws-sdk/token-providers": "3.1100.0",
|
|
51
51
|
"@aws-sdk/types": "^3.974.2",
|
|
52
|
-
"@smithy/core": "^3.
|
|
52
|
+
"@smithy/core": "^3.31.1",
|
|
53
53
|
"@smithy/types": "^4.16.1",
|
|
54
54
|
"tslib": "^2.6.2"
|
|
55
55
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-web-identity",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.71",
|
|
4
4
|
"description": "AWS credential provider that calls STS assumeRole for temporary AWS credentials",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"test:watch": "yarn g:vitest watch"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@aws-sdk/core": "^3.977.
|
|
54
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
53
|
+
"@aws-sdk/core": "^3.977.4",
|
|
54
|
+
"@aws-sdk/nested-clients": "^3.997.39",
|
|
55
55
|
"@aws-sdk/types": "^3.974.2",
|
|
56
|
-
"@smithy/core": "^3.
|
|
56
|
+
"@smithy/core": "^3.31.1",
|
|
57
57
|
"@smithy/types": "^4.16.1",
|
|
58
58
|
"tslib": "^2.6.2"
|
|
59
59
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/eventstream-handler-node",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.31",
|
|
4
4
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages-internal/eventstream-handler-node",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@aws-sdk/types": "^3.974.2",
|
|
42
|
-
"@smithy/core": "^3.
|
|
42
|
+
"@smithy/core": "^3.31.1",
|
|
43
43
|
"@smithy/types": "^4.16.1",
|
|
44
44
|
"tslib": "^2.6.2"
|
|
45
45
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/middleware-eventstream",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.26",
|
|
4
4
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages-internal/middleware-eventstream",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@aws-sdk/types": "^3.974.2",
|
|
43
|
-
"@smithy/core": "^3.
|
|
43
|
+
"@smithy/core": "^3.31.1",
|
|
44
44
|
"@smithy/types": "^4.16.1",
|
|
45
45
|
"tslib": "^2.6.2"
|
|
46
46
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/middleware-websocket",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.47",
|
|
4
4
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages-internal/middleware-websocket",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"test:integration:watch": "yarn g:vitest watch -c vitest.config.integ.mts"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@aws-sdk/core": "^3.977.
|
|
43
|
+
"@aws-sdk/core": "^3.977.4",
|
|
44
44
|
"@aws-sdk/types": "^3.974.2",
|
|
45
|
-
"@smithy/core": "^3.
|
|
46
|
-
"@smithy/fetch-http-handler": "^5.6.
|
|
47
|
-
"@smithy/signature-v4": "^5.6.
|
|
45
|
+
"@smithy/core": "^3.31.1",
|
|
46
|
+
"@smithy/fetch-http-handler": "^5.6.13",
|
|
47
|
+
"@smithy/signature-v4": "^5.6.12",
|
|
48
48
|
"@smithy/types": "^4.16.1",
|
|
49
49
|
"tslib": "^2.6.2"
|
|
50
50
|
},
|
package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/node-http-handler",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.13",
|
|
4
4
|
"description": "Provides a way to make requests",
|
|
5
5
|
"homepage": "https://github.com/smithy-lang/smithy-typescript/tree/main/packages/node-http-handler",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"test:watch": "yarn g:vitest watch"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@smithy/core": "^3.
|
|
46
|
+
"@smithy/core": "^3.31.1",
|
|
47
47
|
"@smithy/types": "^4.16.1",
|
|
48
48
|
"tslib": "^2.6.2"
|
|
49
49
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/nested-clients",
|
|
3
|
-
"version": "3.997.
|
|
3
|
+
"version": "3.997.39",
|
|
4
4
|
"description": "Nested clients for AWS SDK packages.",
|
|
5
5
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -100,12 +100,12 @@
|
|
|
100
100
|
"test:watch": "yarn g:vitest watch"
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
|
-
"@aws-sdk/core": "^3.977.
|
|
104
|
-
"@aws-sdk/signature-v4-multi-region": "^3.996.
|
|
103
|
+
"@aws-sdk/core": "^3.977.4",
|
|
104
|
+
"@aws-sdk/signature-v4-multi-region": "^3.996.43",
|
|
105
105
|
"@aws-sdk/types": "^3.974.2",
|
|
106
|
-
"@smithy/core": "^3.
|
|
107
|
-
"@smithy/fetch-http-handler": "^5.6.
|
|
108
|
-
"@smithy/node-http-handler": "^4.9.
|
|
106
|
+
"@smithy/core": "^3.31.1",
|
|
107
|
+
"@smithy/fetch-http-handler": "^5.6.13",
|
|
108
|
+
"@smithy/node-http-handler": "^4.9.13",
|
|
109
109
|
"@smithy/types": "^4.16.1",
|
|
110
110
|
"tslib": "^2.6.2"
|
|
111
111
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/signature-v4-multi-region",
|
|
3
|
-
"version": "3.996.
|
|
3
|
+
"version": "3.996.43",
|
|
4
4
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/signature-v4-multi-region",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@aws-sdk/types": "^3.974.2",
|
|
46
|
-
"@smithy/signature-v4": "^5.6.
|
|
46
|
+
"@smithy/signature-v4": "^5.6.12",
|
|
47
47
|
"@smithy/types": "^4.16.1",
|
|
48
48
|
"tslib": "^2.6.2"
|
|
49
49
|
},
|
|
@@ -13,14 +13,14 @@ For TypeScript definitions in your project, inspect `node_modules/@earendil-work
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Sling has two summarization mechanisms:
|
|
17
17
|
|
|
18
18
|
| Mechanism | Trigger | Purpose |
|
|
19
19
|
|-----------|---------|---------|
|
|
20
20
|
| Compaction | Context exceeds threshold, or `/compact` | Summarize old messages to free up context |
|
|
21
21
|
| Branch summarization | `/tree` navigation | Preserve context when switching branches |
|
|
22
22
|
|
|
23
|
-
Both use the same structured summary format and track file operations cumulatively.
|
|
23
|
+
Both use the same structured summary format and track file operations cumulatively. Compaction and branch-summary requests use fresh routing session IDs and, where supported by the provider, disable prompt-cache writes because these one-off prompts are unlikely to be reused.
|
|
24
24
|
|
|
25
25
|
## Compaction
|
|
26
26
|
|
|
@@ -76,7 +76,7 @@ What the LLM sees:
|
|
|
76
76
|
prompt from cmp messages from firstKeptEntryId
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
On repeated compactions, the summarized span starts at the previous compaction's kept boundary (`firstKeptEntryId`), not at the compaction entry itself, falling back to the entry after the previous compaction if that kept entry cannot be found in the path. This preserves messages that survived the earlier compaction by including them in the next summarization pass as well.
|
|
79
|
+
On repeated compactions, the summarized span starts at the previous compaction's kept boundary (`firstKeptEntryId`), not at the compaction entry itself, falling back to the entry after the previous compaction if that kept entry cannot be found in the path. This preserves messages that survived the earlier compaction by including them in the next summarization pass as well. Sling also recalculates `tokensBefore` from the rebuilt session context before writing the new `CompactionEntry`, so the token count reflects the actual pre-compaction context being replaced.
|
|
80
80
|
|
|
81
81
|
### Split Turns
|
|
82
82
|
|
|
@@ -102,7 +102,7 @@ Split turn (one huge turn exceeds budget):
|
|
|
102
102
|
turnPrefixMessages = [usr, ass, tool, ass, tool, tool]
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
For split turns,
|
|
105
|
+
For split turns, sling generates two summaries and merges them:
|
|
106
106
|
1. **History summary**: Previous context (if any)
|
|
107
107
|
2. **Turn prefix summary**: The early part of the split turn
|
|
108
108
|
|
|
@@ -129,6 +129,7 @@ interface CompactionEntry<T = unknown> {
|
|
|
129
129
|
summary: string;
|
|
130
130
|
firstKeptEntryId: string;
|
|
131
131
|
tokensBefore: number;
|
|
132
|
+
usage?: Usage; // LLM usage that generated the summary
|
|
132
133
|
fromHook?: boolean; // true if provided by extension (legacy field name)
|
|
133
134
|
details?: T; // implementation-specific data
|
|
134
135
|
}
|
|
@@ -140,15 +141,15 @@ interface CompactionDetails {
|
|
|
140
141
|
}
|
|
141
142
|
```
|
|
142
143
|
|
|
143
|
-
Extensions can store any JSON-serializable data in `details`. The default compaction tracks file operations, but custom extension implementations can use their own structure.
|
|
144
|
+
Extensions can store any JSON-serializable data in `details`. The default compaction tracks file operations, but custom extension implementations can use their own structure. Generated and extension-provided summaries store their LLM `usage` when available so session totals include summarization work.
|
|
144
145
|
|
|
145
|
-
See [`prepareCompaction()`](https://github.com/earendil-works/pi-mono/blob/main/packages/coding-agent/src/core/compaction/compaction.ts) and [`compact()`](https://github.com/earendil-works/pi-mono/blob/main/packages/coding-agent/src/core/compaction/compaction.ts) for the implementation.
|
|
146
|
+
See [`prepareCompaction()`](https://github.com/earendil-works/pi-mono/blob/main/packages/coding-agent/src/core/compaction/compaction.ts) and [`compact()`](https://github.com/earendil-works/pi-mono/blob/main/packages/coding-agent/src/core/compaction/compaction.ts) for the implementation. For direct programmatic summarization, `generateSummary()` returns the summary text and `generateSummaryWithUsage()` returns `{ text, usage }`.
|
|
146
147
|
|
|
147
148
|
## Branch Summarization
|
|
148
149
|
|
|
149
150
|
### When It Triggers
|
|
150
151
|
|
|
151
|
-
When you use `/tree` to navigate to a different branch,
|
|
152
|
+
When you use `/tree` to navigate to a different branch, sling offers to summarize the work you're leaving. This injects context from the left branch into the new branch.
|
|
152
153
|
|
|
153
154
|
### How It Works
|
|
154
155
|
|
|
@@ -177,7 +178,7 @@ After navigation with summary:
|
|
|
177
178
|
|
|
178
179
|
### Cumulative File Tracking
|
|
179
180
|
|
|
180
|
-
Both compaction and branch summarization track files cumulatively. When generating a summary,
|
|
181
|
+
Both compaction and branch summarization track files cumulatively. When generating a summary, sling extracts file operations from:
|
|
181
182
|
- Tool calls in the messages being summarized
|
|
182
183
|
- Previous compaction or branch summary `details` (if any)
|
|
183
184
|
|
|
@@ -195,6 +196,7 @@ interface BranchSummaryEntry<T = unknown> {
|
|
|
195
196
|
timestamp: number;
|
|
196
197
|
summary: string;
|
|
197
198
|
fromId: string; // Entry we navigated from
|
|
199
|
+
usage?: Usage; // LLM usage that generated the summary
|
|
198
200
|
fromHook?: boolean; // true if provided by extension (legacy field name)
|
|
199
201
|
details?: T; // implementation-specific data
|
|
200
202
|
}
|
|
@@ -300,6 +302,7 @@ pi.on("session_before_compact", async (event, ctx) => {
|
|
|
300
302
|
summary: "Your summary...",
|
|
301
303
|
firstKeptEntryId: preparation.firstKeptEntryId,
|
|
302
304
|
tokensBefore: preparation.tokensBefore,
|
|
305
|
+
// usage: summaryResponse.usage, // Optional; included in session totals
|
|
303
306
|
details: { /* custom data */ },
|
|
304
307
|
}
|
|
305
308
|
};
|
|
@@ -328,13 +331,14 @@ pi.on("session_before_compact", async (event, ctx) => {
|
|
|
328
331
|
// [Tool result]: output text
|
|
329
332
|
|
|
330
333
|
// Now send to your model for summarization
|
|
331
|
-
const summary = await myModel.summarize(conversationText);
|
|
334
|
+
const { summary, usage } = await myModel.summarize(conversationText);
|
|
332
335
|
|
|
333
336
|
return {
|
|
334
337
|
compaction: {
|
|
335
338
|
summary,
|
|
336
339
|
firstKeptEntryId: preparation.firstKeptEntryId,
|
|
337
340
|
tokensBefore: preparation.tokensBefore,
|
|
341
|
+
usage,
|
|
338
342
|
}
|
|
339
343
|
};
|
|
340
344
|
});
|
|
@@ -364,6 +368,7 @@ pi.on("session_before_tree", async (event, ctx) => {
|
|
|
364
368
|
return {
|
|
365
369
|
summary: {
|
|
366
370
|
summary: "Your summary...",
|
|
371
|
+
// usage: summaryResponse.usage, // Optional; included in session totals
|
|
367
372
|
details: { /* custom data */ },
|
|
368
373
|
}
|
|
369
374
|
};
|
|
@@ -3,23 +3,23 @@
|
|
|
3
3
|
Pi runs with all permissions by default, but in some cases, you will want to have more control over what directories Pi can write to and which accesses it has.
|
|
4
4
|
|
|
5
5
|
There are two general options. You can either
|
|
6
|
-
1. run the whole `
|
|
7
|
-
2. run `
|
|
6
|
+
1. run the whole `sling` process inside an isolated environment, or
|
|
7
|
+
2. run `sling` on the host and route tool execution into an isolated environment.
|
|
8
8
|
|
|
9
9
|
## Choose a pattern
|
|
10
10
|
|
|
11
11
|
| Pattern | What is isolated | Best for | Notes |
|
|
12
12
|
| --- | --- | --- | --- |
|
|
13
13
|
| Gondolin extension | Built-in tools and `!` commands | Local micro-VM isolation while keeping auth on host | See [`examples/extensions/gondolin/`](../examples/extensions/gondolin/). |
|
|
14
|
-
| Plain Docker | Whole `
|
|
15
|
-
| OpenShell | Whole `
|
|
14
|
+
| Plain Docker | Whole `sling` process in a local container | Simple local isolation | Provider API keys enter the container. |
|
|
15
|
+
| OpenShell | Whole `sling` process in a policy-controlled sandbox | Local or remote managed sandbox | Requires an OpenShell gateway |
|
|
16
16
|
|
|
17
|
-
Extensions run wherever the `
|
|
17
|
+
Extensions run wherever the `sling` process runs. If you run host `sling` with a tool-routing extension, other custom extension tools still run on the host unless they also delegate their operations.
|
|
18
18
|
|
|
19
19
|
## Gondolin
|
|
20
20
|
|
|
21
21
|
[Gondolin](https://github.com/earendil-works/gondolin) is a local Linux micro-VM.
|
|
22
|
-
Use the [example extension](../examples/extensions/gondolin) when you want `
|
|
22
|
+
Use the [example extension](../examples/extensions/gondolin) when you want `sling` on the host but all built-in tools routed into the VM.
|
|
23
23
|
|
|
24
24
|
Setup:
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@ Run from the project you want mounted:
|
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
35
|
cd /path/to/project
|
|
36
|
-
|
|
36
|
+
sling -e ~/.sling/agent/extensions/gondolin
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
The extension mounts the host cwd at `/workspace` in the VM and overrides `read`, `write`, `edit`, `bash`, `grep`, `find`, and `ls`.
|
|
@@ -54,7 +54,7 @@ FROM node:24-bookworm-slim
|
|
|
54
54
|
RUN apt-get update \
|
|
55
55
|
&& apt-get install -y --no-install-recommends bash ca-certificates git ripgrep \
|
|
56
56
|
&& rm -rf /var/lib/apt/lists/*
|
|
57
|
-
RUN npm install -g --ignore-scripts @
|
|
57
|
+
RUN npm install -g --ignore-scripts @psnext/slingcli
|
|
58
58
|
|
|
59
59
|
WORKDIR /workspace
|
|
60
60
|
ENTRYPOINT ["sling"]
|
|
@@ -63,13 +63,13 @@ ENTRYPOINT ["sling"]
|
|
|
63
63
|
Build and run:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
docker build -t
|
|
66
|
+
docker build -t sling-sandbox -f Dockerfile.sling .
|
|
67
67
|
|
|
68
68
|
docker run --rm -it \
|
|
69
69
|
-e ANTHROPIC_API_KEY \
|
|
70
70
|
-v "$PWD:/workspace" \
|
|
71
|
-
-v
|
|
72
|
-
|
|
71
|
+
-v sling-agent-home:/root/.sling/agent \
|
|
72
|
+
sling-sandbox
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
The `-v "$PWD:/workspace"` mounts your current directory into the container at /workspace such that reads and writes in `/workspace` inside Docker directly affect your host files, like in the Gondolin example.
|
|
@@ -89,21 +89,21 @@ openshell gateway add <gateway-url> --name <name>
|
|
|
89
89
|
openshell gateway select <name>
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
Launch `
|
|
92
|
+
Launch `sling` inside an OpenShell sandbox:
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
|
-
openshell sandbox create --name
|
|
95
|
+
openshell sandbox create --name sling-sandbox --from sling -- sling
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
In this pattern, the whole `
|
|
98
|
+
In this pattern, the whole `sling` process runs inside the sandbox.
|
|
99
99
|
Built-in tools, `!` commands, and extension tools execute inside the OpenShell boundary.
|
|
100
100
|
|
|
101
101
|
If the gateway is remote, project files are not bind-mounted from the host, meaning writes in the sandbox are not reflected on your machine.
|
|
102
102
|
Clone the repository inside the sandbox or use OpenShell file transfer commands:
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
|
-
openshell sandbox upload
|
|
106
|
-
openshell sandbox download
|
|
105
|
+
openshell sandbox upload sling-sandbox ./repo /workspace
|
|
106
|
+
openshell sandbox download sling-sandbox /workspace/repo ./repo-out
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
OpenShell providers can keep raw model API keys outside the sandbox.
|
|
@@ -88,7 +88,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
88
88
|
}
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
The extension factory can also be `async`. For dynamic model discovery, fetch and register models in the factory instead of `session_start`.
|
|
91
|
+
The extension factory can also be `async`. For dynamic model discovery, fetch and register models in the factory instead of `session_start`. sling waits for the factory before startup continues, so the provider is available during interactive startup and to `sling --list-models`.
|
|
92
92
|
|
|
93
93
|
## Override Existing Provider
|
|
94
94
|
|
|
@@ -259,7 +259,7 @@ models: [{
|
|
|
259
259
|
```
|
|
260
260
|
|
|
261
261
|
Use `openrouter` for OpenRouter-style `reasoning: { effort }` controls. Use `together` for Together-style `reasoning: { enabled }` controls; with `supportsReasoningEffort`, it also sends `reasoning_effort`. Use `qwen-chat-template` for local Qwen-compatible servers that read `chat_template_kwargs.enable_thinking` and need `preserve_thinking`.
|
|
262
|
-
Use `cacheControlFormat: "anthropic"` for OpenAI-compatible providers that expose Anthropic-style prompt caching via `cache_control` on the system prompt, last tool definition, and last user
|
|
262
|
+
Use `cacheControlFormat: "anthropic"` for OpenAI-compatible providers that expose Anthropic-style prompt caching via `cache_control` on the system prompt, last tool definition, and last user, assistant, or tool-result text content.
|
|
263
263
|
|
|
264
264
|
For Anthropic-compatible providers using `api: "anthropic-messages"`, set `compat.forceAdaptiveThinking: true` on models or providers whose upstream model requires adaptive thinking (`thinking.type: "adaptive"` plus `output_config.effort`). Built-in adaptive Claude models set this automatically. Set `compat.allowEmptySignature: true` only for providers that emit empty thinking signatures and expect `signature: ""` on replay.
|
|
265
265
|
|
|
@@ -560,14 +560,14 @@ calculateCost(model, output.usage);
|
|
|
560
560
|
|
|
561
561
|
### Context Overflow Errors
|
|
562
562
|
|
|
563
|
-
When a request exceeds the model's context window,
|
|
563
|
+
When a request exceeds the model's context window, sling can recover automatically by compacting the conversation and retrying. This recovery only kicks in if sling recognizes the failure as an overflow.
|
|
564
564
|
|
|
565
565
|
Detection runs on the finalized assistant message:
|
|
566
566
|
|
|
567
567
|
- `stopReason === "error"`
|
|
568
|
-
- `errorMessage` matches one of
|
|
568
|
+
- `errorMessage` matches one of sling's known overflow patterns (see [`packages/ai/src/utils/overflow.ts`](https://github.com/earendil-works/pi-mono/blob/main/packages/ai/src/utils/overflow.ts))
|
|
569
569
|
|
|
570
|
-
If your provider returns overflow errors with a message
|
|
570
|
+
If your provider returns overflow errors with a message sling does not recognize, normalize the error from the same extension that registers the provider. Use a `message_end` handler to rewrite the assistant message so its `errorMessage` starts with a phrase sling recognizes. The generic fallback `context_length_exceeded` is the safest choice.
|
|
571
571
|
|
|
572
572
|
```typescript
|
|
573
573
|
const MY_PROVIDER_OVERFLOW_PATTERN = /your provider's overflow phrase/i;
|
|
@@ -599,7 +599,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
599
599
|
}
|
|
600
600
|
```
|
|
601
601
|
|
|
602
|
-
`message_end` runs before
|
|
602
|
+
`message_end` runs before sling tracks the assistant message for auto-compaction, so the rewritten `errorMessage` is what sling checks. With this in place, sling will:
|
|
603
603
|
|
|
604
604
|
1. Detect the overflow from `errorMessage`.
|
|
605
605
|
2. Drop the failed assistant message from live context.
|
|
@@ -609,7 +609,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
609
609
|
Guard the rewrite carefully:
|
|
610
610
|
|
|
611
611
|
- Scope it to your provider (`message.provider` and `ctx.model?.provider`) so unrelated errors from other providers are untouched.
|
|
612
|
-
- Match a provider-specific pattern, not
|
|
612
|
+
- Match a provider-specific pattern, not sling's generic overflow patterns. Rewriting rate-limit or throttling errors (`rate limit`, `too many requests`) would falsely trigger compaction instead of sling's normal retry-with-backoff path.
|
|
613
613
|
- Skip when `errorMessage` already includes `context_length_exceeded` so the handler is idempotent.
|
|
614
614
|
|
|
615
615
|
### Registration
|
|
@@ -617,7 +617,7 @@ Guard the rewrite carefully:
|
|
|
617
617
|
Register your stream function:
|
|
618
618
|
|
|
619
619
|
```typescript
|
|
620
|
-
|
|
620
|
+
sling.registerProvider("my-provider", {
|
|
621
621
|
baseUrl: "https://api.example.com",
|
|
622
622
|
apiKey: "$MY_API_KEY",
|
|
623
623
|
api: "my-custom-api",
|
|
@@ -737,6 +737,8 @@ interface ProviderModelConfig {
|
|
|
737
737
|
supportsDeveloperRole?: boolean;
|
|
738
738
|
supportsReasoningEffort?: boolean;
|
|
739
739
|
supportsUsageInStreaming?: boolean;
|
|
740
|
+
supportsStrictMode?: boolean;
|
|
741
|
+
supportsOpenAIGrammarTools?: boolean; // openai-completions/openai-responses; false falls back to normal function tools
|
|
740
742
|
maxTokensField?: "max_completion_tokens" | "max_tokens";
|
|
741
743
|
requiresToolResultName?: boolean;
|
|
742
744
|
requiresAssistantAfterToolResult?: boolean;
|
|
@@ -755,9 +757,10 @@ interface ProviderModelConfig {
|
|
|
755
757
|
supportsCacheControlOnTools?: boolean;
|
|
756
758
|
forceAdaptiveThinking?: boolean;
|
|
757
759
|
allowEmptySignature?: boolean;
|
|
760
|
+
supportsStrictTools?: boolean;
|
|
758
761
|
};
|
|
759
762
|
}
|
|
760
763
|
```
|
|
761
764
|
|
|
762
765
|
`openrouter` sends `reasoning: { effort }`. `deepseek` sends `thinking: { type: "enabled" | "disabled" }` and `reasoning_effort` when enabled. `together` sends `reasoning: { enabled }` and also `reasoning_effort` when `supportsReasoningEffort` is enabled. `qwen` is for DashScope-style top-level `enable_thinking`. Use `qwen-chat-template` for local Qwen-compatible servers that read `chat_template_kwargs.enable_thinking` and need `preserve_thinking`. Use `chat-template` for configurable `chat_template_kwargs`, for example DeepSeek V3.x behind vLLM with `chatTemplateKwargs: { "thinking": { "$var": "thinking.enabled" } }`.
|
|
763
|
-
`cacheControlFormat: "anthropic"` applies Anthropic-style `cache_control` markers to the system prompt, last tool definition, and last user
|
|
766
|
+
`cacheControlFormat: "anthropic"` applies Anthropic-style `cache_control` markers to the system prompt, last tool definition, and last user, assistant, or tool-result text content.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"path": "quickstart.md"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
"title": "Using
|
|
15
|
+
"title": "Using Sling",
|
|
16
16
|
"path": "usage.md"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
@@ -68,10 +68,6 @@
|
|
|
68
68
|
"title": "Pi Packages",
|
|
69
69
|
"path": "packages.md"
|
|
70
70
|
},
|
|
71
|
-
{
|
|
72
|
-
"title": "MCP Servers",
|
|
73
|
-
"path": "mcp.md"
|
|
74
|
-
},
|
|
75
71
|
{
|
|
76
72
|
"title": "Custom Models",
|
|
77
73
|
"path": "models.md"
|