@psnext/slingcli 2.5.20260623-1 → 2.5.20260705-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@aws/lambda-invoke-store/README.md +25 -1
- package/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +12 -0
- package/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +12 -0
- package/node_modules/@aws/lambda-invoke-store/dist-types/invoke-store.d.ts +6 -0
- package/node_modules/@aws/lambda-invoke-store/package.json +1 -1
- package/node_modules/@aws-sdk/core/account-id-endpoint.d.ts +1 -3
- package/node_modules/@aws-sdk/core/client.d.ts +1 -3
- package/node_modules/@aws-sdk/core/httpAuthSchemes.d.ts +1 -3
- package/node_modules/@aws-sdk/core/package.json +10 -17
- package/node_modules/@aws-sdk/core/protocols.d.ts +1 -3
- package/node_modules/@aws-sdk/core/util.d.ts +1 -3
- package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +172 -1
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-http/package.json +8 -10
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
- package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +58 -3
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -8
- package/node_modules/@aws-sdk/eventstream-handler-node/package.json +4 -4
- package/node_modules/@aws-sdk/middleware-eventstream/package.json +4 -4
- package/node_modules/@aws-sdk/middleware-websocket/package.json +7 -7
- package/node_modules/@aws-sdk/nested-clients/cognito-identity.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +13 -25
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +13 -17
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +12 -15
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +12 -15
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +13 -25
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/commandBuilder.js +6 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/commands/GetCredentialsForIdentityCommand.js +2 -14
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/commands/GetIdCommand.js +2 -14
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/index.js +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.browser.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.js +1 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.native.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/runtimeConfig.shared.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commandBuilder.js +8 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js +2 -17
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/index.js +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.browser.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.js +1 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.native.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.shared.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commandBuilder.js +6 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/commands/GetRoleCredentialsCommand.js +2 -14
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/index.js +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.browser.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.js +1 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.native.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/runtimeConfig.shared.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commandBuilder.js +6 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +2 -14
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.browser.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +1 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.native.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commandBuilder.js +6 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +2 -14
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +2 -14
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.browser.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +1 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.native.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/commandBuilder.d.ts +18 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/commands/GetCredentialsForIdentityCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/commands/GetIdCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.browser.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.native.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commandBuilder.d.ts +18 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/commandBuilder.d.ts +18 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/commands/GetRoleCredentialsCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.browser.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.native.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commandBuilder.d.ts +18 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commandBuilder.d.ts +18 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/commandBuilder.d.ts +46 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/commands/GetCredentialsForIdentityCommand.d.ts +7 -16
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/commands/GetIdCommand.d.ts +7 -16
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.browser.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.native.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/commandBuilder.d.ts +42 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/commandBuilder.d.ts +42 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/commands/GetRoleCredentialsCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.browser.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.native.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/commandBuilder.d.ts +42 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +3 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commandBuilder.d.ts +46 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/AssumeRoleCommand.d.ts +7 -16
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +7 -16
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +8 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +4 -4
- package/node_modules/@aws-sdk/nested-clients/package.json +8 -10
- package/node_modules/@aws-sdk/nested-clients/signin.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/sso-oidc.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/sso.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/sts.d.ts +1 -3
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +4 -4
- package/node_modules/@aws-sdk/types/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +236 -3
- package/node_modules/@aws-sdk/xml-builder/package.json +3 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +10 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +9 -8
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +20 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +2 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +51 -47
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +11 -17
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +25 -11
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.js +0 -18
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +8 -4
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +8 -4
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +68 -43
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +38 -29
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +189 -204
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +26 -35
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +4 -6
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +11 -2
- package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +19 -4
- package/node_modules/@earendil-works/pi-ai/dist/compat.js +81 -7
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +60 -45
- package/node_modules/@earendil-works/pi-ai/dist/images-models.js +7 -3
- package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js +49 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.js +7 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +149 -12
- package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +18 -34
- package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +39 -9
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js +85 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +13 -13
- package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +1 -20
- package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +20 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +57 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +72 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +4 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +4 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js +4 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +23 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +16 -16
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +90 -17
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +390 -102
- package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +39 -20
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +389 -80
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +7 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +12 -12
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +12 -12
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +12 -12
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +15 -15
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +6 -6
- package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +6 -6
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +109 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js +95 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js +10 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js +15 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +87 -0
- package/node_modules/@earendil-works/pi-ai/package.json +1 -33
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +13 -25
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +50 -34
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +13 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +11 -11
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +11 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +33 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js +28 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +2 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +15 -18
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js +0 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +96 -73
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +19 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/timings.js +24 -14
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +20 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +12 -25
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +20 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +23 -15
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-entry.js +52 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +12 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.js +14 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +13 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/status-indicator.js +60 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js +19 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +180 -155
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +14 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +16 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +7 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/rpc-entry.js +10 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.js +21 -15
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-process.js +83 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/mime.js +41 -0
- package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -12
- package/node_modules/@earendil-works/pi-coding-agent/package.json +8 -5
- package/node_modules/@earendil-works/pi-orchestrator/dist/cli.js +136 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/config.js +55 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/handler.js +105 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/index.js +11 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/client.js +56 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/protocol.js +12 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/server.js +145 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/radius.js +365 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/rpc-process.js +168 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/serve.js +70 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/storage.js +58 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/supervisor.js +290 -0
- package/node_modules/@earendil-works/pi-orchestrator/dist/types.js +2 -0
- package/node_modules/@earendil-works/pi-orchestrator/package.json +45 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +3 -0
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.browser.js +358 -145
- package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +462 -142
- package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.native.js +358 -145
- package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +18 -0
- package/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +108 -63
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +11 -8
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +11 -8
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +5 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +30 -36
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +85 -137
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +30 -36
- package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +30 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +24 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/index.browser.js +7 -1
- package/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +7 -1
- package/node_modules/@smithy/core/dist-es/submodules/checksum/index.native.js +7 -1
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +92 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +29 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +179 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +59 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +71 -0
- package/node_modules/@smithy/core/dist-es/submodules/client/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client-command-builder.js +17 -0
- package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/config.js +6 -1
- package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.js +92 -0
- package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/constants.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/resolveDefaultsModeConfig.js +3 -56
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/EventStreamCodec.js +5 -3
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/splitMessage.js +7 -6
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +4 -1
- package/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +15 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +2 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +2 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +35 -27
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +2 -1
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +12 -38
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +18 -33
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +3 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Js.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Node.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/index.browser.d.ts +7 -1
- package/node_modules/@smithy/core/dist-types/submodules/checksum/index.d.ts +7 -1
- package/node_modules/@smithy/core/dist-types/submodules/checksum/index.native.d.ts +7 -1
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Js.d.ts +19 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Node.d.ts +17 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Js.d.ts +28 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Node.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256WebCrypto.d.ts +22 -0
- package/node_modules/@smithy/core/dist-types/submodules/client/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/client-command-builder.d.ts +22 -0
- package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/command.d.ts +5 -6
- package/node_modules/@smithy/core/dist-types/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.d.ts +7 -0
- package/node_modules/@smithy/core/dist-types/submodules/config/defaults-mode/constants.d.ts +12 -0
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.browser.d.ts +4 -5
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.d.ts +4 -5
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromInstructions.d.ts +3 -4
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/middleware-endpoint/endpointMiddleware.d.ts +1 -2
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/middleware-endpoint/getEndpointPlugin.d.ts +1 -2
- package/node_modules/@smithy/core/dist-types/submodules/serde/concatBytes.d.ts +6 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.browser.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.native.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/checksum/ChecksumStream.d.ts +29 -12
- package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.browser.d.ts +8 -2
- package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.d.ts +4 -1
- package/node_modules/@smithy/core/package.json +5 -5
- package/node_modules/@smithy/credential-provider-imds/package.json +3 -3
- package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -55
- package/node_modules/@smithy/fetch-http-handler/dist-es/index.js +2 -2
- package/node_modules/@smithy/fetch-http-handler/dist-types/index.d.ts +2 -2
- package/node_modules/@smithy/fetch-http-handler/package.json +4 -4
- package/node_modules/@smithy/signature-v4/package.json +3 -4
- package/node_modules/@smithy/types/dist-types/index.d.ts +1 -0
- package/node_modules/@smithy/types/package.json +1 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/buffer.d.ts +64 -25
- package/node_modules/@types/node/crypto.d.ts +18 -5
- package/node_modules/@types/node/diagnostics_channel.d.ts +254 -23
- package/node_modules/@types/node/dns.d.ts +1 -1
- package/node_modules/@types/node/ffi.d.ts +486 -0
- package/node_modules/@types/node/fs/promises.d.ts +3 -0
- package/node_modules/@types/node/fs.d.ts +21 -6
- package/node_modules/@types/node/http.d.ts +25 -0
- package/node_modules/@types/node/index.d.ts +1 -0
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/node/process.d.ts +14 -1
- package/node_modules/@types/node/quic.d.ts +92 -11
- package/node_modules/@types/node/sqlite.d.ts +55 -0
- package/node_modules/@types/node/stream/iter.d.ts +150 -0
- package/node_modules/@types/node/stream.d.ts +32 -0
- package/node_modules/@types/node/test.d.ts +112 -2
- package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
- package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
- package/node_modules/@types/node/util.d.ts +19 -2
- package/node_modules/@types/node/v8.d.ts +84 -2
- package/node_modules/@types/node/worker_threads.d.ts +8 -7
- package/node_modules/brace-expansion/dist/commonjs/index.js +24 -14
- package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
- package/node_modules/brace-expansion/dist/esm/index.js +24 -14
- package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
- package/node_modules/brace-expansion/package.json +2 -2
- package/node_modules/google-auth-library/build/src/auth/googleauth.js +1 -1
- package/node_modules/google-auth-library/package.json +4 -4
- package/node_modules/protobufjs/dist/light/protobuf.js +2 -2
- package/node_modules/protobufjs/dist/light/protobuf.min.js +2 -2
- package/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
- package/node_modules/protobufjs/dist/protobuf.js +5 -2
- package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/package.json +1 -1
- package/node_modules/protobufjs/src/parse.js +3 -0
- package/package.json +7 -6
- package/slingshot/index.js +293 -295
- package/node_modules/@aws-crypto/crc32/CHANGELOG.md +0 -100
- package/node_modules/@aws-crypto/crc32/LICENSE +0 -201
- package/node_modules/@aws-crypto/crc32/README.md +0 -16
- package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js +0 -31
- package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/build/main/index.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/main/index.js +0 -108
- package/node_modules/@aws-crypto/crc32/build/main/index.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js +0 -28
- package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/build/module/index.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/module/index.js +0 -103
- package/node_modules/@aws-crypto/crc32/build/module/index.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/package.json +0 -32
- package/node_modules/@aws-crypto/crc32/src/aws_crc32.ts +0 -24
- package/node_modules/@aws-crypto/crc32/src/index.ts +0 -92
- package/node_modules/@aws-crypto/crc32/tsconfig.json +0 -9
- package/node_modules/@aws-crypto/crc32/tsconfig.module.json +0 -7
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.browser.js +0 -869
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.native.js +0 -862
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js +0 -42
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.browser.js +0 -27
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +0 -71
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js +0 -49
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js +0 -13
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.browser.js +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +0 -29
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +0 -25
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +0 -57
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +0 -234
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.js +0 -44
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/constants.js +0 -3
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/md5.js +0 -168
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/constants.d.ts +0 -12
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/md5.d.ts +0 -16
- package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +0 -53
- package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +0 -2
- /package/node_modules/@smithy/{core/dist-es/submodules/endpoints/middleware-endpoint/types.js → types/dist-es/endpoints/EndpointParameterInstructions.js} +0 -0
- /package/node_modules/@smithy/{core/dist-types/submodules/endpoints/middleware-endpoint/types.d.ts → types/dist-types/endpoints/EndpointParameterInstructions.d.ts} +0 -0
package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js
CHANGED
|
@@ -7,7 +7,7 @@ import * as fs from "node:fs";
|
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as path from "node:path";
|
|
9
9
|
import { getProviders, } from "@earendil-works/pi-ai/compat";
|
|
10
|
-
import { CombinedAutocompleteProvider, Container, fuzzyFilter, getCapabilities, hyperlink,
|
|
10
|
+
import { CombinedAutocompleteProvider, Container, fuzzyFilter, getCapabilities, hyperlink, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TUI, visibleWidth, } from "@earendil-works/pi-tui";
|
|
11
11
|
import chalk from "chalk";
|
|
12
12
|
import { spawn, spawnSync } from "child_process";
|
|
13
13
|
import { APP_NAME, APP_TITLE, CONFIG_DIR_NAME, getAgentDir, getAuthPath, getDebugLogPath, getDocsPath, getShareViewerUrl, VERSION, } from "../../config.js";
|
|
@@ -21,7 +21,7 @@ import { defaultModelPerProvider, findExactModelReferenceMatch, resolveModelScop
|
|
|
21
21
|
import { DefaultPackageManager } from "../../core/package-manager.js";
|
|
22
22
|
import { BUILT_IN_PROVIDER_DISPLAY_NAMES } from "../../core/provider-display-names.js";
|
|
23
23
|
import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
24
|
-
import { SessionManager } from "../../core/session-manager.js";
|
|
24
|
+
import { SessionManager, sessionEntryToContextMessages } from "../../core/session-manager.js";
|
|
25
25
|
import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
|
|
26
26
|
import { isInstallTelemetryEnabled } from "../../core/telemetry.js";
|
|
27
27
|
import { hasTrustRequiringProjectResources, ProjectTrustStore } from "../../core/trust-manager.js";
|
|
@@ -40,8 +40,8 @@ import { BashExecutionComponent } from "./components/bash-execution.js";
|
|
|
40
40
|
import { BorderedLoader } from "./components/bordered-loader.js";
|
|
41
41
|
import { BranchSummaryMessageComponent } from "./components/branch-summary-message.js";
|
|
42
42
|
import { CompactionSummaryMessageComponent } from "./components/compaction-summary-message.js";
|
|
43
|
-
import { CountdownTimer } from "./components/countdown-timer.js";
|
|
44
43
|
import { CustomEditor } from "./components/custom-editor.js";
|
|
44
|
+
import { CustomEntryComponent } from "./components/custom-entry.js";
|
|
45
45
|
import { CustomMessageComponent } from "./components/custom-message.js";
|
|
46
46
|
import { DaxnutsComponent } from "./components/daxnuts.js";
|
|
47
47
|
import { DynamicBorder } from "./components/dynamic-border.js";
|
|
@@ -58,6 +58,7 @@ import { ScopedModelsSelectorComponent } from "./components/scoped-models-select
|
|
|
58
58
|
import { SessionSelectorComponent } from "./components/session-selector.js";
|
|
59
59
|
import { SettingsSelectorComponent } from "./components/settings-selector.js";
|
|
60
60
|
import { SkillInvocationMessageComponent } from "./components/skill-invocation-message.js";
|
|
61
|
+
import { BranchSummaryStatusIndicator, CompactionStatusIndicator, IdleStatus, RetryStatusIndicator, WorkingStatusIndicator, } from "./components/status-indicator.js";
|
|
61
62
|
import { ToolExecutionComponent } from "./components/tool-execution.js";
|
|
62
63
|
import { TreeSelectorComponent } from "./components/tree-selector.js";
|
|
63
64
|
import { TrustSelectorComponent } from "./components/trust-selector.js";
|
|
@@ -81,6 +82,9 @@ class ExpandableText extends Text {
|
|
|
81
82
|
this.setText(expanded ? this.getExpandedText() : this.getCollapsedText());
|
|
82
83
|
}
|
|
83
84
|
}
|
|
85
|
+
function isCustomSessionEntry(item) {
|
|
86
|
+
return "type" in item && item.type === "custom";
|
|
87
|
+
}
|
|
84
88
|
const DEAD_TERMINAL_ERROR_CODES = new Set(["EIO", "EPIPE", "ENOTCONN"]);
|
|
85
89
|
function isDeadTerminalError(error) {
|
|
86
90
|
if (!error || typeof error !== "object" || !("code" in error)) {
|
|
@@ -134,6 +138,7 @@ export function isApiKeyLoginProvider(providerId, oauthProviderIds, builtInProvi
|
|
|
134
138
|
export class InteractiveMode {
|
|
135
139
|
runtimeHost;
|
|
136
140
|
ui;
|
|
141
|
+
loadedResourcesContainer;
|
|
137
142
|
chatContainer;
|
|
138
143
|
pendingMessagesContainer;
|
|
139
144
|
statusContainer;
|
|
@@ -152,7 +157,8 @@ export class InteractiveMode {
|
|
|
152
157
|
isInitialized = false;
|
|
153
158
|
onInputCallback;
|
|
154
159
|
pendingUserInputs = [];
|
|
155
|
-
|
|
160
|
+
activeStatusIndicator = undefined;
|
|
161
|
+
idleStatus = new IdleStatus();
|
|
156
162
|
workingMessage = undefined;
|
|
157
163
|
workingVisible = true;
|
|
158
164
|
workingIndicatorOptions = undefined;
|
|
@@ -176,6 +182,7 @@ export class InteractiveMode {
|
|
|
176
182
|
toolOutputExpanded = false;
|
|
177
183
|
// Thinking block visibility state
|
|
178
184
|
hideThinkingBlock = false;
|
|
185
|
+
outputPad = 1;
|
|
179
186
|
// Skill commands: command name -> skill file path
|
|
180
187
|
skillCommands = new Map();
|
|
181
188
|
// Agent subscription unsubscribe function
|
|
@@ -188,11 +195,8 @@ export class InteractiveMode {
|
|
|
188
195
|
// Track pending bash components (shown in pending area, moved to chat on submit)
|
|
189
196
|
pendingBashComponents = [];
|
|
190
197
|
// Auto-compaction state
|
|
191
|
-
autoCompactionLoader = undefined;
|
|
192
198
|
autoCompactionEscapeHandler;
|
|
193
199
|
// Auto-retry state
|
|
194
|
-
retryLoader = undefined;
|
|
195
|
-
retryCountdown = undefined;
|
|
196
200
|
retryEscapeHandler;
|
|
197
201
|
// Messages queued while compaction is running
|
|
198
202
|
compactionQueuedMessages = [];
|
|
@@ -246,6 +250,7 @@ export class InteractiveMode {
|
|
|
246
250
|
this.ui = new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor());
|
|
247
251
|
this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink());
|
|
248
252
|
this.headerContainer = new Container();
|
|
253
|
+
this.loadedResourcesContainer = new Container();
|
|
249
254
|
this.chatContainer = new Container();
|
|
250
255
|
this.pendingMessagesContainer = new Container();
|
|
251
256
|
this.statusContainer = new Container();
|
|
@@ -267,6 +272,7 @@ export class InteractiveMode {
|
|
|
267
272
|
this.footer.setAutoCompactEnabled(this.session.autoCompactionEnabled);
|
|
268
273
|
// Load hide thinking block setting
|
|
269
274
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
275
|
+
this.outputPad = this.settingsManager.getOutputPad();
|
|
270
276
|
// Register themes from resource loader and initialize
|
|
271
277
|
setRegisteredThemes(this.session.resourceLoader.getThemes().themes);
|
|
272
278
|
this.themeController = new InteractiveThemeController(this.ui, this.settingsManager, (message) => this.showError(message), () => this.updateEditorBorderColor());
|
|
@@ -439,8 +445,10 @@ export class InteractiveMode {
|
|
|
439
445
|
: "";
|
|
440
446
|
console.log(theme.fg("dim", `Model scope: ${modelList}${cycleHint}`));
|
|
441
447
|
}
|
|
442
|
-
// Add header container as first child. Populate it after
|
|
448
|
+
// Add header container as first child. Populate it after applying theme settings.
|
|
449
|
+
// Keep loaded resources before chat so restored session messages never precede them.
|
|
443
450
|
this.ui.addChild(this.headerContainer);
|
|
451
|
+
this.ui.addChild(this.loadedResourcesContainer);
|
|
444
452
|
this.ui.addChild(this.chatContainer);
|
|
445
453
|
this.ui.addChild(this.pendingMessagesContainer);
|
|
446
454
|
this.ui.addChild(this.statusContainer);
|
|
@@ -490,7 +498,7 @@ export class InteractiveMode {
|
|
|
490
498
|
hint("app.tools.expand", "more"),
|
|
491
499
|
].join(theme.fg("muted", " · "));
|
|
492
500
|
const compactOnboarding = theme.fg("dim", `Press ${keyText("app.tools.expand")} to show full startup help and loaded resources.`);
|
|
493
|
-
const onboarding = theme.fg("dim", `
|
|
501
|
+
const onboarding = theme.fg("dim", `Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.`);
|
|
494
502
|
this.builtInHeader = new ExpandableText(() => `${logo}\n${compactInstructions}\n${compactOnboarding}\n\n${onboarding}`, () => `${logo}\n${expandedInstructions}\n\n${onboarding}`, this.getStartupExpansionState(), 1, 0);
|
|
495
503
|
// Setup UI layout
|
|
496
504
|
this.headerContainer.addChild(new Spacer(1));
|
|
@@ -657,7 +665,7 @@ export class InteractiveMode {
|
|
|
657
665
|
return "tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.";
|
|
658
666
|
}
|
|
659
667
|
if (extendedKeysFormat === "xterm") {
|
|
660
|
-
return "tmux extended-keys-format is xterm.
|
|
668
|
+
return "tmux extended-keys-format is xterm. Pi works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.";
|
|
661
669
|
}
|
|
662
670
|
return undefined;
|
|
663
671
|
}
|
|
@@ -990,6 +998,8 @@ export class InteractiveMode {
|
|
|
990
998
|
return lines.join("\n");
|
|
991
999
|
}
|
|
992
1000
|
showLoadedResources(options) {
|
|
1001
|
+
// Resource rendering is idempotent; chat clears no longer clear this separate container.
|
|
1002
|
+
this.loadedResourcesContainer.clear();
|
|
993
1003
|
const showListing = options?.force || this.options.verbose || !this.settingsManager.getQuietStartup();
|
|
994
1004
|
const showDiagnostics = showListing || options?.showDiagnosticsWhenQuiet === true;
|
|
995
1005
|
if (!showListing && !showDiagnostics) {
|
|
@@ -1005,8 +1015,8 @@ export class InteractiveMode {
|
|
|
1005
1015
|
};
|
|
1006
1016
|
const addLoadedSection = (name, collapsedBody, expandedBody = collapsedBody, color = "mdHeading") => {
|
|
1007
1017
|
const section = new ExpandableText(() => `${sectionHeader(name, color)}\n${collapsedBody}`, () => `${sectionHeader(name, color)}\n${expandedBody}`, this.getStartupExpansionState(), 0, 0);
|
|
1008
|
-
this.
|
|
1009
|
-
this.
|
|
1018
|
+
this.loadedResourcesContainer.addChild(section);
|
|
1019
|
+
this.loadedResourcesContainer.addChild(new Spacer(1));
|
|
1010
1020
|
};
|
|
1011
1021
|
const skillsResult = this.session.resourceLoader.getSkills();
|
|
1012
1022
|
const promptsResult = this.session.resourceLoader.getPrompts();
|
|
@@ -1040,7 +1050,7 @@ export class InteractiveMode {
|
|
|
1040
1050
|
if (showListing) {
|
|
1041
1051
|
const contextFiles = this.session.resourceLoader.getAgentsFiles().agentsFiles;
|
|
1042
1052
|
if (contextFiles.length > 0) {
|
|
1043
|
-
this.
|
|
1053
|
+
this.loadedResourcesContainer.addChild(new Spacer(1));
|
|
1044
1054
|
const contextList = contextFiles
|
|
1045
1055
|
.map((f) => theme.fg("dim", ` ${this.formatDisplayPath(f.path)}`))
|
|
1046
1056
|
.join("\n");
|
|
@@ -1103,14 +1113,14 @@ export class InteractiveMode {
|
|
|
1103
1113
|
const skillDiagnostics = skillsResult.diagnostics;
|
|
1104
1114
|
if (skillDiagnostics.length > 0) {
|
|
1105
1115
|
const warningLines = this.formatDiagnostics(skillDiagnostics, sourceInfos);
|
|
1106
|
-
this.
|
|
1107
|
-
this.
|
|
1116
|
+
this.loadedResourcesContainer.addChild(new Text(`${theme.fg("warning", "[Skill conflicts]")}\n${warningLines}`, 0, 0));
|
|
1117
|
+
this.loadedResourcesContainer.addChild(new Spacer(1));
|
|
1108
1118
|
}
|
|
1109
1119
|
const promptDiagnostics = promptsResult.diagnostics;
|
|
1110
1120
|
if (promptDiagnostics.length > 0) {
|
|
1111
1121
|
const warningLines = this.formatDiagnostics(promptDiagnostics, sourceInfos);
|
|
1112
|
-
this.
|
|
1113
|
-
this.
|
|
1122
|
+
this.loadedResourcesContainer.addChild(new Text(`${theme.fg("warning", "[Prompt conflicts]")}\n${warningLines}`, 0, 0));
|
|
1123
|
+
this.loadedResourcesContainer.addChild(new Spacer(1));
|
|
1114
1124
|
}
|
|
1115
1125
|
const extensionDiagnostics = [];
|
|
1116
1126
|
const extensionErrors = this.session.resourceLoader.getExtensions().errors;
|
|
@@ -1126,14 +1136,14 @@ export class InteractiveMode {
|
|
|
1126
1136
|
extensionDiagnostics.push(...shortcutDiagnostics);
|
|
1127
1137
|
if (extensionDiagnostics.length > 0) {
|
|
1128
1138
|
const warningLines = this.formatDiagnostics(extensionDiagnostics, sourceInfos);
|
|
1129
|
-
this.
|
|
1130
|
-
this.
|
|
1139
|
+
this.loadedResourcesContainer.addChild(new Text(`${theme.fg("warning", "[Extension issues]")}\n${warningLines}`, 0, 0));
|
|
1140
|
+
this.loadedResourcesContainer.addChild(new Spacer(1));
|
|
1131
1141
|
}
|
|
1132
1142
|
const themeDiagnostics = themesResult.diagnostics;
|
|
1133
1143
|
if (themeDiagnostics.length > 0) {
|
|
1134
1144
|
const warningLines = this.formatDiagnostics(themeDiagnostics, sourceInfos);
|
|
1135
|
-
this.
|
|
1136
|
-
this.
|
|
1145
|
+
this.loadedResourcesContainer.addChild(new Text(`${theme.fg("warning", "[Theme conflicts]")}\n${warningLines}`, 0, 0));
|
|
1146
|
+
this.loadedResourcesContainer.addChild(new Spacer(1));
|
|
1137
1147
|
}
|
|
1138
1148
|
}
|
|
1139
1149
|
}
|
|
@@ -1151,11 +1161,7 @@ export class InteractiveMode {
|
|
|
1151
1161
|
commandContextActions: {
|
|
1152
1162
|
waitForIdle: () => this.session.agent.waitForIdle(),
|
|
1153
1163
|
newSession: async (options) => {
|
|
1154
|
-
|
|
1155
|
-
this.loadingAnimation.stop();
|
|
1156
|
-
this.loadingAnimation = undefined;
|
|
1157
|
-
}
|
|
1158
|
-
this.statusContainer.clear();
|
|
1164
|
+
this.clearStatusIndicator();
|
|
1159
1165
|
try {
|
|
1160
1166
|
return await this.runtimeHost.newSession(options);
|
|
1161
1167
|
}
|
|
@@ -1225,8 +1231,13 @@ export class InteractiveMode {
|
|
|
1225
1231
|
this.footer.setAutoCompactEnabled(this.session.autoCompactionEnabled);
|
|
1226
1232
|
this.footerDataProvider.setCwd(this.sessionManager.getCwd());
|
|
1227
1233
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
1234
|
+
this.outputPad = this.settingsManager.getOutputPad();
|
|
1228
1235
|
this.ui.setShowHardwareCursor(this.settingsManager.getShowHardwareCursor());
|
|
1229
|
-
this.
|
|
1236
|
+
const clearOnShrink = this.settingsManager.getClearOnShrink();
|
|
1237
|
+
this.ui.setClearOnShrink(clearOnShrink);
|
|
1238
|
+
if (!clearOnShrink && !this.activeStatusIndicator) {
|
|
1239
|
+
this.statusContainer.clear();
|
|
1240
|
+
}
|
|
1230
1241
|
const editorPaddingX = this.settingsManager.getEditorPaddingX();
|
|
1231
1242
|
const autocompleteMaxVisible = this.settingsManager.getAutocompleteMaxVisible();
|
|
1232
1243
|
this.defaultEditor.setPaddingX(editorPaddingX);
|
|
@@ -1261,6 +1272,7 @@ export class InteractiveMode {
|
|
|
1261
1272
|
process.exit(1);
|
|
1262
1273
|
}
|
|
1263
1274
|
renderCurrentSessionState() {
|
|
1275
|
+
this.loadedResourcesContainer.clear();
|
|
1264
1276
|
this.chatContainer.clear();
|
|
1265
1277
|
this.pendingMessagesContainer.clear();
|
|
1266
1278
|
this.compactionQueuedMessages = [];
|
|
@@ -1338,36 +1350,41 @@ export class InteractiveMode {
|
|
|
1338
1350
|
this.footerDataProvider.setExtensionStatus(key, text);
|
|
1339
1351
|
this.ui.requestRender();
|
|
1340
1352
|
}
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1353
|
+
showStatusIndicator(indicator) {
|
|
1354
|
+
this.activeStatusIndicator?.dispose();
|
|
1355
|
+
this.activeStatusIndicator = indicator;
|
|
1356
|
+
this.statusContainer.clear();
|
|
1357
|
+
this.statusContainer.addChild(indicator);
|
|
1346
1358
|
}
|
|
1347
|
-
|
|
1348
|
-
if (this.
|
|
1349
|
-
|
|
1350
|
-
this.loadingAnimation = undefined;
|
|
1359
|
+
clearStatusIndicator(kind) {
|
|
1360
|
+
if (kind && this.activeStatusIndicator?.kind !== kind) {
|
|
1361
|
+
return;
|
|
1351
1362
|
}
|
|
1363
|
+
const hadActiveStatusIndicator = this.activeStatusIndicator !== undefined;
|
|
1364
|
+
this.activeStatusIndicator?.dispose();
|
|
1365
|
+
this.activeStatusIndicator = undefined;
|
|
1352
1366
|
this.statusContainer.clear();
|
|
1367
|
+
if (hadActiveStatusIndicator && this.ui.getClearOnShrink()) {
|
|
1368
|
+
this.statusContainer.addChild(this.idleStatus);
|
|
1369
|
+
}
|
|
1353
1370
|
}
|
|
1354
1371
|
setWorkingVisible(visible) {
|
|
1355
1372
|
this.workingVisible = visible;
|
|
1356
1373
|
if (!visible) {
|
|
1357
|
-
this.
|
|
1374
|
+
this.clearStatusIndicator("working");
|
|
1358
1375
|
this.ui.requestRender();
|
|
1359
1376
|
return;
|
|
1360
1377
|
}
|
|
1361
|
-
if (this.session.isStreaming &&
|
|
1362
|
-
this.
|
|
1363
|
-
this.loadingAnimation = this.createWorkingLoader();
|
|
1364
|
-
this.statusContainer.addChild(this.loadingAnimation);
|
|
1378
|
+
if (this.session.isStreaming && this.activeStatusIndicator?.kind !== "working") {
|
|
1379
|
+
this.showStatusIndicator(new WorkingStatusIndicator(this.ui, this.workingMessage ?? this.defaultWorkingMessage, this.workingIndicatorOptions));
|
|
1365
1380
|
}
|
|
1366
1381
|
this.ui.requestRender();
|
|
1367
1382
|
}
|
|
1368
1383
|
setWorkingIndicator(options) {
|
|
1369
1384
|
this.workingIndicatorOptions = options;
|
|
1370
|
-
this.
|
|
1385
|
+
if (this.activeStatusIndicator?.kind === "working") {
|
|
1386
|
+
this.activeStatusIndicator.setIndicator(options);
|
|
1387
|
+
}
|
|
1371
1388
|
this.ui.requestRender();
|
|
1372
1389
|
}
|
|
1373
1390
|
setHiddenThinkingLabel(label) {
|
|
@@ -1455,8 +1472,8 @@ export class InteractiveMode {
|
|
|
1455
1472
|
this.workingMessage = undefined;
|
|
1456
1473
|
this.workingVisible = true;
|
|
1457
1474
|
this.setWorkingIndicator();
|
|
1458
|
-
if (this.
|
|
1459
|
-
this.
|
|
1475
|
+
if (this.activeStatusIndicator?.kind === "working") {
|
|
1476
|
+
this.activeStatusIndicator.setMessage(`${this.defaultWorkingMessage} (${keyText("app.interrupt")} to interrupt)`);
|
|
1460
1477
|
}
|
|
1461
1478
|
this.setHiddenThinkingLabel();
|
|
1462
1479
|
}
|
|
@@ -1596,8 +1613,8 @@ export class InteractiveMode {
|
|
|
1596
1613
|
setStatus: (key, text) => this.setExtensionStatus(key, text),
|
|
1597
1614
|
setWorkingMessage: (message) => {
|
|
1598
1615
|
this.workingMessage = message;
|
|
1599
|
-
if (this.
|
|
1600
|
-
this.
|
|
1616
|
+
if (this.activeStatusIndicator?.kind === "working") {
|
|
1617
|
+
this.activeStatusIndicator.setMessage(message ?? this.defaultWorkingMessage);
|
|
1601
1618
|
}
|
|
1602
1619
|
},
|
|
1603
1620
|
setWorkingVisible: (visible) => this.setWorkingVisible(visible),
|
|
@@ -1741,7 +1758,7 @@ export class InteractiveMode {
|
|
|
1741
1758
|
}, () => {
|
|
1742
1759
|
this.hideExtensionEditor();
|
|
1743
1760
|
resolve(undefined);
|
|
1744
|
-
});
|
|
1761
|
+
}, undefined, this.settingsManager.getExternalEditorCommand());
|
|
1745
1762
|
this.editorContainer.clear();
|
|
1746
1763
|
this.editorContainer.addChild(this.extensionEditor);
|
|
1747
1764
|
this.ui.setFocus(this.extensionEditor);
|
|
@@ -2216,18 +2233,11 @@ export class InteractiveMode {
|
|
|
2216
2233
|
this.defaultEditor.onEscape = this.retryEscapeHandler;
|
|
2217
2234
|
this.retryEscapeHandler = undefined;
|
|
2218
2235
|
}
|
|
2219
|
-
if (this.retryCountdown) {
|
|
2220
|
-
this.retryCountdown.dispose();
|
|
2221
|
-
this.retryCountdown = undefined;
|
|
2222
|
-
}
|
|
2223
|
-
if (this.retryLoader) {
|
|
2224
|
-
this.retryLoader.stop();
|
|
2225
|
-
this.retryLoader = undefined;
|
|
2226
|
-
}
|
|
2227
|
-
this.stopWorkingLoader();
|
|
2228
2236
|
if (this.workingVisible) {
|
|
2229
|
-
this.
|
|
2230
|
-
|
|
2237
|
+
this.showStatusIndicator(new WorkingStatusIndicator(this.ui, this.workingMessage ?? this.defaultWorkingMessage, this.workingIndicatorOptions));
|
|
2238
|
+
}
|
|
2239
|
+
else {
|
|
2240
|
+
this.clearStatusIndicator();
|
|
2231
2241
|
}
|
|
2232
2242
|
this.ui.requestRender();
|
|
2233
2243
|
break;
|
|
@@ -2235,6 +2245,12 @@ export class InteractiveMode {
|
|
|
2235
2245
|
this.updatePendingMessagesDisplay();
|
|
2236
2246
|
this.ui.requestRender();
|
|
2237
2247
|
break;
|
|
2248
|
+
case "entry_appended":
|
|
2249
|
+
if (event.entry.type === "custom") {
|
|
2250
|
+
this.addCustomEntryToChat(event.entry);
|
|
2251
|
+
this.ui.requestRender();
|
|
2252
|
+
}
|
|
2253
|
+
break;
|
|
2238
2254
|
case "session_info_changed":
|
|
2239
2255
|
this.updateTerminalTitle();
|
|
2240
2256
|
this.footer.invalidate();
|
|
@@ -2255,7 +2271,7 @@ export class InteractiveMode {
|
|
|
2255
2271
|
this.ui.requestRender();
|
|
2256
2272
|
}
|
|
2257
2273
|
else if (event.message.role === "assistant") {
|
|
2258
|
-
this.streamingComponent = new AssistantMessageComponent(undefined, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel);
|
|
2274
|
+
this.streamingComponent = new AssistantMessageComponent(undefined, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel, this.outputPad);
|
|
2259
2275
|
this.streamingMessage = event.message;
|
|
2260
2276
|
this.chatContainer.addChild(this.streamingComponent);
|
|
2261
2277
|
this.streamingComponent.updateContent(this.streamingMessage);
|
|
@@ -2363,11 +2379,7 @@ export class InteractiveMode {
|
|
|
2363
2379
|
if (this.settingsManager.getShowTerminalProgress()) {
|
|
2364
2380
|
this.ui.terminal.setProgress(false);
|
|
2365
2381
|
}
|
|
2366
|
-
|
|
2367
|
-
this.loadingAnimation.stop();
|
|
2368
|
-
this.loadingAnimation = undefined;
|
|
2369
|
-
this.statusContainer.clear();
|
|
2370
|
-
}
|
|
2382
|
+
this.clearStatusIndicator("working");
|
|
2371
2383
|
if (this.streamingComponent) {
|
|
2372
2384
|
this.chatContainer.removeChild(this.streamingComponent);
|
|
2373
2385
|
this.streamingComponent = undefined;
|
|
@@ -2386,13 +2398,7 @@ export class InteractiveMode {
|
|
|
2386
2398
|
this.defaultEditor.onEscape = () => {
|
|
2387
2399
|
this.session.abortCompaction();
|
|
2388
2400
|
};
|
|
2389
|
-
this.
|
|
2390
|
-
const cancelHint = `(${keyText("app.interrupt")} to cancel)`;
|
|
2391
|
-
const label = event.reason === "manual"
|
|
2392
|
-
? `Compacting context... ${cancelHint}`
|
|
2393
|
-
: `${event.reason === "overflow" ? "Context overflow detected, " : ""}Auto-compacting... ${cancelHint}`;
|
|
2394
|
-
this.autoCompactionLoader = new Loader(this.ui, (spinner) => theme.fg("accent", spinner), (text) => theme.fg("muted", text), label);
|
|
2395
|
-
this.statusContainer.addChild(this.autoCompactionLoader);
|
|
2401
|
+
this.showStatusIndicator(new CompactionStatusIndicator(this.ui, event.reason));
|
|
2396
2402
|
this.ui.requestRender();
|
|
2397
2403
|
break;
|
|
2398
2404
|
}
|
|
@@ -2404,11 +2410,7 @@ export class InteractiveMode {
|
|
|
2404
2410
|
this.defaultEditor.onEscape = this.autoCompactionEscapeHandler;
|
|
2405
2411
|
this.autoCompactionEscapeHandler = undefined;
|
|
2406
2412
|
}
|
|
2407
|
-
|
|
2408
|
-
this.autoCompactionLoader.stop();
|
|
2409
|
-
this.autoCompactionLoader = undefined;
|
|
2410
|
-
this.statusContainer.clear();
|
|
2411
|
-
}
|
|
2413
|
+
this.clearStatusIndicator("compaction");
|
|
2412
2414
|
if (event.aborted) {
|
|
2413
2415
|
if (event.reason === "manual") {
|
|
2414
2416
|
this.showError("Compaction cancelled");
|
|
@@ -2442,17 +2444,7 @@ export class InteractiveMode {
|
|
|
2442
2444
|
this.defaultEditor.onEscape = () => {
|
|
2443
2445
|
this.session.abortRetry();
|
|
2444
2446
|
};
|
|
2445
|
-
|
|
2446
|
-
this.statusContainer.clear();
|
|
2447
|
-
this.retryCountdown?.dispose();
|
|
2448
|
-
const retryMessage = (seconds) => `Retrying (${event.attempt}/${event.maxAttempts}) in ${seconds}s... (${keyText("app.interrupt")} to cancel)`;
|
|
2449
|
-
this.retryLoader = new Loader(this.ui, (spinner) => theme.fg("warning", spinner), (text) => theme.fg("muted", text), retryMessage(Math.ceil(event.delayMs / 1000)));
|
|
2450
|
-
this.retryCountdown = new CountdownTimer(event.delayMs, this.ui, (seconds) => {
|
|
2451
|
-
this.retryLoader?.setMessage(retryMessage(seconds));
|
|
2452
|
-
}, () => {
|
|
2453
|
-
this.retryCountdown = undefined;
|
|
2454
|
-
});
|
|
2455
|
-
this.statusContainer.addChild(this.retryLoader);
|
|
2447
|
+
this.showStatusIndicator(new RetryStatusIndicator(this.ui, event.attempt, event.maxAttempts, event.delayMs));
|
|
2456
2448
|
this.ui.requestRender();
|
|
2457
2449
|
break;
|
|
2458
2450
|
}
|
|
@@ -2462,16 +2454,7 @@ export class InteractiveMode {
|
|
|
2462
2454
|
this.defaultEditor.onEscape = this.retryEscapeHandler;
|
|
2463
2455
|
this.retryEscapeHandler = undefined;
|
|
2464
2456
|
}
|
|
2465
|
-
|
|
2466
|
-
this.retryCountdown.dispose();
|
|
2467
|
-
this.retryCountdown = undefined;
|
|
2468
|
-
}
|
|
2469
|
-
// Stop loader
|
|
2470
|
-
if (this.retryLoader) {
|
|
2471
|
-
this.retryLoader.stop();
|
|
2472
|
-
this.retryLoader = undefined;
|
|
2473
|
-
this.statusContainer.clear();
|
|
2474
|
-
}
|
|
2457
|
+
this.clearStatusIndicator("retry");
|
|
2475
2458
|
// Show error only on final failure (success shows normal response)
|
|
2476
2459
|
if (!event.success) {
|
|
2477
2460
|
this.showError(`Retry failed after ${event.attempt} attempts: ${event.finalError || "Unknown error"}`);
|
|
@@ -2513,6 +2496,25 @@ export class InteractiveMode {
|
|
|
2513
2496
|
this.lastStatusText = text;
|
|
2514
2497
|
this.ui.requestRender();
|
|
2515
2498
|
}
|
|
2499
|
+
addCustomEntryToChat(entry) {
|
|
2500
|
+
const renderer = this.session.extensionRunner.getEntryRenderer(entry.customType);
|
|
2501
|
+
if (!renderer) {
|
|
2502
|
+
return;
|
|
2503
|
+
}
|
|
2504
|
+
const component = new CustomEntryComponent(entry, renderer);
|
|
2505
|
+
component.setExpanded(this.toolOutputExpanded);
|
|
2506
|
+
if (!component.hasContent()) {
|
|
2507
|
+
return;
|
|
2508
|
+
}
|
|
2509
|
+
if (this.streamingComponent) {
|
|
2510
|
+
const streamingIndex = this.chatContainer.children.indexOf(this.streamingComponent);
|
|
2511
|
+
if (streamingIndex >= 0) {
|
|
2512
|
+
this.chatContainer.children.splice(streamingIndex, 0, component);
|
|
2513
|
+
return;
|
|
2514
|
+
}
|
|
2515
|
+
}
|
|
2516
|
+
this.chatContainer.addChild(component);
|
|
2517
|
+
}
|
|
2516
2518
|
addMessageToChat(message, options) {
|
|
2517
2519
|
switch (message.role) {
|
|
2518
2520
|
case "bashExecution": {
|
|
@@ -2562,12 +2564,12 @@ export class InteractiveMode {
|
|
|
2562
2564
|
// Render user message separately if present
|
|
2563
2565
|
if (skillBlock.userMessage) {
|
|
2564
2566
|
this.chatContainer.addChild(new Spacer(1));
|
|
2565
|
-
const userComponent = new UserMessageComponent(skillBlock.userMessage, this.getMarkdownThemeWithSettings());
|
|
2567
|
+
const userComponent = new UserMessageComponent(skillBlock.userMessage, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
2566
2568
|
this.chatContainer.addChild(userComponent);
|
|
2567
2569
|
}
|
|
2568
2570
|
}
|
|
2569
2571
|
else {
|
|
2570
|
-
const userComponent = new UserMessageComponent(textContent, this.getMarkdownThemeWithSettings());
|
|
2572
|
+
const userComponent = new UserMessageComponent(textContent, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
2571
2573
|
this.chatContainer.addChild(userComponent);
|
|
2572
2574
|
}
|
|
2573
2575
|
if (options?.populateHistory) {
|
|
@@ -2577,7 +2579,7 @@ export class InteractiveMode {
|
|
|
2577
2579
|
break;
|
|
2578
2580
|
}
|
|
2579
2581
|
case "assistant": {
|
|
2580
|
-
const assistantComponent = new AssistantMessageComponent(message, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel);
|
|
2582
|
+
const assistantComponent = new AssistantMessageComponent(message, this.hideThinkingBlock, this.getMarkdownThemeWithSettings(), this.hiddenThinkingLabel, this.outputPad);
|
|
2581
2583
|
this.chatContainer.addChild(assistantComponent);
|
|
2582
2584
|
break;
|
|
2583
2585
|
}
|
|
@@ -2590,20 +2592,19 @@ export class InteractiveMode {
|
|
|
2590
2592
|
}
|
|
2591
2593
|
}
|
|
2592
2594
|
}
|
|
2593
|
-
|
|
2594
|
-
* Render session context to chat. Used for initial load and rebuild after compaction.
|
|
2595
|
-
* @param sessionContext Session context to render
|
|
2596
|
-
* @param options.updateFooter Update footer state
|
|
2597
|
-
* @param options.populateHistory Add user messages to editor history
|
|
2598
|
-
*/
|
|
2599
|
-
renderSessionContext(sessionContext, options = {}) {
|
|
2595
|
+
renderSessionItems(items, options = {}) {
|
|
2600
2596
|
this.pendingTools.clear();
|
|
2601
2597
|
const renderedPendingTools = new Map();
|
|
2602
2598
|
if (options.updateFooter) {
|
|
2603
2599
|
this.footer.invalidate();
|
|
2604
2600
|
this.updateEditorBorderColor();
|
|
2605
2601
|
}
|
|
2606
|
-
for (const
|
|
2602
|
+
for (const item of items) {
|
|
2603
|
+
if (isCustomSessionEntry(item)) {
|
|
2604
|
+
this.addCustomEntryToChat(item);
|
|
2605
|
+
continue;
|
|
2606
|
+
}
|
|
2607
|
+
const message = item;
|
|
2607
2608
|
// Assistant messages need special handling for tool calls
|
|
2608
2609
|
if (message.role === "assistant") {
|
|
2609
2610
|
this.addMessageToChat(message);
|
|
@@ -2654,10 +2655,24 @@ export class InteractiveMode {
|
|
|
2654
2655
|
}
|
|
2655
2656
|
this.ui.requestRender();
|
|
2656
2657
|
}
|
|
2658
|
+
/**
|
|
2659
|
+
* Render session entries to chat. Used for initial load and rebuild after compaction.
|
|
2660
|
+
* @param entries Compaction-aware session entries to render
|
|
2661
|
+
* @param options.updateFooter Update footer state
|
|
2662
|
+
* @param options.populateHistory Add user messages to editor history
|
|
2663
|
+
*/
|
|
2664
|
+
renderSessionEntries(entries, options = {}) {
|
|
2665
|
+
const items = entries.flatMap((entry) => {
|
|
2666
|
+
if (entry.type === "custom") {
|
|
2667
|
+
return [entry];
|
|
2668
|
+
}
|
|
2669
|
+
return sessionEntryToContextMessages(entry);
|
|
2670
|
+
});
|
|
2671
|
+
this.renderSessionItems(items, options);
|
|
2672
|
+
}
|
|
2657
2673
|
renderInitialMessages() {
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
this.renderSessionContext(context, {
|
|
2674
|
+
const entries = this.sessionManager.buildContextEntries();
|
|
2675
|
+
this.renderSessionEntries(entries, {
|
|
2661
2676
|
updateFooter: true,
|
|
2662
2677
|
populateHistory: true,
|
|
2663
2678
|
});
|
|
@@ -2677,7 +2692,7 @@ export class InteractiveMode {
|
|
|
2677
2692
|
if (this.chatContainer.children.length > 0) {
|
|
2678
2693
|
this.chatContainer.addChild(new Spacer(1));
|
|
2679
2694
|
}
|
|
2680
|
-
this.chatContainer.addChild(new Text(theme.fg("warning", `This project is not trusted. Project ${CONFIG_DIR_NAME} resources and packages are ignored. Use /trust to save a trust decision, then restart
|
|
2695
|
+
this.chatContainer.addChild(new Text(theme.fg("warning", `This project is not trusted. Project ${CONFIG_DIR_NAME} resources and packages are ignored. Use /trust to save a trust decision, then restart pi.`), 1, 0));
|
|
2681
2696
|
}
|
|
2682
2697
|
async getUserInput() {
|
|
2683
2698
|
const queuedInput = this.pendingUserInputs.shift();
|
|
@@ -2693,8 +2708,7 @@ export class InteractiveMode {
|
|
|
2693
2708
|
}
|
|
2694
2709
|
rebuildChatFromMessages() {
|
|
2695
2710
|
this.chatContainer.clear();
|
|
2696
|
-
|
|
2697
|
-
this.renderSessionContext(context);
|
|
2711
|
+
this.renderSessionEntries(this.sessionManager.buildContextEntries());
|
|
2698
2712
|
}
|
|
2699
2713
|
// =========================================================================
|
|
2700
2714
|
// Key handlers
|
|
@@ -2791,7 +2805,7 @@ export class InteractiveMode {
|
|
|
2791
2805
|
this.ui.stop();
|
|
2792
2806
|
}
|
|
2793
2807
|
catch { }
|
|
2794
|
-
console.error("
|
|
2808
|
+
console.error("pi exiting due to uncaughtException:");
|
|
2795
2809
|
console.error(error);
|
|
2796
2810
|
process.exit(1);
|
|
2797
2811
|
}
|
|
@@ -2965,9 +2979,11 @@ export class InteractiveMode {
|
|
|
2965
2979
|
if (isExpandable(activeHeader)) {
|
|
2966
2980
|
activeHeader.setExpanded(expanded);
|
|
2967
2981
|
}
|
|
2968
|
-
for (const
|
|
2969
|
-
|
|
2970
|
-
child
|
|
2982
|
+
for (const container of [this.loadedResourcesContainer, this.chatContainer]) {
|
|
2983
|
+
for (const child of container.children) {
|
|
2984
|
+
if (isExpandable(child)) {
|
|
2985
|
+
child.setExpanded(expanded);
|
|
2986
|
+
}
|
|
2971
2987
|
}
|
|
2972
2988
|
}
|
|
2973
2989
|
this.ui.requestRender();
|
|
@@ -2987,10 +3003,9 @@ export class InteractiveMode {
|
|
|
2987
3003
|
this.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? "hidden" : "visible"}`);
|
|
2988
3004
|
}
|
|
2989
3005
|
async openExternalEditor() {
|
|
2990
|
-
|
|
2991
|
-
const editorCmd = process.env.VISUAL || process.env.EDITOR;
|
|
3006
|
+
const editorCmd = this.settingsManager.getExternalEditorCommand();
|
|
2992
3007
|
if (!editorCmd) {
|
|
2993
|
-
this.showWarning("No editor configured. Set
|
|
3008
|
+
this.showWarning("No editor configured. Set externalEditor in settings.json or $VISUAL/$EDITOR.");
|
|
2994
3009
|
return;
|
|
2995
3010
|
}
|
|
2996
3011
|
const currentText = this.editor.getExpandedText?.() ?? this.editor.getText();
|
|
@@ -3294,6 +3309,7 @@ export class InteractiveMode {
|
|
|
3294
3309
|
showHardwareCursor: this.settingsManager.getShowHardwareCursor(),
|
|
3295
3310
|
defaultProjectTrust: this.settingsManager.getDefaultProjectTrust(),
|
|
3296
3311
|
editorPaddingX: this.settingsManager.getEditorPaddingX(),
|
|
3312
|
+
outputPad: this.settingsManager.getOutputPad(),
|
|
3297
3313
|
autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
|
|
3298
3314
|
quietStartup: this.settingsManager.getQuietStartup(),
|
|
3299
3315
|
clearOnShrink: this.settingsManager.getClearOnShrink(),
|
|
@@ -3395,6 +3411,23 @@ export class InteractiveMode {
|
|
|
3395
3411
|
this.editor.setPaddingX(padding);
|
|
3396
3412
|
}
|
|
3397
3413
|
},
|
|
3414
|
+
onOutputPadChange: (padding) => {
|
|
3415
|
+
this.settingsManager.setOutputPad(padding);
|
|
3416
|
+
this.outputPad = padding;
|
|
3417
|
+
if (this.streamingComponent || this.session.isStreaming) {
|
|
3418
|
+
for (const child of this.chatContainer.children) {
|
|
3419
|
+
if (child instanceof AssistantMessageComponent || child instanceof UserMessageComponent) {
|
|
3420
|
+
child.setOutputPad(padding);
|
|
3421
|
+
}
|
|
3422
|
+
}
|
|
3423
|
+
if (this.streamingComponent) {
|
|
3424
|
+
this.streamingComponent.setOutputPad(padding);
|
|
3425
|
+
}
|
|
3426
|
+
this.ui.requestRender();
|
|
3427
|
+
return;
|
|
3428
|
+
}
|
|
3429
|
+
this.rebuildChatFromMessages();
|
|
3430
|
+
},
|
|
3398
3431
|
onAutocompleteMaxVisibleChange: (maxVisible) => {
|
|
3399
3432
|
this.settingsManager.setAutocompleteMaxVisible(maxVisible);
|
|
3400
3433
|
this.defaultEditor.setAutocompleteMaxVisible(maxVisible);
|
|
@@ -3405,6 +3438,9 @@ export class InteractiveMode {
|
|
|
3405
3438
|
onClearOnShrinkChange: (enabled) => {
|
|
3406
3439
|
this.settingsManager.setClearOnShrink(enabled);
|
|
3407
3440
|
this.ui.setClearOnShrink(enabled);
|
|
3441
|
+
if (!enabled && !this.activeStatusIndicator) {
|
|
3442
|
+
this.statusContainer.clear();
|
|
3443
|
+
}
|
|
3408
3444
|
},
|
|
3409
3445
|
onShowTerminalProgressChange: (enabled) => {
|
|
3410
3446
|
this.settingsManager.setShowTerminalProgress(enabled);
|
|
@@ -3527,7 +3563,7 @@ export class InteractiveMode {
|
|
|
3527
3563
|
onSelect: (selection) => {
|
|
3528
3564
|
trustStore.setMany(selection.updates);
|
|
3529
3565
|
done();
|
|
3530
|
-
this.showStatus(`Saved trust decision: ${selection.trusted ? "trusted" : "untrusted"}. Restart
|
|
3566
|
+
this.showStatus(`Saved trust decision: ${selection.trusted ? "trusted" : "untrusted"}. Restart pi for this to take effect.`);
|
|
3531
3567
|
},
|
|
3532
3568
|
onCancel: () => {
|
|
3533
3569
|
done();
|
|
@@ -3722,16 +3758,16 @@ export class InteractiveMode {
|
|
|
3722
3758
|
break;
|
|
3723
3759
|
}
|
|
3724
3760
|
}
|
|
3725
|
-
// Set up escape handler and
|
|
3726
|
-
let
|
|
3761
|
+
// Set up escape handler and status indicator if summarizing
|
|
3762
|
+
let showingSummaryIndicator = false;
|
|
3727
3763
|
const originalOnEscape = this.defaultEditor.onEscape;
|
|
3728
3764
|
if (wantsSummary) {
|
|
3729
3765
|
this.defaultEditor.onEscape = () => {
|
|
3730
3766
|
this.session.abortBranchSummary();
|
|
3731
3767
|
};
|
|
3732
3768
|
this.chatContainer.addChild(new Spacer(1));
|
|
3733
|
-
|
|
3734
|
-
|
|
3769
|
+
this.showStatusIndicator(new BranchSummaryStatusIndicator(this.ui));
|
|
3770
|
+
showingSummaryIndicator = true;
|
|
3735
3771
|
this.ui.requestRender();
|
|
3736
3772
|
}
|
|
3737
3773
|
try {
|
|
@@ -3762,9 +3798,8 @@ export class InteractiveMode {
|
|
|
3762
3798
|
this.showError(error instanceof Error ? error.message : String(error));
|
|
3763
3799
|
}
|
|
3764
3800
|
finally {
|
|
3765
|
-
if (
|
|
3766
|
-
|
|
3767
|
-
this.statusContainer.clear();
|
|
3801
|
+
if (showingSummaryIndicator) {
|
|
3802
|
+
this.clearStatusIndicator("branchSummary");
|
|
3768
3803
|
}
|
|
3769
3804
|
this.defaultEditor.onEscape = originalOnEscape;
|
|
3770
3805
|
}
|
|
@@ -3805,11 +3840,7 @@ export class InteractiveMode {
|
|
|
3805
3840
|
});
|
|
3806
3841
|
}
|
|
3807
3842
|
async handleResumeSession(sessionPath, options) {
|
|
3808
|
-
|
|
3809
|
-
this.loadingAnimation.stop();
|
|
3810
|
-
this.loadingAnimation = undefined;
|
|
3811
|
-
}
|
|
3812
|
-
this.statusContainer.clear();
|
|
3843
|
+
this.clearStatusIndicator();
|
|
3813
3844
|
try {
|
|
3814
3845
|
const result = await this.runtimeHost.switchSession(sessionPath, {
|
|
3815
3846
|
withSession: options?.withSession,
|
|
@@ -4202,6 +4233,7 @@ export class InteractiveMode {
|
|
|
4202
4233
|
return;
|
|
4203
4234
|
}
|
|
4204
4235
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
4236
|
+
this.outputPad = this.settingsManager.getOutputPad();
|
|
4205
4237
|
this.rebuildChatFromMessages();
|
|
4206
4238
|
chatRestoredBeforeSessionStart = true;
|
|
4207
4239
|
};
|
|
@@ -4225,7 +4257,11 @@ export class InteractiveMode {
|
|
|
4225
4257
|
this.editor.setAutocompleteMaxVisible?.(autocompleteMaxVisible);
|
|
4226
4258
|
}
|
|
4227
4259
|
this.ui.setShowHardwareCursor(this.settingsManager.getShowHardwareCursor());
|
|
4228
|
-
this.
|
|
4260
|
+
const clearOnShrink = this.settingsManager.getClearOnShrink();
|
|
4261
|
+
this.ui.setClearOnShrink(clearOnShrink);
|
|
4262
|
+
if (!clearOnShrink && !this.activeStatusIndicator) {
|
|
4263
|
+
this.statusContainer.clear();
|
|
4264
|
+
}
|
|
4229
4265
|
this.setupAutocompleteProvider();
|
|
4230
4266
|
const runner = this.session.extensionRunner;
|
|
4231
4267
|
this.setupExtensionShortcuts(runner);
|
|
@@ -4304,11 +4340,7 @@ export class InteractiveMode {
|
|
|
4304
4340
|
return;
|
|
4305
4341
|
}
|
|
4306
4342
|
try {
|
|
4307
|
-
|
|
4308
|
-
this.loadingAnimation.stop();
|
|
4309
|
-
this.loadingAnimation = undefined;
|
|
4310
|
-
}
|
|
4311
|
-
this.statusContainer.clear();
|
|
4343
|
+
this.clearStatusIndicator();
|
|
4312
4344
|
const result = await this.runtimeHost.importFromJsonl(inputPath);
|
|
4313
4345
|
if (result.cancelled) {
|
|
4314
4346
|
this.showStatus("Import cancelled");
|
|
@@ -4454,8 +4486,12 @@ export class InteractiveMode {
|
|
|
4454
4486
|
return;
|
|
4455
4487
|
}
|
|
4456
4488
|
this.session.setSessionName(name);
|
|
4489
|
+
const sessionName = this.sessionManager.getSessionName();
|
|
4490
|
+
if (sessionName !== name) {
|
|
4491
|
+
this.showWarning(`Session name was normalized from ${JSON.stringify(name)} to ${JSON.stringify(sessionName)}`);
|
|
4492
|
+
}
|
|
4457
4493
|
this.chatContainer.addChild(new Spacer(1));
|
|
4458
|
-
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name set: ${name}`), 1, 0));
|
|
4494
|
+
this.chatContainer.addChild(new Text(theme.fg("dim", `Session name set: ${sessionName ?? name}`), 1, 0));
|
|
4459
4495
|
this.ui.requestRender();
|
|
4460
4496
|
}
|
|
4461
4497
|
handleSessionCommand() {
|
|
@@ -4630,11 +4666,7 @@ export class InteractiveMode {
|
|
|
4630
4666
|
this.ui.requestRender();
|
|
4631
4667
|
}
|
|
4632
4668
|
async handleClearCommand() {
|
|
4633
|
-
|
|
4634
|
-
this.loadingAnimation.stop();
|
|
4635
|
-
this.loadingAnimation = undefined;
|
|
4636
|
-
}
|
|
4637
|
-
this.statusContainer.clear();
|
|
4669
|
+
this.clearStatusIndicator();
|
|
4638
4670
|
try {
|
|
4639
4671
|
const result = await this.runtimeHost.newSession();
|
|
4640
4672
|
if (result.cancelled) {
|
|
@@ -4761,11 +4793,7 @@ export class InteractiveMode {
|
|
|
4761
4793
|
this.ui.requestRender();
|
|
4762
4794
|
}
|
|
4763
4795
|
async handleCompactCommand(customInstructions) {
|
|
4764
|
-
|
|
4765
|
-
this.loadingAnimation.stop();
|
|
4766
|
-
this.loadingAnimation = undefined;
|
|
4767
|
-
}
|
|
4768
|
-
this.statusContainer.clear();
|
|
4796
|
+
this.clearStatusIndicator();
|
|
4769
4797
|
try {
|
|
4770
4798
|
await this.session.compact(customInstructions);
|
|
4771
4799
|
}
|
|
@@ -4777,10 +4805,7 @@ export class InteractiveMode {
|
|
|
4777
4805
|
if (this.settingsManager.getShowTerminalProgress()) {
|
|
4778
4806
|
this.ui.terminal.setProgress(false);
|
|
4779
4807
|
}
|
|
4780
|
-
|
|
4781
|
-
this.loadingAnimation.stop();
|
|
4782
|
-
this.loadingAnimation = undefined;
|
|
4783
|
-
}
|
|
4808
|
+
this.clearStatusIndicator();
|
|
4784
4809
|
this.themeController.disableAutoSync();
|
|
4785
4810
|
this.clearExtensionTerminalInputListeners();
|
|
4786
4811
|
this.footer.dispose();
|