@ai-agent-forge/agent-forge 0.88.2 → 0.88.4
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/CHANGELOG.md +33 -0
- package/README.md +1 -1
- package/bundled-plugins/agent-loop-policy/agent-forge.json +1 -1
- package/bundled-plugins/agent-loop-policy/plugin.json +1 -1
- package/bundled-plugins/coding-tools/agent-forge.json +1 -1
- package/bundled-plugins/coding-tools/plugin.json +1 -1
- package/bundled-plugins/compaction-policy/agent-forge.json +1 -1
- package/bundled-plugins/compaction-policy/plugin.json +1 -1
- package/bundled-plugins/overflow-policy/agent-forge.json +1 -1
- package/bundled-plugins/overflow-policy/plugin.json +1 -1
- package/bundled-plugins/provider-failover/agent-forge.json +1 -1
- package/bundled-plugins/provider-failover/plugin.json +1 -1
- package/bundled-plugins/retry-policy/agent-forge.json +1 -1
- package/bundled-plugins/retry-policy/plugin.json +1 -1
- package/dist/artifacts/paged-read.d.ts +6 -1
- package/dist/artifacts/paged-read.d.ts.map +1 -1
- package/dist/artifacts/paged-read.js.map +1 -1
- package/dist/bundle/.build-manifest.json +244 -234
- package/dist/bundle/chunks/{anthropic-messages-PLAKXR73.js → anthropic-messages-3FJHRAJL.js} +2 -2
- package/dist/bundle/chunks/anthropic.js +1 -1
- package/dist/bundle/chunks/{azure-openai-responses-OUWQ2AZD.js → azure-openai-responses-GCL47IDS.js} +1 -1
- package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
- package/dist/bundle/chunks/{chunk-6F5JWGKE.js → chunk-32YDZI4J.js} +1 -1
- package/dist/bundle/chunks/{chunk-LSP24WNH.js → chunk-755VNWIF.js} +12 -12
- package/dist/bundle/chunks/{chunk-DRQDKNXA.js → chunk-BVVSHK6W.js} +1 -1
- package/dist/bundle/chunks/{chunk-HTC5K5SM.js → chunk-HEL6TAWE.js} +95 -90
- package/dist/bundle/chunks/{chunk-6R7UI4IY.js → chunk-QDLOMKF6.js} +1 -1
- package/dist/bundle/chunks/{chunk-44I47ACN.js → chunk-V3ACW7VD.js} +1 -1
- package/dist/bundle/chunks/{google-generative-ai-DLII6DAT.js → google-generative-ai-6BMXWA44.js} +1 -1
- package/dist/bundle/chunks/{google-vertex-G7BZL7GM.js → google-vertex-6H7NLRTK.js} +1 -1
- package/dist/bundle/chunks/image-resize-worker.js +1 -1
- package/dist/bundle/chunks/{mistral-conversations-JXUK24ID.js → mistral-conversations-IXUHSFSJ.js} +1 -1
- package/dist/bundle/chunks/{openai-codex-responses-5GSGFIPG.js → openai-codex-responses-YHUAEVCM.js} +1 -1
- package/dist/bundle/chunks/openai-codex.js +1 -1
- package/dist/bundle/chunks/{openai-completions-EI2I6DTG.js → openai-completions-ULQCFC72.js} +1 -1
- package/dist/bundle/chunks/openai-responses-NLLAJDPS.js +2 -0
- package/dist/bundle/chunks/{openrouter-images-G4GQRUSG.js → openrouter-images-GZZQZXMS.js} +1 -1
- package/dist/bundle/chunks/openrouter.js +1 -1
- package/dist/bundle/chunks/{pi-messages-PWU2VJMR.js → pi-messages-EJTI2EJ3.js} +1 -1
- package/dist/bundle/chunks/virtual-modules-TQWEGNNZ.js +5 -0
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/client.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/cli/args.d.ts +0 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/experimental/cli.d.ts +3 -3
- package/dist/cli/experimental/cli.d.ts.map +1 -1
- package/dist/cli/experimental/cli.js +2 -2
- package/dist/cli/experimental/cli.js.map +1 -1
- package/dist/cli/experimental/commands/agent-forge.d.ts +15 -0
- package/dist/cli/experimental/commands/agent-forge.d.ts.map +1 -0
- package/dist/cli/experimental/commands/{pi.js → agent-forge.js} +4 -4
- package/dist/cli/experimental/commands/agent-forge.js.map +1 -0
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +1 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/config.d.ts +4 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -7
- package/dist/config.js.map +1 -1
- package/dist/core/agent-forge-manifest.d.ts +7 -0
- package/dist/core/agent-forge-manifest.d.ts.map +1 -0
- package/dist/core/{pi-manifest.js → agent-forge-manifest.js} +4 -4
- package/dist/core/agent-forge-manifest.js.map +1 -0
- package/dist/core/agent-session-compaction.d.ts +1 -1
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +3 -3
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-lifecycle.d.ts.map +1 -1
- package/dist/core/agent-session-lifecycle.js +12 -1
- package/dist/core/agent-session-lifecycle.js.map +1 -1
- package/dist/core/agent-session-projection.d.ts.map +1 -1
- package/dist/core/agent-session-projection.js +3 -3
- package/dist/core/agent-session-projection.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js +1 -3
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/extensions/capability-plugin.d.ts.map +1 -1
- package/dist/core/extensions/capability-plugin.js +15 -8
- package/dist/core/extensions/capability-plugin.js.map +1 -1
- package/dist/core/extensions/capability-runtime-store.d.ts +20 -1
- package/dist/core/extensions/capability-runtime-store.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime-store.js +67 -0
- package/dist/core/extensions/capability-runtime-store.js.map +1 -1
- package/dist/core/extensions/capability-runtime-types.d.ts +14 -0
- package/dist/core/extensions/capability-runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime-types.js +7 -1
- package/dist/core/extensions/capability-runtime-types.js.map +1 -1
- package/dist/core/extensions/capability-runtime.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime.js +144 -42
- package/dist/core/extensions/capability-runtime.js.map +1 -1
- package/dist/core/extensions/virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/virtual-modules.js +12 -4
- package/dist/core/extensions/virtual-modules.js.map +1 -1
- package/dist/core/facade/coding-agent-facade.d.ts +1 -1
- package/dist/core/facade/coding-agent-facade.d.ts.map +1 -1
- package/dist/core/facade/coding-agent-facade.js +1 -1
- package/dist/core/facade/coding-agent-facade.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-final.js +3 -3
- package/dist/core/i18n/locales/zh-cn/core-contract-final.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-plugins.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.js +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/tui-components-misc.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/tui-components-misc.js +2 -0
- package/dist/core/i18n/locales/zh-cn/tui-components-misc.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +4 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-resource-collection.d.ts.map +1 -1
- package/dist/core/package-resource-collection.js +5 -5
- package/dist/core/package-resource-collection.js.map +1 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +3 -3
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +1 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +6 -7
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +4 -4
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +5 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +1 -3
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition.d.ts +1 -1
- package/dist/core/tools/tool-definition.d.ts.map +1 -1
- package/dist/core/tools/tool-definition.js.map +1 -1
- package/dist/core/trace-retention.d.ts +16 -1
- package/dist/core/trace-retention.d.ts.map +1 -1
- package/dist/core/trace-retention.js +43 -20
- package/dist/core/trace-retention.js.map +1 -1
- package/dist/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/export-html/ansi-to-html.js.map +1 -0
- package/dist/{core/export-html → export-html}/index.d.ts +1 -1
- package/dist/export-html/index.d.ts.map +1 -0
- package/dist/{core/export-html → export-html}/index.js +5 -5
- package/dist/export-html/index.js.map +1 -0
- package/dist/{core/export-html → export-html}/tool-renderer.d.ts +2 -2
- package/dist/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/export-html/tool-renderer.js.map +1 -0
- package/dist/{modes/interactive → host}/model-catalog-refresh.d.ts +1 -1
- package/dist/host/model-catalog-refresh.d.ts.map +1 -0
- package/dist/{modes/interactive → host}/model-catalog-refresh.js +1 -1
- package/dist/host/model-catalog-refresh.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +25 -14
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/agents-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/agents-view.js +1 -1
- package/dist/modes/interactive/components/agents-view.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +3 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +83 -24
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js +1 -1
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/dialog-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/dialog-editor.js +1 -1
- package/dist/modes/interactive/components/dialog-editor.js.map +1 -1
- package/dist/modes/interactive/components/dialog-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/dialog-input.js +1 -1
- package/dist/modes/interactive/components/dialog-input.js.map +1 -1
- package/dist/modes/interactive/components/dialog-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/dialog-selector.js +1 -1
- package/dist/modes/interactive/components/dialog-selector.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js +1 -1
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +1 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
- package/dist/modes/interactive/components/mermaid.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +2 -2
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/plugin-manager-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/plugin-manager-entry.js +1 -1
- package/dist/modes/interactive/components/plugin-manager-entry.js.map +1 -1
- package/dist/modes/interactive/components/plugin-selection-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/plugin-selection-entry.js +1 -1
- package/dist/modes/interactive/components/plugin-selection-entry.js.map +1 -1
- package/dist/modes/interactive/components/queue-manager-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/queue-manager-selector.js +1 -1
- package/dist/modes/interactive/components/queue-manager-selector.js.map +1 -1
- package/dist/modes/interactive/components/render-types.d.ts +1 -1
- package/dist/modes/interactive/components/render-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/render-types.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +2 -2
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.js +1 -1
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js +1 -1
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +1 -1
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +1 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +2 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +96 -4
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-run-group.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-run-group.js +1 -1
- package/dist/modes/interactive/components/tool-run-group.js.map +1 -1
- package/dist/modes/interactive/components/tree-list.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-list.js +1 -1
- package/dist/modes/interactive/components/tree-list.js.map +1 -1
- package/dist/modes/interactive/components/tree-render.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-render.js +1 -1
- package/dist/modes/interactive/components/tree-render.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +1 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/workflow-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/workflow-view.js +1 -1
- package/dist/modes/interactive/components/workflow-view.js.map +1 -1
- package/dist/modes/interactive/interactive-auth.d.ts +1 -1
- package/dist/modes/interactive/interactive-auth.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-auth.js +1 -1
- package/dist/modes/interactive/interactive-auth.js.map +1 -1
- package/dist/modes/interactive/interactive-commands.d.ts +123 -6
- package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-commands.js +691 -4
- package/dist/modes/interactive/interactive-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-events.d.ts +174 -0
- package/dist/modes/interactive/interactive-events.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-events.js +704 -0
- package/dist/modes/interactive/interactive-events.js.map +1 -0
- package/dist/modes/interactive/interactive-format.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-format.js +1 -1
- package/dist/modes/interactive/interactive-format.js.map +1 -1
- package/dist/modes/interactive/interactive-lifecycle.d.ts +94 -0
- package/dist/modes/interactive/interactive-lifecycle.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-lifecycle.js +177 -0
- package/dist/modes/interactive/interactive-lifecycle.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +240 -133
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +251 -2159
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/interactive-queues.d.ts +96 -0
- package/dist/modes/interactive/interactive-queues.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-queues.js +183 -0
- package/dist/modes/interactive/interactive-queues.js.map +1 -0
- package/dist/modes/interactive/interactive-selectors.d.ts +95 -5
- package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +517 -6
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/startup-services.d.ts +31 -0
- package/dist/modes/interactive/startup-services.d.ts.map +1 -0
- package/dist/modes/interactive/startup-services.js +123 -0
- package/dist/modes/interactive/startup-services.js.map +1 -0
- package/dist/modes/memory-preheat.d.ts +11 -0
- package/dist/modes/memory-preheat.d.ts.map +1 -0
- package/dist/modes/memory-preheat.js +20 -0
- package/dist/modes/memory-preheat.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +3 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/plugins/ecosystem/node-package-install-host.d.ts +9 -1
- package/dist/plugins/ecosystem/node-package-install-host.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-package-install-host.js +79 -0
- package/dist/plugins/ecosystem/node-package-install-host.js.map +1 -1
- package/dist/remote/server-assembly.d.ts.map +1 -1
- package/dist/remote/server-assembly.js +7 -2
- package/dist/remote/server-assembly.js.map +1 -1
- package/dist/suites/builtin-suites.d.ts.map +1 -0
- package/dist/suites/builtin-suites.js.map +1 -0
- package/dist/suites/resolved-agent-profile.d.ts.map +1 -0
- package/dist/suites/resolved-agent-profile.js.map +1 -0
- package/dist/suites/suite-lifecycle.d.ts.map +1 -0
- package/dist/suites/suite-lifecycle.js.map +1 -0
- package/dist/suites/suite-loader.d.ts.map +1 -0
- package/dist/suites/suite-loader.js.map +1 -0
- package/dist/{modes/interactive/theme → theme}/dark.json +1 -1
- package/dist/{modes/interactive/theme → theme}/light.json +1 -1
- package/dist/{modes/interactive/theme → theme}/theme-controller.d.ts +1 -1
- package/dist/theme/theme-controller.d.ts.map +1 -0
- package/dist/{modes/interactive/theme → theme}/theme-controller.js +1 -1
- package/dist/theme/theme-controller.js.map +1 -0
- package/dist/{modes/interactive/theme → theme}/theme.d.ts +1 -1
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/{modes/interactive/theme → theme}/theme.js +5 -5
- package/dist/theme/theme.js.map +1 -0
- package/docs/compaction.md +7 -7
- package/docs/environment-variables.md +10 -4
- package/docs/keybindings.md +3 -3
- package/docs/models.md +17 -17
- package/docs/packages.md +1 -1
- package/docs/prompt-templates.md +1 -1
- package/docs/rpc.md +2 -2
- package/docs/sdk.md +5 -5
- package/docs/session-format.md +3 -3
- package/docs/settings.md +15 -1
- package/docs/shell-aliases.md +1 -1
- package/docs/skills.md +1 -1
- package/docs/terminal-setup.md +17 -17
- package/docs/themes.md +5 -5
- package/docs/tmux.md +4 -4
- package/docs/tui.md +1 -1
- package/docs/usage.md +292 -292
- package/docs/windows.md +1 -1
- package/examples/extensions/bash-spawn-hook/index.ts +1 -1
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/mcp-stdio/index.d.ts +64 -0
- package/examples/extensions/mcp-stdio/index.d.ts.map +1 -0
- package/examples/extensions/mcp-stdio/index.js +292 -0
- package/examples/extensions/mcp-stdio/index.js.map +1 -0
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -6
- package/examples/extensions/with-deps/plugin.json +1 -1
- package/package.json +2 -2
- package/dist/bundle/chunks/openai-responses-AUJQ3NWT.js +0 -2
- package/dist/bundle/chunks/virtual-modules-MRXD3RWG.js +0 -5
- package/dist/cli/experimental/commands/pi.d.ts +0 -15
- package/dist/cli/experimental/commands/pi.d.ts.map +0 -1
- package/dist/cli/experimental/commands/pi.js.map +0 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
- package/dist/core/export-html/ansi-to-html.js.map +0 -1
- package/dist/core/export-html/index.d.ts.map +0 -1
- package/dist/core/export-html/index.js.map +0 -1
- package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
- package/dist/core/export-html/tool-renderer.js.map +0 -1
- package/dist/core/pi-manifest.d.ts +0 -7
- package/dist/core/pi-manifest.d.ts.map +0 -1
- package/dist/core/pi-manifest.js.map +0 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +0 -1
- package/dist/modes/interactive/model-catalog-refresh.js.map +0 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +0 -1
- package/dist/modes/interactive/theme/theme-controller.js.map +0 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
- package/dist/modes/interactive/theme/theme.js.map +0 -1
- package/dist/profiles/builtin-suites.d.ts.map +0 -1
- package/dist/profiles/builtin-suites.js.map +0 -1
- package/dist/profiles/resolved-agent-profile.d.ts.map +0 -1
- package/dist/profiles/resolved-agent-profile.js.map +0 -1
- package/dist/profiles/suite-lifecycle.d.ts.map +0 -1
- package/dist/profiles/suite-lifecycle.js.map +0 -1
- package/dist/profiles/suite-loader.d.ts.map +0 -1
- package/dist/profiles/suite-loader.js.map +0 -1
- package/dist/utils/deprecation.d.ts +0 -4
- package/dist/utils/deprecation.d.ts.map +0 -1
- package/dist/utils/deprecation.js +0 -13
- package/dist/utils/deprecation.js.map +0 -1
- /package/dist/{core/export-html → export-html}/ansi-to-html.d.ts +0 -0
- /package/dist/{core/export-html → export-html}/ansi-to-html.js +0 -0
- /package/dist/{core/export-html → export-html}/template.css +0 -0
- /package/dist/{core/export-html → export-html}/template.html +0 -0
- /package/dist/{core/export-html → export-html}/template.js +0 -0
- /package/dist/{core/export-html → export-html}/tool-renderer.js +0 -0
- /package/dist/{core/export-html → export-html}/vendor/highlight.min.js +0 -0
- /package/dist/{core/export-html → export-html}/vendor/marked.min.js +0 -0
- /package/dist/{profiles → suites}/builtin-suites.d.ts +0 -0
- /package/dist/{profiles → suites}/builtin-suites.js +0 -0
- /package/dist/{profiles → suites}/resolved-agent-profile.d.ts +0 -0
- /package/dist/{profiles → suites}/resolved-agent-profile.js +0 -0
- /package/dist/{profiles → suites}/suite-lifecycle.d.ts +0 -0
- /package/dist/{profiles → suites}/suite-lifecycle.js +0 -0
- /package/dist/{profiles → suites}/suite-loader.d.ts +0 -0
- /package/dist/{profiles → suites}/suite-loader.js +0 -0
- /package/dist/{modes/interactive/theme → theme}/theme-schema.json +0 -0
|
@@ -8,6 +8,6 @@ import{parentPort}from"node:worker_threads";var cli={"Error: {message}":"\u9519\
|
|
|
8
8
|
\u7136\u540E\u4F7F\u7528 /model \u9009\u62E9\u6A21\u578B\u3002`,"No API key found for {provider}.\n\n{help}":`\u672A\u627E\u5230 {provider} \u7684 API key\u3002
|
|
9
9
|
|
|
10
10
|
{help}`,"the selected model":"\u6240\u9009\u6A21\u578B","Session id must be non-empty, contain only alphanumeric characters, '-', '_', and '.', and start and end with an alphanumeric character":"\u4F1A\u8BDD id \u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u53EA\u80FD\u5305\u542B\u5B57\u6BCD\u6570\u5B57\u5B57\u7B26\u3001'-'\u3001'_' \u548C '.'\uFF0C\u4E14\u9996\u5C3E\u5FC5\u987B\u662F\u5B57\u6BCD\u6570\u5B57\u5B57\u7B26","Session file is not a valid {appName} session: {path}":"\u4F1A\u8BDD\u6587\u4EF6\u4E0D\u662F\u6709\u6548\u7684 {appName} \u4F1A\u8BDD\uFF1A{path}","Invalid compaction operationId in session entry: {operationId}":"\u4F1A\u8BDD\u6761\u76EE\u4E2D\u7684\u538B\u7F29 operationId \u65E0\u6548\uFF1A{operationId}","Duplicate compaction operationId in session: {operationId}":"\u4F1A\u8BDD\u4E2D\u5B58\u5728\u91CD\u590D\u7684\u538B\u7F29 operationId\uFF1A{operationId}","Session append failed and rollback failed":"\u4F1A\u8BDD\u8FFD\u52A0\u5931\u8D25\u4E14\u56DE\u6EDA\u5931\u8D25","Cannot fork: source session file is empty or invalid: {path}":"\u65E0\u6CD5\u5206\u53C9\uFF1A\u6E90\u4F1A\u8BDD\u6587\u4EF6\u4E3A\u7A7A\u6216\u65E0\u6548\uFF1A{path}","Cannot fork: source session has no header: {path}":"\u65E0\u6CD5\u5206\u53C9\uFF1A\u6E90\u4F1A\u8BDD\u7F3A\u5C11\u5934\u4FE1\u606F\uFF1A{path}","session guard lock timeout after {timeoutMs} ms: {lockPath}":"\u4F1A\u8BDD\u5B88\u62A4\u9501\u5728 {timeoutMs} \u6BEB\u79D2\u540E\u8D85\u65F6\uFF1A{lockPath}","Session file is owned by another live process (pid {pid}): {sessionFile}. Close that process first; concurrent writers would silently fork the session history.":"\u4F1A\u8BDD\u6587\u4EF6\u88AB\u53E6\u4E00\u4E2A\u5B58\u6D3B\u8FDB\u7A0B\u5360\u7528\uFF08pid {pid}\uFF09\uFF1A{sessionFile}\u3002\u8BF7\u5148\u5173\u95ED\u8BE5\u8FDB\u7A0B\uFF1B\u5E76\u53D1\u5199\u5165\u4F1A\u5BFC\u81F4\u4F1A\u8BDD\u5386\u53F2\u9759\u9ED8\u5206\u53C9\u3002","Session file: {sessionFile}":"\u4F1A\u8BDD\u6587\u4EF6\uFF1A{sessionFile}","Stored session working directory does not exist: {sessionCwd}{sessionFile}\nCurrent working directory: {fallbackCwd}":`\u4F1A\u8BDD\u4E2D\u8BB0\u5F55\u7684\u5DE5\u4F5C\u76EE\u5F55\u4E0D\u5B58\u5728\uFF1A{sessionCwd}{sessionFile}
|
|
11
|
-
\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\uFF1A{fallbackCwd}`,"Input rejected by an input gate":"\u8F93\u5165\u88AB\u8F93\u5165\u95E8\u62D2\u7EDD","Input rejected by an input gate: {reason}":"\u8F93\u5165\u88AB\u8F93\u5165\u95E8\u62D2\u7EDD\uFF1A{reason}","Session reload in progress; prompts are unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u63D0\u4EA4\u63D0\u793A","Session reload in progress; compaction is unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u538B\u7F29","Session reload in progress; compaction was not started":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u538B\u7F29\u672A\u542F\u52A8","Session reload in progress; tree navigation is unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u5BFC\u822A\u4F1A\u8BDD\u6811","Session reload in progress; bash execution is unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u6267\u884C bash","Session reload in progress; bash results cannot be recorded":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u65E0\u6CD5\u8BB0\u5F55 bash \u7ED3\u679C","Cannot submit a prompt while compaction is in progress. Wait for compaction to finish and retry.":"\u538B\u7F29\u8FDB\u884C\u4E2D\u65E0\u6CD5\u63D0\u4EA4\u63D0\u793A\u3002\u8BF7\u7B49\u5F85\u538B\u7F29\u5B8C\u6210\u540E\u518D\u91CD\u8BD5\u3002","Authentication failed for \"{provider}\". Credentials may have expired or network is unavailable. Run '/login {provider}' to re-authenticate.":"\u201C{provider}\u201D\u8BA4\u8BC1\u5931\u8D25\u3002\u51ED\u8BC1\u53EF\u80FD\u5DF2\u8FC7\u671F\u6216\u7F51\u7EDC\u4E0D\u53EF\u7528\u3002\u8BF7\u8FD0\u884C '/login {provider}' \u91CD\u65B0\u8BA4\u8BC1\u3002","No model is set on this session's agent":"\u672C\u4F1A\u8BDD\u7684 agent \u672A\u8BBE\u7F6E\u6A21\u578B","No API key for {provider}/{model}":"\u6CA1\u6709 {provider}/{model} \u7684 API key","Already compacted":"\u5DF2\u538B\u7F29\u8FC7","Nothing to compact (session too small)":"\u6CA1\u6709\u53EF\u538B\u7F29\u7684\u5185\u5BB9\uFF08\u4F1A\u8BDD\u592A\u5C0F\uFF09","Wait for the current response to finish before navigating the session tree.":"\u8BF7\u7B49\u5F85\u5F53\u524D\u54CD\u5E94\u7ED3\u675F\u518D\u5BFC\u822A\u4F1A\u8BDD\u6811\u3002","Wait for the current compaction or tree navigation to finish before navigating the session tree.":"\u8BF7\u7B49\u5F85\u5F53\u524D\u538B\u7F29\u6216\u6811\u5BFC\u822A\u7ED3\u675F\u518D\u5BFC\u822A\u4F1A\u8BDD\u6811\u3002","No model available for summarization":"\u6CA1\u6709\u53EF\u7528\u4E8E\u751F\u6210\u6458\u8981\u7684\u6A21\u578B","Branch navigation is already in progress":"\u5206\u652F\u5BFC\u822A\u5DF2\u5728\u8FDB\u884C\u4E2D","Branch summary policy is not registered: {name}":"\u5206\u652F\u6458\u8981\u7B56\u7565\u672A\u6CE8\u518C\uFF1A{name}","Configured context strategy is not registered: {name}":"\u5DF2\u914D\u7F6E\u7684\u4E0A\u4E0B\u6587\u7B56\u7565\u672A\u6CE8\u518C\uFF1A{name}","Configured context strategy is not registered after reload: {name}":"\u91CD\u8F7D\u540E\u5DF2\u914D\u7F6E\u7684\u4E0A\u4E0B\u6587\u7B56\u7565\u672A\u6CE8\u518C\uFF1A{name}","This session has not been saved yet. Send a message before cloning or forking it.":"\u672C\u4F1A\u8BDD\u5C1A\u672A\u4FDD\u5B58\u3002\u8BF7\u5148\u53D1\u9001\u6D88\u606F\u518D\u514B\u9686\u6216\u5206\u53C9\u3002","Failed to create forked session":"\u521B\u5EFA\u5206\u53C9\u4F1A\u8BDD\u5931\u8D25","File not found: {path}":"\u6587\u4EF6\u4E0D\u5B58\u5728\uFF1A{path}","Skill is duplicated in resources: {name}":"\u6280\u80FD\u5728\u8D44\u6E90\u4E2D\u91CD\u590D\uFF1A{name}","Skill conflicts with a resource skill: {name}":"\u6280\u80FD\u4E0E\u8D44\u6E90\u6280\u80FD\u51B2\u7A81\uFF1A{name}","Credential {operation} committed for {providerId}, but local synchronization failed":"\u63D0\u4F9B\u5546 {providerId} \u7684\u51ED\u8BC1 {operation} \u5DF2\u63D0\u4EA4\uFF0C\u4F46\u672C\u5730\u540C\u6B65\u5931\u8D25","Unknown provider: {provider}":"\u672A\u77E5\u63D0\u4F9B\u5546\uFF1A{provider}","Provider is not configured: {provider}":"\u63D0\u4F9B\u5546\u672A\u914D\u7F6E\uFF1A{provider}",'Provider {providerId}, model {modelId}: no "api" specified. Set at provider or model level.':'\u63D0\u4F9B\u5546 {providerId}\uFF0C\u6A21\u578B {modelId}\uFF1A\u672A\u6307\u5B9A "api"\u3002\u8BF7\u5728\u63D0\u4F9B\u5546\u6216\u6A21\u578B\u7EA7\u522B\u8BBE\u7F6E\u3002','Provider {providerId}: "baseUrl" is required when defining custom models.':'\u63D0\u4F9B\u5546 {providerId}\uFF1A\u5B9A\u4E49\u81EA\u5B9A\u4E49\u6A21\u578B\u65F6\u5FC5\u987B\u63D0\u4F9B "baseUrl"\u3002',"Provider {providerId}, model {modelId}: invalid contextWindow":"\u63D0\u4F9B\u5546 {providerId}\uFF0C\u6A21\u578B {modelId}\uFF1AcontextWindow \u65E0\u6548","Provider {providerId}, model {modelId}: invalid maxTokens":"\u63D0\u4F9B\u5546 {providerId}\uFF0C\u6A21\u578B {modelId}\uFF1AmaxTokens \u65E0\u6548",'Provider {providerId}: "baseUrl" is required when "oauth" is set.':'\u63D0\u4F9B\u5546 {providerId}\uFF1A\u8BBE\u7F6E "oauth" \u65F6\u5FC5\u987B\u63D0\u4F9B "baseUrl"\u3002','Provider {providerId}: must specify "baseUrl", "headers", "compat", "modelOverrides", or "models".':'\u63D0\u4F9B\u5546 {providerId}\uFF1A\u5FC5\u987B\u6307\u5B9A "baseUrl"\u3001"headers"\u3001"compat"\u3001"modelOverrides" \u6216 "models" \u4E4B\u4E00\u3002',"Provider {providerId}: no authentication method configured.":"\u63D0\u4F9B\u5546 {providerId}\uFF1A\u672A\u914D\u7F6E\u4EFB\u4F55\u8BA4\u8BC1\u65B9\u5F0F\u3002",'API key for provider "{providerId}"':'\u63D0\u4F9B\u5546 "{providerId}" \u7684 API key',"Failed to resolve {description} from shell command: {command}":"\u65E0\u6CD5\u4ECE shell \u547D\u4EE4\u89E3\u6790{description}\uFF1A{command}","Failed to resolve {description} from environment variable: {envVar}":"\u65E0\u6CD5\u4ECE\u73AF\u5883\u53D8\u91CF\u89E3\u6790{description}\uFF1A{envVar}","Failed to resolve {description} from environment variables: {envVars}":"\u65E0\u6CD5\u4ECE\u73AF\u5883\u53D8\u91CF\u89E3\u6790{description}\uFF1A{envVars}","Failed to resolve {description}":"\u65E0\u6CD5\u89E3\u6790{description}",'{description} header "{key}"':'{description}\u7684 header "{key}"',"Invalid {settingName} setting: {value}":"\u65E0\u6548\u7684 {settingName} \u8BBE\u7F6E\uFF1A{value}","Invalid compaction.{field} setting: {value}. Expected a non-negative safe integer.":"\u65E0\u6548\u7684 compaction.{field} \u8BBE\u7F6E\uFF1A{value}\u3002\u5E94\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u3002",'Invalid compaction.modelOverrides["{modelKey}"] setting: {value}. Expected an object.':'\u65E0\u6548\u7684 compaction.modelOverrides["{modelKey}"] \u8BBE\u7F6E\uFF1A{value}\u3002\u5E94\u4E3A\u5BF9\u8C61\u3002','Invalid compaction.modelOverrides["{modelKey}"].{field} setting: {value}. Expected a non-negative safe integer.':'\u65E0\u6548\u7684 compaction.modelOverrides["{modelKey}"].{field} \u8BBE\u7F6E\uFF1A{value}\u3002\u5E94\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u3002',"Invalid httpIdleTimeoutMs setting: {value}":"\u65E0\u6548\u7684 httpIdleTimeoutMs \u8BBE\u7F6E\uFF1A{value}","Invalid HTTP idle timeout: {value}":"\u65E0\u6548\u7684 HTTP \u7A7A\u95F2\u8D85\u65F6\uFF1A{value}","Failed to read auth.json: {reason}":"\u8BFB\u53D6 auth.json \u5931\u8D25\uFF1A{reason}","Invalid auth.json: expected an object":"auth.json \u65E0\u6548\uFF1A\u5E94\u4E3A\u5BF9\u8C61",'Invalid auth.json credential for provider "{providerId}"':'\u63D0\u4F9B\u5546 "{providerId}" \u7684 auth.json \u51ED\u8BC1\u65E0\u6548',"Read-only credential storage cannot modify auth.json":"\u53EA\u8BFB\u51ED\u8BC1\u5B58\u50A8\u65E0\u6CD5\u4FEE\u6539 auth.json",'Invalid model catalog for provider "{providerId}"':'\u63D0\u4F9B\u5546 "{providerId}" \u7684\u6A21\u578B\u76EE\u5F55\u65E0\u6548',"Model catalog request failed for {providerId}: {status}":"\u63D0\u4F9B\u5546 {providerId} \u7684\u6A21\u578B\u76EE\u5F55\u8BF7\u6C42\u5931\u8D25\uFF1A{status}","First kept entry has no UUID - session may need migration":"\u9996\u4E2A\u4FDD\u7559\u6761\u76EE\u6CA1\u6709 UUID\u2014\u2014\u4F1A\u8BDD\u53EF\u80FD\u9700\u8981\u8FC1\u79FB","Cannot export in-memory session to HTML":"\u65E0\u6CD5\u5C06\u5185\u5B58\u4E2D\u7684\u4F1A\u8BDD\u5BFC\u51FA\u4E3A HTML","Nothing to export yet - start a conversation first":"\u6682\u65E0\u53EF\u5BFC\u51FA\u5185\u5BB9\u2014\u2014\u8BF7\u5148\u5F00\u59CB\u5BF9\u8BDD","Failed to read capability plugin manifest {path}: {reason}":"\u8BFB\u53D6\u80FD\u529B\u63D2\u4EF6 manifest \u5931\u8D25 {path}\uFF1A{reason}","Failed to inspect capability plugin directory {directory}: {reason}":"\u68C0\u67E5\u80FD\u529B\u63D2\u4EF6\u76EE\u5F55\u5931\u8D25 {directory}\uFF1A{reason}","Capability plugin path must be a directory: {directory}":"\u80FD\u529B\u63D2\u4EF6\u8DEF\u5F84\u5FC5\u987B\u662F\u76EE\u5F55\uFF1A{directory}","Failed to resolve capability plugin directory {directory}: {reason}":"\u89E3\u6790\u80FD\u529B\u63D2\u4EF6\u76EE\u5F55\u5931\u8D25 {directory}\uFF1A{reason}","Failed to read capability plugin directory {directory}: {reason}":"\u8BFB\u53D6\u80FD\u529B\u63D2\u4EF6\u76EE\u5F55\u5931\u8D25 {directory}\uFF1A{reason}","Failed to resolve capability plugin manifest {path}: {reason}":"\u89E3\u6790\u80FD\u529B\u63D2\u4EF6 manifest \u5931\u8D25 {path}\uFF1A{reason}","Failed to import capability plugin entry {path}: {reason}":"\u5BFC\u5165\u80FD\u529B\u63D2\u4EF6\u5165\u53E3\u5931\u8D25 {path}\uFF1A{reason}","Plugin capability is required but unavailable: {capabilityId}@{version} ({pluginId})":"\u5FC5\u9700\u7684\u63D2\u4EF6\u80FD\u529B\u4E0D\u53EF\u7528\uFF1A{capabilityId}@{version}\uFF08{pluginId}\uFF09",'Session is bound to suite "{boundSuiteId}" and cannot resume with "{suiteId}"; rerun with --rebind-suite to adopt the new suite, or create a new session':'\u4F1A\u8BDD\u5DF2\u7ED1\u5B9A suite "{boundSuiteId}"\uFF0C\u65E0\u6CD5\u4EE5 "{suiteId}" \u6062\u590D\uFF1B\u8BF7\u52A0 --rebind-suite \u91CD\u65B0\u8FD0\u884C\u4EE5\u5207\u6362\u5230\u65B0 suite\uFF0C\u6216\u521B\u5EFA\u65B0\u4F1A\u8BDD',"Session Profile identity drift detected (the active plugin set changed since the conversation started); rerun with --rebind-suite to adopt the new plugin set, or create a new session":"\u68C0\u6D4B\u5230\u4F1A\u8BDD Profile \u8EAB\u4EFD\u6F02\u79FB\uFF08\u5BF9\u8BDD\u5F00\u59CB\u540E\u751F\u6548\u7684\u63D2\u4EF6\u96C6\u53D1\u751F\u4E86\u53D8\u5316\uFF09\uFF1B\u8BF7\u52A0 --rebind-suite \u91CD\u65B0\u8FD0\u884C\u4EE5\u91C7\u7528\u65B0\u63D2\u4EF6\u96C6\uFF0C\u6216\u521B\u5EFA\u65B0\u4F1A\u8BDD","Path does not exist: {path}":"\u8DEF\u5F84\u4E0D\u5B58\u5728\uFF1A{path}","Unsupported install source: {source}":"\u4E0D\u652F\u6301\u7684\u5B89\u88C5\u6E90\uFF1A{source}","Unsupported remove source: {source}":"\u4E0D\u652F\u6301\u7684\u79FB\u9664\u6E90\uFF1A{source}","Missing source: {source}":"\u6E90\u7F3A\u5931\uFF1A{source}","Empty response from npm view":"npm view \u8FD4\u56DE\u7A7A\u54CD\u5E94","Unexpected response from npm view":"npm view \u8FD4\u56DE\u610F\u5916\u54CD\u5E94","Failed to determine remote HEAD":"\u65E0\u6CD5\u786E\u5B9A\u8FDC\u7AEF HEAD","Unsupported upstream remote: {upstream}":"\u4E0D\u652F\u6301\u7684 upstream \u8FDC\u7AEF\uFF1A{upstream}","Missing upstream branch name":"\u7F3A\u5C11 upstream \u5206\u652F\u540D","Failed to run {command} {args}: {reason}":"\u6267\u884C {command} {args} \u5931\u8D25\uFF1A{reason}","Failed to run {command}: {reason}":"\u6267\u884C {command} \u5931\u8D25\uFF1A{reason}","No matching package found for {source}":"\u672A\u627E\u5230\u4E0E {source} \u5339\u914D\u7684\u5305","No matching package found for {source}. Did you mean {suggestion}?":"\u672A\u627E\u5230\u4E0E {source} \u5339\u914D\u7684\u5305\u3002\u4F60\u662F\u60F3\u627E {suggestion} \u5417\uFF1F","Invalid npmCommand: first array entry must be a non-empty command":"\u65E0\u6548\u7684 npmCommand\uFF1A\u6570\u7EC4\u7B2C\u4E00\u9879\u5FC5\u987B\u662F\u975E\u7A7A\u547D\u4EE4","MCP HTTP transport error: {reason}":"MCP HTTP \u4F20\u8F93\u9519\u8BEF\uFF1A{reason}","MCP HTTP transport is closed":"MCP HTTP \u4F20\u8F93\u5DF2\u5173\u95ED","MCP HTTP transport returned HTTP {status}":"MCP HTTP \u4F20\u8F93\u8FD4\u56DE HTTP {status}","MCP HTTP transport returned non-JSON body: {reason}":"MCP HTTP \u4F20\u8F93\u8FD4\u56DE\u4E86\u975E JSON \u54CD\u5E94\u4F53\uFF1A{reason}","MCP error {code}: {message}":"MCP \u9519\u8BEF {code}\uFF1A{message}","unknown error":"\u672A\u77E5\u9519\u8BEF","MCP tools/list result must contain tools[]":"MCP tools/list \u7ED3\u679C\u5FC5\u987B\u5305\u542B tools[]","MCP tool requires a non-empty name":"MCP \u5DE5\u5177\u5FC5\u987B\u5177\u6709\u975E\u7A7A\u540D\u79F0","Plugin ref is invalid":"\u63D2\u4EF6 ref \u65E0\u6548","Local plugin ref exists but is neither a directory nor a .zip/.tgz file":"\u672C\u5730\u63D2\u4EF6 ref \u5B58\u5728\uFF0C\u4F46\u65E2\u4E0D\u662F\u76EE\u5F55\u4E5F\u4E0D\u662F .zip/.tgz \u6587\u4EF6","Plugin ref URL scheme is not supported":"\u4E0D\u652F\u6301\u63D2\u4EF6 ref \u7684 URL \u534F\u8BAE","Plugin ref #sha256 digest fragment is invalid":"\u63D2\u4EF6 ref \u7684 #sha256 \u6458\u8981\u7247\u6BB5\u65E0\u6548","Plugin npm package ref is invalid":"\u63D2\u4EF6 npm \u5305 ref \u65E0\u6548","Plugin package acquisition was cancelled":"\u63D2\u4EF6\u5305\u83B7\u53D6\u5DF2\u53D6\u6D88","Plugin package download failed":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u5931\u8D25","Plugin npm package was not found on the registry":"\u6CE8\u518C\u8868\u4E2D\u672A\u627E\u5230\u8BE5\u63D2\u4EF6 npm \u5305","No npm package version matches the requested range":"\u6CA1\u6709\u5339\u914D\u6240\u8BF7\u6C42\u8303\u56F4\u7684 npm \u5305\u7248\u672C","Plugin package bytes do not match the expected digest":"\u63D2\u4EF6\u5305\u5B57\u8282\u4E0E\u9884\u671F\u6458\u8981\u4E0D\u5339\u914D","Plugin package bytes are neither a zip nor a tgz":"\u63D2\u4EF6\u5305\u5B57\u8282\u65E2\u4E0D\u662F zip \u4E5F\u4E0D\u662F tgz","Plugin package contents are invalid":"\u63D2\u4EF6\u5305\u5185\u5BB9\u65E0\u6548","Plugin package exceeds the configured size budget":"\u63D2\u4EF6\u5305\u8D85\u51FA\u914D\u7F6E\u7684\u5927\u5C0F\u9884\u7B97","Plugin release was not found":"\u672A\u627E\u5230\u63D2\u4EF6 release","Plugin release has no .zip/.tgz asset":"\u63D2\u4EF6 release \u6CA1\u6709 .zip/.tgz \u8D44\u4EA7","Plugin release has multiple .zip/.tgz assets":"\u63D2\u4EF6 release \u6709\u591A\u4E2A .zip/.tgz \u8D44\u4EA7","Plugin release API rate limit was exceeded":"\u63D2\u4EF6 release API \u8D85\u51FA\u901F\u7387\u9650\u5236","Plugin distribution is unsupported on this host":"\u6B64\u5BBF\u4E3B\u4E0D\u652F\u6301\u63D2\u4EF6\u5206\u53D1","Plugin distribution operation was cancelled":"\u63D2\u4EF6\u5206\u53D1\u64CD\u4F5C\u5DF2\u53D6\u6D88","Plugin distribution descriptor is invalid":"\u63D2\u4EF6\u5206\u53D1\u63CF\u8FF0\u7B26\u65E0\u6548","Plugin distribution metadata is invalid":"\u63D2\u4EF6\u5206\u53D1\u5143\u6570\u636E\u65E0\u6548","Plugin distribution artifact handle is invalid":"\u63D2\u4EF6\u5206\u53D1\u4EA7\u7269\u53E5\u67C4\u65E0\u6548","Plugin distribution source does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u6765\u6E90\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution plugin identity does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u7684\u63D2\u4EF6\u8EAB\u4EFD\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution digest does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u6458\u8981\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution signature was rejected":"\u63D2\u4EF6\u5206\u53D1\u7B7E\u540D\u88AB\u62D2\u7EDD","Plugin distribution descriptor has expired":"\u63D2\u4EF6\u5206\u53D1\u63CF\u8FF0\u7B26\u5DF2\u8FC7\u671F","Plugin distribution size does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u5927\u5C0F\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution media type does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u5A92\u4F53\u7C7B\u578B\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution host operation failed":"\u63D2\u4EF6\u5206\u53D1\u5BBF\u4E3B\u64CD\u4F5C\u5931\u8D25","Plugin distribution artifact release failed":"\u63D2\u4EF6\u5206\u53D1\u4EA7\u7269\u91CA\u653E\u5931\u8D25","npm registry request timed out":"npm registry \u8BF7\u6C42\u8D85\u65F6","npm registry request was cancelled":"npm registry \u8BF7\u6C42\u5DF2\u53D6\u6D88","npm registry request failed":"npm registry \u8BF7\u6C42\u5931\u8D25","npm registry rate limit was exceeded":"npm registry \u901F\u7387\u9650\u5236\u5DF2\u89E6\u53D1","npm registry redirect limit exceeded":"\u8D85\u51FA npm registry \u91CD\u5B9A\u5411\u6B21\u6570\u4E0A\u9650","npm package was not found on the registry":"\u6CE8\u518C\u8868\u4E2D\u672A\u627E\u5230\u8BE5 npm \u5305","npm registry request did not succeed":"npm registry \u8BF7\u6C42\u672A\u6210\u529F","npm tarball download was cancelled":"npm tarball \u4E0B\u8F7D\u5DF2\u53D6\u6D88","npm tarball download did not succeed":"npm tarball \u4E0B\u8F7D\u672A\u6210\u529F","plugin package download was cancelled":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u5DF2\u53D6\u6D88","plugin package download timed out":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u8D85\u65F6","plugin package download failed":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u5931\u8D25","plugin package redirect limit exceeded":"\u8D85\u51FA\u63D2\u4EF6\u5305\u91CD\u5B9A\u5411\u6B21\u6570\u4E0A\u9650","plugin package download did not succeed":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u672A\u6210\u529F","plugin package response has no body":"\u63D2\u4EF6\u5305\u54CD\u5E94\u6CA1\u6709\u54CD\u5E94\u4F53","release API request timed out":"release API \u8BF7\u6C42\u8D85\u65F6","release API request was cancelled":"release API \u8BF7\u6C42\u5DF2\u53D6\u6D88","release API request failed":"release API \u8BF7\u6C42\u5931\u8D25","repo or release was not found":"\u672A\u627E\u5230\u4ED3\u5E93\u6216 release","release API request did not succeed":"release API \u8BF7\u6C42\u672A\u6210\u529F","release API redirect limit exceeded":"\u8D85\u51FA release API \u91CD\u5B9A\u5411\u6B21\u6570\u4E0A\u9650","release asset download was cancelled":"release \u8D44\u4EA7\u4E0B\u8F7D\u5DF2\u53D6\u6D88","repo has no published release":"\u4ED3\u5E93\u6CA1\u6709\u5DF2\u53D1\u5E03\u7684 release","Plugin registry request failed":"\u63D2\u4EF6\u6CE8\u518C\u8868\u8BF7\u6C42\u5931\u8D25","Plugin registry request was cancelled":"\u63D2\u4EF6\u6CE8\u518C\u8868\u8BF7\u6C42\u5DF2\u53D6\u6D88","Plugin registry request timed out":"\u63D2\u4EF6\u6CE8\u518C\u8868\u8BF7\u6C42\u8D85\u65F6","Disk registry source read was cancelled":"\u78C1\u76D8\u6CE8\u518C\u8868\u6E90\u8BFB\u53D6\u5DF2\u53D6\u6D88","Install store index could not be read":"\u65E0\u6CD5\u8BFB\u53D6\u5B89\u88C5\u5E97\u7D22\u5F15","Installed plugin manifest could not be read":"\u65E0\u6CD5\u8BFB\u53D6\u5DF2\u5B89\u88C5\u63D2\u4EF6\u7684 manifest","Plugin registry operation was cancelled":"\u63D2\u4EF6\u6CE8\u518C\u8868\u64CD\u4F5C\u5DF2\u53D6\u6D88","only toggles the enabled flag; the record lifecycle is {lifecycle} and the runtime will not load it":"\u4EC5\u5207\u6362 enabled \u6807\u5FD7\uFF1B\u8BE5\u8BB0\u5F55 lifecycle \u4E3A {lifecycle}\uFF0C\u8FD0\u884C\u65F6\u4E0D\u4F1A\u52A0\u8F7D","Paste the authorization code":"\u8BF7\u7C98\u8D34\u6388\u6743\u7801"};var example={"Loading...":"\u52A0\u8F7D\u4E2D\u2026","Hello, {name}!":"\u4F60\u597D\uFF0C{name}\uFF01"};var interactiveMode={"Working...":"\u5904\u7406\u4E2D\u2026","Thinking...":"\u601D\u8003\u4E2D...","({key} to interrupt)":"\uFF08{key} \u4E2D\u65AD\uFF09","({key} to cycle)":"\uFF08{key} \u5207\u6362\uFF09","(thinking: {level})":"\uFF08\u601D\u8003\uFF1A{level}\uFF09","to interrupt":"\u4E2D\u65AD","to clear":"\u6E05\u7A7A","{key} twice":"{key} \u4E24\u6B21","to exit":"\u9000\u51FA","to exit (empty)":"\u9000\u51FA\uFF08\u7F16\u8F91\u5668\u4E3A\u7A7A\u65F6\uFF09","to suspend":"\u6302\u8D77","to delete to end":"\u5220\u9664\u5230\u884C\u5C3E","to expand tools":"\u5C55\u5F00\u5DE5\u5177\u8F93\u51FA","to expand thinking":"\u5C55\u5F00\u601D\u8003","for external editor":"\u6253\u5F00\u5916\u90E8\u7F16\u8F91\u5668","for commands":"\u547D\u4EE4","to run bash":"\u8FD0\u884C bash","to run bash (no context)":"\u8FD0\u884C bash\uFF08\u4E0D\u8FDB\u4E0A\u4E0B\u6587\uFF09","to paste image (with text fallback)":"\u7C98\u8D34\u56FE\u7247\uFF08\u65E0\u56FE\u5219\u9000\u56DE\u6587\u672C\uFF09","to attach":"\u9644\u52A0\u6587\u4EF6",interrupt:"\u4E2D\u65AD","clear/exit":"\u6E05\u7A7A/\u9000\u51FA",commands:"\u547D\u4EE4",bash:"bash",more:"\u66F4\u591A","Press {key} to show full startup help and loaded resources.":"\u6309 {key} \u5C55\u793A\u5B8C\u6574\u542F\u52A8\u5E2E\u52A9\u4E0E\u5DF2\u52A0\u8F7D\u8D44\u6E90\u3002","Agent Forge can explain its own features and look up its docs. Ask it how to use or extend Agent Forge.":"Agent Forge \u80FD\u89E3\u91CA\u81EA\u8EAB\u529F\u80FD\u5E76\u67E5\u9605\u81EA\u5DF1\u7684\u6587\u6863\u3002\u53EF\u4EE5\u76F4\u63A5\u95EE\u5B83\u5982\u4F55\u4F7F\u7528\u6216\u6269\u5C55 Agent Forge\u3002","Model scope: {models}{hint}":"\u6A21\u578B\u8303\u56F4\uFF1A{models}{hint}","Updated to v{version}. Use {command} to view full changelog.":"\u5DF2\u66F4\u65B0\u5230 v{version}\u3002\u4F7F\u7528 {command} \u67E5\u770B\u5B8C\u6574\u53D8\u66F4\u65E5\u5FD7\u3002","What's New":"\u65B0\u7279\u6027","No changelog entries found.":"\u672A\u627E\u5230\u53D8\u66F4\u65E5\u5FD7\u6761\u76EE\u3002","New version {version} is available. Run":"\u65B0\u7248\u672C {version} \u53EF\u7528\u3002\u8BF7\u8FD0\u884C","Changelog:":"\u53D8\u66F4\u65E5\u5FD7\uFF1A","Changelog URL is not configured.":"\u672A\u914D\u7F6E\u53D8\u66F4\u65E5\u5FD7 URL\u3002","Update Available":"\u6709\u53EF\u7528\u66F4\u65B0","Package updates are available. Run":"\u6709\u53EF\u7528\u7684\u5305\u66F4\u65B0\u3002\u8BF7\u8FD0\u884C","Package Updates Available":"\u6709\u53EF\u7528\u7684\u5305\u66F4\u65B0","Packages:":"\u5305\uFF1A","Migrated credentials to auth.json: {providers}":"\u5DF2\u8FC1\u79FB\u51ED\u636E\u5230 auth.json\uFF1A{providers}","models.json error: {error}":"models.json \u9519\u8BEF\uFF1A{error}","tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.":"tmux extended-keys \u5DF2\u5173\u95ED\uFF0C\u4FEE\u9970 Enter \u952E\u53EF\u80FD\u5931\u6548\u3002\u8BF7\u5728 ~/.tmux.conf \u4E2D\u52A0\u5165 `set -g extended-keys on` \u5E76\u91CD\u542F tmux\u3002","tmux extended-keys-format is xterm. Agent Forge works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.":"tmux extended-keys-format \u4E3A xterm\uFF0CAgent Forge \u5728 csi-u \u4E0B\u5DE5\u4F5C\u6700\u4F73\u3002\u8BF7\u5728 ~/.tmux.conf \u4E2D\u52A0\u5165 `set -g extended-keys-format csi-u` \u5E76\u91CD\u542F tmux\u3002","Anthropic subscription auth is active. Third-party harness usage draws from extra usage and is billed per token, not your Claude plan limits. Manage extra usage at https://claude.ai/settings/usage. Disable this warning in /settings.":"Anthropic \u8BA2\u9605\u8BA4\u8BC1\u5904\u4E8E\u6D3B\u8DC3\u72B6\u6001\u3002\u7B2C\u4E09\u65B9 harness \u7528\u91CF\u8BA1\u5165 extra usage \u5E76\u6309 token \u8BA1\u8D39\uFF0C\u4E0D\u5360\u7528 Claude \u8BA1\u5212\u989D\u5EA6\u3002\u53EF\u5728 https://claude.ai/settings/usage \u7BA1\u7406 extra usage\u3002\u5728 /settings \u4E2D\u53EF\u5173\u95ED\u6B64\u8B66\u544A\u3002",Context:"\u4E0A\u4E0B\u6587",Skills:"\u6280\u80FD",Prompts:"\u63D0\u793A\u8BCD",Themes:"\u4E3B\u9898","[Skill conflicts]":"[\u6280\u80FD\u51B2\u7A81]","[Prompt conflicts]":"[\u63D0\u793A\u8BCD\u6A21\u677F\u51B2\u7A81]","[Theme conflicts]":"[\u4E3B\u9898\u51B2\u7A81]","Startup in progress \u2014 input queued and will run when startup completes":"\u542F\u52A8\u8FDB\u884C\u4E2D\u2014\u2014\u8F93\u5165\u5DF2\u6392\u961F\uFF0C\u542F\u52A8\u5B8C\u6210\u540E\u6267\u884C","A bash command is already running. Press Esc to cancel it first.":"\u5DF2\u6709 bash \u547D\u4EE4\u5728\u8FD0\u884C\u3002\u8BF7\u5148\u6309 Esc \u53D6\u6D88\u3002","No queued messages to restore":"\u6CA1\u6709\u53EF\u6062\u590D\u7684\u6392\u961F\u6D88\u606F","No queued messages to manage":"\u6CA1\u6709\u53EF\u7BA1\u7406\u7684\u6392\u961F\u6D88\u606F","Restored {count} queued message to editor":"\u5DF2\u6062\u590D {count} \u6761\u6392\u961F\u6D88\u606F\u5230\u7F16\u8F91\u5668","Restored {count} queued messages to editor":"\u5DF2\u6062\u590D {count} \u6761\u6392\u961F\u6D88\u606F\u5230\u7F16\u8F91\u5668","Usage: /queue <text>":"\u7528\u6CD5\uFF1A/queue <\u6587\u672C>","Queued message for after compaction":"\u6D88\u606F\u5DF2\u6392\u961F\uFF0C\u538B\u7F29\u540E\u53D1\u9001","Failed to send queued message: {error}":"\u53D1\u9001\u6392\u961F\u6D88\u606F\u5931\u8D25\uFF1A{error}","Failed to send queued messages: {error}":"\u53D1\u9001\u6392\u961F\u6D88\u606F\u5931\u8D25\uFF1A{error}","Steering: {message}":"\u8F6C\u5411\uFF1A{message}","Follow-up: {message}":"\u540E\u7EED\uFF1A{message}","\u21B3 {key} to edit all queued messages":"\u21B3 {key} \u7F16\u8F91\u5168\u90E8\u6392\u961F\u6D88\u606F","Aborted after {count} retry attempt":"\u5DF2\u4E2D\u6B62\uFF0C\u6B64\u524D\u91CD\u8BD5 {count} \u6B21","Aborted after {count} retry attempts":"\u5DF2\u4E2D\u6B62\uFF0C\u6B64\u524D\u91CD\u8BD5 {count} \u6B21","Operation aborted":"\u64CD\u4F5C\u5DF2\u4E2D\u6B62","Compaction cancelled":"\u5DF2\u53D6\u6D88\u538B\u7F29","Auto-compaction cancelled":"\u5DF2\u53D6\u6D88\u81EA\u52A8\u538B\u7F29","Auto-compaction skipped: nothing to compact":"\u81EA\u52A8\u538B\u7F29\u5DF2\u8DF3\u8FC7\uFF1A\u6CA1\u6709\u53EF\u538B\u7F29\u5185\u5BB9","Retry failed after {count} attempts: {error}":"\u91CD\u8BD5 {count} \u6B21\u540E\u5931\u8D25\uFF1A{error}","Previous reply was empty, retrying...":"\u4E0A\u4E00\u6761\u56DE\u590D\u4E3A\u7A7A\uFF0C\u6B63\u5728\u91CD\u8BD5\u2026",Compaction:"\u538B\u7F29","Branch summary":"\u5206\u652F\u6458\u8981","{tokens} tokens billed{cost}":"\u8BA1\u8D39 {tokens} token{cost}","Anthropic dropped {count} thinking blocks (details in session)":"Anthropic \u4E22\u5F03\u4E86 {count} \u4E2A\u601D\u8003\u5757\uFF08\u8BE6\u60C5\u89C1\u4F1A\u8BDD\uFF09","{tokens} tokens re-billed{cost}":"\u91CD\u65B0\u8BA1\u8D39 {tokens} token{cost}","Cache miss":"\u7F13\u5B58\u672A\u547D\u4E2D","Cache miss after model switch":"\u5207\u6362\u6A21\u578B\u540E\u7F13\u5B58\u672A\u547D\u4E2D","Cache miss after {minutes}m idle":"\u95F2\u7F6E {minutes} \u5206\u949F\u540E\u7F13\u5B58\u672A\u547D\u4E2D","Session compacted {count} time":"\u4F1A\u8BDD\u5DF2\u538B\u7F29 {count} \u6B21","Session compacted {count} times":"\u4F1A\u8BDD\u5DF2\u538B\u7F29 {count} \u6B21","To resume this session:":"\u6062\u590D\u672C\u4F1A\u8BDD\uFF1A","{app} exiting due to uncaughtException:":"{app} \u56E0\u672A\u6355\u83B7\u5F02\u5E38\u9000\u51FA\uFF1A","Suspend to background is not supported on Windows":"Windows \u4E0D\u652F\u6301\u6302\u8D77\u5230\u540E\u53F0","Current model does not support thinking":"\u5F53\u524D\u6A21\u578B\u4E0D\u652F\u6301\u601D\u8003","Thinking level: {level}":"\u601D\u8003\u7EA7\u522B\uFF1A{level}","Only one model in scope":"\u8303\u56F4\u5185\u53EA\u6709\u4E00\u4E2A\u6A21\u578B","Only one model available":"\u53EA\u6709\u4E00\u4E2A\u53EF\u7528\u6A21\u578B","Switched to {model}{thinking}":"\u5DF2\u5207\u6362\u5230 {model}{thinking}","Tool output: expanded":"\u5DE5\u5177\u8F93\u51FA\uFF1A\u5DF2\u5C55\u5F00","Tool output: collapsed":"\u5DE5\u5177\u8F93\u51FA\uFF1A\u5DF2\u6298\u53E0","Thinking blocks: hidden":"\u601D\u8003\u5757\uFF1A\u5DF2\u9690\u85CF","Thinking blocks: visible":"\u601D\u8003\u5757\uFF1A\u5DF2\u663E\u793A","\u273B thinking":"\u273B \u601D\u8003","{count} tool":"{count} \u4E2A\u5DE5\u5177","{count} tools":"{count} \u4E2A\u5DE5\u5177","{count} failed":"{count} \u4E2A\u5931\u8D25","not set":"\u672A\u8BBE\u7F6E","HTTP idle timeout: {value}":"HTTP \u7A7A\u95F2\u8D85\u65F6\uFF1A{value}","Close active overlays before changing TUI mode":"\u5207\u6362 TUI \u6A21\u5F0F\u524D\u8BF7\u5148\u5173\u95ED\u6D3B\u52A8\u6D6E\u5C42","TUI mode: {mode}":"TUI \u6A21\u5F0F\uFF1A{mode}",'Suite "{id}" was not found. The selected suite applies to the new session.':'\u672A\u627E\u5230 suite "{id}"\u3002\u6240\u9009 suite \u5C06\u5E94\u7528\u4E8E\u65B0\u4F1A\u8BDD\u3002','Suite "{id}" was not found \u2014 continuing without a suite. Use /suite to choose one.':'\u672A\u627E\u5230 suite "{id}"\u2014\u2014\u5C06\u5728\u65E0 suite \u4E0B\u7EE7\u7EED\u3002\u53EF\u4F7F\u7528 /suite \u9009\u62E9\u3002',"Suite set to {id} \u2014 new session started":"suite \u5DF2\u8BBE\u4E3A {id}\u2014\u2014\u65B0\u4F1A\u8BDD\u5DF2\u5F00\u59CB","Failed to create session":"\u521B\u5EFA\u4F1A\u8BDD\u5931\u8D25",'Cross-suite compatible mode: session created with "{from}", assembling with "{to}"':'\u8DE8 suite \u517C\u5BB9\u6A21\u5F0F\uFF1A\u4F1A\u8BDD\u521B\u5EFA\u4E8E "{from}"\uFF0C\u6B63\u4EE5 "{to}" \u7EC4\u88C5',"No workflow in this session":"\u672C\u4F1A\u8BDD\u6CA1\u6709 workflow","Workflow action staged \u2014 review in the editor and submit":"workflow \u52A8\u4F5C\u5DF2\u6682\u5B58\u2014\u2014\u8BF7\u5728\u7F16\u8F91\u5668\u4E2D\u5BA1\u9605\u540E\u63D0\u4EA4","No subagent sessions in this session":"\u672C\u4F1A\u8BDD\u6CA1\u6709\u5B50\u4EE3\u7406\u4F1A\u8BDD","No entries in session":"\u4F1A\u8BDD\u4E2D\u6CA1\u6709\u6761\u76EE","Already at this point":"\u5DF2\u5728\u8BE5\u8282\u70B9","Summarize branch?":"\u751F\u6210\u5206\u652F\u6458\u8981\uFF1F","No summary":"\u4E0D\u751F\u6210\u6458\u8981",Summarize:"\u751F\u6210\u6458\u8981","Summarize with custom prompt":"\u4F7F\u7528\u81EA\u5B9A\u4E49\u63D0\u793A\u751F\u6210\u6458\u8981","Custom summarization instructions":"\u81EA\u5B9A\u4E49\u6458\u8981\u6307\u4EE4","Branch summarization cancelled":"\u5DF2\u53D6\u6D88\u5206\u652F\u6458\u8981","Navigation cancelled":"\u5DF2\u53D6\u6D88\u5BFC\u822A","Navigated to selected point":"\u5DF2\u5BFC\u822A\u5230\u6240\u9009\u8282\u70B9","Selected entry has no text to copy":"\u6240\u9009\u6761\u76EE\u6CA1\u6709\u53EF\u590D\u5236\u7684\u6587\u672C","Copied selected message to clipboard":"\u5DF2\u590D\u5236\u6240\u9009\u6D88\u606F\u5230\u526A\u8D34\u677F","Resumed session":"\u5DF2\u6062\u590D\u4F1A\u8BDD","Resume cancelled":"\u5DF2\u53D6\u6D88\u6062\u590D","Resumed session in current cwd":"\u5DF2\u5728\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u6062\u590D\u4F1A\u8BDD","Failed to resume session":"\u6062\u590D\u4F1A\u8BDD\u5931\u8D25","Usage: /import <path.jsonl>":"\u7528\u6CD5\uFF1A/import <\u8DEF\u5F84.jsonl>","Import session":"\u5BFC\u5165\u4F1A\u8BDD","Replace current session with {path}?":"\u7528 {path} \u66FF\u6362\u5F53\u524D\u4F1A\u8BDD\uFF1F","Import cancelled":"\u5DF2\u53D6\u6D88\u5BFC\u5165","Session imported from: {path}":"\u4F1A\u8BDD\u5BFC\u5165\u81EA\uFF1A{path}","Failed to import session: {error}":"\u5BFC\u5165\u4F1A\u8BDD\u5931\u8D25\uFF1A{error}","Failed to import session":"\u5BFC\u5165\u4F1A\u8BDD\u5931\u8D25","Session exported to: {path}":"\u4F1A\u8BDD\u5DF2\u5BFC\u51FA\u5230\uFF1A{path}","Failed to export session: {error}":"\u5BFC\u51FA\u4F1A\u8BDD\u5931\u8D25\uFF1A{error}","No agent messages to copy yet.":"\u8FD8\u6CA1\u6709\u53EF\u590D\u5236\u7684\u4EE3\u7406\u6D88\u606F\u3002","Copied!":"\u5DF2\u590D\u5236\uFF01","Copied last agent message to clipboard":"\u5DF2\u590D\u5236\u6700\u8FD1\u4E00\u6761\u4EE3\u7406\u6D88\u606F\u5230\u526A\u8D34\u677F","Session name: {name}":"\u4F1A\u8BDD\u540D\u79F0\uFF1A{name}","Usage: /name <name>":"\u7528\u6CD5\uFF1A/name <\u540D\u79F0>","Session name was normalized from {from} to {to}":"\u4F1A\u8BDD\u540D\u79F0\u5DF2\u4ECE {from} \u89C4\u8303\u5316\u4E3A {to}","Session name set: {name}":"\u4F1A\u8BDD\u540D\u79F0\u5DF2\u8BBE\u7F6E\uFF1A{name}","No background subagents running":"\u6CA1\u6709\u6B63\u5728\u8FD0\u884C\u7684\u540E\u53F0\u5B50\u4EE3\u7406","Terminated {count} background subagent":"\u5DF2\u7EC8\u6B62 {count} \u4E2A\u540E\u53F0\u5B50\u4EE3\u7406","Terminated {count} background subagents":"\u5DF2\u7EC8\u6B62 {count} \u4E2A\u540E\u53F0\u5B50\u4EE3\u7406","{count} subagent still running \xB7 /stop-agents stops all (Esc only stops the current turn)":"{count} \u4E2A\u5B50\u4EE3\u7406\u4ECD\u5728\u8FD0\u884C \xB7 /stop-agents \u7EC8\u6B62\u5168\u90E8\uFF08Esc \u53EA\u505C\u5F53\u524D\u56DE\u5408\uFF09","{count} subagents still running \xB7 /stop-agents stops all (Esc only stops the current turn)":"{count} \u4E2A\u5B50\u4EE3\u7406\u4ECD\u5728\u8FD0\u884C \xB7 /stop-agents \u7EC8\u6B62\u5168\u90E8\uFF08Esc \u53EA\u505C\u5F53\u524D\u56DE\u5408\uFF09","Session Info":"\u4F1A\u8BDD\u4FE1\u606F","Name:":"\u540D\u79F0\uFF1A","File:":"\u6587\u4EF6\uFF1A","ID:":"ID\uFF1A","In-memory":"\u5185\u5B58\u4E2D",Messages:"\u6D88\u606F","Total:":"\u603B\u8BA1\uFF1A","User:":"\u7528\u6237\uFF1A","Assistant:":"\u52A9\u624B\uFF1A","Tools:":"\u5DE5\u5177\uFF1A","{calls} calls, {results} results":"{calls} \u6B21\u8C03\u7528\uFF0C{results} \u6B21\u7ED3\u679C",Tokens:"Token","Input:":"\u8F93\u5165\uFF1A","Cached:":"\u5DF2\u7F13\u5B58\uFF1A","({count} written to cache)":"\uFF08{count} \u5199\u5165\u7F13\u5B58\uFF09","Uncached:":"\u672A\u7F13\u5B58\uFF1A","Output:":"\u8F93\u51FA\uFF1A","By Provider/Model":"\u6309\u4F9B\u5E94\u5546/\u6A21\u578B","(cache {rate}%, W {written})":"\uFF08\u7F13\u5B58 {rate}%\uFF0C\u5199 {written}\uFF09",Cost:"\u8D39\u7528","({tokens} tokens)":"\uFF08{tokens} token\uFF09","{count} miss":"{count} \u6B21\u672A\u547D\u4E2D","{count} misses":"{count} \u6B21\u672A\u547D\u4E2D","{tokens} tokens, {misses}":"{tokens} token\uFF0C{misses}","Cache Re-billed:":"\u7F13\u5B58\u91CD\u65B0\u8BA1\u8D39\uFF1A","Metrics are not available: the observability plugin is not mounted in this session":"\u6307\u6807\u4E0D\u53EF\u7528\uFF1A\u672C\u4F1A\u8BDD\u672A\u6302\u8F7D observability \u63D2\u4EF6","Invalid turns: {turns}. Usage: /metrics [turns]":"\u65E0\u6548\u7684\u8F6E\u6570\uFF1A{turns}\u3002\u7528\u6CD5\uFF1A/metrics [turns]",Command:"\u547D\u4EE4",Description:"\u8BF4\u660E","Built-in commands":"\u5185\u7F6E\u547D\u4EE4","Prompt templates":"\u63D0\u793A\u8BCD\u6A21\u677F","Type `/` for autocomplete. Use `/hotkeys` for keyboard shortcuts.":"\u8F93\u5165 `/` \u81EA\u52A8\u8865\u5168\u3002\u4F7F\u7528 `/hotkeys` \u67E5\u770B\u5FEB\u6377\u952E\u3002","Available Commands":"\u53EF\u7528\u547D\u4EE4","Open model selector":"\u6253\u5F00\u6A21\u578B\u9009\u62E9\u5668","Copy selection in /tree":"\u5728 /tree \u4E2D\u590D\u5236\u9009\u533A","External editor (inside dialog inputs)":"\u5916\u90E8\u7F16\u8F91\u5668\uFF08\u5BF9\u8BDD\u6846\u8F93\u5165\u5185\uFF09","Queue follow-up message":"\u6392\u961F\u540E\u7EED\u6D88\u606F","Restore queued messages":"\u6062\u590D\u6392\u961F\u6D88\u606F","Cycle thinking level":"\u5FAA\u73AF\u5207\u6362\u601D\u8003\u7EA7\u522B","Cycle models":"\u5FAA\u73AF\u5207\u6362\u6A21\u578B","Suspend to background":"\u6302\u8D77\u5230\u540E\u53F0",Navigation:"\u5BFC\u822A",Key:"\u6309\u952E",Action:"\u52A8\u4F5C","Move cursor / browse history":"\u79FB\u52A8\u5149\u6807 / \u6D4F\u89C8\u5386\u53F2","Move by word":"\u6309\u8BCD\u79FB\u52A8","Start of line":"\u884C\u9996","End of line":"\u884C\u5C3E","Jump forward to character":"\u5411\u540E\u8DF3\u5230\u5B57\u7B26","Jump backward to character":"\u5411\u524D\u8DF3\u5230\u5B57\u7B26","Scroll by page":"\u6309\u9875\u6EDA\u52A8",Editing:"\u7F16\u8F91","Send message":"\u53D1\u9001\u6D88\u606F","New line":"\u6362\u884C","New line (Ctrl+Enter on Windows Terminal)":"\u6362\u884C\uFF08Windows Terminal \u4E0A\u4E3A Ctrl+Enter\uFF09","Delete word backwards":"\u5411\u524D\u5220\u9664\u5355\u8BCD","Delete word forwards":"\u5411\u540E\u5220\u9664\u5355\u8BCD","Delete to start of line":"\u5220\u9664\u5230\u884C\u9996","Delete to end of line":"\u5220\u9664\u5230\u884C\u5C3E","Paste the most-recently-deleted text":"\u7C98\u8D34\u6700\u8FD1\u5220\u9664\u7684\u6587\u672C","Cycle through the deleted text after pasting":"\u7C98\u8D34\u540E\u5FAA\u73AF\u5207\u6362\u5DF2\u5220\u9664\u6587\u672C",Undo:"\u64A4\u9500",Other:"\u5176\u4ED6","Path completion / accept autocomplete":"\u8DEF\u5F84\u8865\u5168 / \u63A5\u53D7\u81EA\u52A8\u8865\u5168","Cancel autocomplete / abort streaming":"\u53D6\u6D88\u81EA\u52A8\u8865\u5168 / \u4E2D\u6B62\u6D41\u5F0F\u8F93\u51FA","Clear editor (first) / exit (second)":"\u6E05\u7A7A\u7F16\u8F91\u5668\uFF08\u7B2C\u4E00\u6B21\uFF09/ \u9000\u51FA\uFF08\u7B2C\u4E8C\u6B21\uFF09","Exit (when editor is empty)":"\u9000\u51FA\uFF08\u7F16\u8F91\u5668\u4E3A\u7A7A\u65F6\uFF09","Toggle tool output expansion":"\u5207\u6362\u5DE5\u5177\u8F93\u51FA\u5C55\u5F00","Toggle thinking block visibility":"\u5207\u6362\u601D\u8003\u5757\u53EF\u89C1\u6027","Paste image or text from clipboard":"\u4ECE\u526A\u8D34\u677F\u7C98\u8D34\u56FE\u7247\u6216\u6587\u672C","Slash commands":"\u659C\u6760\u547D\u4EE4","Run bash command":"\u8FD0\u884C bash \u547D\u4EE4","Run bash command (excluded from context)":"\u8FD0\u884C bash \u547D\u4EE4\uFF08\u4E0D\u8FDB\u4E0A\u4E0B\u6587\uFF09","Keyboard Shortcuts":"\u952E\u76D8\u5FEB\u6377\u952E","\u2713 New session started":"\u2713 \u65B0\u4F1A\u8BDD\u5DF2\u5F00\u59CB","Debug output at {date}":"\u8C03\u8BD5\u8F93\u51FA\u65F6\u95F4\uFF1A{date}","Terminal: {columns}x{rows}":"\u7EC8\u7AEF\uFF1A{columns}x{rows}","Total lines: {count}":"\u603B\u884C\u6570\uFF1A{count}","=== All rendered lines with visible widths ===":"=== \u5168\u90E8\u6E32\u67D3\u884C\uFF08\u542B\u53EF\u89C1\u5BBD\u5EA6\uFF09===","=== Agent messages (JSONL) ===":"=== \u4EE3\u7406\u6D88\u606F\uFF08JSONL\uFF09===","\u2713 Debug log written":"\u2713 \u8C03\u8BD5\u65E5\u5FD7\u5DF2\u5199\u5165","Bash command failed: {error}":"bash \u547D\u4EE4\u5931\u8D25\uFF1A{error}","Error: {message}":"\u9519\u8BEF\uFF1A{message}","Warning: {message}":"\u8B66\u544A\uFF1A{message}",Error:"\u9519\u8BEF","Unknown error":"\u672A\u77E5\u9519\u8BEF","Unknown error occurred":"\u53D1\u751F\u672A\u77E5\u9519\u8BEF","Reload failed: {error}":"\u91CD\u8F7D\u5931\u8D25\uFF1A{error}","Wait for the current response to finish before reloading.":"\u8BF7\u7B49\u5F85\u5F53\u524D\u54CD\u5E94\u5B8C\u6210\u540E\u518D\u91CD\u8F7D\u3002","Wait for compaction to finish before reloading.":"\u8BF7\u7B49\u5F85\u538B\u7F29\u5B8C\u6210\u540E\u518D\u91CD\u8F7D\u3002","Reloading keybindings, skills, prompts, themes, and context files...":"\u6B63\u5728\u91CD\u8F7D\u952E\u4F4D\u3001\u6280\u80FD\u3001\u63D0\u793A\u8BCD\u6A21\u677F\u3001\u4E3B\u9898\u4E0E\u4E0A\u4E0B\u6587\u6587\u4EF6\u2026","Reloaded keybindings, skills, prompts, themes, and context files":"\u5DF2\u91CD\u8F7D\u952E\u4F4D\u3001\u6280\u80FD\u3001\u63D0\u793A\u8BCD\u6A21\u677F\u3001\u4E3B\u9898\u4E0E\u4E0A\u4E0B\u6587\u6587\u4EF6"};var keybindings={"Move cursor up":"\u4E0A\u79FB\u5149\u6807","Move cursor down":"\u4E0B\u79FB\u5149\u6807","Select previous prompt history entry":"\u9009\u62E9\u4E0A\u4E00\u6761\u8F93\u5165\u5386\u53F2","Select next prompt history entry":"\u9009\u62E9\u4E0B\u4E00\u6761\u8F93\u5165\u5386\u53F2","Move cursor left":"\u5DE6\u79FB\u5149\u6807","Move cursor right":"\u53F3\u79FB\u5149\u6807","Move cursor word left":"\u5DE6\u79FB\u4E00\u4E2A\u8BCD","Move cursor word right":"\u53F3\u79FB\u4E00\u4E2A\u8BCD","Move to line start":"\u79FB\u5230\u884C\u9996","Move to line end":"\u79FB\u5230\u884C\u5C3E","Jump forward to character":"\u5411\u540E\u8DF3\u5230\u5B57\u7B26","Jump backward to character":"\u5411\u524D\u8DF3\u5230\u5B57\u7B26","Page up":"\u5411\u4E0A\u7FFB\u9875","Page down":"\u5411\u4E0B\u7FFB\u9875","Delete character backward":"\u5411\u524D\u5220\u9664\u5B57\u7B26","Delete character forward":"\u5411\u540E\u5220\u9664\u5B57\u7B26","Delete word backward":"\u5411\u524D\u5220\u9664\u5355\u8BCD","Delete word forward":"\u5411\u540E\u5220\u9664\u5355\u8BCD","Delete to line start":"\u5220\u9664\u5230\u884C\u9996","Delete to line end":"\u5220\u9664\u5230\u884C\u5C3E",Yank:"\u7C98\u8D34\u6700\u8FD1\u5220\u9664\u6587\u672C","Yank pop":"\u5FAA\u73AF\u5207\u6362\u5DF2\u5220\u9664\u6587\u672C",Undo:"\u64A4\u9500","Insert newline":"\u63D2\u5165\u6362\u884C","Submit input":"\u63D0\u4EA4\u8F93\u5165","Tab / autocomplete":"Tab / \u81EA\u52A8\u8865\u5168","Copy selection":"\u590D\u5236\u9009\u533A","Move selection up":"\u4E0A\u79FB\u9009\u4E2D\u9879","Move selection down":"\u4E0B\u79FB\u9009\u4E2D\u9879","Selection page up":"\u9009\u4E2D\u9879\u5411\u4E0A\u7FFB\u9875","Selection page down":"\u9009\u4E2D\u9879\u5411\u4E0B\u7FFB\u9875","Confirm selection":"\u786E\u8BA4\u9009\u62E9","Cancel selection":"\u53D6\u6D88\u9009\u62E9","Scroll viewport up one page":"\u89C6\u53E3\u5411\u4E0A\u6EDA\u52A8\u4E00\u9875","Scroll viewport down one page":"\u89C6\u53E3\u5411\u4E0B\u6EDA\u52A8\u4E00\u9875","Scroll viewport up half a page":"\u89C6\u53E3\u5411\u4E0A\u6EDA\u52A8\u534A\u9875","Scroll viewport down half a page":"\u89C6\u53E3\u5411\u4E0B\u6EDA\u52A8\u534A\u9875","Scroll viewport up one line":"\u89C6\u53E3\u5411\u4E0A\u6EDA\u52A8\u4E00\u884C","Scroll viewport down one line":"\u89C6\u53E3\u5411\u4E0B\u6EDA\u52A8\u4E00\u884C","Jump to previous semantic prompt":"\u8DF3\u5230\u4E0A\u4E00\u4E2A\u8BED\u4E49\u63D0\u793A","Jump to next semantic prompt":"\u8DF3\u5230\u4E0B\u4E00\u4E2A\u8BED\u4E49\u63D0\u793A","Search the primary scroll view":"\u641C\u7D22\u4E3B\u6EDA\u52A8\u89C6\u56FE","Select the next search match":"\u9009\u62E9\u4E0B\u4E00\u4E2A\u641C\u7D22\u5339\u914D","Select the previous search match":"\u9009\u62E9\u4E0A\u4E00\u4E2A\u641C\u7D22\u5339\u914D","Close transcript search":"\u5173\u95ED\u4F1A\u8BDD\u8BB0\u5F55\u641C\u7D22","Scroll viewport to top":"\u89C6\u53E3\u6EDA\u52A8\u5230\u9876\u90E8","Scroll viewport to bottom":"\u89C6\u53E3\u6EDA\u52A8\u5230\u5E95\u90E8","Trigger the global TUI debug handler":"\u89E6\u53D1\u5168\u5C40 TUI \u8C03\u8BD5\u5904\u7406\u5668","to expand":"\u5C55\u5F00"};var sessionCleanup={"Usage: /clean-sessions [days] - days must be a positive integer (default 7)":"\u7528\u6CD5\uFF1A/clean-sessions [days] - days \u5FC5\u987B\u4E3A\u6B63\u6574\u6570\uFF08\u9ED8\u8BA4 7\uFF09","No sessions untouched for {days} days - nothing to clean":"\u6CA1\u6709\u8FDE\u7EED {days} \u5929\u65E0\u53D8\u52A8\u7684\u4F1A\u8BDD - \u65E0\u53EF\u6E05\u7406","{count} sessions ({size}) untouched since {cutoff} - confirm to delete":"{count} \u4E2A\u4F1A\u8BDD\uFF08{size}\uFF09\u81EA {cutoff} \u8D77\u65E0\u53D8\u52A8 - \u786E\u8BA4\u540E\u5220\u9664","Clean old sessions":"\u6E05\u7406\u65E7\u4F1A\u8BDD","Permanently delete {count} sessions ({size}) untouched for {days} days? This cannot be undone.":"\u6C38\u4E45\u5220\u9664 {count} \u4E2A\u8FDE\u7EED {days} \u5929\u65E0\u53D8\u52A8\u7684\u4F1A\u8BDD\uFF08{size}\uFF09\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","Clean-sessions cancelled":"\u5DF2\u53D6\u6D88\u4F1A\u8BDD\u6E05\u7406","Deleted {count} sessions, freed {size}":"\u5DF2\u5220\u9664 {count} \u4E2A\u4F1A\u8BDD\uFF0C\u91CA\u653E {size}"};var slashCommands={"Open settings menu":"\u6253\u5F00\u8BBE\u7F6E\u83DC\u5355","Select model (opens selector UI)":"\u9009\u62E9\u6A21\u578B\uFF08\u6253\u5F00\u9009\u62E9\u5668\u754C\u9762\uFF09","Navigate session tree (switch branches)":"\u6D4F\u89C8\u4F1A\u8BDD\u6811\uFF08\u5207\u6362\u5206\u652F\uFF09","Set thinking level":"\u8BBE\u7F6E\u601D\u8003\u7B49\u7EA7","Set the active suite (takes effect in new sessions)":"\u8BBE\u7F6E\u5F53\u524D suite\uFF08\u5BF9\u65B0\u4F1A\u8BDD\u751F\u6548\uFF09","Enable/disable models in the /model cycling scope":"\u542F\u7528/\u7981\u7528 /model \u8F6E\u6362\u8303\u56F4\u5185\u7684\u6A21\u578B","Export session (HTML default, or specify path: .html/.jsonl)":"\u5BFC\u51FA\u4F1A\u8BDD\uFF08\u9ED8\u8BA4 HTML\uFF0C\u6216\u6307\u5B9A\u8DEF\u5F84\uFF1A.html/.jsonl\uFF09","Import and resume a session from a JSONL file":"\u4ECE JSONL \u6587\u4EF6\u5BFC\u5165\u5E76\u6062\u590D\u4F1A\u8BDD","Copy last agent message to clipboard":"\u590D\u5236\u4E0A\u4E00\u6761 agent \u6D88\u606F\u5230\u526A\u8D34\u677F","Set session display name":"\u8BBE\u7F6E\u4F1A\u8BDD\u663E\u793A\u540D\u79F0","Show session info and stats":"\u663E\u793A\u4F1A\u8BDD\u4FE1\u606F\u4E0E\u7EDF\u8BA1","Show product metrics (turns, tools, memory recall)":"\u663E\u793A\u4EA7\u54C1\u6307\u6807\uFF08\u8F6E\u6B21\u3001\u5DE5\u5177\u3001\u8BB0\u5FC6\u53EC\u56DE\uFF09","Show changelog entries":"\u663E\u793A\u66F4\u65B0\u65E5\u5FD7\u6761\u76EE","Show available commands":"\u663E\u793A\u53EF\u7528\u547D\u4EE4","Show all keyboard shortcuts":"\u663E\u793A\u5168\u90E8\u952E\u76D8\u5FEB\u6377\u952E","Return to any earlier prompt and continue from there (the original path stays as a branch)":"\u56DE\u5230\u4EFB\u610F\u8F83\u65E9\u7684\u63D0\u793A\u8BCD\u5E76\u4ECE\u8BE5\u5904\u7EE7\u7EED\uFF08\u539F\u8DEF\u5F84\u4FDD\u7559\u4E3A\u5206\u652F\uFF09","Duplicate the current session at the current position":"\u5728\u5F53\u524D\u4F4D\u7F6E\u590D\u5236\u5F53\u524D\u4F1A\u8BDD","Configure provider authentication":"\u914D\u7F6E provider \u8BA4\u8BC1","Remove provider authentication":"\u79FB\u9664 provider \u8BA4\u8BC1","Start a new session":"\u5F00\u59CB\u65B0\u4F1A\u8BDD","Terminate all background subagents (Esc never touches them)":"\u7EC8\u6B62\u6240\u6709\u540E\u53F0\u5B50\u4EE3\u7406\uFF08Esc \u4E0D\u4F1A\u89E6\u53CA\u5B83\u4EEC\uFF09","Manually compact the session context":"\u624B\u52A8\u538B\u7F29\u4F1A\u8BDD\u4E0A\u4E0B\u6587","Resume a different session":"\u6062\u590D\u53E6\u4E00\u4E2A\u4F1A\u8BDD","Delete session files untouched for N days to free disk space":"\u5220\u9664\u8D85\u8FC7 N \u5929\u65E0\u53D8\u52A8\u7684\u4F1A\u8BDD\u6587\u4EF6\u4EE5\u91CA\u653E\u78C1\u76D8\u7A7A\u95F4","Queue a message for after the current run":"\u4E3A\u5F53\u524D\u8FD0\u884C\u7ED3\u675F\u540E\u6392\u961F\u4E00\u6761\u6D88\u606F","Restore queued messages back to the editor":"\u5C06\u6392\u961F\u7684\u6D88\u606F\u6062\u590D\u5230\u7F16\u8F91\u5668","Open the queued messages manager":"\u6253\u5F00\u6392\u961F\u6D88\u606F\u7BA1\u7406\u5668","Edit the current input in an external editor":"\u5728\u5916\u90E8\u7F16\u8F91\u5668\u4E2D\u7F16\u8F91\u5F53\u524D\u8F93\u5165","Browse this session's subagent sessions (read-only)":"\u6D4F\u89C8\u672C\u4F1A\u8BDD\u7684\u5B50\u4EE3\u7406\u4F1A\u8BDD\uFF08\u53EA\u8BFB\uFF09","Reload keybindings, extensions, skills, prompts, themes, and context files":"\u91CD\u65B0\u52A0\u8F7D\u952E\u4F4D\u7ED1\u5B9A\u3001\u6269\u5C55\u3001skill\u3001\u63D0\u793A\u6A21\u677F\u3001\u4E3B\u9898\u4E0E\u4E0A\u4E0B\u6587\u6587\u4EF6","Promote a memory preference to user-default (visible in every suite)":"\u5C06\u4E00\u6761\u8BB0\u5FC6\u504F\u597D\u63D0\u5347\u4E3A\u7528\u6237\u9ED8\u8BA4\uFF08\u5728\u6BCF\u4E2A suite \u53EF\u89C1\uFF09","Quit {app}":"\u9000\u51FA {app}"};var tuiBuiltin={"Find transcript":"\u641C\u7D22\u4F1A\u8BDD\u8BB0\u5F55","No matches":"\u65E0\u5339\u914D","Copied!":"\u5DF2\u590D\u5236\uFF01","Copy failed":"\u590D\u5236\u5931\u8D25"};var tuiComponentsMisc={"(sub)":"\uFF08\u8BA2\u9605\uFF09","(auto)":"\uFF08\u81EA\u52A8\uFF09","no-model":"\u65E0\u6A21\u578B","{model} \u2022 thinking off":"{model} \u2022 \u601D\u8003\u5173\u95ED","Retrying ({attempt}/{max}) in {seconds}s... ({key} to cancel)":"\u7B2C {attempt}/{max} \u6B21\u91CD\u8BD5\uFF0C{seconds} \u79D2\u540E...\uFF08{key} \u53D6\u6D88\uFF09","Compacting context... ({key} to cancel)":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...\uFF08{key} \u53D6\u6D88\uFF09","Context overflow detected, Auto-compacting... ({key} to cancel)":"\u68C0\u6D4B\u5230\u4E0A\u4E0B\u6587\u6EA2\u51FA\uFF0C\u81EA\u52A8\u538B\u7F29\u4E2D...\uFF08{key} \u53D6\u6D88\uFF09","Auto-compacting... ({key} to cancel)":"\u81EA\u52A8\u538B\u7F29\u4E2D...\uFF08{key} \u53D6\u6D88\uFF09","Summarizing branch... ({key} to cancel)":"\u6B63\u5728\u751F\u6210\u5206\u652F\u6458\u8981...\uFF08{key} \u53D6\u6D88\uFF09","Running... ({key} to cancel)":"\u8FD0\u884C\u4E2D...\uFF08{key} \u53D6\u6D88\uFF09","({key} to collapse)":"\uFF08{key} \u6298\u53E0\uFF09","... {count} more lines ({key} to expand)":"... \u8FD8\u6709 {count} \u884C\uFF08{key} \u5C55\u5F00\uFF09","(cancelled)":"\uFF08\u5DF2\u53D6\u6D88\uFF09","(exit {code})":"\uFF08\u9000\u51FA\u7801 {code}\uFF09","Output truncated. Full output: {path}":"\u8F93\u51FA\u5DF2\u622A\u65AD\u3002\u5B8C\u6574\u8F93\u51FA\uFF1A{path}","Thinking...":"\u601D\u8003\u4E2D...","Response was truncated before completion.":"\u54CD\u5E94\u5728\u5B8C\u6210\u524D\u88AB\u622A\u65AD\u3002","Operation aborted":"\u64CD\u4F5C\u5DF2\u4E2D\u6B62","Error: {message}":"\u9519\u8BEF\uFF1A{message}","No user messages found":"\u672A\u627E\u5230\u7528\u6237\u6D88\u606F","Message {position} of {total}":"\u7B2C {position} \u6761\uFF0C\u5171 {total} \u6761","Fork from Message":"\u4ECE\u6D88\u606F\u5206\u53C9","Select a user message to copy the active path up to that point into a new session":"\u9009\u62E9\u4E00\u6761\u7528\u6237\u6D88\u606F\uFF0C\u5C06\u622A\u81F3\u8BE5\u70B9\u7684\u5F53\u524D\u8DEF\u5F84\u590D\u5236\u5230\u65B0\u4F1A\u8BDD","Queued Messages":"\u6392\u961F\u6D88\u606F",Steering:"\u8F6C\u5411","Follow-up":"\u540E\u7EED","alt+up/alt+down move \xB7 delete remove \xB7 enter restore \xB7 esc close":"alt+up/alt+down \u79FB\u52A8 \xB7 delete \u79FB\u9664 \xB7 enter \u53D6\u56DE\u7F16\u8F91\u5668 \xB7 esc \u5173\u95ED","user:":"\u7528\u6237:","assistant:":"\u52A9\u624B:","(aborted)":"\uFF08\u5DF2\u4E2D\u6B62\uFF09","(no content)":"\uFF08\u65E0\u5185\u5BB9\uFF09",tool:"\u5DE5\u5177","[bash]: {command}":"[bash]: {command}","[compaction: {tokens}k tokens]":"[\u538B\u7F29: {tokens}k tokens]","[branch summary]:":"[\u5206\u652F\u6458\u8981]:","[model: {model}]":"[\u6A21\u578B: {model}]","[thinking: {level}]":"[\u601D\u8003: {level}]","[custom: {type}]":"[\u81EA\u5B9A\u4E49: {type}]","[label: {label}]":"[\u6807\u7B7E: {label}]","(cleared)":"\uFF08\u5DF2\u6E05\u9664\uFF09","[title: {name}]":"[\u6807\u9898: {name}]",empty:"\u7A7A","[read: {display}]":"[\u8BFB\u53D6: {display}]","[write: {path}]":"[\u5199\u5165: {path}]","[edit: {path}]":"[\u7F16\u8F91: {path}]","[bash: {cmd}]":"[bash: {cmd}]","[grep: /{pattern}/ in {path}]":"[\u641C\u7D22: /{pattern}/ \u4E8E {path}]","[find: {pattern} in {path}]":"[\u67E5\u627E: {pattern} \u4E8E {path}]","[ls: {path}]":"[\u5217\u76EE\u5F55: {path}]","[{name}: {args}]":"[{name}: {args}]","[branch]":"[\u5206\u652F]","**Branch Summary**":"**\u5206\u652F\u6458\u8981**","Branch summary ({key} to expand)":"\u5206\u652F\u6458\u8981\uFF08{key} \u5C55\u5F00\uFF09","[compaction]":"[\u538B\u7F29]","**Compacted from {tokens} tokens**":"**\u5DF2\u4ECE {tokens} tokens \u538B\u7F29**","Compacted from {tokens} tokens ({key} to expand)":"\u5DF2\u4ECE {tokens} tokens \u538B\u7F29\uFF08{key} \u5C55\u5F00\uFF09","({key} to expand)":"\uFF08{key} \u5C55\u5F00\uFF09",Yes:"\u662F",No:"\u5426","Show images inline in terminal":"\u5728\u7EC8\u7AEF\u5185\u8054\u663E\u793A\u56FE\u7247","Show text placeholder instead":"\u6539\u4E3A\u663E\u793A\u6587\u672C\u5360\u4F4D\u7B26",submit:"\u63D0\u4EA4",newline:"\u6362\u884C","external editor":"\u5916\u90E8\u7F16\u8F91\u5668",select:"\u9009\u62E9","Mermaid diagram not rendered: {warning}{suffix}":"Mermaid \u56FE\u8868\u672A\u6E32\u67D3\uFF1A{warning}{suffix}","+{count} more":"\u8FD8\u6709 {count} \u6761","[{type}] renderer failed: {message}":"[{type}] \u6E32\u67D3\u5668\u5931\u8D25\uFF1A{message}","... ({count} more lines, {key} to expand)":"...\uFF08\u8FD8\u6709 {count} \u884C\uFF0C{key} \u5C55\u5F00\uFF09","(current)":"\uFF08\u5F53\u524D\uFF09","Type to filter \xB7 Enter to select \xB7 Esc to go back":"\u8F93\u5165\u4EE5\u8FC7\u6EE4 \xB7 Enter \u9009\u62E9 \xB7 Esc \u8FD4\u56DE","Enter to select \xB7 Esc to go back":"Enter \u9009\u62E9 \xB7 Esc \u8FD4\u56DE","Step {index}/{total}":"\u7B2C {index}/{total} \u6B65"};var tuiComponentsSelectors={"No reasoning":"\u65E0\u63A8\u7406","Very brief reasoning (~1k tokens)":"\u6781\u7B80\u63A8\u7406\uFF08\u7EA6 1k tokens\uFF09","Light reasoning (~2k tokens)":"\u8F7B\u5EA6\u63A8\u7406\uFF08\u7EA6 2k tokens\uFF09","Moderate reasoning (~8k tokens)":"\u4E2D\u5EA6\u63A8\u7406\uFF08\u7EA6 8k tokens\uFF09","Deep reasoning (~16k tokens)":"\u6DF1\u5EA6\u63A8\u7406\uFF08\u7EA6 16k tokens\uFF09","Extra-high reasoning (~32k tokens)":"\u8D85\u9AD8\u63A8\u7406\uFF08\u7EA6 32k tokens\uFF09","Maximum reasoning":"\u6700\u5927\u63A8\u7406","Anthropic extra usage":"Anthropic \u989D\u5916\u7528\u91CF","Warn when Anthropic subscription auth may use paid extra usage":"\u5F53 Anthropic \u8BA2\u9605\u8BA4\u8BC1\u53EF\u80FD\u4F7F\u7528\u4ED8\u8D39\u989D\u5916\u7528\u91CF\u65F6\u8B66\u544A",none:"\u65E0","{count} configured":"\u5DF2\u914D\u7F6E {count} \u9879",Automatic:"\u81EA\u52A8","Use separate themes for light and dark terminal appearance":"\u4E3A\u7EC8\u7AEF\u6D45\u8272\u4E0E\u6DF1\u8272\u5916\u89C2\u5206\u522B\u4F7F\u7528\u4E0D\u540C\u4E3B\u9898",Theme:"\u4E3B\u9898","Select a theme, or choose Automatic to follow terminal appearance.":"\u9009\u62E9\u4E00\u4E2A\u4E3B\u9898\uFF0C\u6216\u9009\u62E9\u201C\u81EA\u52A8\u201D\u8DDF\u968F\u7EC8\u7AEF\u5916\u89C2\u3002","Automatic Theme":"\u81EA\u52A8\u4E3B\u9898","Choose themes for terminal light and dark appearance.":"\u4E3A\u7EC8\u7AEF\u6D45\u8272\u4E0E\u6DF1\u8272\u5916\u89C2\u9009\u62E9\u4E3B\u9898\u3002","Light/dark detection requires terminal support.":"\u6D45\u8272/\u6DF1\u8272\u68C0\u6D4B\u9700\u8981\u7EC8\u7AEF\u652F\u6301\u3002","Light theme":"\u6D45\u8272\u4E3B\u9898","Theme to use in automatic mode when the terminal is light":"\u81EA\u52A8\u6A21\u5F0F\u4E0B\u7EC8\u7AEF\u4E3A\u6D45\u8272\u65F6\u4F7F\u7528\u7684\u4E3B\u9898","Light Theme":"\u6D45\u8272\u4E3B\u9898","Select the theme to use for light terminal appearance":"\u9009\u62E9\u7EC8\u7AEF\u6D45\u8272\u5916\u89C2\u65F6\u4F7F\u7528\u7684\u4E3B\u9898","Dark theme":"\u6DF1\u8272\u4E3B\u9898","Theme to use in automatic mode when the terminal is dark":"\u81EA\u52A8\u6A21\u5F0F\u4E0B\u7EC8\u7AEF\u4E3A\u6DF1\u8272\u65F6\u4F7F\u7528\u7684\u4E3B\u9898","Dark Theme":"\u6DF1\u8272\u4E3B\u9898","Select the theme to use for dark terminal appearance":"\u9009\u62E9\u7EC8\u7AEF\u6DF1\u8272\u5916\u89C2\u65F6\u4F7F\u7528\u7684\u4E3B\u9898",Apply:"\u5E94\u7528","Save and go back":"\u4FDD\u5B58\u5E76\u8FD4\u56DE","save and go back":"\u4FDD\u5B58\u5E76\u8FD4\u56DE","Change mode":"\u5207\u6362\u6A21\u5F0F","Switch to one theme for light and dark":"\u5207\u6362\u4E3A\u6D45\u8272\u4E0E\u6DF1\u8272\u5171\u7528\u5355\u4E00\u4E3B\u9898","switch to single theme":"\u5207\u6362\u4E3A\u5355\u4E00\u4E3B\u9898","Auto-compact":"\u81EA\u52A8\u538B\u7F29","Automatically compact context when it gets too large":"\u4E0A\u4E0B\u6587\u8FC7\u5927\u65F6\u81EA\u52A8\u538B\u7F29","Steering mode":"\u8F6C\u5411\u6A21\u5F0F","Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.":"\u6D41\u5F0F\u8F93\u51FA\u671F\u95F4\u6309 Enter \u4F1A\u5C06\u8F6C\u5411\u6D88\u606F\u52A0\u5165\u961F\u5217\u3002'one-at-a-time'\uFF1A\u6BCF\u6B21\u9001\u8FBE\u4E00\u6761\uFF0C\u7B49\u5F85\u54CD\u5E94\u3002'all'\uFF1A\u4E00\u6B21\u6027\u5168\u90E8\u9001\u8FBE\u3002","Follow-up mode":"\u540E\u7EED\u6D88\u606F\u6A21\u5F0F","{key} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.":"{key} \u4F1A\u5C06\u540E\u7EED\u6D88\u606F\u6392\u961F\u76F4\u81F3 agent \u505C\u6B62\u3002'one-at-a-time'\uFF1A\u6BCF\u6B21\u9001\u8FBE\u4E00\u6761\uFF0C\u7B49\u5F85\u54CD\u5E94\u3002'all'\uFF1A\u4E00\u6B21\u6027\u5168\u90E8\u9001\u8FBE\u3002",Transport:"\u4F20\u8F93\u65B9\u5F0F","Preferred transport for providers that support multiple transports":"\u652F\u6301\u591A\u79CD\u4F20\u8F93\u65B9\u5F0F\u7684 provider \u7684\u9996\u9009\u4F20\u8F93\u65B9\u5F0F","HTTP idle timeout":"HTTP \u7A7A\u95F2\u8D85\u65F6","Maximum idle gap while waiting for HTTP headers or body chunks. Disable for local models that pause longer than five minutes.":"\u7B49\u5F85 HTTP \u5934\u6216\u6B63\u6587\u5206\u5757\u65F6\u7684\u6700\u5927\u7A7A\u95F2\u95F4\u9694\u3002\u672C\u5730\u6A21\u578B\u6682\u505C\u8D85\u8FC7\u4E94\u5206\u949F\u65F6\u8BF7\u7981\u7528\u3002","Hide thinking":"\u9690\u85CF\u601D\u8003","Hide thinking blocks in assistant responses":"\u9690\u85CF\u52A9\u624B\u56DE\u590D\u4E2D\u7684\u601D\u8003\u5757","Mermaid diagrams":"Mermaid \u56FE\u8868","Render Mermaid code blocks as Unicode diagrams":"\u5C06 Mermaid \u4EE3\u7801\u5757\u6E32\u67D3\u4E3A Unicode \u56FE\u8868","Cache miss notices":"\u7F13\u5B58\u672A\u547D\u4E2D\u63D0\u793A","Show transcript notices for cache costs and provider recovery diagnostics":"\u663E\u793A\u7F13\u5B58\u6210\u672C\u4E0E provider \u6062\u590D\u8BCA\u65AD\u7684\u4F1A\u8BDD\u8BB0\u5F55\u63D0\u793A","Collapse changelog":"\u6298\u53E0\u66F4\u65B0\u65E5\u5FD7","Show condensed changelog after updates":"\u66F4\u65B0\u540E\u663E\u793A\u7CBE\u7B80\u7248\u66F4\u65B0\u65E5\u5FD7","Quiet startup":"\u5B89\u9759\u542F\u52A8","Disable verbose printing at startup":"\u7981\u7528\u542F\u52A8\u65F6\u7684\u8BE6\u7EC6\u8F93\u51FA","Double-escape action":"\u53CC\u51FB Escape \u52A8\u4F5C","Action when pressing Escape twice with empty editor":"\u7F16\u8F91\u5668\u4E3A\u7A7A\u65F6\u8FDE\u6309\u4E24\u6B21 Escape \u6267\u884C\u7684\u52A8\u4F5C","Interface language":"\u754C\u9762\u8BED\u8A00","Language for UI text; takes effect immediately":"\u754C\u9762\u6587\u672C\u8BED\u8A00\uFF0C\u7ACB\u5373\u751F\u6548","Tree filter mode":"\u6811\u89C6\u56FE\u8FC7\u6EE4\u6A21\u5F0F","Default filter when opening /tree":"\u6253\u5F00 /tree \u65F6\u7684\u9ED8\u8BA4\u8FC7\u6EE4\u5668",Warnings:"\u8B66\u544A","Enable or disable individual warnings":"\u542F\u7528\u6216\u7981\u7528\u5404\u9879\u8B66\u544A",configure:"\u914D\u7F6E","Default thinking level per model":"\u5404\u6A21\u578B\u9ED8\u8BA4\u601D\u8003\u7EA7\u522B","Override the default thinking level for specific models. {key} cycles in-session.":"\u4E3A\u7279\u5B9A\u6A21\u578B\u8986\u76D6\u9ED8\u8BA4\u601D\u8003\u7EA7\u522B\u3002{key} \u53EF\u5728\u4F1A\u8BDD\u5185\u5FAA\u73AF\u5207\u6362\u3002","Per-Model Thinking Level":"\u5404\u6A21\u578B\u601D\u8003\u7EA7\u522B","Select a model to configure":"\u9009\u62E9\u8981\u914D\u7F6E\u7684\u6A21\u578B","No models available":"\u65E0\u53EF\u7528\u6A21\u578B","Log in to a provider or configure an API key first":"\u8BF7\u5148\u767B\u5F55 provider \u6216\u914D\u7F6E API key","Thinking Level for {model}":"{model} \u7684\u601D\u8003\u7EA7\u522B","Select default thinking level for this model":"\u9009\u62E9\u8BE5\u6A21\u578B\u7684\u9ED8\u8BA4\u601D\u8003\u7EA7\u522B","(clear override)":"\uFF08\u6E05\u9664\u8986\u76D6\uFF09","Revert to global default ({level})":"\u6062\u590D\u5168\u5C40\u9ED8\u8BA4\uFF08{level}\uFF09","TUI mode":"TUI \u6A21\u5F0F","Interface layout; fullscreen mode is experimental":"\u754C\u9762\u5E03\u5C40\uFF1B\u5168\u5C4F\u6A21\u5F0F\u4E3A\u5B9E\u9A8C\u6027","Fullscreen exit output":"\u5168\u5C4F\u9000\u51FA\u8F93\u51FA","Print the transcript or only a session resume hint when exiting fullscreen mode":"\u9000\u51FA\u5168\u5C4F\u6A21\u5F0F\u65F6\u6253\u5370\u5B8C\u6574\u4F1A\u8BDD\u8BB0\u5F55\u6216\u4EC5\u6253\u5370\u4F1A\u8BDD\u6062\u590D\u63D0\u793A","Fullscreen scrollbar":"\u5168\u5C4F\u6EDA\u52A8\u6761","Scrollbar behavior in fullscreen mode; has no effect in regular mode":"\u5168\u5C4F\u6A21\u5F0F\u4E0B\u7684\u6EDA\u52A8\u6761\u884C\u4E3A\uFF1B\u5E38\u89C4\u6A21\u5F0F\u4E0B\u65E0\u6548","Fullscreen copy on select":"\u5168\u5C4F\u9009\u4E2D\u5373\u590D\u5236","Automatically copy selected text in fullscreen mode; disable to copy selections with Ctrl+X":"\u5168\u5C4F\u6A21\u5F0F\u4E0B\u81EA\u52A8\u590D\u5236\u9009\u4E2D\u6587\u672C\uFF1B\u7981\u7528\u540E\u7528 Ctrl+X \u590D\u5236\u6240\u9009\u5185\u5BB9","Fullscreen wheel scroll lines":"\u5168\u5C4F\u6EDA\u8F6E\u6EDA\u52A8\u884C\u6570","Lines scrolled per wheel event in fullscreen mode; auto accelerates with scroll speed":"\u5168\u5C4F\u6A21\u5F0F\u4E0B\u6BCF\u4E2A\u6EDA\u8F6E\u4E8B\u4EF6\u6EDA\u52A8\u7684\u884C\u6570\uFF1Bauto \u968F\u6EDA\u52A8\u901F\u5EA6\u52A0\u901F","Color theme for the interface":"\u754C\u9762\u914D\u8272\u4E3B\u9898","Show images":"\u663E\u793A\u56FE\u7247","Render images inline in terminal":"\u5728\u7EC8\u7AEF\u5185\u8054\u6E32\u67D3\u56FE\u7247","Image width":"\u56FE\u7247\u5BBD\u5EA6","Preferred inline image width in terminal cells":"\u9996\u9009\u7684\u5185\u8054\u56FE\u7247\u5BBD\u5EA6\uFF08\u7EC8\u7AEF\u5355\u5143\u683C\uFF09","Auto-resize images":"\u81EA\u52A8\u7F29\u653E\u56FE\u7247","Resize large images to 2000x2000 max for better model compatibility":"\u5C06\u5927\u56FE\u7F29\u653E\u81F3\u6700\u5927 2000x2000 \u4EE5\u63D0\u5347\u6A21\u578B\u517C\u5BB9\u6027","Block images":"\u963B\u6B62\u56FE\u7247","Prevent images from being sent to LLM providers":"\u963B\u6B62\u56FE\u7247\u53D1\u9001\u7ED9 LLM provider","Show hardware cursor":"\u663E\u793A\u786C\u4EF6\u5149\u6807","Show the terminal cursor while still positioning it for IME support":"\u663E\u793A\u7EC8\u7AEF\u5149\u6807\uFF0C\u540C\u65F6\u4FDD\u6301\u5176\u5B9A\u4F4D\u4EE5\u652F\u6301\u8F93\u5165\u6CD5","Editor padding":"\u7F16\u8F91\u5668\u5185\u8FB9\u8DDD","Horizontal padding for input editor (0-3)":"\u8F93\u5165\u7F16\u8F91\u5668\u7684\u6C34\u5E73\u5185\u8FB9\u8DDD\uFF080-3\uFF09","Output padding":"\u8F93\u51FA\u5185\u8FB9\u8DDD","Horizontal padding for user messages, assistant messages, and thinking":"\u7528\u6237\u6D88\u606F\u3001\u52A9\u624B\u6D88\u606F\u4E0E\u601D\u8003\u5185\u5BB9\u7684\u6C34\u5E73\u5185\u8FB9\u8DDD","Autocomplete max items":"\u81EA\u52A8\u8865\u5168\u6700\u5927\u6761\u76EE\u6570","Max visible items in autocomplete dropdown (3-20)":"\u81EA\u52A8\u8865\u5168\u4E0B\u62C9\u83DC\u5355\u53EF\u89C1\u7684\u6700\u5927\u6761\u76EE\u6570\uFF083-20\uFF09","Clear on shrink":"\u6536\u7F29\u65F6\u6E05\u5C4F","Clear empty rows when content shrinks (may cause flicker)":"\u5185\u5BB9\u6536\u7F29\u65F6\u6E05\u9664\u7A7A\u884C\uFF08\u53EF\u80FD\u5BFC\u81F4\u95EA\u70C1\uFF09","Terminal progress":"\u7EC8\u7AEF\u8FDB\u5EA6","Show OSC 9;4 progress indicators in the terminal tab bar":"\u5728\u7EC8\u7AEF\u6807\u7B7E\u680F\u663E\u793A OSC 9;4 \u8FDB\u5EA6\u6307\u793A","Resume Session (Current Folder)":"\u6062\u590D\u4F1A\u8BDD\uFF08\u5F53\u524D\u6587\u4EF6\u5939\uFF09","Resume Session (All)":"\u6062\u590D\u4F1A\u8BDD\uFF08\u5168\u90E8\uFF09","Resume Session (All Suites)":"\u6062\u590D\u4F1A\u8BDD\uFF08\u6240\u6709 Suite\uFF09","Resume Session (Suite: {suite})":"\u6062\u590D\u4F1A\u8BDD\uFF08Suite\uFF1A{suite}\uFF09",Threaded:"\u7EBF\u7A0B\u5F0F",Recent:"\u6700\u8FD1",Fuzzy:"\u6A21\u7CCA","Sort:":"\u6392\u5E8F\uFF1A",All:"\u5168\u90E8",Named:"\u5DF2\u547D\u540D","Name:":"\u540D\u79F0\uFF1A","\u25CB Current Folder":"\u25CB \u5F53\u524D\u6587\u4EF6\u5939","Loading {progress}":"\u52A0\u8F7D\u4E2D {progress}","\u25C9 Current Folder":"\u25C9 \u5F53\u524D\u6587\u4EF6\u5939","\u25CB All":"\u25CB \u5168\u90E8","\u25C9 All":"\u25C9 \u5168\u90E8","Delete session? {confirm} \xB7 {cancel}":"\u5220\u9664\u4F1A\u8BDD\uFF1F{confirm} \xB7 {cancel}",confirm:"\u786E\u8BA4",cancel:"\u53D6\u6D88","path (on)":"\u8DEF\u5F84 (\u5F00)","path (off)":"\u8DEF\u5F84 (\u5173)",scope:"\u8303\u56F4",'re:<pattern> regex \xB7 "phrase" exact':'re:<\u6A21\u5F0F> \u6B63\u5219 \xB7 "\u8BCD\u7EC4" \u7CBE\u786E',sort:"\u6392\u5E8F",named:"\u547D\u540D\u8FC7\u6EE4",delete:"\u5220\u9664",rename:"\u91CD\u547D\u540D","Cannot delete the currently active session":"\u65E0\u6CD5\u5220\u9664\u5F53\u524D\u6D3B\u52A8\u4F1A\u8BDD","No named sessions found. Press {key} to show all.":"\u672A\u627E\u5230\u5DF2\u547D\u540D\u4F1A\u8BDD\u3002\u6309 {key} \u663E\u793A\u5168\u90E8\u3002","No named sessions in current folder. Press {key} to show all, or Tab to view all.":"\u5F53\u524D\u6587\u4EF6\u5939\u65E0\u5DF2\u547D\u540D\u4F1A\u8BDD\u3002\u6309 {key} \u663E\u793A\u5168\u90E8\uFF0C\u6216\u6309 Tab \u67E5\u770B\u5168\u90E8\u3002","No sessions found":"\u672A\u627E\u5230\u4F1A\u8BDD","No sessions in current folder. Press Tab to view all.":"\u5F53\u524D\u6587\u4EF6\u5939\u65E0\u4F1A\u8BDD\u3002\u6309 Tab \u67E5\u770B\u5168\u90E8\u3002","Show sessions from all suites":"\u663E\u793A\u6240\u6709 suite \u7684\u4F1A\u8BDD","Show current suite sessions only":"\u4EC5\u663E\u793A\u5F53\u524D suite \u7684\u4F1A\u8BDD","Session moved to trash":"\u4F1A\u8BDD\u5DF2\u79FB\u5165\u56DE\u6536\u7AD9","Session deleted":"\u4F1A\u8BDD\u5DF2\u5220\u9664","Unknown error":"\u672A\u77E5\u9519\u8BEF","Failed to delete: {error}":"\u5220\u9664\u5931\u8D25\uFF1A{error}","Rename Session":"\u91CD\u547D\u540D\u4F1A\u8BDD","{confirm} to save \xB7 {cancel} to cancel":"{confirm} \u4FDD\u5B58 \xB7 {cancel} \u53D6\u6D88","Failed to load sessions: {message}":"\u52A0\u8F7D\u4F1A\u8BDD\u5931\u8D25\uFF1A{message}",Skills:"\u6280\u80FD",Prompts:"\u63D0\u793A\u8BCD",Themes:"\u4E3B\u9898","User ({dir})":"\u7528\u6237\uFF08{dir}\uFF09","Project ({dir})":"\u9879\u76EE\uFF08{dir}\uFF09","User settings":"\u7528\u6237\u8BBE\u7F6E","Project settings":"\u9879\u76EE\u8BBE\u7F6E","Project Local Resources":"\u9879\u76EE\u672C\u5730\u8D44\u6E90","Global Resources":"\u5168\u5C40\u8D44\u6E90","switch mode":"\u5207\u6362\u6A21\u5F0F","cycle inherit/+/-":"\u5FAA\u73AF \u7EE7\u627F/+/-",toggle:"\u5207\u6362",close:"\u5173\u95ED","{config}/settings.json \xB7 inherited global resources are dimmed":"{config}/settings.json \xB7 \u7EE7\u627F\u7684\u5168\u5C40\u8D44\u6E90\u4EE5\u6697\u8272\u663E\u793A","No resources found":"\u672A\u627E\u5230\u8D44\u6E90","inherited global":"\u7EE7\u627F\u81EA\u5168\u5C40","project load":"\u9879\u76EE\u52A0\u8F7D","project unload":"\u9879\u76EE\u5378\u8F7D","Model Configuration":"\u6A21\u578B\u914D\u7F6E","Session-only. {key} to save to settings.":"\u4EC5\u672C\u6B21\u4F1A\u8BDD\u751F\u6548\u3002\u6309 {key} \u4FDD\u5B58\u5230\u8BBE\u7F6E\u3002","all enabled":"\u5168\u90E8\u5DF2\u542F\u7528","{enabled}/{total} enabled":"\u5DF2\u542F\u7528 {enabled}/{total}","{count} unavailable":"{count} \u4E2A\u4E0D\u53EF\u7528",all:"\u5168\u90E8",clear:"\u6E05\u7A7A",reorder:"\u6392\u5E8F",save:"\u4FDD\u5B58","(unsaved)":"\uFF08\u672A\u4FDD\u5B58\uFF09","No matching models":"\u6CA1\u6709\u5339\u914D\u7684\u6A21\u578B","[unavailable]":"[\u4E0D\u53EF\u7528]","Model Name: {name}":"\u6A21\u578B\u540D\u79F0\uFF1A{name}","Model unavailable":"\u6A21\u578B\u4E0D\u53EF\u7528","Refreshing model catalogs\u2026":"\u6B63\u5728\u5237\u65B0\u6A21\u578B\u76EE\u5F55\u2026","Only showing models from configured providers. Use /login to add providers.":"\u4EC5\u663E\u793A\u5DF2\u914D\u7F6E provider \u7684\u6A21\u578B\u3002\u4F7F\u7528 /login \u6DFB\u52A0 provider\u3002","{confirm} to select \xB7 {save} to set as default \xB7 {cancel} to cancel":"{confirm} \u9009\u62E9 \xB7 {save} \u8BBE\u4E3A\u9ED8\u8BA4 \xB7 {cancel} \u53D6\u6D88","Model refresh timed out; showing cached models.":"\u6A21\u578B\u5237\u65B0\u8D85\u65F6\uFF1B\u663E\u793A\u7F13\u5B58\u6A21\u578B\u3002","Could not refresh {provider}; showing cached models.":"\u65E0\u6CD5\u5237\u65B0 {provider}\uFF1B\u663E\u793A\u7F13\u5B58\u7684\u6A21\u578B\u3002","Could not refresh {count} model catalogs ({providers}); showing cached models.":"\u65E0\u6CD5\u5237\u65B0 {count} \u4E2A\u6A21\u578B\u76EE\u5F55\uFF08{providers}\uFF09\uFF1B\u663E\u793A\u7F13\u5B58\u7684\u6A21\u578B\u3002","Model catalogs refreshed.":"\u6A21\u578B\u76EE\u5F55\u5DF2\u5237\u65B0\u3002","Could not refresh model catalogs: {error}":"\u65E0\u6CD5\u5237\u65B0\u6A21\u578B\u76EE\u5F55\uFF1A{error}",scoped:"\u4F1A\u8BDD\u5185","Scope:":"\u8303\u56F4\uFF1A","(all/scoped)":"\uFF08\u5168\u90E8/\u4F1A\u8BDD\u5185\uFF09",default:"\u9ED8\u8BA4","Thinking Level":"\u601D\u8003\u7EA7\u522B","{key} sets thinking level":"{key} \u8BBE\u7F6E\u601D\u8003\u7EA7\u522B",subscription:"\u8BA2\u9605","Select provider to configure:":"\u9009\u62E9\u8981\u914D\u7F6E\u7684 provider\uFF1A","Select provider to logout:":"\u9009\u62E9\u8981\u767B\u51FA\u7684 provider\uFF1A","No providers available":"\u65E0\u53EF\u7528 provider","No providers logged in. Use /login first.":"\u6CA1\u6709\u5DF2\u767B\u5F55\u7684 provider\u3002\u8BF7\u5148\u4F7F\u7528 /login\u3002","No matching providers":"\u6CA1\u6709\u5339\u914D\u7684 provider",unconfigured:"\u672A\u914D\u7F6E","subscription configured":"\u5DF2\u914D\u7F6E\u8BA2\u9605","API key configured":"\u5DF2\u914D\u7F6E API key","API key":"API key",configured:"\u5DF2\u914D\u7F6E","env: {source}":"\u73AF\u5883\u53D8\u91CF\uFF1A{source}","Login to {provider}":"\u767B\u5F55 {provider}","Login cancelled":"\u767B\u5F55\u5DF2\u53D6\u6D88","Cmd+click to open":"Cmd+\u70B9\u51FB\u6253\u5F00","Ctrl+click to open":"Ctrl+\u70B9\u51FB\u6253\u5F00","Enter code: {code}":"\u8F93\u5165\u4EE3\u7801\uFF1A{code}","to cancel":"\u53D6\u6D88","e.g., {placeholder}":"\u4F8B\u5982\uFF0C{placeholder}","to cancel,":"\u53D6\u6D88\uFF0C","to submit":"\u63D0\u4EA4","to close":"\u5173\u95ED","Welcome to {name}, the minimal coding agent.":"\u6B22\u8FCE\u4F7F\u7528 {name}\uFF0C\u6781\u7B80\u7F16\u7801 agent\u3002","Pick a theme.":"\u9009\u62E9\u4E00\u4E2A\u4E3B\u9898\u3002","Detected system appearance: {theme}":"\u68C0\u6D4B\u5230\u7CFB\u7EDF\u5916\u89C2\uFF1A{theme}","Opt-in to anonymous usage data sharing?":"\u662F\u5426\u52A0\u5165\u533F\u540D\u4F7F\u7528\u6570\u636E\u5206\u4EAB\uFF1F","Opting in stores a tracking identifier in settings.json and enables anonymous\nusage analytics. This helps us to better debug, reproduce, and resolve issues\nand bugs within Agent Forge. You can observe what is shared using /privacy and make\nchanges anytime in settings.json.":`\u9009\u62E9\u52A0\u5165\u540E\u4F1A\u5728 settings.json \u4E2D\u5B58\u50A8\u4E00\u4E2A\u8FFD\u8E2A\u6807\u8BC6\u7B26\uFF0C\u5E76\u542F\u7528\u533F\u540D\u4F7F\u7528\u5206\u6790\u3002
|
|
11
|
+
\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\uFF1A{fallbackCwd}`,"Input rejected by an input gate":"\u8F93\u5165\u88AB\u8F93\u5165\u95E8\u62D2\u7EDD","Input rejected by an input gate: {reason}":"\u8F93\u5165\u88AB\u8F93\u5165\u95E8\u62D2\u7EDD\uFF1A{reason}","Session reload in progress; prompts are unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u63D0\u4EA4\u63D0\u793A","Session reload in progress; compaction is unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u538B\u7F29","Session reload in progress; compaction was not started":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u538B\u7F29\u672A\u542F\u52A8","Session reload in progress; tree navigation is unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u5BFC\u822A\u4F1A\u8BDD\u6811","Session reload in progress; bash execution is unavailable":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u6682\u65E0\u6CD5\u6267\u884C bash","Session reload in progress; bash results cannot be recorded":"\u4F1A\u8BDD\u91CD\u8F7D\u8FDB\u884C\u4E2D\uFF1B\u65E0\u6CD5\u8BB0\u5F55 bash \u7ED3\u679C","Cannot submit a prompt while compaction is in progress. Wait for compaction to finish and retry.":"\u538B\u7F29\u8FDB\u884C\u4E2D\u65E0\u6CD5\u63D0\u4EA4\u63D0\u793A\u3002\u8BF7\u7B49\u5F85\u538B\u7F29\u5B8C\u6210\u540E\u518D\u91CD\u8BD5\u3002","Authentication failed for \"{provider}\". Credentials may have expired or network is unavailable. Run '/login {provider}' to re-authenticate.":"\u201C{provider}\u201D\u8BA4\u8BC1\u5931\u8D25\u3002\u51ED\u8BC1\u53EF\u80FD\u5DF2\u8FC7\u671F\u6216\u7F51\u7EDC\u4E0D\u53EF\u7528\u3002\u8BF7\u8FD0\u884C '/login {provider}' \u91CD\u65B0\u8BA4\u8BC1\u3002","No model is set on this session's agent":"\u672C\u4F1A\u8BDD\u7684 agent \u672A\u8BBE\u7F6E\u6A21\u578B","No API key for {provider}/{model}":"\u6CA1\u6709 {provider}/{model} \u7684 API key","Already compacted":"\u5DF2\u538B\u7F29\u8FC7","Nothing to compact (session too small)":"\u6CA1\u6709\u53EF\u538B\u7F29\u7684\u5185\u5BB9\uFF08\u4F1A\u8BDD\u592A\u5C0F\uFF09","Wait for the current response to finish before navigating the session tree.":"\u8BF7\u7B49\u5F85\u5F53\u524D\u54CD\u5E94\u7ED3\u675F\u518D\u5BFC\u822A\u4F1A\u8BDD\u6811\u3002","Wait for the current compaction or tree navigation to finish before navigating the session tree.":"\u8BF7\u7B49\u5F85\u5F53\u524D\u538B\u7F29\u6216\u6811\u5BFC\u822A\u7ED3\u675F\u518D\u5BFC\u822A\u4F1A\u8BDD\u6811\u3002","No model available for summarization":"\u6CA1\u6709\u53EF\u7528\u4E8E\u751F\u6210\u6458\u8981\u7684\u6A21\u578B","Branch navigation is already in progress":"\u5206\u652F\u5BFC\u822A\u5DF2\u5728\u8FDB\u884C\u4E2D","Branch summary policy is not registered: {name}":"\u5206\u652F\u6458\u8981\u7B56\u7565\u672A\u6CE8\u518C\uFF1A{name}","Configured context strategy is not registered: {name}":"\u5DF2\u914D\u7F6E\u7684\u4E0A\u4E0B\u6587\u7B56\u7565\u672A\u6CE8\u518C\uFF1A{name}","Configured context strategy is not registered after reload: {name}":"\u91CD\u8F7D\u540E\u5DF2\u914D\u7F6E\u7684\u4E0A\u4E0B\u6587\u7B56\u7565\u672A\u6CE8\u518C\uFF1A{name}","This session has not been saved yet. Send a message before cloning or forking it.":"\u672C\u4F1A\u8BDD\u5C1A\u672A\u4FDD\u5B58\u3002\u8BF7\u5148\u53D1\u9001\u6D88\u606F\u518D\u514B\u9686\u6216\u5206\u53C9\u3002","Failed to create forked session":"\u521B\u5EFA\u5206\u53C9\u4F1A\u8BDD\u5931\u8D25","File not found: {path}":"\u6587\u4EF6\u4E0D\u5B58\u5728\uFF1A{path}","Skill is duplicated in resources: {name}":"\u6280\u80FD\u5728\u8D44\u6E90\u4E2D\u91CD\u590D\uFF1A{name}","Skill conflicts with a resource skill: {name}":"\u6280\u80FD\u4E0E\u8D44\u6E90\u6280\u80FD\u51B2\u7A81\uFF1A{name}","Credential {operation} committed for {providerId}, but local synchronization failed":"\u63D0\u4F9B\u5546 {providerId} \u7684\u51ED\u8BC1 {operation} \u5DF2\u63D0\u4EA4\uFF0C\u4F46\u672C\u5730\u540C\u6B65\u5931\u8D25","Unknown provider: {provider}":"\u672A\u77E5\u63D0\u4F9B\u5546\uFF1A{provider}","Provider is not configured: {provider}":"\u63D0\u4F9B\u5546\u672A\u914D\u7F6E\uFF1A{provider}",'Provider {providerId}, model {modelId}: no "api" specified. Set at provider or model level.':'\u63D0\u4F9B\u5546 {providerId}\uFF0C\u6A21\u578B {modelId}\uFF1A\u672A\u6307\u5B9A "api"\u3002\u8BF7\u5728\u63D0\u4F9B\u5546\u6216\u6A21\u578B\u7EA7\u522B\u8BBE\u7F6E\u3002','Provider {providerId}: "baseUrl" is required when defining custom models.':'\u63D0\u4F9B\u5546 {providerId}\uFF1A\u5B9A\u4E49\u81EA\u5B9A\u4E49\u6A21\u578B\u65F6\u5FC5\u987B\u63D0\u4F9B "baseUrl"\u3002',"Provider {providerId}, model {modelId}: invalid contextWindow":"\u63D0\u4F9B\u5546 {providerId}\uFF0C\u6A21\u578B {modelId}\uFF1AcontextWindow \u65E0\u6548","Provider {providerId}, model {modelId}: invalid maxTokens":"\u63D0\u4F9B\u5546 {providerId}\uFF0C\u6A21\u578B {modelId}\uFF1AmaxTokens \u65E0\u6548",'Provider {providerId}: "baseUrl" is required when "oauth" is set.':'\u63D0\u4F9B\u5546 {providerId}\uFF1A\u8BBE\u7F6E "oauth" \u65F6\u5FC5\u987B\u63D0\u4F9B "baseUrl"\u3002','Provider {providerId}: must specify "baseUrl", "headers", "compat", "modelOverrides", or "models".':'\u63D0\u4F9B\u5546 {providerId}\uFF1A\u5FC5\u987B\u6307\u5B9A "baseUrl"\u3001"headers"\u3001"compat"\u3001"modelOverrides" \u6216 "models" \u4E4B\u4E00\u3002',"Provider {providerId}: no authentication method configured.":"\u63D0\u4F9B\u5546 {providerId}\uFF1A\u672A\u914D\u7F6E\u4EFB\u4F55\u8BA4\u8BC1\u65B9\u5F0F\u3002",'API key for provider "{providerId}"':'\u63D0\u4F9B\u5546 "{providerId}" \u7684 API key',"Failed to resolve {description} from shell command: {command}":"\u65E0\u6CD5\u4ECE shell \u547D\u4EE4\u89E3\u6790{description}\uFF1A{command}","Failed to resolve {description} from environment variable: {envVar}":"\u65E0\u6CD5\u4ECE\u73AF\u5883\u53D8\u91CF\u89E3\u6790{description}\uFF1A{envVar}","Failed to resolve {description} from environment variables: {envVars}":"\u65E0\u6CD5\u4ECE\u73AF\u5883\u53D8\u91CF\u89E3\u6790{description}\uFF1A{envVars}","Failed to resolve {description}":"\u65E0\u6CD5\u89E3\u6790{description}",'{description} header "{key}"':'{description}\u7684 header "{key}"',"Invalid {settingName} setting: {value}":"\u65E0\u6548\u7684 {settingName} \u8BBE\u7F6E\uFF1A{value}","Invalid compaction.{field} setting: {value}. Expected a non-negative safe integer.":"\u65E0\u6548\u7684 compaction.{field} \u8BBE\u7F6E\uFF1A{value}\u3002\u5E94\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u3002",'Invalid compaction.modelOverrides["{modelKey}"] setting: {value}. Expected an object.':'\u65E0\u6548\u7684 compaction.modelOverrides["{modelKey}"] \u8BBE\u7F6E\uFF1A{value}\u3002\u5E94\u4E3A\u5BF9\u8C61\u3002','Invalid compaction.modelOverrides["{modelKey}"].{field} setting: {value}. Expected a non-negative safe integer.':'\u65E0\u6548\u7684 compaction.modelOverrides["{modelKey}"].{field} \u8BBE\u7F6E\uFF1A{value}\u3002\u5E94\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u3002',"Invalid httpIdleTimeoutMs setting: {value}":"\u65E0\u6548\u7684 httpIdleTimeoutMs \u8BBE\u7F6E\uFF1A{value}","Invalid HTTP idle timeout: {value}":"\u65E0\u6548\u7684 HTTP \u7A7A\u95F2\u8D85\u65F6\uFF1A{value}","Failed to read auth.json: {reason}":"\u8BFB\u53D6 auth.json \u5931\u8D25\uFF1A{reason}","Invalid auth.json: expected an object":"auth.json \u65E0\u6548\uFF1A\u5E94\u4E3A\u5BF9\u8C61",'Invalid auth.json credential for provider "{providerId}"':'\u63D0\u4F9B\u5546 "{providerId}" \u7684 auth.json \u51ED\u8BC1\u65E0\u6548',"Read-only credential storage cannot modify auth.json":"\u53EA\u8BFB\u51ED\u8BC1\u5B58\u50A8\u65E0\u6CD5\u4FEE\u6539 auth.json",'Invalid model catalog for provider "{providerId}"':'\u63D0\u4F9B\u5546 "{providerId}" \u7684\u6A21\u578B\u76EE\u5F55\u65E0\u6548',"Model catalog request failed for {providerId}: {status}":"\u63D0\u4F9B\u5546 {providerId} \u7684\u6A21\u578B\u76EE\u5F55\u8BF7\u6C42\u5931\u8D25\uFF1A{status}","First kept entry has no UUID - session may need migration":"\u9996\u4E2A\u4FDD\u7559\u6761\u76EE\u6CA1\u6709 UUID\u2014\u2014\u4F1A\u8BDD\u53EF\u80FD\u9700\u8981\u8FC1\u79FB","Cannot export in-memory session to HTML":"\u65E0\u6CD5\u5C06\u5185\u5B58\u4E2D\u7684\u4F1A\u8BDD\u5BFC\u51FA\u4E3A HTML","Nothing to export yet - start a conversation first":"\u6682\u65E0\u53EF\u5BFC\u51FA\u5185\u5BB9\u2014\u2014\u8BF7\u5148\u5F00\u59CB\u5BF9\u8BDD","Failed to read capability plugin manifest {path}: {reason}":"\u8BFB\u53D6\u80FD\u529B\u63D2\u4EF6 manifest \u5931\u8D25 {path}\uFF1A{reason}","Failed to inspect capability plugin directory {directory}: {reason}":"\u68C0\u67E5\u80FD\u529B\u63D2\u4EF6\u76EE\u5F55\u5931\u8D25 {directory}\uFF1A{reason}","Capability plugin path must be a directory: {directory}":"\u80FD\u529B\u63D2\u4EF6\u8DEF\u5F84\u5FC5\u987B\u662F\u76EE\u5F55\uFF1A{directory}","Failed to resolve capability plugin directory {directory}: {reason}":"\u89E3\u6790\u80FD\u529B\u63D2\u4EF6\u76EE\u5F55\u5931\u8D25 {directory}\uFF1A{reason}","Failed to read capability plugin directory {directory}: {reason}":"\u8BFB\u53D6\u80FD\u529B\u63D2\u4EF6\u76EE\u5F55\u5931\u8D25 {directory}\uFF1A{reason}","Failed to resolve capability plugin manifest {path}: {reason}":"\u89E3\u6790\u80FD\u529B\u63D2\u4EF6 manifest \u5931\u8D25 {path}\uFF1A{reason}","Failed to import capability plugin entry {path}: {reason}":"\u5BFC\u5165\u80FD\u529B\u63D2\u4EF6\u5165\u53E3\u5931\u8D25 {path}\uFF1A{reason}","Plugin capability is required but unavailable: {capabilityId}@{version} ({pluginId})":"\u5FC5\u9700\u7684\u63D2\u4EF6\u80FD\u529B\u4E0D\u53EF\u7528\uFF1A{capabilityId}@{version}\uFF08{pluginId}\uFF09",'Session is bound to suite "{boundSuiteId}" and cannot resume with "{suiteId}"; rerun with --rebind-suite to adopt the new suite, or create a new session':'\u4F1A\u8BDD\u5DF2\u7ED1\u5B9A suite "{boundSuiteId}"\uFF0C\u65E0\u6CD5\u4EE5 "{suiteId}" \u6062\u590D\uFF1B\u8BF7\u52A0 --rebind-suite \u91CD\u65B0\u8FD0\u884C\u4EE5\u5207\u6362\u5230\u65B0 suite\uFF0C\u6216\u521B\u5EFA\u65B0\u4F1A\u8BDD',"Session Profile identity drift detected (the active plugin set changed since the conversation started); rerun with --rebind-suite to adopt the new plugin set, or create a new session":"\u68C0\u6D4B\u5230\u4F1A\u8BDD Profile \u8EAB\u4EFD\u6F02\u79FB\uFF08\u5BF9\u8BDD\u5F00\u59CB\u540E\u751F\u6548\u7684\u63D2\u4EF6\u96C6\u53D1\u751F\u4E86\u53D8\u5316\uFF09\uFF1B\u8BF7\u52A0 --rebind-suite \u91CD\u65B0\u8FD0\u884C\u4EE5\u91C7\u7528\u65B0\u63D2\u4EF6\u96C6\uFF0C\u6216\u521B\u5EFA\u65B0\u4F1A\u8BDD","Path does not exist: {path}":"\u8DEF\u5F84\u4E0D\u5B58\u5728\uFF1A{path}","Unsupported install source: {source}":"\u4E0D\u652F\u6301\u7684\u5B89\u88C5\u6E90\uFF1A{source}","Unsupported remove source: {source}":"\u4E0D\u652F\u6301\u7684\u79FB\u9664\u6E90\uFF1A{source}","Missing source: {source}":"\u6E90\u7F3A\u5931\uFF1A{source}","Empty response from npm view":"npm view \u8FD4\u56DE\u7A7A\u54CD\u5E94","Unexpected response from npm view":"npm view \u8FD4\u56DE\u610F\u5916\u54CD\u5E94","Failed to determine remote HEAD":"\u65E0\u6CD5\u786E\u5B9A\u8FDC\u7AEF HEAD","Unsupported upstream remote: {upstream}":"\u4E0D\u652F\u6301\u7684 upstream \u8FDC\u7AEF\uFF1A{upstream}","Missing upstream branch name":"\u7F3A\u5C11 upstream \u5206\u652F\u540D","Failed to run {command} {args}: {reason}":"\u6267\u884C {command} {args} \u5931\u8D25\uFF1A{reason}","Failed to run {command}: {reason}":"\u6267\u884C {command} \u5931\u8D25\uFF1A{reason}","No matching package found for {source}":"\u672A\u627E\u5230\u4E0E {source} \u5339\u914D\u7684\u5305","No matching package found for {source}. Did you mean {suggestion}?":"\u672A\u627E\u5230\u4E0E {source} \u5339\u914D\u7684\u5305\u3002\u4F60\u662F\u60F3\u627E {suggestion} \u5417\uFF1F","Invalid npmCommand: first array entry must be a non-empty command":"\u65E0\u6548\u7684 npmCommand\uFF1A\u6570\u7EC4\u7B2C\u4E00\u9879\u5FC5\u987B\u662F\u975E\u7A7A\u547D\u4EE4","MCP HTTP transport error: {reason}":"MCP HTTP \u4F20\u8F93\u9519\u8BEF\uFF1A{reason}","MCP HTTP transport is closed":"MCP HTTP \u4F20\u8F93\u5DF2\u5173\u95ED","MCP HTTP transport returned HTTP {status}":"MCP HTTP \u4F20\u8F93\u8FD4\u56DE HTTP {status}","MCP HTTP transport returned non-JSON body: {reason}":"MCP HTTP \u4F20\u8F93\u8FD4\u56DE\u4E86\u975E JSON \u54CD\u5E94\u4F53\uFF1A{reason}","MCP error {code}: {message}":"MCP \u9519\u8BEF {code}\uFF1A{message}","unknown error":"\u672A\u77E5\u9519\u8BEF","MCP tools/list result must contain tools[]":"MCP tools/list \u7ED3\u679C\u5FC5\u987B\u5305\u542B tools[]","MCP tool requires a non-empty name":"MCP \u5DE5\u5177\u5FC5\u987B\u5177\u6709\u975E\u7A7A\u540D\u79F0","Plugin ref is invalid":"\u63D2\u4EF6 ref \u65E0\u6548","Local plugin ref exists but is neither a directory nor a .zip/.tgz file":"\u672C\u5730\u63D2\u4EF6 ref \u5B58\u5728\uFF0C\u4F46\u65E2\u4E0D\u662F\u76EE\u5F55\u4E5F\u4E0D\u662F .zip/.tgz \u6587\u4EF6","Plugin ref URL scheme is not supported":"\u4E0D\u652F\u6301\u63D2\u4EF6 ref \u7684 URL \u534F\u8BAE","Plugin ref #sha256 digest fragment is invalid":"\u63D2\u4EF6 ref \u7684 #sha256 \u6458\u8981\u7247\u6BB5\u65E0\u6548","Plugin npm package ref is invalid":"\u63D2\u4EF6 npm \u5305 ref \u65E0\u6548","Plugin package acquisition was cancelled":"\u63D2\u4EF6\u5305\u83B7\u53D6\u5DF2\u53D6\u6D88","Plugin package download failed":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u5931\u8D25","Plugin npm package was not found on the registry":"\u6CE8\u518C\u8868\u4E2D\u672A\u627E\u5230\u8BE5\u63D2\u4EF6 npm \u5305","No npm package version matches the requested range":"\u6CA1\u6709\u5339\u914D\u6240\u8BF7\u6C42\u8303\u56F4\u7684 npm \u5305\u7248\u672C","Plugin package bytes do not match the expected digest":"\u63D2\u4EF6\u5305\u5B57\u8282\u4E0E\u9884\u671F\u6458\u8981\u4E0D\u5339\u914D","Plugin package bytes are neither a zip nor a tgz":"\u63D2\u4EF6\u5305\u5B57\u8282\u65E2\u4E0D\u662F zip \u4E5F\u4E0D\u662F tgz","Plugin package contents are invalid":"\u63D2\u4EF6\u5305\u5185\u5BB9\u65E0\u6548","Plugin package exceeds the configured size budget":"\u63D2\u4EF6\u5305\u8D85\u51FA\u914D\u7F6E\u7684\u5927\u5C0F\u9884\u7B97","Plugin release was not found":"\u672A\u627E\u5230\u63D2\u4EF6 release","Plugin release has no .zip/.tgz asset":"\u63D2\u4EF6 release \u6CA1\u6709 .zip/.tgz \u8D44\u4EA7","Plugin release has multiple .zip/.tgz assets":"\u63D2\u4EF6 release \u6709\u591A\u4E2A .zip/.tgz \u8D44\u4EA7","Plugin release API rate limit was exceeded":"\u63D2\u4EF6 release API \u8D85\u51FA\u901F\u7387\u9650\u5236","Plugin distribution is unsupported on this host":"\u6B64\u5BBF\u4E3B\u4E0D\u652F\u6301\u63D2\u4EF6\u5206\u53D1","Plugin distribution operation was cancelled":"\u63D2\u4EF6\u5206\u53D1\u64CD\u4F5C\u5DF2\u53D6\u6D88","Plugin distribution descriptor is invalid":"\u63D2\u4EF6\u5206\u53D1\u63CF\u8FF0\u7B26\u65E0\u6548","Plugin distribution metadata is invalid":"\u63D2\u4EF6\u5206\u53D1\u5143\u6570\u636E\u65E0\u6548","Plugin distribution artifact handle is invalid":"\u63D2\u4EF6\u5206\u53D1\u4EA7\u7269\u53E5\u67C4\u65E0\u6548","Plugin distribution source does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u6765\u6E90\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution plugin identity does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u7684\u63D2\u4EF6\u8EAB\u4EFD\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution digest does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u6458\u8981\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution signature was rejected":"\u63D2\u4EF6\u5206\u53D1\u7B7E\u540D\u88AB\u62D2\u7EDD","Plugin distribution descriptor has expired":"\u63D2\u4EF6\u5206\u53D1\u63CF\u8FF0\u7B26\u5DF2\u8FC7\u671F","Plugin distribution size does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u5927\u5C0F\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution media type does not match the descriptor":"\u63D2\u4EF6\u5206\u53D1\u5A92\u4F53\u7C7B\u578B\u4E0E\u63CF\u8FF0\u7B26\u4E0D\u5339\u914D","Plugin distribution host operation failed":"\u63D2\u4EF6\u5206\u53D1\u5BBF\u4E3B\u64CD\u4F5C\u5931\u8D25","Plugin distribution artifact release failed":"\u63D2\u4EF6\u5206\u53D1\u4EA7\u7269\u91CA\u653E\u5931\u8D25","npm registry request timed out":"npm registry \u8BF7\u6C42\u8D85\u65F6","npm registry request was cancelled":"npm registry \u8BF7\u6C42\u5DF2\u53D6\u6D88","npm registry request failed":"npm registry \u8BF7\u6C42\u5931\u8D25","npm registry rate limit was exceeded":"npm registry \u901F\u7387\u9650\u5236\u5DF2\u89E6\u53D1","npm registry redirect limit exceeded":"\u8D85\u51FA npm registry \u91CD\u5B9A\u5411\u6B21\u6570\u4E0A\u9650","npm package was not found on the registry":"\u6CE8\u518C\u8868\u4E2D\u672A\u627E\u5230\u8BE5 npm \u5305","npm registry request did not succeed":"npm registry \u8BF7\u6C42\u672A\u6210\u529F","npm tarball download was cancelled":"npm tarball \u4E0B\u8F7D\u5DF2\u53D6\u6D88","npm tarball download did not succeed":"npm tarball \u4E0B\u8F7D\u672A\u6210\u529F","plugin package download was cancelled":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u5DF2\u53D6\u6D88","plugin package download timed out":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u8D85\u65F6","plugin package download failed":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u5931\u8D25","plugin package redirect limit exceeded":"\u8D85\u51FA\u63D2\u4EF6\u5305\u91CD\u5B9A\u5411\u6B21\u6570\u4E0A\u9650","plugin package download did not succeed":"\u63D2\u4EF6\u5305\u4E0B\u8F7D\u672A\u6210\u529F","plugin package response has no body":"\u63D2\u4EF6\u5305\u54CD\u5E94\u6CA1\u6709\u54CD\u5E94\u4F53","release API request timed out":"release API \u8BF7\u6C42\u8D85\u65F6","release API request was cancelled":"release API \u8BF7\u6C42\u5DF2\u53D6\u6D88","release API request failed":"release API \u8BF7\u6C42\u5931\u8D25","repo or release was not found":"\u672A\u627E\u5230\u4ED3\u5E93\u6216 release","release API request did not succeed":"release API \u8BF7\u6C42\u672A\u6210\u529F","release API redirect limit exceeded":"\u8D85\u51FA release API \u91CD\u5B9A\u5411\u6B21\u6570\u4E0A\u9650","release asset download was cancelled":"release \u8D44\u4EA7\u4E0B\u8F7D\u5DF2\u53D6\u6D88","repo has no published release":"\u4ED3\u5E93\u6CA1\u6709\u5DF2\u53D1\u5E03\u7684 release","Plugin registry request failed":"\u63D2\u4EF6\u6CE8\u518C\u8868\u8BF7\u6C42\u5931\u8D25","Plugin registry request was cancelled":"\u63D2\u4EF6\u6CE8\u518C\u8868\u8BF7\u6C42\u5DF2\u53D6\u6D88","Plugin registry request timed out":"\u63D2\u4EF6\u6CE8\u518C\u8868\u8BF7\u6C42\u8D85\u65F6","Disk registry source read was cancelled":"\u78C1\u76D8\u6CE8\u518C\u8868\u6E90\u8BFB\u53D6\u5DF2\u53D6\u6D88","Install store index could not be read":"\u65E0\u6CD5\u8BFB\u53D6\u5B89\u88C5\u5E97\u7D22\u5F15","Installed plugin manifest could not be read":"\u65E0\u6CD5\u8BFB\u53D6\u5DF2\u5B89\u88C5\u63D2\u4EF6\u7684 manifest","Plugin registry operation was cancelled":"\u63D2\u4EF6\u6CE8\u518C\u8868\u64CD\u4F5C\u5DF2\u53D6\u6D88","only toggles the enabled flag; the record lifecycle is {lifecycle} and the runtime will not load it":"\u4EC5\u5207\u6362 enabled \u6807\u5FD7\uFF1B\u8BE5\u8BB0\u5F55 lifecycle \u4E3A {lifecycle}\uFF0C\u8FD0\u884C\u65F6\u4E0D\u4F1A\u52A0\u8F7D","Paste the authorization code":"\u8BF7\u7C98\u8D34\u6388\u6743\u7801"};var example={"Loading...":"\u52A0\u8F7D\u4E2D\u2026","Hello, {name}!":"\u4F60\u597D\uFF0C{name}\uFF01"};var interactiveMode={"Working...":"\u5904\u7406\u4E2D\u2026","Thinking...":"\u601D\u8003\u4E2D...","({key} to interrupt)":"\uFF08{key} \u4E2D\u65AD\uFF09","({key} to cycle)":"\uFF08{key} \u5207\u6362\uFF09","(thinking: {level})":"\uFF08\u601D\u8003\uFF1A{level}\uFF09","to interrupt":"\u4E2D\u65AD","to clear":"\u6E05\u7A7A","{key} twice":"{key} \u4E24\u6B21","to exit":"\u9000\u51FA","to exit (empty)":"\u9000\u51FA\uFF08\u7F16\u8F91\u5668\u4E3A\u7A7A\u65F6\uFF09","to suspend":"\u6302\u8D77","to delete to end":"\u5220\u9664\u5230\u884C\u5C3E","to expand tools":"\u5C55\u5F00\u5DE5\u5177\u8F93\u51FA","to expand thinking":"\u5C55\u5F00\u601D\u8003","for external editor":"\u6253\u5F00\u5916\u90E8\u7F16\u8F91\u5668","for commands":"\u547D\u4EE4","to run bash":"\u8FD0\u884C bash","to run bash (no context)":"\u8FD0\u884C bash\uFF08\u4E0D\u8FDB\u4E0A\u4E0B\u6587\uFF09","to paste image (with text fallback)":"\u7C98\u8D34\u56FE\u7247\uFF08\u65E0\u56FE\u5219\u9000\u56DE\u6587\u672C\uFF09","to attach":"\u9644\u52A0\u6587\u4EF6",interrupt:"\u4E2D\u65AD","clear/exit":"\u6E05\u7A7A/\u9000\u51FA",commands:"\u547D\u4EE4",bash:"bash",more:"\u66F4\u591A","Press {key} to show full startup help and loaded resources.":"\u6309 {key} \u5C55\u793A\u5B8C\u6574\u542F\u52A8\u5E2E\u52A9\u4E0E\u5DF2\u52A0\u8F7D\u8D44\u6E90\u3002","Agent Forge can explain its own features and look up its docs. Ask it how to use or extend Agent Forge.":"Agent Forge \u80FD\u89E3\u91CA\u81EA\u8EAB\u529F\u80FD\u5E76\u67E5\u9605\u81EA\u5DF1\u7684\u6587\u6863\u3002\u53EF\u4EE5\u76F4\u63A5\u95EE\u5B83\u5982\u4F55\u4F7F\u7528\u6216\u6269\u5C55 Agent Forge\u3002","Model scope: {models}{hint}":"\u6A21\u578B\u8303\u56F4\uFF1A{models}{hint}","Updated to v{version}. Use {command} to view full changelog.":"\u5DF2\u66F4\u65B0\u5230 v{version}\u3002\u4F7F\u7528 {command} \u67E5\u770B\u5B8C\u6574\u53D8\u66F4\u65E5\u5FD7\u3002","What's New":"\u65B0\u7279\u6027","No changelog entries found.":"\u672A\u627E\u5230\u53D8\u66F4\u65E5\u5FD7\u6761\u76EE\u3002","New version {version} is available. Run":"\u65B0\u7248\u672C {version} \u53EF\u7528\u3002\u8BF7\u8FD0\u884C","Changelog:":"\u53D8\u66F4\u65E5\u5FD7\uFF1A","Changelog URL is not configured.":"\u672A\u914D\u7F6E\u53D8\u66F4\u65E5\u5FD7 URL\u3002","Update Available":"\u6709\u53EF\u7528\u66F4\u65B0","Package updates are available. Run":"\u6709\u53EF\u7528\u7684\u5305\u66F4\u65B0\u3002\u8BF7\u8FD0\u884C","Package Updates Available":"\u6709\u53EF\u7528\u7684\u5305\u66F4\u65B0","Packages:":"\u5305\uFF1A","Migrated credentials to auth.json: {providers}":"\u5DF2\u8FC1\u79FB\u51ED\u636E\u5230 auth.json\uFF1A{providers}","models.json error: {error}":"models.json \u9519\u8BEF\uFF1A{error}","tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.":"tmux extended-keys \u5DF2\u5173\u95ED\uFF0C\u4FEE\u9970 Enter \u952E\u53EF\u80FD\u5931\u6548\u3002\u8BF7\u5728 ~/.tmux.conf \u4E2D\u52A0\u5165 `set -g extended-keys on` \u5E76\u91CD\u542F tmux\u3002","tmux extended-keys-format is xterm. Agent Forge works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.":"tmux extended-keys-format \u4E3A xterm\uFF0CAgent Forge \u5728 csi-u \u4E0B\u5DE5\u4F5C\u6700\u4F73\u3002\u8BF7\u5728 ~/.tmux.conf \u4E2D\u52A0\u5165 `set -g extended-keys-format csi-u` \u5E76\u91CD\u542F tmux\u3002","Anthropic subscription auth is active. Third-party harness usage draws from extra usage and is billed per token, not your Claude plan limits. Manage extra usage at https://claude.ai/settings/usage. Disable this warning in /settings.":"Anthropic \u8BA2\u9605\u8BA4\u8BC1\u5904\u4E8E\u6D3B\u8DC3\u72B6\u6001\u3002\u7B2C\u4E09\u65B9 harness \u7528\u91CF\u8BA1\u5165 extra usage \u5E76\u6309 token \u8BA1\u8D39\uFF0C\u4E0D\u5360\u7528 Claude \u8BA1\u5212\u989D\u5EA6\u3002\u53EF\u5728 https://claude.ai/settings/usage \u7BA1\u7406 extra usage\u3002\u5728 /settings \u4E2D\u53EF\u5173\u95ED\u6B64\u8B66\u544A\u3002",Context:"\u4E0A\u4E0B\u6587",Skills:"\u6280\u80FD",Prompts:"\u63D0\u793A\u8BCD",Themes:"\u4E3B\u9898","[Skill conflicts]":"[\u6280\u80FD\u51B2\u7A81]","[Prompt conflicts]":"[\u63D0\u793A\u8BCD\u6A21\u677F\u51B2\u7A81]","[Theme conflicts]":"[\u4E3B\u9898\u51B2\u7A81]","Startup in progress \u2014 input queued and will run when startup completes":"\u542F\u52A8\u8FDB\u884C\u4E2D\u2014\u2014\u8F93\u5165\u5DF2\u6392\u961F\uFF0C\u542F\u52A8\u5B8C\u6210\u540E\u6267\u884C","A bash command is already running. Press Esc to cancel it first.":"\u5DF2\u6709 bash \u547D\u4EE4\u5728\u8FD0\u884C\u3002\u8BF7\u5148\u6309 Esc \u53D6\u6D88\u3002","No queued messages to restore":"\u6CA1\u6709\u53EF\u6062\u590D\u7684\u6392\u961F\u6D88\u606F","No queued messages to manage":"\u6CA1\u6709\u53EF\u7BA1\u7406\u7684\u6392\u961F\u6D88\u606F","Restored {count} queued message to editor":"\u5DF2\u6062\u590D {count} \u6761\u6392\u961F\u6D88\u606F\u5230\u7F16\u8F91\u5668","Restored {count} queued messages to editor":"\u5DF2\u6062\u590D {count} \u6761\u6392\u961F\u6D88\u606F\u5230\u7F16\u8F91\u5668","Usage: /queue <text>":"\u7528\u6CD5\uFF1A/queue <\u6587\u672C>","Queued message for after compaction":"\u6D88\u606F\u5DF2\u6392\u961F\uFF0C\u538B\u7F29\u540E\u53D1\u9001","Failed to send queued message: {error}":"\u53D1\u9001\u6392\u961F\u6D88\u606F\u5931\u8D25\uFF1A{error}","Failed to send queued messages: {error}":"\u53D1\u9001\u6392\u961F\u6D88\u606F\u5931\u8D25\uFF1A{error}","Steering: {message}":"\u8F6C\u5411\uFF1A{message}","Follow-up: {message}":"\u540E\u7EED\uFF1A{message}","\u21B3 {key} to edit all queued messages":"\u21B3 {key} \u7F16\u8F91\u5168\u90E8\u6392\u961F\u6D88\u606F","Aborted after {count} retry attempt":"\u5DF2\u4E2D\u6B62\uFF0C\u6B64\u524D\u91CD\u8BD5 {count} \u6B21","Aborted after {count} retry attempts":"\u5DF2\u4E2D\u6B62\uFF0C\u6B64\u524D\u91CD\u8BD5 {count} \u6B21","Operation aborted":"\u64CD\u4F5C\u5DF2\u4E2D\u6B62","Compaction cancelled":"\u5DF2\u53D6\u6D88\u538B\u7F29","Auto-compaction cancelled":"\u5DF2\u53D6\u6D88\u81EA\u52A8\u538B\u7F29","Auto-compaction skipped: nothing to compact":"\u81EA\u52A8\u538B\u7F29\u5DF2\u8DF3\u8FC7\uFF1A\u6CA1\u6709\u53EF\u538B\u7F29\u5185\u5BB9","Retry failed after {count} attempts: {error}":"\u91CD\u8BD5 {count} \u6B21\u540E\u5931\u8D25\uFF1A{error}","Previous reply was empty, retrying...":"\u4E0A\u4E00\u6761\u56DE\u590D\u4E3A\u7A7A\uFF0C\u6B63\u5728\u91CD\u8BD5\u2026",Compaction:"\u538B\u7F29","Branch summary":"\u5206\u652F\u6458\u8981","{tokens} tokens billed{cost}":"\u8BA1\u8D39 {tokens} token{cost}","Anthropic dropped {count} thinking blocks (details in session)":"Anthropic \u4E22\u5F03\u4E86 {count} \u4E2A\u601D\u8003\u5757\uFF08\u8BE6\u60C5\u89C1\u4F1A\u8BDD\uFF09","{tokens} tokens re-billed{cost}":"\u91CD\u65B0\u8BA1\u8D39 {tokens} token{cost}","Cache miss":"\u7F13\u5B58\u672A\u547D\u4E2D","Cache miss after model switch":"\u5207\u6362\u6A21\u578B\u540E\u7F13\u5B58\u672A\u547D\u4E2D","Cache miss after {minutes}m idle":"\u95F2\u7F6E {minutes} \u5206\u949F\u540E\u7F13\u5B58\u672A\u547D\u4E2D","Session compacted {count} time":"\u4F1A\u8BDD\u5DF2\u538B\u7F29 {count} \u6B21","Session compacted {count} times":"\u4F1A\u8BDD\u5DF2\u538B\u7F29 {count} \u6B21","To resume this session:":"\u6062\u590D\u672C\u4F1A\u8BDD\uFF1A","{app} exiting due to uncaughtException:":"{app} \u56E0\u672A\u6355\u83B7\u5F02\u5E38\u9000\u51FA\uFF1A","Suspend to background is not supported on Windows":"Windows \u4E0D\u652F\u6301\u6302\u8D77\u5230\u540E\u53F0","Current model does not support thinking":"\u5F53\u524D\u6A21\u578B\u4E0D\u652F\u6301\u601D\u8003","Thinking level: {level}":"\u601D\u8003\u7EA7\u522B\uFF1A{level}","Only one model in scope":"\u8303\u56F4\u5185\u53EA\u6709\u4E00\u4E2A\u6A21\u578B","Only one model available":"\u53EA\u6709\u4E00\u4E2A\u53EF\u7528\u6A21\u578B","Switched to {model}{thinking}":"\u5DF2\u5207\u6362\u5230 {model}{thinking}","Tool output: expanded":"\u5DE5\u5177\u8F93\u51FA\uFF1A\u5DF2\u5C55\u5F00","Tool output: collapsed":"\u5DE5\u5177\u8F93\u51FA\uFF1A\u5DF2\u6298\u53E0","Thinking blocks: hidden":"\u601D\u8003\u5757\uFF1A\u5DF2\u9690\u85CF","Thinking blocks: visible":"\u601D\u8003\u5757\uFF1A\u5DF2\u663E\u793A","\u273B thinking":"\u273B \u601D\u8003","{count} tool":"{count} \u4E2A\u5DE5\u5177","{count} tools":"{count} \u4E2A\u5DE5\u5177","{count} failed":"{count} \u4E2A\u5931\u8D25","not set":"\u672A\u8BBE\u7F6E","HTTP idle timeout: {value}":"HTTP \u7A7A\u95F2\u8D85\u65F6\uFF1A{value}","Close active overlays before changing TUI mode":"\u5207\u6362 TUI \u6A21\u5F0F\u524D\u8BF7\u5148\u5173\u95ED\u6D3B\u52A8\u6D6E\u5C42","TUI mode: {mode}":"TUI \u6A21\u5F0F\uFF1A{mode}",'Suite "{id}" was not found. The selected suite applies to the new session.':'\u672A\u627E\u5230 suite "{id}"\u3002\u6240\u9009 suite \u5C06\u5E94\u7528\u4E8E\u65B0\u4F1A\u8BDD\u3002','Suite "{id}" was not found \u2014 continuing without a suite. Use /suite to choose one.':'\u672A\u627E\u5230 suite "{id}"\u2014\u2014\u5C06\u5728\u65E0 suite \u4E0B\u7EE7\u7EED\u3002\u53EF\u4F7F\u7528 /suite \u9009\u62E9\u3002',"Suite set to {id} \u2014 new session started":"suite \u5DF2\u8BBE\u4E3A {id}\u2014\u2014\u65B0\u4F1A\u8BDD\u5DF2\u5F00\u59CB","Failed to create session":"\u521B\u5EFA\u4F1A\u8BDD\u5931\u8D25",'Cross-suite compatible mode: session created with "{from}", assembling with "{to}"':'\u8DE8 suite \u517C\u5BB9\u6A21\u5F0F\uFF1A\u4F1A\u8BDD\u521B\u5EFA\u4E8E "{from}"\uFF0C\u6B63\u4EE5 "{to}" \u7EC4\u88C5',"No workflow in this session":"\u672C\u4F1A\u8BDD\u6CA1\u6709 workflow","Workflow action staged \u2014 review in the editor and submit":"workflow \u52A8\u4F5C\u5DF2\u6682\u5B58\u2014\u2014\u8BF7\u5728\u7F16\u8F91\u5668\u4E2D\u5BA1\u9605\u540E\u63D0\u4EA4","No subagent sessions in this session":"\u672C\u4F1A\u8BDD\u6CA1\u6709\u5B50\u4EE3\u7406\u4F1A\u8BDD","No entries in session":"\u4F1A\u8BDD\u4E2D\u6CA1\u6709\u6761\u76EE","Already at this point":"\u5DF2\u5728\u8BE5\u8282\u70B9","Summarize branch?":"\u751F\u6210\u5206\u652F\u6458\u8981\uFF1F","No summary":"\u4E0D\u751F\u6210\u6458\u8981",Summarize:"\u751F\u6210\u6458\u8981","Summarize with custom prompt":"\u4F7F\u7528\u81EA\u5B9A\u4E49\u63D0\u793A\u751F\u6210\u6458\u8981","Custom summarization instructions":"\u81EA\u5B9A\u4E49\u6458\u8981\u6307\u4EE4","Branch summarization cancelled":"\u5DF2\u53D6\u6D88\u5206\u652F\u6458\u8981","Navigation cancelled":"\u5DF2\u53D6\u6D88\u5BFC\u822A","Navigated to selected point":"\u5DF2\u5BFC\u822A\u5230\u6240\u9009\u8282\u70B9","Selected entry has no text to copy":"\u6240\u9009\u6761\u76EE\u6CA1\u6709\u53EF\u590D\u5236\u7684\u6587\u672C","Copied selected message to clipboard":"\u5DF2\u590D\u5236\u6240\u9009\u6D88\u606F\u5230\u526A\u8D34\u677F","Resumed session":"\u5DF2\u6062\u590D\u4F1A\u8BDD","Resume cancelled":"\u5DF2\u53D6\u6D88\u6062\u590D","Resumed session in current cwd":"\u5DF2\u5728\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u6062\u590D\u4F1A\u8BDD","Failed to resume session":"\u6062\u590D\u4F1A\u8BDD\u5931\u8D25","Usage: /import <path.jsonl>":"\u7528\u6CD5\uFF1A/import <\u8DEF\u5F84.jsonl>","Import session":"\u5BFC\u5165\u4F1A\u8BDD","Replace current session with {path}?":"\u7528 {path} \u66FF\u6362\u5F53\u524D\u4F1A\u8BDD\uFF1F","Import cancelled":"\u5DF2\u53D6\u6D88\u5BFC\u5165","Session imported from: {path}":"\u4F1A\u8BDD\u5BFC\u5165\u81EA\uFF1A{path}","Failed to import session: {error}":"\u5BFC\u5165\u4F1A\u8BDD\u5931\u8D25\uFF1A{error}","Failed to import session":"\u5BFC\u5165\u4F1A\u8BDD\u5931\u8D25","Session exported to: {path}":"\u4F1A\u8BDD\u5DF2\u5BFC\u51FA\u5230\uFF1A{path}","Failed to export session: {error}":"\u5BFC\u51FA\u4F1A\u8BDD\u5931\u8D25\uFF1A{error}","No agent messages to copy yet.":"\u8FD8\u6CA1\u6709\u53EF\u590D\u5236\u7684\u4EE3\u7406\u6D88\u606F\u3002","Copied!":"\u5DF2\u590D\u5236\uFF01","Copied last agent message to clipboard":"\u5DF2\u590D\u5236\u6700\u8FD1\u4E00\u6761\u4EE3\u7406\u6D88\u606F\u5230\u526A\u8D34\u677F","Session name: {name}":"\u4F1A\u8BDD\u540D\u79F0\uFF1A{name}","Usage: /name <name>":"\u7528\u6CD5\uFF1A/name <\u540D\u79F0>","Session name was normalized from {from} to {to}":"\u4F1A\u8BDD\u540D\u79F0\u5DF2\u4ECE {from} \u89C4\u8303\u5316\u4E3A {to}","Session name set: {name}":"\u4F1A\u8BDD\u540D\u79F0\u5DF2\u8BBE\u7F6E\uFF1A{name}","No background subagents running":"\u6CA1\u6709\u6B63\u5728\u8FD0\u884C\u7684\u540E\u53F0\u5B50\u4EE3\u7406","Terminated {count} background subagent":"\u5DF2\u7EC8\u6B62 {count} \u4E2A\u540E\u53F0\u5B50\u4EE3\u7406","Terminated {count} background subagents":"\u5DF2\u7EC8\u6B62 {count} \u4E2A\u540E\u53F0\u5B50\u4EE3\u7406","{count} subagent still running \xB7 /stop-agents stops all (Esc only stops the current turn)":"{count} \u4E2A\u5B50\u4EE3\u7406\u4ECD\u5728\u8FD0\u884C \xB7 /stop-agents \u7EC8\u6B62\u5168\u90E8\uFF08Esc \u53EA\u505C\u5F53\u524D\u56DE\u5408\uFF09","{count} subagents still running \xB7 /stop-agents stops all (Esc only stops the current turn)":"{count} \u4E2A\u5B50\u4EE3\u7406\u4ECD\u5728\u8FD0\u884C \xB7 /stop-agents \u7EC8\u6B62\u5168\u90E8\uFF08Esc \u53EA\u505C\u5F53\u524D\u56DE\u5408\uFF09","Session Info":"\u4F1A\u8BDD\u4FE1\u606F","Name:":"\u540D\u79F0\uFF1A","File:":"\u6587\u4EF6\uFF1A","ID:":"ID\uFF1A","In-memory":"\u5185\u5B58\u4E2D",Messages:"\u6D88\u606F","Total:":"\u603B\u8BA1\uFF1A","User:":"\u7528\u6237\uFF1A","Assistant:":"\u52A9\u624B\uFF1A","Tools:":"\u5DE5\u5177\uFF1A","{calls} calls, {results} results":"{calls} \u6B21\u8C03\u7528\uFF0C{results} \u6B21\u7ED3\u679C",Tokens:"Token","Input:":"\u8F93\u5165\uFF1A","Cached:":"\u5DF2\u7F13\u5B58\uFF1A","({count} written to cache)":"\uFF08{count} \u5199\u5165\u7F13\u5B58\uFF09","Uncached:":"\u672A\u7F13\u5B58\uFF1A","Output:":"\u8F93\u51FA\uFF1A","By Provider/Model":"\u6309\u4F9B\u5E94\u5546/\u6A21\u578B","(cache {rate}%, W {written})":"\uFF08\u7F13\u5B58 {rate}%\uFF0C\u5199 {written}\uFF09",Cost:"\u8D39\u7528","({tokens} tokens)":"\uFF08{tokens} token\uFF09","{count} miss":"{count} \u6B21\u672A\u547D\u4E2D","{count} misses":"{count} \u6B21\u672A\u547D\u4E2D","{tokens} tokens, {misses}":"{tokens} token\uFF0C{misses}","Cache Re-billed:":"\u7F13\u5B58\u91CD\u65B0\u8BA1\u8D39\uFF1A","Metrics are not available: the observability plugin is not mounted in this session":"\u6307\u6807\u4E0D\u53EF\u7528\uFF1A\u672C\u4F1A\u8BDD\u672A\u6302\u8F7D observability \u63D2\u4EF6","Invalid turns: {turns}. Usage: /metrics [turns]":"\u65E0\u6548\u7684\u8F6E\u6570\uFF1A{turns}\u3002\u7528\u6CD5\uFF1A/metrics [turns]",Command:"\u547D\u4EE4",Description:"\u8BF4\u660E","Built-in commands":"\u5185\u7F6E\u547D\u4EE4","Prompt templates":"\u63D0\u793A\u8BCD\u6A21\u677F","Type `/` for autocomplete. Use `/hotkeys` for keyboard shortcuts.":"\u8F93\u5165 `/` \u81EA\u52A8\u8865\u5168\u3002\u4F7F\u7528 `/hotkeys` \u67E5\u770B\u5FEB\u6377\u952E\u3002","Available Commands":"\u53EF\u7528\u547D\u4EE4","Open model selector":"\u6253\u5F00\u6A21\u578B\u9009\u62E9\u5668","Copy selection in /tree":"\u5728 /tree \u4E2D\u590D\u5236\u9009\u533A","External editor (inside dialog inputs)":"\u5916\u90E8\u7F16\u8F91\u5668\uFF08\u5BF9\u8BDD\u6846\u8F93\u5165\u5185\uFF09","Queue follow-up message":"\u6392\u961F\u540E\u7EED\u6D88\u606F","Restore queued messages":"\u6062\u590D\u6392\u961F\u6D88\u606F","Cycle thinking level":"\u5FAA\u73AF\u5207\u6362\u601D\u8003\u7EA7\u522B","Cycle models":"\u5FAA\u73AF\u5207\u6362\u6A21\u578B","Suspend to background":"\u6302\u8D77\u5230\u540E\u53F0",Navigation:"\u5BFC\u822A",Key:"\u6309\u952E",Action:"\u52A8\u4F5C","Move cursor / browse history":"\u79FB\u52A8\u5149\u6807 / \u6D4F\u89C8\u5386\u53F2","Move by word":"\u6309\u8BCD\u79FB\u52A8","Start of line":"\u884C\u9996","End of line":"\u884C\u5C3E","Jump forward to character":"\u5411\u540E\u8DF3\u5230\u5B57\u7B26","Jump backward to character":"\u5411\u524D\u8DF3\u5230\u5B57\u7B26","Scroll by page":"\u6309\u9875\u6EDA\u52A8",Editing:"\u7F16\u8F91","Send message":"\u53D1\u9001\u6D88\u606F","New line":"\u6362\u884C","New line (Ctrl+Enter on Windows Terminal)":"\u6362\u884C\uFF08Windows Terminal \u4E0A\u4E3A Ctrl+Enter\uFF09","Delete word backwards":"\u5411\u524D\u5220\u9664\u5355\u8BCD","Delete word forwards":"\u5411\u540E\u5220\u9664\u5355\u8BCD","Delete to start of line":"\u5220\u9664\u5230\u884C\u9996","Delete to end of line":"\u5220\u9664\u5230\u884C\u5C3E","Paste the most-recently-deleted text":"\u7C98\u8D34\u6700\u8FD1\u5220\u9664\u7684\u6587\u672C","Cycle through the deleted text after pasting":"\u7C98\u8D34\u540E\u5FAA\u73AF\u5207\u6362\u5DF2\u5220\u9664\u6587\u672C",Undo:"\u64A4\u9500",Other:"\u5176\u4ED6","Path completion / accept autocomplete":"\u8DEF\u5F84\u8865\u5168 / \u63A5\u53D7\u81EA\u52A8\u8865\u5168","Cancel autocomplete / abort streaming":"\u53D6\u6D88\u81EA\u52A8\u8865\u5168 / \u4E2D\u6B62\u6D41\u5F0F\u8F93\u51FA","Clear editor (first) / exit (second)":"\u6E05\u7A7A\u7F16\u8F91\u5668\uFF08\u7B2C\u4E00\u6B21\uFF09/ \u9000\u51FA\uFF08\u7B2C\u4E8C\u6B21\uFF09","Exit (when editor is empty)":"\u9000\u51FA\uFF08\u7F16\u8F91\u5668\u4E3A\u7A7A\u65F6\uFF09","Toggle tool output expansion":"\u5207\u6362\u5DE5\u5177\u8F93\u51FA\u5C55\u5F00","Toggle thinking block visibility":"\u5207\u6362\u601D\u8003\u5757\u53EF\u89C1\u6027","Paste image or text from clipboard":"\u4ECE\u526A\u8D34\u677F\u7C98\u8D34\u56FE\u7247\u6216\u6587\u672C","Slash commands":"\u659C\u6760\u547D\u4EE4","Run bash command":"\u8FD0\u884C bash \u547D\u4EE4","Run bash command (excluded from context)":"\u8FD0\u884C bash \u547D\u4EE4\uFF08\u4E0D\u8FDB\u4E0A\u4E0B\u6587\uFF09","Keyboard Shortcuts":"\u952E\u76D8\u5FEB\u6377\u952E","\u2713 New session started":"\u2713 \u65B0\u4F1A\u8BDD\u5DF2\u5F00\u59CB","Debug output at {date}":"\u8C03\u8BD5\u8F93\u51FA\u65F6\u95F4\uFF1A{date}","Terminal: {columns}x{rows}":"\u7EC8\u7AEF\uFF1A{columns}x{rows}","Total lines: {count}":"\u603B\u884C\u6570\uFF1A{count}","=== All rendered lines with visible widths ===":"=== \u5168\u90E8\u6E32\u67D3\u884C\uFF08\u542B\u53EF\u89C1\u5BBD\u5EA6\uFF09===","=== Agent messages (JSONL) ===":"=== \u4EE3\u7406\u6D88\u606F\uFF08JSONL\uFF09===","\u2713 Debug log written":"\u2713 \u8C03\u8BD5\u65E5\u5FD7\u5DF2\u5199\u5165","Bash command failed: {error}":"bash \u547D\u4EE4\u5931\u8D25\uFF1A{error}","Error: {message}":"\u9519\u8BEF\uFF1A{message}","Warning: {message}":"\u8B66\u544A\uFF1A{message}",Error:"\u9519\u8BEF","Unknown error":"\u672A\u77E5\u9519\u8BEF","Unknown error occurred":"\u53D1\u751F\u672A\u77E5\u9519\u8BEF","Reload failed: {error}":"\u91CD\u8F7D\u5931\u8D25\uFF1A{error}","Wait for the current response to finish before reloading.":"\u8BF7\u7B49\u5F85\u5F53\u524D\u54CD\u5E94\u5B8C\u6210\u540E\u518D\u91CD\u8F7D\u3002","Wait for compaction to finish before reloading.":"\u8BF7\u7B49\u5F85\u538B\u7F29\u5B8C\u6210\u540E\u518D\u91CD\u8F7D\u3002","Reloading keybindings, skills, prompts, themes, and context files...":"\u6B63\u5728\u91CD\u8F7D\u952E\u4F4D\u3001\u6280\u80FD\u3001\u63D0\u793A\u8BCD\u6A21\u677F\u3001\u4E3B\u9898\u4E0E\u4E0A\u4E0B\u6587\u6587\u4EF6\u2026","Reloaded keybindings, skills, prompts, themes, and context files":"\u5DF2\u91CD\u8F7D\u952E\u4F4D\u3001\u6280\u80FD\u3001\u63D0\u793A\u8BCD\u6A21\u677F\u3001\u4E3B\u9898\u4E0E\u4E0A\u4E0B\u6587\u6587\u4EF6"};var keybindings={"Move cursor up":"\u4E0A\u79FB\u5149\u6807","Move cursor down":"\u4E0B\u79FB\u5149\u6807","Select previous prompt history entry":"\u9009\u62E9\u4E0A\u4E00\u6761\u8F93\u5165\u5386\u53F2","Select next prompt history entry":"\u9009\u62E9\u4E0B\u4E00\u6761\u8F93\u5165\u5386\u53F2","Move cursor left":"\u5DE6\u79FB\u5149\u6807","Move cursor right":"\u53F3\u79FB\u5149\u6807","Move cursor word left":"\u5DE6\u79FB\u4E00\u4E2A\u8BCD","Move cursor word right":"\u53F3\u79FB\u4E00\u4E2A\u8BCD","Move to line start":"\u79FB\u5230\u884C\u9996","Move to line end":"\u79FB\u5230\u884C\u5C3E","Jump forward to character":"\u5411\u540E\u8DF3\u5230\u5B57\u7B26","Jump backward to character":"\u5411\u524D\u8DF3\u5230\u5B57\u7B26","Page up":"\u5411\u4E0A\u7FFB\u9875","Page down":"\u5411\u4E0B\u7FFB\u9875","Delete character backward":"\u5411\u524D\u5220\u9664\u5B57\u7B26","Delete character forward":"\u5411\u540E\u5220\u9664\u5B57\u7B26","Delete word backward":"\u5411\u524D\u5220\u9664\u5355\u8BCD","Delete word forward":"\u5411\u540E\u5220\u9664\u5355\u8BCD","Delete to line start":"\u5220\u9664\u5230\u884C\u9996","Delete to line end":"\u5220\u9664\u5230\u884C\u5C3E",Yank:"\u7C98\u8D34\u6700\u8FD1\u5220\u9664\u6587\u672C","Yank pop":"\u5FAA\u73AF\u5207\u6362\u5DF2\u5220\u9664\u6587\u672C",Undo:"\u64A4\u9500","Insert newline":"\u63D2\u5165\u6362\u884C","Submit input":"\u63D0\u4EA4\u8F93\u5165","Tab / autocomplete":"Tab / \u81EA\u52A8\u8865\u5168","Copy selection":"\u590D\u5236\u9009\u533A","Move selection up":"\u4E0A\u79FB\u9009\u4E2D\u9879","Move selection down":"\u4E0B\u79FB\u9009\u4E2D\u9879","Selection page up":"\u9009\u4E2D\u9879\u5411\u4E0A\u7FFB\u9875","Selection page down":"\u9009\u4E2D\u9879\u5411\u4E0B\u7FFB\u9875","Confirm selection":"\u786E\u8BA4\u9009\u62E9","Cancel selection":"\u53D6\u6D88\u9009\u62E9","Scroll viewport up one page":"\u89C6\u53E3\u5411\u4E0A\u6EDA\u52A8\u4E00\u9875","Scroll viewport down one page":"\u89C6\u53E3\u5411\u4E0B\u6EDA\u52A8\u4E00\u9875","Scroll viewport up half a page":"\u89C6\u53E3\u5411\u4E0A\u6EDA\u52A8\u534A\u9875","Scroll viewport down half a page":"\u89C6\u53E3\u5411\u4E0B\u6EDA\u52A8\u534A\u9875","Scroll viewport up one line":"\u89C6\u53E3\u5411\u4E0A\u6EDA\u52A8\u4E00\u884C","Scroll viewport down one line":"\u89C6\u53E3\u5411\u4E0B\u6EDA\u52A8\u4E00\u884C","Jump to previous semantic prompt":"\u8DF3\u5230\u4E0A\u4E00\u4E2A\u8BED\u4E49\u63D0\u793A","Jump to next semantic prompt":"\u8DF3\u5230\u4E0B\u4E00\u4E2A\u8BED\u4E49\u63D0\u793A","Search the primary scroll view":"\u641C\u7D22\u4E3B\u6EDA\u52A8\u89C6\u56FE","Select the next search match":"\u9009\u62E9\u4E0B\u4E00\u4E2A\u641C\u7D22\u5339\u914D","Select the previous search match":"\u9009\u62E9\u4E0A\u4E00\u4E2A\u641C\u7D22\u5339\u914D","Close transcript search":"\u5173\u95ED\u4F1A\u8BDD\u8BB0\u5F55\u641C\u7D22","Scroll viewport to top":"\u89C6\u53E3\u6EDA\u52A8\u5230\u9876\u90E8","Scroll viewport to bottom":"\u89C6\u53E3\u6EDA\u52A8\u5230\u5E95\u90E8","Trigger the global TUI debug handler":"\u89E6\u53D1\u5168\u5C40 TUI \u8C03\u8BD5\u5904\u7406\u5668","to expand":"\u5C55\u5F00"};var sessionCleanup={"Usage: /clean-sessions [days] - days must be a positive integer (default 7)":"\u7528\u6CD5\uFF1A/clean-sessions [days] - days \u5FC5\u987B\u4E3A\u6B63\u6574\u6570\uFF08\u9ED8\u8BA4 7\uFF09","No sessions untouched for {days} days - nothing to clean":"\u6CA1\u6709\u8FDE\u7EED {days} \u5929\u65E0\u53D8\u52A8\u7684\u4F1A\u8BDD - \u65E0\u53EF\u6E05\u7406","{count} sessions ({size}) untouched since {cutoff} - confirm to delete":"{count} \u4E2A\u4F1A\u8BDD\uFF08{size}\uFF09\u81EA {cutoff} \u8D77\u65E0\u53D8\u52A8 - \u786E\u8BA4\u540E\u5220\u9664","Clean old sessions":"\u6E05\u7406\u65E7\u4F1A\u8BDD","Permanently delete {count} sessions ({size}) untouched for {days} days? This cannot be undone.":"\u6C38\u4E45\u5220\u9664 {count} \u4E2A\u8FDE\u7EED {days} \u5929\u65E0\u53D8\u52A8\u7684\u4F1A\u8BDD\uFF08{size}\uFF09\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002","Clean-sessions cancelled":"\u5DF2\u53D6\u6D88\u4F1A\u8BDD\u6E05\u7406","Deleted {count} sessions, freed {size}":"\u5DF2\u5220\u9664 {count} \u4E2A\u4F1A\u8BDD\uFF0C\u91CA\u653E {size}"};var slashCommands={"Open settings menu":"\u6253\u5F00\u8BBE\u7F6E\u83DC\u5355","Select model (opens selector UI)":"\u9009\u62E9\u6A21\u578B\uFF08\u6253\u5F00\u9009\u62E9\u5668\u754C\u9762\uFF09","Navigate session tree (switch branches)":"\u6D4F\u89C8\u4F1A\u8BDD\u6811\uFF08\u5207\u6362\u5206\u652F\uFF09","Set thinking level":"\u8BBE\u7F6E\u601D\u8003\u7B49\u7EA7","Set the active suite (takes effect in new sessions)":"\u8BBE\u7F6E\u5F53\u524D suite\uFF08\u5BF9\u65B0\u4F1A\u8BDD\u751F\u6548\uFF09","Enable/disable models in the /model cycling scope":"\u542F\u7528/\u7981\u7528 /model \u8F6E\u6362\u8303\u56F4\u5185\u7684\u6A21\u578B","Export session (HTML default, or specify path: .html/.jsonl)":"\u5BFC\u51FA\u4F1A\u8BDD\uFF08\u9ED8\u8BA4 HTML\uFF0C\u6216\u6307\u5B9A\u8DEF\u5F84\uFF1A.html/.jsonl\uFF09","Import and resume a session from a JSONL file":"\u4ECE JSONL \u6587\u4EF6\u5BFC\u5165\u5E76\u6062\u590D\u4F1A\u8BDD","Copy last agent message to clipboard":"\u590D\u5236\u4E0A\u4E00\u6761 agent \u6D88\u606F\u5230\u526A\u8D34\u677F","Set session display name":"\u8BBE\u7F6E\u4F1A\u8BDD\u663E\u793A\u540D\u79F0","Show session info and stats":"\u663E\u793A\u4F1A\u8BDD\u4FE1\u606F\u4E0E\u7EDF\u8BA1","Show product metrics (turns, tools, memory recall)":"\u663E\u793A\u4EA7\u54C1\u6307\u6807\uFF08\u8F6E\u6B21\u3001\u5DE5\u5177\u3001\u8BB0\u5FC6\u53EC\u56DE\uFF09","Show changelog entries":"\u663E\u793A\u66F4\u65B0\u65E5\u5FD7\u6761\u76EE","Show available commands":"\u663E\u793A\u53EF\u7528\u547D\u4EE4","Show all keyboard shortcuts":"\u663E\u793A\u5168\u90E8\u952E\u76D8\u5FEB\u6377\u952E","Return to any earlier prompt and continue from there (the original path stays as a branch)":"\u56DE\u5230\u4EFB\u610F\u8F83\u65E9\u7684\u63D0\u793A\u8BCD\u5E76\u4ECE\u8BE5\u5904\u7EE7\u7EED\uFF08\u539F\u8DEF\u5F84\u4FDD\u7559\u4E3A\u5206\u652F\uFF09","Duplicate the current session at the current position":"\u5728\u5F53\u524D\u4F4D\u7F6E\u590D\u5236\u5F53\u524D\u4F1A\u8BDD","Configure provider authentication":"\u914D\u7F6E provider \u8BA4\u8BC1","Remove provider authentication":"\u79FB\u9664 provider \u8BA4\u8BC1","Start a new session":"\u5F00\u59CB\u65B0\u4F1A\u8BDD","Terminate all background subagents (Esc never touches them)":"\u7EC8\u6B62\u6240\u6709\u540E\u53F0\u5B50\u4EE3\u7406\uFF08Esc \u4E0D\u4F1A\u89E6\u53CA\u5B83\u4EEC\uFF09","Manually compact the session context":"\u624B\u52A8\u538B\u7F29\u4F1A\u8BDD\u4E0A\u4E0B\u6587","Resume a different session":"\u6062\u590D\u53E6\u4E00\u4E2A\u4F1A\u8BDD","Delete session files untouched for N days to free disk space":"\u5220\u9664\u8D85\u8FC7 N \u5929\u65E0\u53D8\u52A8\u7684\u4F1A\u8BDD\u6587\u4EF6\u4EE5\u91CA\u653E\u78C1\u76D8\u7A7A\u95F4","Queue a message for after the current run":"\u4E3A\u5F53\u524D\u8FD0\u884C\u7ED3\u675F\u540E\u6392\u961F\u4E00\u6761\u6D88\u606F","Restore queued messages back to the editor":"\u5C06\u6392\u961F\u7684\u6D88\u606F\u6062\u590D\u5230\u7F16\u8F91\u5668","Open the queued messages manager":"\u6253\u5F00\u6392\u961F\u6D88\u606F\u7BA1\u7406\u5668","Edit the current input in an external editor":"\u5728\u5916\u90E8\u7F16\u8F91\u5668\u4E2D\u7F16\u8F91\u5F53\u524D\u8F93\u5165","Browse this session's subagent sessions (read-only)":"\u6D4F\u89C8\u672C\u4F1A\u8BDD\u7684\u5B50\u4EE3\u7406\u4F1A\u8BDD\uFF08\u53EA\u8BFB\uFF09","Reload keybindings, extensions, skills, prompts, themes, and context files":"\u91CD\u65B0\u52A0\u8F7D\u952E\u4F4D\u7ED1\u5B9A\u3001\u6269\u5C55\u3001skill\u3001\u63D0\u793A\u6A21\u677F\u3001\u4E3B\u9898\u4E0E\u4E0A\u4E0B\u6587\u6587\u4EF6","Promote a memory preference to user-default (visible in every suite)":"\u5C06\u4E00\u6761\u8BB0\u5FC6\u504F\u597D\u63D0\u5347\u4E3A\u7528\u6237\u9ED8\u8BA4\uFF08\u5728\u6BCF\u4E2A suite \u53EF\u89C1\uFF09","Quit {app}":"\u9000\u51FA {app}"};var tuiBuiltin={"Find transcript":"\u641C\u7D22\u4F1A\u8BDD\u8BB0\u5F55","No matches":"\u65E0\u5339\u914D","Copied!":"\u5DF2\u590D\u5236\uFF01","Copy failed":"\u590D\u5236\u5931\u8D25"};var tuiComponentsMisc={"(sub)":"\uFF08\u8BA2\u9605\uFF09","(auto)":"\uFF08\u81EA\u52A8\uFF09","no-model":"\u65E0\u6A21\u578B","{model} \u2022 thinking off":"{model} \u2022 \u601D\u8003\u5173\u95ED","Retrying ({attempt}/{max}) in {seconds}s... ({key} to cancel)":"\u7B2C {attempt}/{max} \u6B21\u91CD\u8BD5\uFF0C{seconds} \u79D2\u540E...\uFF08{key} \u53D6\u6D88\uFF09","Compacting context... ({key} to cancel)":"\u6B63\u5728\u538B\u7F29\u4E0A\u4E0B\u6587...\uFF08{key} \u53D6\u6D88\uFF09","Context overflow detected, Auto-compacting... ({key} to cancel)":"\u68C0\u6D4B\u5230\u4E0A\u4E0B\u6587\u6EA2\u51FA\uFF0C\u81EA\u52A8\u538B\u7F29\u4E2D...\uFF08{key} \u53D6\u6D88\uFF09","Auto-compacting... ({key} to cancel)":"\u81EA\u52A8\u538B\u7F29\u4E2D...\uFF08{key} \u53D6\u6D88\uFF09","Summarizing branch... ({key} to cancel)":"\u6B63\u5728\u751F\u6210\u5206\u652F\u6458\u8981...\uFF08{key} \u53D6\u6D88\uFF09","Running... ({key} to cancel)":"\u8FD0\u884C\u4E2D...\uFF08{key} \u53D6\u6D88\uFF09","({key} to collapse)":"\uFF08{key} \u6298\u53E0\uFF09","... {count} more lines ({key} to expand)":"... \u8FD8\u6709 {count} \u884C\uFF08{key} \u5C55\u5F00\uFF09","(cancelled)":"\uFF08\u5DF2\u53D6\u6D88\uFF09","(exit {code})":"\uFF08\u9000\u51FA\u7801 {code}\uFF09","Output truncated. Full output: {path}":"\u8F93\u51FA\u5DF2\u622A\u65AD\u3002\u5B8C\u6574\u8F93\u51FA\uFF1A{path}","Thinking...":"\u601D\u8003\u4E2D...","Response was truncated before completion.":"\u54CD\u5E94\u5728\u5B8C\u6210\u524D\u88AB\u622A\u65AD\u3002","Operation aborted":"\u64CD\u4F5C\u5DF2\u4E2D\u6B62","Error: {message}":"\u9519\u8BEF\uFF1A{message}","No user messages found":"\u672A\u627E\u5230\u7528\u6237\u6D88\u606F","Message {position} of {total}":"\u7B2C {position} \u6761\uFF0C\u5171 {total} \u6761","Fork from Message":"\u4ECE\u6D88\u606F\u5206\u53C9","Select a user message to copy the active path up to that point into a new session":"\u9009\u62E9\u4E00\u6761\u7528\u6237\u6D88\u606F\uFF0C\u5C06\u622A\u81F3\u8BE5\u70B9\u7684\u5F53\u524D\u8DEF\u5F84\u590D\u5236\u5230\u65B0\u4F1A\u8BDD","Queued Messages":"\u6392\u961F\u6D88\u606F",Steering:"\u8F6C\u5411","Follow-up":"\u540E\u7EED","alt+up/alt+down move \xB7 delete remove \xB7 enter restore \xB7 esc close":"alt+up/alt+down \u79FB\u52A8 \xB7 delete \u79FB\u9664 \xB7 enter \u53D6\u56DE\u7F16\u8F91\u5668 \xB7 esc \u5173\u95ED","user:":"\u7528\u6237:","assistant:":"\u52A9\u624B:","(aborted)":"\uFF08\u5DF2\u4E2D\u6B62\uFF09","(no content)":"\uFF08\u65E0\u5185\u5BB9\uFF09",tool:"\u5DE5\u5177","[bash]: {command}":"[bash]: {command}","[compaction: {tokens}k tokens]":"[\u538B\u7F29: {tokens}k tokens]","[branch summary]:":"[\u5206\u652F\u6458\u8981]:","[model: {model}]":"[\u6A21\u578B: {model}]","[thinking: {level}]":"[\u601D\u8003: {level}]","[custom: {type}]":"[\u81EA\u5B9A\u4E49: {type}]","[label: {label}]":"[\u6807\u7B7E: {label}]","(cleared)":"\uFF08\u5DF2\u6E05\u9664\uFF09","[title: {name}]":"[\u6807\u9898: {name}]",empty:"\u7A7A","[read: {display}]":"[\u8BFB\u53D6: {display}]","[write: {path}]":"[\u5199\u5165: {path}]","[edit: {path}]":"[\u7F16\u8F91: {path}]","[bash: {cmd}]":"[bash: {cmd}]","[grep: /{pattern}/ in {path}]":"[\u641C\u7D22: /{pattern}/ \u4E8E {path}]","[find: {pattern} in {path}]":"[\u67E5\u627E: {pattern} \u4E8E {path}]","[ls: {path}]":"[\u5217\u76EE\u5F55: {path}]","[{name}: {args}]":"[{name}: {args}]","[branch]":"[\u5206\u652F]","**Branch Summary**":"**\u5206\u652F\u6458\u8981**","Branch summary ({key} to expand)":"\u5206\u652F\u6458\u8981\uFF08{key} \u5C55\u5F00\uFF09","[compaction]":"[\u538B\u7F29]","**Compacted from {tokens} tokens**":"**\u5DF2\u4ECE {tokens} tokens \u538B\u7F29**","Compacted from {tokens} tokens ({key} to expand)":"\u5DF2\u4ECE {tokens} tokens \u538B\u7F29\uFF08{key} \u5C55\u5F00\uFF09","({key} to expand)":"\uFF08{key} \u5C55\u5F00\uFF09",Yes:"\u662F",No:"\u5426","Show images inline in terminal":"\u5728\u7EC8\u7AEF\u5185\u8054\u663E\u793A\u56FE\u7247","Show text placeholder instead":"\u6539\u4E3A\u663E\u793A\u6587\u672C\u5360\u4F4D\u7B26",submit:"\u63D0\u4EA4",newline:"\u6362\u884C","external editor":"\u5916\u90E8\u7F16\u8F91\u5668",select:"\u9009\u62E9","Mermaid diagram not rendered: {warning}{suffix}":"Mermaid \u56FE\u8868\u672A\u6E32\u67D3\uFF1A{warning}{suffix}","+{count} more":"\u8FD8\u6709 {count} \u6761","[{type}] renderer failed: {message}":"[{type}] \u6E32\u67D3\u5668\u5931\u8D25\uFF1A{message}","... ({count} more lines, {key} to expand)":"...\uFF08\u8FD8\u6709 {count} \u884C\uFF0C{key} \u5C55\u5F00\uFF09","... ({count} lines truncated)":"...\uFF08\u5DF2\u622A\u65AD {count} \u884C\uFF09","... ({count} lines truncated; full output: {path})":"...\uFF08\u5DF2\u622A\u65AD {count} \u884C\uFF1B\u5B8C\u6574\u8F93\u51FA: {path}\uFF09","(current)":"\uFF08\u5F53\u524D\uFF09","Type to filter \xB7 Enter to select \xB7 Esc to go back":"\u8F93\u5165\u4EE5\u8FC7\u6EE4 \xB7 Enter \u9009\u62E9 \xB7 Esc \u8FD4\u56DE","Enter to select \xB7 Esc to go back":"Enter \u9009\u62E9 \xB7 Esc \u8FD4\u56DE","Step {index}/{total}":"\u7B2C {index}/{total} \u6B65"};var tuiComponentsSelectors={"No reasoning":"\u65E0\u63A8\u7406","Very brief reasoning (~1k tokens)":"\u6781\u7B80\u63A8\u7406\uFF08\u7EA6 1k tokens\uFF09","Light reasoning (~2k tokens)":"\u8F7B\u5EA6\u63A8\u7406\uFF08\u7EA6 2k tokens\uFF09","Moderate reasoning (~8k tokens)":"\u4E2D\u5EA6\u63A8\u7406\uFF08\u7EA6 8k tokens\uFF09","Deep reasoning (~16k tokens)":"\u6DF1\u5EA6\u63A8\u7406\uFF08\u7EA6 16k tokens\uFF09","Extra-high reasoning (~32k tokens)":"\u8D85\u9AD8\u63A8\u7406\uFF08\u7EA6 32k tokens\uFF09","Maximum reasoning":"\u6700\u5927\u63A8\u7406","Anthropic extra usage":"Anthropic \u989D\u5916\u7528\u91CF","Warn when Anthropic subscription auth may use paid extra usage":"\u5F53 Anthropic \u8BA2\u9605\u8BA4\u8BC1\u53EF\u80FD\u4F7F\u7528\u4ED8\u8D39\u989D\u5916\u7528\u91CF\u65F6\u8B66\u544A",none:"\u65E0","{count} configured":"\u5DF2\u914D\u7F6E {count} \u9879",Automatic:"\u81EA\u52A8","Use separate themes for light and dark terminal appearance":"\u4E3A\u7EC8\u7AEF\u6D45\u8272\u4E0E\u6DF1\u8272\u5916\u89C2\u5206\u522B\u4F7F\u7528\u4E0D\u540C\u4E3B\u9898",Theme:"\u4E3B\u9898","Select a theme, or choose Automatic to follow terminal appearance.":"\u9009\u62E9\u4E00\u4E2A\u4E3B\u9898\uFF0C\u6216\u9009\u62E9\u201C\u81EA\u52A8\u201D\u8DDF\u968F\u7EC8\u7AEF\u5916\u89C2\u3002","Automatic Theme":"\u81EA\u52A8\u4E3B\u9898","Choose themes for terminal light and dark appearance.":"\u4E3A\u7EC8\u7AEF\u6D45\u8272\u4E0E\u6DF1\u8272\u5916\u89C2\u9009\u62E9\u4E3B\u9898\u3002","Light/dark detection requires terminal support.":"\u6D45\u8272/\u6DF1\u8272\u68C0\u6D4B\u9700\u8981\u7EC8\u7AEF\u652F\u6301\u3002","Light theme":"\u6D45\u8272\u4E3B\u9898","Theme to use in automatic mode when the terminal is light":"\u81EA\u52A8\u6A21\u5F0F\u4E0B\u7EC8\u7AEF\u4E3A\u6D45\u8272\u65F6\u4F7F\u7528\u7684\u4E3B\u9898","Light Theme":"\u6D45\u8272\u4E3B\u9898","Select the theme to use for light terminal appearance":"\u9009\u62E9\u7EC8\u7AEF\u6D45\u8272\u5916\u89C2\u65F6\u4F7F\u7528\u7684\u4E3B\u9898","Dark theme":"\u6DF1\u8272\u4E3B\u9898","Theme to use in automatic mode when the terminal is dark":"\u81EA\u52A8\u6A21\u5F0F\u4E0B\u7EC8\u7AEF\u4E3A\u6DF1\u8272\u65F6\u4F7F\u7528\u7684\u4E3B\u9898","Dark Theme":"\u6DF1\u8272\u4E3B\u9898","Select the theme to use for dark terminal appearance":"\u9009\u62E9\u7EC8\u7AEF\u6DF1\u8272\u5916\u89C2\u65F6\u4F7F\u7528\u7684\u4E3B\u9898",Apply:"\u5E94\u7528","Save and go back":"\u4FDD\u5B58\u5E76\u8FD4\u56DE","save and go back":"\u4FDD\u5B58\u5E76\u8FD4\u56DE","Change mode":"\u5207\u6362\u6A21\u5F0F","Switch to one theme for light and dark":"\u5207\u6362\u4E3A\u6D45\u8272\u4E0E\u6DF1\u8272\u5171\u7528\u5355\u4E00\u4E3B\u9898","switch to single theme":"\u5207\u6362\u4E3A\u5355\u4E00\u4E3B\u9898","Auto-compact":"\u81EA\u52A8\u538B\u7F29","Automatically compact context when it gets too large":"\u4E0A\u4E0B\u6587\u8FC7\u5927\u65F6\u81EA\u52A8\u538B\u7F29","Steering mode":"\u8F6C\u5411\u6A21\u5F0F","Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.":"\u6D41\u5F0F\u8F93\u51FA\u671F\u95F4\u6309 Enter \u4F1A\u5C06\u8F6C\u5411\u6D88\u606F\u52A0\u5165\u961F\u5217\u3002'one-at-a-time'\uFF1A\u6BCF\u6B21\u9001\u8FBE\u4E00\u6761\uFF0C\u7B49\u5F85\u54CD\u5E94\u3002'all'\uFF1A\u4E00\u6B21\u6027\u5168\u90E8\u9001\u8FBE\u3002","Follow-up mode":"\u540E\u7EED\u6D88\u606F\u6A21\u5F0F","{key} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.":"{key} \u4F1A\u5C06\u540E\u7EED\u6D88\u606F\u6392\u961F\u76F4\u81F3 agent \u505C\u6B62\u3002'one-at-a-time'\uFF1A\u6BCF\u6B21\u9001\u8FBE\u4E00\u6761\uFF0C\u7B49\u5F85\u54CD\u5E94\u3002'all'\uFF1A\u4E00\u6B21\u6027\u5168\u90E8\u9001\u8FBE\u3002",Transport:"\u4F20\u8F93\u65B9\u5F0F","Preferred transport for providers that support multiple transports":"\u652F\u6301\u591A\u79CD\u4F20\u8F93\u65B9\u5F0F\u7684 provider \u7684\u9996\u9009\u4F20\u8F93\u65B9\u5F0F","HTTP idle timeout":"HTTP \u7A7A\u95F2\u8D85\u65F6","Maximum idle gap while waiting for HTTP headers or body chunks. Disable for local models that pause longer than five minutes.":"\u7B49\u5F85 HTTP \u5934\u6216\u6B63\u6587\u5206\u5757\u65F6\u7684\u6700\u5927\u7A7A\u95F2\u95F4\u9694\u3002\u672C\u5730\u6A21\u578B\u6682\u505C\u8D85\u8FC7\u4E94\u5206\u949F\u65F6\u8BF7\u7981\u7528\u3002","Hide thinking":"\u9690\u85CF\u601D\u8003","Hide thinking blocks in assistant responses":"\u9690\u85CF\u52A9\u624B\u56DE\u590D\u4E2D\u7684\u601D\u8003\u5757","Mermaid diagrams":"Mermaid \u56FE\u8868","Render Mermaid code blocks as Unicode diagrams":"\u5C06 Mermaid \u4EE3\u7801\u5757\u6E32\u67D3\u4E3A Unicode \u56FE\u8868","Cache miss notices":"\u7F13\u5B58\u672A\u547D\u4E2D\u63D0\u793A","Show transcript notices for cache costs and provider recovery diagnostics":"\u663E\u793A\u7F13\u5B58\u6210\u672C\u4E0E provider \u6062\u590D\u8BCA\u65AD\u7684\u4F1A\u8BDD\u8BB0\u5F55\u63D0\u793A","Collapse changelog":"\u6298\u53E0\u66F4\u65B0\u65E5\u5FD7","Show condensed changelog after updates":"\u66F4\u65B0\u540E\u663E\u793A\u7CBE\u7B80\u7248\u66F4\u65B0\u65E5\u5FD7","Quiet startup":"\u5B89\u9759\u542F\u52A8","Disable verbose printing at startup":"\u7981\u7528\u542F\u52A8\u65F6\u7684\u8BE6\u7EC6\u8F93\u51FA","Double-escape action":"\u53CC\u51FB Escape \u52A8\u4F5C","Action when pressing Escape twice with empty editor":"\u7F16\u8F91\u5668\u4E3A\u7A7A\u65F6\u8FDE\u6309\u4E24\u6B21 Escape \u6267\u884C\u7684\u52A8\u4F5C","Interface language":"\u754C\u9762\u8BED\u8A00","Language for UI text; takes effect immediately":"\u754C\u9762\u6587\u672C\u8BED\u8A00\uFF0C\u7ACB\u5373\u751F\u6548","Tree filter mode":"\u6811\u89C6\u56FE\u8FC7\u6EE4\u6A21\u5F0F","Default filter when opening /tree":"\u6253\u5F00 /tree \u65F6\u7684\u9ED8\u8BA4\u8FC7\u6EE4\u5668",Warnings:"\u8B66\u544A","Enable or disable individual warnings":"\u542F\u7528\u6216\u7981\u7528\u5404\u9879\u8B66\u544A",configure:"\u914D\u7F6E","Default thinking level per model":"\u5404\u6A21\u578B\u9ED8\u8BA4\u601D\u8003\u7EA7\u522B","Override the default thinking level for specific models. {key} cycles in-session.":"\u4E3A\u7279\u5B9A\u6A21\u578B\u8986\u76D6\u9ED8\u8BA4\u601D\u8003\u7EA7\u522B\u3002{key} \u53EF\u5728\u4F1A\u8BDD\u5185\u5FAA\u73AF\u5207\u6362\u3002","Per-Model Thinking Level":"\u5404\u6A21\u578B\u601D\u8003\u7EA7\u522B","Select a model to configure":"\u9009\u62E9\u8981\u914D\u7F6E\u7684\u6A21\u578B","No models available":"\u65E0\u53EF\u7528\u6A21\u578B","Log in to a provider or configure an API key first":"\u8BF7\u5148\u767B\u5F55 provider \u6216\u914D\u7F6E API key","Thinking Level for {model}":"{model} \u7684\u601D\u8003\u7EA7\u522B","Select default thinking level for this model":"\u9009\u62E9\u8BE5\u6A21\u578B\u7684\u9ED8\u8BA4\u601D\u8003\u7EA7\u522B","(clear override)":"\uFF08\u6E05\u9664\u8986\u76D6\uFF09","Revert to global default ({level})":"\u6062\u590D\u5168\u5C40\u9ED8\u8BA4\uFF08{level}\uFF09","TUI mode":"TUI \u6A21\u5F0F","Interface layout; fullscreen mode is experimental":"\u754C\u9762\u5E03\u5C40\uFF1B\u5168\u5C4F\u6A21\u5F0F\u4E3A\u5B9E\u9A8C\u6027","Fullscreen exit output":"\u5168\u5C4F\u9000\u51FA\u8F93\u51FA","Print the transcript or only a session resume hint when exiting fullscreen mode":"\u9000\u51FA\u5168\u5C4F\u6A21\u5F0F\u65F6\u6253\u5370\u5B8C\u6574\u4F1A\u8BDD\u8BB0\u5F55\u6216\u4EC5\u6253\u5370\u4F1A\u8BDD\u6062\u590D\u63D0\u793A","Fullscreen scrollbar":"\u5168\u5C4F\u6EDA\u52A8\u6761","Scrollbar behavior in fullscreen mode; has no effect in regular mode":"\u5168\u5C4F\u6A21\u5F0F\u4E0B\u7684\u6EDA\u52A8\u6761\u884C\u4E3A\uFF1B\u5E38\u89C4\u6A21\u5F0F\u4E0B\u65E0\u6548","Fullscreen copy on select":"\u5168\u5C4F\u9009\u4E2D\u5373\u590D\u5236","Automatically copy selected text in fullscreen mode; disable to copy selections with Ctrl+X":"\u5168\u5C4F\u6A21\u5F0F\u4E0B\u81EA\u52A8\u590D\u5236\u9009\u4E2D\u6587\u672C\uFF1B\u7981\u7528\u540E\u7528 Ctrl+X \u590D\u5236\u6240\u9009\u5185\u5BB9","Fullscreen wheel scroll lines":"\u5168\u5C4F\u6EDA\u8F6E\u6EDA\u52A8\u884C\u6570","Lines scrolled per wheel event in fullscreen mode; auto accelerates with scroll speed":"\u5168\u5C4F\u6A21\u5F0F\u4E0B\u6BCF\u4E2A\u6EDA\u8F6E\u4E8B\u4EF6\u6EDA\u52A8\u7684\u884C\u6570\uFF1Bauto \u968F\u6EDA\u52A8\u901F\u5EA6\u52A0\u901F","Color theme for the interface":"\u754C\u9762\u914D\u8272\u4E3B\u9898","Show images":"\u663E\u793A\u56FE\u7247","Render images inline in terminal":"\u5728\u7EC8\u7AEF\u5185\u8054\u6E32\u67D3\u56FE\u7247","Image width":"\u56FE\u7247\u5BBD\u5EA6","Preferred inline image width in terminal cells":"\u9996\u9009\u7684\u5185\u8054\u56FE\u7247\u5BBD\u5EA6\uFF08\u7EC8\u7AEF\u5355\u5143\u683C\uFF09","Auto-resize images":"\u81EA\u52A8\u7F29\u653E\u56FE\u7247","Resize large images to 2000x2000 max for better model compatibility":"\u5C06\u5927\u56FE\u7F29\u653E\u81F3\u6700\u5927 2000x2000 \u4EE5\u63D0\u5347\u6A21\u578B\u517C\u5BB9\u6027","Block images":"\u963B\u6B62\u56FE\u7247","Prevent images from being sent to LLM providers":"\u963B\u6B62\u56FE\u7247\u53D1\u9001\u7ED9 LLM provider","Show hardware cursor":"\u663E\u793A\u786C\u4EF6\u5149\u6807","Show the terminal cursor while still positioning it for IME support":"\u663E\u793A\u7EC8\u7AEF\u5149\u6807\uFF0C\u540C\u65F6\u4FDD\u6301\u5176\u5B9A\u4F4D\u4EE5\u652F\u6301\u8F93\u5165\u6CD5","Editor padding":"\u7F16\u8F91\u5668\u5185\u8FB9\u8DDD","Horizontal padding for input editor (0-3)":"\u8F93\u5165\u7F16\u8F91\u5668\u7684\u6C34\u5E73\u5185\u8FB9\u8DDD\uFF080-3\uFF09","Output padding":"\u8F93\u51FA\u5185\u8FB9\u8DDD","Horizontal padding for user messages, assistant messages, and thinking":"\u7528\u6237\u6D88\u606F\u3001\u52A9\u624B\u6D88\u606F\u4E0E\u601D\u8003\u5185\u5BB9\u7684\u6C34\u5E73\u5185\u8FB9\u8DDD","Autocomplete max items":"\u81EA\u52A8\u8865\u5168\u6700\u5927\u6761\u76EE\u6570","Max visible items in autocomplete dropdown (3-20)":"\u81EA\u52A8\u8865\u5168\u4E0B\u62C9\u83DC\u5355\u53EF\u89C1\u7684\u6700\u5927\u6761\u76EE\u6570\uFF083-20\uFF09","Clear on shrink":"\u6536\u7F29\u65F6\u6E05\u5C4F","Clear empty rows when content shrinks (may cause flicker)":"\u5185\u5BB9\u6536\u7F29\u65F6\u6E05\u9664\u7A7A\u884C\uFF08\u53EF\u80FD\u5BFC\u81F4\u95EA\u70C1\uFF09","Terminal progress":"\u7EC8\u7AEF\u8FDB\u5EA6","Show OSC 9;4 progress indicators in the terminal tab bar":"\u5728\u7EC8\u7AEF\u6807\u7B7E\u680F\u663E\u793A OSC 9;4 \u8FDB\u5EA6\u6307\u793A","Resume Session (Current Folder)":"\u6062\u590D\u4F1A\u8BDD\uFF08\u5F53\u524D\u6587\u4EF6\u5939\uFF09","Resume Session (All)":"\u6062\u590D\u4F1A\u8BDD\uFF08\u5168\u90E8\uFF09","Resume Session (All Suites)":"\u6062\u590D\u4F1A\u8BDD\uFF08\u6240\u6709 Suite\uFF09","Resume Session (Suite: {suite})":"\u6062\u590D\u4F1A\u8BDD\uFF08Suite\uFF1A{suite}\uFF09",Threaded:"\u7EBF\u7A0B\u5F0F",Recent:"\u6700\u8FD1",Fuzzy:"\u6A21\u7CCA","Sort:":"\u6392\u5E8F\uFF1A",All:"\u5168\u90E8",Named:"\u5DF2\u547D\u540D","Name:":"\u540D\u79F0\uFF1A","\u25CB Current Folder":"\u25CB \u5F53\u524D\u6587\u4EF6\u5939","Loading {progress}":"\u52A0\u8F7D\u4E2D {progress}","\u25C9 Current Folder":"\u25C9 \u5F53\u524D\u6587\u4EF6\u5939","\u25CB All":"\u25CB \u5168\u90E8","\u25C9 All":"\u25C9 \u5168\u90E8","Delete session? {confirm} \xB7 {cancel}":"\u5220\u9664\u4F1A\u8BDD\uFF1F{confirm} \xB7 {cancel}",confirm:"\u786E\u8BA4",cancel:"\u53D6\u6D88","path (on)":"\u8DEF\u5F84 (\u5F00)","path (off)":"\u8DEF\u5F84 (\u5173)",scope:"\u8303\u56F4",'re:<pattern> regex \xB7 "phrase" exact':'re:<\u6A21\u5F0F> \u6B63\u5219 \xB7 "\u8BCD\u7EC4" \u7CBE\u786E',sort:"\u6392\u5E8F",named:"\u547D\u540D\u8FC7\u6EE4",delete:"\u5220\u9664",rename:"\u91CD\u547D\u540D","Cannot delete the currently active session":"\u65E0\u6CD5\u5220\u9664\u5F53\u524D\u6D3B\u52A8\u4F1A\u8BDD","No named sessions found. Press {key} to show all.":"\u672A\u627E\u5230\u5DF2\u547D\u540D\u4F1A\u8BDD\u3002\u6309 {key} \u663E\u793A\u5168\u90E8\u3002","No named sessions in current folder. Press {key} to show all, or Tab to view all.":"\u5F53\u524D\u6587\u4EF6\u5939\u65E0\u5DF2\u547D\u540D\u4F1A\u8BDD\u3002\u6309 {key} \u663E\u793A\u5168\u90E8\uFF0C\u6216\u6309 Tab \u67E5\u770B\u5168\u90E8\u3002","No sessions found":"\u672A\u627E\u5230\u4F1A\u8BDD","No sessions in current folder. Press Tab to view all.":"\u5F53\u524D\u6587\u4EF6\u5939\u65E0\u4F1A\u8BDD\u3002\u6309 Tab \u67E5\u770B\u5168\u90E8\u3002","Show sessions from all suites":"\u663E\u793A\u6240\u6709 suite \u7684\u4F1A\u8BDD","Show current suite sessions only":"\u4EC5\u663E\u793A\u5F53\u524D suite \u7684\u4F1A\u8BDD","Session moved to trash":"\u4F1A\u8BDD\u5DF2\u79FB\u5165\u56DE\u6536\u7AD9","Session deleted":"\u4F1A\u8BDD\u5DF2\u5220\u9664","Unknown error":"\u672A\u77E5\u9519\u8BEF","Failed to delete: {error}":"\u5220\u9664\u5931\u8D25\uFF1A{error}","Rename Session":"\u91CD\u547D\u540D\u4F1A\u8BDD","{confirm} to save \xB7 {cancel} to cancel":"{confirm} \u4FDD\u5B58 \xB7 {cancel} \u53D6\u6D88","Failed to load sessions: {message}":"\u52A0\u8F7D\u4F1A\u8BDD\u5931\u8D25\uFF1A{message}",Skills:"\u6280\u80FD",Prompts:"\u63D0\u793A\u8BCD",Themes:"\u4E3B\u9898","User ({dir})":"\u7528\u6237\uFF08{dir}\uFF09","Project ({dir})":"\u9879\u76EE\uFF08{dir}\uFF09","User settings":"\u7528\u6237\u8BBE\u7F6E","Project settings":"\u9879\u76EE\u8BBE\u7F6E","Project Local Resources":"\u9879\u76EE\u672C\u5730\u8D44\u6E90","Global Resources":"\u5168\u5C40\u8D44\u6E90","switch mode":"\u5207\u6362\u6A21\u5F0F","cycle inherit/+/-":"\u5FAA\u73AF \u7EE7\u627F/+/-",toggle:"\u5207\u6362",close:"\u5173\u95ED","{config}/settings.json \xB7 inherited global resources are dimmed":"{config}/settings.json \xB7 \u7EE7\u627F\u7684\u5168\u5C40\u8D44\u6E90\u4EE5\u6697\u8272\u663E\u793A","No resources found":"\u672A\u627E\u5230\u8D44\u6E90","inherited global":"\u7EE7\u627F\u81EA\u5168\u5C40","project load":"\u9879\u76EE\u52A0\u8F7D","project unload":"\u9879\u76EE\u5378\u8F7D","Model Configuration":"\u6A21\u578B\u914D\u7F6E","Session-only. {key} to save to settings.":"\u4EC5\u672C\u6B21\u4F1A\u8BDD\u751F\u6548\u3002\u6309 {key} \u4FDD\u5B58\u5230\u8BBE\u7F6E\u3002","all enabled":"\u5168\u90E8\u5DF2\u542F\u7528","{enabled}/{total} enabled":"\u5DF2\u542F\u7528 {enabled}/{total}","{count} unavailable":"{count} \u4E2A\u4E0D\u53EF\u7528",all:"\u5168\u90E8",clear:"\u6E05\u7A7A",reorder:"\u6392\u5E8F",save:"\u4FDD\u5B58","(unsaved)":"\uFF08\u672A\u4FDD\u5B58\uFF09","No matching models":"\u6CA1\u6709\u5339\u914D\u7684\u6A21\u578B","[unavailable]":"[\u4E0D\u53EF\u7528]","Model Name: {name}":"\u6A21\u578B\u540D\u79F0\uFF1A{name}","Model unavailable":"\u6A21\u578B\u4E0D\u53EF\u7528","Refreshing model catalogs\u2026":"\u6B63\u5728\u5237\u65B0\u6A21\u578B\u76EE\u5F55\u2026","Only showing models from configured providers. Use /login to add providers.":"\u4EC5\u663E\u793A\u5DF2\u914D\u7F6E provider \u7684\u6A21\u578B\u3002\u4F7F\u7528 /login \u6DFB\u52A0 provider\u3002","{confirm} to select \xB7 {save} to set as default \xB7 {cancel} to cancel":"{confirm} \u9009\u62E9 \xB7 {save} \u8BBE\u4E3A\u9ED8\u8BA4 \xB7 {cancel} \u53D6\u6D88","Model refresh timed out; showing cached models.":"\u6A21\u578B\u5237\u65B0\u8D85\u65F6\uFF1B\u663E\u793A\u7F13\u5B58\u6A21\u578B\u3002","Could not refresh {provider}; showing cached models.":"\u65E0\u6CD5\u5237\u65B0 {provider}\uFF1B\u663E\u793A\u7F13\u5B58\u7684\u6A21\u578B\u3002","Could not refresh {count} model catalogs ({providers}); showing cached models.":"\u65E0\u6CD5\u5237\u65B0 {count} \u4E2A\u6A21\u578B\u76EE\u5F55\uFF08{providers}\uFF09\uFF1B\u663E\u793A\u7F13\u5B58\u7684\u6A21\u578B\u3002","Model catalogs refreshed.":"\u6A21\u578B\u76EE\u5F55\u5DF2\u5237\u65B0\u3002","Could not refresh model catalogs: {error}":"\u65E0\u6CD5\u5237\u65B0\u6A21\u578B\u76EE\u5F55\uFF1A{error}",scoped:"\u4F1A\u8BDD\u5185","Scope:":"\u8303\u56F4\uFF1A","(all/scoped)":"\uFF08\u5168\u90E8/\u4F1A\u8BDD\u5185\uFF09",default:"\u9ED8\u8BA4","Thinking Level":"\u601D\u8003\u7EA7\u522B","{key} sets thinking level":"{key} \u8BBE\u7F6E\u601D\u8003\u7EA7\u522B",subscription:"\u8BA2\u9605","Select provider to configure:":"\u9009\u62E9\u8981\u914D\u7F6E\u7684 provider\uFF1A","Select provider to logout:":"\u9009\u62E9\u8981\u767B\u51FA\u7684 provider\uFF1A","No providers available":"\u65E0\u53EF\u7528 provider","No providers logged in. Use /login first.":"\u6CA1\u6709\u5DF2\u767B\u5F55\u7684 provider\u3002\u8BF7\u5148\u4F7F\u7528 /login\u3002","No matching providers":"\u6CA1\u6709\u5339\u914D\u7684 provider",unconfigured:"\u672A\u914D\u7F6E","subscription configured":"\u5DF2\u914D\u7F6E\u8BA2\u9605","API key configured":"\u5DF2\u914D\u7F6E API key","API key":"API key",configured:"\u5DF2\u914D\u7F6E","env: {source}":"\u73AF\u5883\u53D8\u91CF\uFF1A{source}","Login to {provider}":"\u767B\u5F55 {provider}","Login cancelled":"\u767B\u5F55\u5DF2\u53D6\u6D88","Cmd+click to open":"Cmd+\u70B9\u51FB\u6253\u5F00","Ctrl+click to open":"Ctrl+\u70B9\u51FB\u6253\u5F00","Enter code: {code}":"\u8F93\u5165\u4EE3\u7801\uFF1A{code}","to cancel":"\u53D6\u6D88","e.g., {placeholder}":"\u4F8B\u5982\uFF0C{placeholder}","to cancel,":"\u53D6\u6D88\uFF0C","to submit":"\u63D0\u4EA4","to close":"\u5173\u95ED","Welcome to {name}, the minimal coding agent.":"\u6B22\u8FCE\u4F7F\u7528 {name}\uFF0C\u6781\u7B80\u7F16\u7801 agent\u3002","Pick a theme.":"\u9009\u62E9\u4E00\u4E2A\u4E3B\u9898\u3002","Detected system appearance: {theme}":"\u68C0\u6D4B\u5230\u7CFB\u7EDF\u5916\u89C2\uFF1A{theme}","Opt-in to anonymous usage data sharing?":"\u662F\u5426\u52A0\u5165\u533F\u540D\u4F7F\u7528\u6570\u636E\u5206\u4EAB\uFF1F","Opting in stores a tracking identifier in settings.json and enables anonymous\nusage analytics. This helps us to better debug, reproduce, and resolve issues\nand bugs within Agent Forge. You can observe what is shared using /privacy and make\nchanges anytime in settings.json.":`\u9009\u62E9\u52A0\u5165\u540E\u4F1A\u5728 settings.json \u4E2D\u5B58\u50A8\u4E00\u4E2A\u8FFD\u8E2A\u6807\u8BC6\u7B26\uFF0C\u5E76\u542F\u7528\u533F\u540D\u4F7F\u7528\u5206\u6790\u3002
|
|
12
12
|
\u8FD9\u6709\u52A9\u4E8E\u6211\u4EEC\u66F4\u597D\u5730\u8C03\u8BD5\u3001\u590D\u73B0\u5E76\u89E3\u51B3 Agent Forge \u4E2D\u7684\u95EE\u9898\u4E0E\u7F3A\u9677\u3002
|
|
13
13
|
\u4F60\u53EF\u4EE5\u4F7F\u7528 /privacy \u67E5\u770B\u6240\u5206\u4EAB\u7684\u5185\u5BB9\uFF0C\u5E76\u53EF\u968F\u65F6\u5728 settings.json \u4E2D\u66F4\u6539\u3002`,Dark:"\u6DF1\u8272",Light:"\u6D45\u8272","Share anonymous usage data":"\u5206\u4EAB\u533F\u540D\u4F7F\u7528\u6570\u636E","Don't share":"\u4E0D\u5206\u4EAB",navigate:"\u5BFC\u822A",continue:"\u7EE7\u7EED",finish:"\u5B8C\u6210","skip setup":"\u8DF3\u8FC7\u8BBE\u7F6E","catalog {count}":"\u76EE\u5F55 {count}","catalog unavailable":"\u76EE\u5F55\u4E0D\u53EF\u7528",", bounded":"\uFF0C\u5DF2\u622A\u65AD","Plugin manager \xB7 {state}{bounded} \xB7 Enter open":"\u63D2\u4EF6\u7BA1\u7406\u5668 \xB7 {state}{bounded} \xB7 Enter \u6253\u5F00","Plugin manager":"\u63D2\u4EF6\u7BA1\u7406\u5668","Working\u2026":"\u5904\u7406\u4E2D\u2026","Confirm {action} {plugin}@{version}? Enter confirm \xB7 Esc cancel":"\u786E\u8BA4{action} {plugin}@{version}\uFF1FEnter \u786E\u8BA4 \xB7 Esc \u53D6\u6D88","Error: {code}":"\u9519\u8BEF\uFF1A{code}","No plugins available":"\u65E0\u53EF\u7528\u63D2\u4EF6","installed {version}":"\u5DF2\u5B89\u88C5 {version}","Action: {action} \xB7 Tab switch action \xB7 Enter confirm":"\u64CD\u4F5C\uFF1A{action} \xB7 Tab \u5207\u6362\u64CD\u4F5C \xB7 Enter \u786E\u8BA4","Selected plugin is unavailable":"\u6240\u9009\u63D2\u4EF6\u4E0D\u53EF\u7528","(list bounded)":"\uFF08\u5217\u8868\u5DF2\u622A\u65AD\uFF09","\u2191\u2193 navigate \xB7 Esc close":"\u2191\u2193 \u5BFC\u822A \xB7 Esc \u5173\u95ED","Plugins: unsupported (host selection entry not injected)":"\u63D2\u4EF6\uFF1A\u4E0D\u652F\u6301\uFF08\u5BBF\u4E3B\u9009\u62E9\u5165\u53E3\u672A\u6CE8\u5165\uFF09","Plugins \xB7 {profile}":"\u63D2\u4EF6 \xB7 {profile}","Enter/Space toggle \xB7 Esc close":"Enter/\u7A7A\u683C \u5207\u6362 \xB7 Esc \u5173\u95ED","selected {selected}, disabled {disabled}":"\u5DF2\u9009 {selected}\uFF0C\u5DF2\u7981\u7528 {disabled}","selection pending":"\u9009\u62E9\u5F85\u5B9A","selection not loaded":"\u9009\u62E9\u672A\u52A0\u8F7D","catalog {count} ({ready} ready, {unavailable} unavailable)":"\u76EE\u5F55 {count}\uFF08{ready} \u5C31\u7EEA\uFF0C{unavailable} \u4E0D\u53EF\u7528\uFF09","host store":"\u5BBF\u4E3B\u5B58\u50A8","open via host callback":"\u7ECF\u5BBF\u4E3B\u56DE\u8C03\u6253\u5F00","Plugins: profile {profile} \xB7 {selection} \xB7 {catalog} \xB7 {suffix}":"\u63D2\u4EF6\uFF1A\u914D\u7F6E\u6587\u4EF6 {profile} \xB7 {selection} \xB7 {catalog} \xB7 {suffix}","Type to search:":"\u8F93\u5165\u4EE5\u641C\u7D22\uFF1A",move:"\u79FB\u52A8",page:"\u7FFB\u9875",branch:"\u5206\u652F",copy:"\u590D\u5236",label:"\u6807\u7B7E","label time":"\u6807\u7B7E\u65F6\u95F4",filters:"\u8FC7\u6EE4\u5668",cycle:"\u5FAA\u73AF","Label (empty to remove):":"\u6807\u7B7E\uFF08\u7559\u7A7A\u79FB\u9664\uFF09\uFF1A","Session Tree":"\u4F1A\u8BDD\u6811","[no-tools]":"[\u65E0\u5DE5\u5177]","[user]":"[\u7528\u6237]","[labeled]":"[\u5DF2\u6807\u6CE8]","[all]":"[\u5168\u90E8]","[+label time]":"[+\u6807\u7B7E\u65F6\u95F4]","No entries found":"\u672A\u627E\u5230\u6761\u76EE"};var tuiInteractiveMisc={"Launching external editor: {command}":"\u6B63\u5728\u542F\u52A8\u5916\u90E8\u7F16\u8F91\u5668\uFF1A{command}","Agent Forge will resume when the editor exits.":"\u7F16\u8F91\u5668\u9000\u51FA\u540E Agent Forge \u5C06\u7EE7\u7EED\u3002","Sign in with an account":"\u4F7F\u7528\u8D26\u53F7\u767B\u5F55","Sign in with an API key":"\u4F7F\u7528 API key \u767B\u5F55","No login methods available.":"\u6CA1\u6709\u53EF\u7528\u7684\u767B\u5F55\u65B9\u5F0F\u3002","Select authentication method for {name}:":"\u4E3A {name} \u9009\u62E9\u8BA4\u8BC1\u65B9\u5F0F\uFF1A","Select authentication method:":"\u9009\u62E9\u8BA4\u8BC1\u65B9\u5F0F\uFF1A","No subscription providers available.":"\u6CA1\u6709\u53EF\u7528\u7684\u8BA2\u9605\u63D0\u4F9B\u5546\u3002","No API key providers available.":"\u6CA1\u6709\u53EF\u7528\u7684 API key \u63D0\u4F9B\u5546\u3002","No login providers available.":"\u6CA1\u6709\u53EF\u7528\u7684\u767B\u5F55\u63D0\u4F9B\u5546\u3002","Could not read stored credentials: {error}":"\u65E0\u6CD5\u8BFB\u53D6\u5DF2\u5B58\u51ED\u8BC1\uFF1A{error}","No stored credentials to remove. /logout only removes credentials saved by /login; environment variables and models.json config are unchanged.":"\u6CA1\u6709\u53EF\u79FB\u9664\u7684\u5DF2\u5B58\u51ED\u8BC1\u3002/logout \u53EA\u79FB\u9664 /login \u4FDD\u5B58\u7684\u51ED\u8BC1\uFF1B\u73AF\u5883\u53D8\u91CF\u4E0E models.json \u914D\u7F6E\u4E0D\u53D7\u5F71\u54CD\u3002","Logged out of {name}":"\u5DF2\u767B\u51FA {name}","Removed stored API key for {name}. Environment variables and models.json config are unchanged.":"\u5DF2\u79FB\u9664 {name} \u7684\u5DF2\u5B58 API key\u3002\u73AF\u5883\u53D8\u91CF\u4E0E models.json \u914D\u7F6E\u4E0D\u53D7\u5F71\u54CD\u3002","Credentials removed for {name}, but local model state could not be synchronized: {error}":"\u5DF2\u79FB\u9664 {name} \u7684\u51ED\u8BC1\uFF0C\u4F46\u672C\u5730\u6A21\u578B\u72B6\u6001\u672A\u80FD\u540C\u6B65\uFF1A{error}","Logout failed: {error}":"\u767B\u51FA\u5931\u8D25\uFF1A{error}","Logged in to {name}":"\u5DF2\u767B\u5F55 {name}","Saved API key for {name}":"\u5DF2\u4FDD\u5B58 {name} \u7684 API key","{action}, but no models are available for that provider. Use /model to select a model.":"{action}\uFF0C\u4F46\u8BE5\u63D0\u4F9B\u5546\u6CA1\u6709\u53EF\u7528\u6A21\u578B\u3002\u4F7F\u7528 /model \u9009\u62E9\u6A21\u578B\u3002","{action}, but selecting its default model failed: {error}. Use /model to select a model.":"{action}\uFF0C\u4F46\u9009\u62E9\u5176\u9ED8\u8BA4\u6A21\u578B\u5931\u8D25\uFF1A{error}\u3002\u4F7F\u7528 /model \u9009\u62E9\u6A21\u578B\u3002","{action}. Selected {modelId}. Credentials saved to {path}":"{action}\u3002\u5DF2\u9009\u62E9 {modelId}\u3002\u51ED\u8BC1\u5DF2\u4FDD\u5B58\u5230 {path}","{action}. Credentials saved to {path}":"{action}\u3002\u51ED\u8BC1\u5DF2\u4FDD\u5B58\u5230 {path}","{action}. Credentials saved to {path}. Refreshing model catalog\u2026":"{action}\u3002\u51ED\u8BC1\u5DF2\u4FDD\u5B58\u5230 {path}\u3002\u6B63\u5728\u5237\u65B0\u6A21\u578B\u76EE\u5F55\u2026","{action}, but its model catalog refresh timed out; using cached models.":"{action}\uFF0C\u4F46\u5176\u6A21\u578B\u76EE\u5F55\u5237\u65B0\u8D85\u65F6\uFF1B\u4F7F\u7528\u7F13\u5B58\u6A21\u578B\u3002","{action}, but its model catalog could not be refreshed; using cached models.":"{action}\uFF0C\u4F46\u5176\u6A21\u578B\u76EE\u5F55\u65E0\u6CD5\u5237\u65B0\uFF1B\u4F7F\u7528\u7F13\u5B58\u6A21\u578B\u3002","{action}, but its model catalog could not be refreshed: {error}":"{action}\uFF0C\u4F46\u5176\u6A21\u578B\u76EE\u5F55\u65E0\u6CD5\u5237\u65B0\uFF1A{error}",'{action}, but no default model is configured for provider "{providerId}". Use /model to select a model.':'{action}\uFF0C\u4F46\u63D0\u4F9B\u5546 "{providerId}" \u672A\u914D\u7F6E\u9ED8\u8BA4\u6A21\u578B\u3002\u4F7F\u7528 /model \u9009\u62E9\u6A21\u578B\u3002','{action}, but its default model "{modelId}" is not available. Use /model to select a model.':'{action}\uFF0C\u4F46\u5176\u9ED8\u8BA4\u6A21\u578B "{modelId}" \u4E0D\u53EF\u7528\u3002\u4F7F\u7528 /model \u9009\u62E9\u6A21\u578B\u3002',"{name} setup":"{name} \u8BBE\u7F6E","{method} is configured outside {appName}.":"{method} \u5728 {appName} \u4E4B\u5916\u914D\u7F6E\u3002",Authentication:"\u8BA4\u8BC1","You can also use an AWS profile, IAM keys, or role-based credentials.":"\u4E5F\u53EF\u4EE5\u4F7F\u7528 AWS profile\u3001IAM \u5BC6\u94A5\u6216\u57FA\u4E8E\u89D2\u8272\u7684\u51ED\u8BC1\u3002","See:":"\u53C2\u89C1\uFF1A","Saved API key for {name}, but local model state could not be synchronized: {error}":"\u5DF2\u4FDD\u5B58 {name} \u7684 API key\uFF0C\u4F46\u672C\u5730\u6A21\u578B\u72B6\u6001\u672A\u80FD\u540C\u6B65\uFF1A{error}","Failed to save API key for {name}: {error}":"\u4FDD\u5B58 {name} \u7684 API key \u5931\u8D25\uFF1A{error}","Waiting for authentication...":"\u7B49\u5F85\u8BA4\u8BC1...","Logged in to {name}, but local model state could not be synchronized: {error}":"\u5DF2\u767B\u5F55 {name}\uFF0C\u4F46\u672C\u5730\u6A21\u578B\u72B6\u6001\u672A\u80FD\u540C\u6B65\uFF1A{error}","Failed to login to {name}: {error}":"\u767B\u5F55 {name} \u5931\u8D25\uFF1A{error}","Product Metrics":"\u4EA7\u54C1\u6307\u6807","whole journal":"\u5168\u90E8\u8BB0\u5F55","last {count} turns":"\u6700\u8FD1 {count} \u8F6E","Window:":"\u7A97\u53E3\uFF1A","({count} sampled)":"\uFF08\u91C7\u6837 {count} \u8F6E\uFF09","Turns:":"\u8F6E\u6B21\uFF1A","{count} total, {succeeded} succeeded":"\u5171 {count} \u6B21\uFF0C\u6210\u529F {succeeded} \u6B21","Turn duration:":"\u8F6E\u6B21\u8017\u65F6\uFF1A","{calls} calls, {errors} errors":"{calls} \u6B21\u8C03\u7528\uFF0C{errors} \u6B21\u9519\u8BEF","Top errors:":"\u9AD8\u9891\u9519\u8BEF\uFF1A","{calls} calls, {hits} hits ({percent})":"{calls} \u6B21\u8C03\u7528\uFF0C\u547D\u4E2D {hits} \u6B21\uFF08{percent}\uFF09","not sampled ({reason})":"\u672A\u91C7\u6837\uFF08{reason}\uFF09","Memory recall:":"\u8BB0\u5FC6\u53EC\u56DE\uFF1A","{count} samples, p95 {p95}":"{count} \u4E2A\u6837\u672C\uFF0Cp95 {p95}","Cancel latency:":"\u53D6\u6D88\u5EF6\u8FDF\uFF1A","{count} tokens":"{count} tokens","Tokens:":"Tokens\uFF1A","(skipped)":"\uFF08\u5DF2\u8DF3\u8FC7\uFF09",'"{name}" collision:':'"{name}" \u51B2\u7A81\uFF1A',"{action}. No llama.cpp models are loaded. Use /llama to load a model, then /model to select it.":"{action}\u3002\u6CA1\u6709\u5DF2\u52A0\u8F7D\u7684 llama.cpp \u6A21\u578B\u3002\u4F7F\u7528 /llama \u52A0\u8F7D\u6A21\u578B\uFF0C\u518D\u7528 /model \u9009\u62E9\u3002","{action}. Use /model to select a loaded llama.cpp model, or /llama to manage models.":"{action}\u3002\u4F7F\u7528 /model \u9009\u62E9\u5DF2\u52A0\u8F7D\u7684 llama.cpp \u6A21\u578B\uFF0C\u6216\u7528 /llama \u7BA1\u7406\u6A21\u578B\u3002","Fell back to dark theme.":"\u5DF2\u56DE\u9000\u5230\u6697\u8272\u4E3B\u9898\u3002",'Failed to load theme "{name}": {error}':'\u52A0\u8F7D\u4E3B\u9898 "{name}" \u5931\u8D25\uFF1A{error}'};var tuiSelfOwned={'Unknown suite "{suiteId}". Available suites: {suites}.':'\u672A\u77E5\u7684 suite "{suiteId}"\u3002\u53EF\u7528 suite: {suites}\u3002',"Suite set to {suiteId} \u2014 applies to the next new session (/new); an explicit --suite or AGENT_FORGE_SUITE startup keeps overriding it":"suite \u5DF2\u8BBE\u4E3A {suiteId} \u2014 \u4E8E\u4E0B\u4E00\u4E2A\u65B0\u4F1A\u8BDD\u751F\u6548\uFF08/new\uFF09\uFF1B\u663E\u5F0F --suite \u6216 AGENT_FORGE_SUITE \u542F\u52A8\u503C\u6301\u7EED\u8986\u76D6","Select Suite":"\u9009\u62E9 Suite","The next new session (/new) uses the selected suite; this session keeps its current suite":"\u4E0B\u4E00\u4E2A\u65B0\u4F1A\u8BDD\uFF08/new\uFF09\u4F7F\u7528\u6240\u9009 suite\uFF1B\u672C\u4F1A\u8BDD\u4FDD\u6301\u5F53\u524D suite","current session":"\u5F53\u524D\u4F1A\u8BDD",'Unknown thinking level "{level}". Available levels: {levels}.':'\u672A\u77E5\u7684\u601D\u8003\u7B49\u7EA7 "{level}"\u3002\u53EF\u7528\u7B49\u7EA7: {levels}\u3002',"Default thinking level: {level}":"\u9ED8\u8BA4\u601D\u8003\u7B49\u7EA7\uFF1A{level}","Thinking level: {level}":"\u601D\u8003\u7EA7\u522B\uFF1A{level}","Model: {id}":"\u6A21\u578B\uFF1A{id}","Refreshing model catalogs\u2026":"\u6B63\u5728\u5237\u65B0\u6A21\u578B\u76EE\u5F55\u2026","Model refresh timed out; searching cached models.":"\u6A21\u578B\u5237\u65B0\u8D85\u65F6\uFF1B\u6B63\u5728\u641C\u7D22\u7F13\u5B58\u6A21\u578B\u3002","Could not refresh {providers}; searching cached models.":"\u65E0\u6CD5\u5237\u65B0 {providers}\uFF1B\u6B63\u5728\u641C\u7D22\u7F13\u5B58\u6A21\u578B\u3002","Could not refresh model catalogs: {message}":"\u65E0\u6CD5\u5237\u65B0\u6A21\u578B\u76EE\u5F55\uFF1A{message}","Default model: {provider}/{id}":"\u9ED8\u8BA4\u6A21\u578B\uFF1A{provider}/{id}","Model selection saved to settings":"\u6A21\u578B\u9009\u62E9\u5DF2\u4FDD\u5B58\u5230\u8BBE\u7F6E","Model refresh timed out; showing cached models.":"\u6A21\u578B\u5237\u65B0\u8D85\u65F6\uFF1B\u663E\u793A\u7F13\u5B58\u6A21\u578B\u3002","Could not refresh {providers}; showing cached models.":"\u65E0\u6CD5\u5237\u65B0 {providers}\uFF1B\u663E\u793A\u7F13\u5B58\u6A21\u578B\u3002","Model catalogs refreshed.":"\u6A21\u578B\u76EE\u5F55\u5DF2\u5237\u65B0\u3002","No messages to fork from":"\u6CA1\u6709\u53EF\u4F9B fork \u7684\u6D88\u606F","Forked to new session":"\u5DF2 fork \u5230\u65B0\u4F1A\u8BDD","Nothing to clone yet":"\u5C1A\u65E0\u53EF\u514B\u9686\u7684\u5185\u5BB9","Cloned to new session":"\u5DF2\u514B\u9686\u5230\u65B0\u4F1A\u8BDD","Workflow Overview":"\u5DE5\u4F5C\u6D41\u603B\u89C8",panorama:"\u5168\u666F","transition log (newest first)":"\u6D41\u8F6C\u65E5\u5FD7\uFF08\u6700\u65B0\u5728\u524D\uFF09",move:"\u79FB\u52A8",log:"\u65E5\u5FD7",approve:"\u6279\u51C6",reject:"\u62D2\u7EDD",skip:"\u8DF3\u8FC7",cancel:"\u53D6\u6D88",close:"\u5173\u95ED","no workflow transitions recorded":"\u672A\u8BB0\u5F55\u4EFB\u4F55\u5DE5\u4F5C\u6D41\u6D41\u8F6C","no workflow.state entry in this session":"\u672C\u4F1A\u8BDD\u6CA1\u6709 workflow.state \u6761\u76EE","no workflows in this session; create one with workflow_set":"\u672C\u4F1A\u8BDD\u6CA1\u6709\u5DE5\u4F5C\u6D41\uFF1B\u53EF\u7528 workflow_set \u521B\u5EFA",'workflow "{title}" ({workflowId}) \u2014 {status} \xB7 revision {revision} \xB7 active {activeCount}/{maxActiveStages} \xB7 retreats {retreatCount}/{maxRetreats}':'\u5DE5\u4F5C\u6D41 "{title}" ({workflowId}) \u2014 {status} \xB7 \u4FEE\u8BA2 {revision} \xB7 \u6D3B\u8DC3 {activeCount}/{maxActiveStages} \xB7 \u56DE\u9000 {retreatCount}/{maxRetreats}',"goal: {goalId}":"\u76EE\u6807\uFF1A{goalId}","diagnostics:":"\u8BCA\u65AD:","(shown above)":"\uFF08\u89C1\u4E0A\u6587\uFF09","waiting: {condition}":"\u7B49\u5F85\uFF1A{condition}","\xB7 attempts {count}":"\xB7 \u5C1D\u8BD5 {count}","\xB7 evidence {count}":"\xB7 \u8BC1\u636E {count}","scope:{conflict}":"\u5199\u5165\u8303\u56F4\u51B2\u7A81\uFF1A{conflict}","No workflow to cancel":"\u6CA1\u6709\u53EF\u53D6\u6D88\u7684\u5DE5\u4F5C\u6D41","Select a stage row first":"\u8BF7\u5148\u9009\u4E2D\u4E00\u4E2A\u9636\u6BB5\u884C","Subagent Sessions":"\u5B50\u4EE3\u7406\u4F1A\u8BDD","this session's subagents (newest first)":"\u672C\u4F1A\u8BDD\u7684\u5B50\u4EE3\u7406\uFF08\u6700\u65B0\u5728\u524D\uFF09","transcript (read-only)":"\u4F1A\u8BDD\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF09",detail:"\u8BE6\u60C5",open:"\u6253\u5F00",list:"\u5217\u8868",back:"\u8FD4\u56DE","session {sessionId}":"\u4F1A\u8BDD {sessionId}","role {role}":"\u89D2\u8272 {role}","created {createdAt}":"\u521B\u5EFA\u4E8E {createdAt}","{count} entries":"{count} \u6761\u76EE",truncated:"\u5DF2\u622A\u65AD","no session selected":"\u672A\u9009\u62E9\u4F1A\u8BDD","transcript unavailable (missing or unreadable)":"\u4F1A\u8BDD\u8BB0\u5F55\u4E0D\u53EF\u7528\uFF08\u7F3A\u5931\u6216\u4E0D\u53EF\u8BFB\uFF09","no subagent sessions in this session":"\u672C\u4F1A\u8BDD\u6CA1\u6709\u5B50\u4EE3\u7406\u4F1A\u8BDD"};var zhCn={...common,...example,...interactiveMode,...slashCommands,...tuiSelfOwned,...tuiComponentsSelectors,...tuiComponentsMisc,...tuiInteractiveMisc,...cli,...coreErrors,...sessionCleanup,...coreContractExtensions,...coreContractCore,...coreContractPlugins,...coreContractFinal,...keybindings,...tuiBuiltin};var LANGUAGE_ENV_VAR="AGENT_FORGE_I18N_LANG",DEFAULT_LANGUAGE="zh-CN",dictionaries={"zh-CN":zhCn},injectedLanguage;function isValidLanguage(value){return value==="zh-CN"||value==="en"}function resolveLanguage(){let envLanguage=process.env[LANGUAGE_ENV_VAR];return isValidLanguage(envLanguage)?envLanguage:injectedLanguage??DEFAULT_LANGUAGE}function interpolate(template,params){return params?template.replace(/\{([^{}]+)\}/g,(match,name)=>{let value=params[name];return value===void 0?match:String(value)}):template}function t(key,params){let normalizedKey=key.trim(),language=resolveLanguage();if(language==="en")return interpolate(normalizedKey,params);let template=dictionaries[language]?.[normalizedKey]??normalizedKey;return interpolate(template,params)}function readOrientationFromTiff(bytes,tiffStart){if(tiffStart+8>bytes.length)return 1;let le=(bytes[tiffStart]<<8|bytes[tiffStart+1])===18761,read16=pos=>le?bytes[pos]|bytes[pos+1]<<8:bytes[pos]<<8|bytes[pos+1],ifdOffset=(pos=>le?bytes[pos]|bytes[pos+1]<<8|bytes[pos+2]<<16|bytes[pos+3]<<24:(bytes[pos]<<24|bytes[pos+1]<<16|bytes[pos+2]<<8|bytes[pos+3])>>>0)(tiffStart+4),ifdStart=tiffStart+ifdOffset;if(ifdStart+2>bytes.length)return 1;let entryCount=read16(ifdStart);for(let i=0;i<entryCount;i++){let entryPos=ifdStart+2+i*12;if(entryPos+12>bytes.length)return 1;if(read16(entryPos)===274){let value=read16(entryPos+8);return value>=1&&value<=8?value:1}}return 1}function findJpegTiffOffset(bytes){let offset=2;for(;offset<bytes.length-1;){if(bytes[offset]!==255)return-1;let marker=bytes[offset+1];if(marker===255){offset++;continue}if(marker===225){if(offset+4>=bytes.length)return-1;let segmentStart=offset+4;if(segmentStart+6>bytes.length)return-1;if(hasExifHeader(bytes,segmentStart))return segmentStart+6}if(offset+4>bytes.length)return-1;let length=bytes[offset+2]<<8|bytes[offset+3];offset+=2+length}return-1}function findWebpTiffOffset(bytes){let offset=12;for(;offset+8<=bytes.length;){let chunkId=String.fromCharCode(bytes[offset],bytes[offset+1],bytes[offset+2],bytes[offset+3]),chunkSize=bytes[offset+4]|bytes[offset+5]<<8|bytes[offset+6]<<16|bytes[offset+7]<<24,dataStart=offset+8;if(chunkId==="EXIF")return dataStart+chunkSize>bytes.length?-1:chunkSize>=6&&hasExifHeader(bytes,dataStart)?dataStart+6:dataStart;offset=dataStart+chunkSize+chunkSize%2}return-1}function hasExifHeader(bytes,offset){return bytes[offset]===69&&bytes[offset+1]===120&&bytes[offset+2]===105&&bytes[offset+3]===102&&bytes[offset+4]===0&&bytes[offset+5]===0}function getExifOrientation(bytes){let tiffOffset=-1;return bytes.length>=2&&bytes[0]===255&&bytes[1]===216?tiffOffset=findJpegTiffOffset(bytes):bytes.length>=12&&bytes[0]===82&&bytes[1]===73&&bytes[2]===70&&bytes[3]===70&&bytes[8]===87&&bytes[9]===69&&bytes[10]===66&&bytes[11]===80&&(tiffOffset=findWebpTiffOffset(bytes)),tiffOffset===-1?1:readOrientationFromTiff(bytes,tiffOffset)}function rotate90(photon,image,dstIndex){let w=image.get_width(),h=image.get_height(),src=image.get_raw_pixels(),dst=new Uint8Array(src.length);for(let y=0;y<h;y++)for(let x=0;x<w;x++){let srcIdx=(y*w+x)*4,dstIdx=dstIndex(x,y,w,h)*4;dst[dstIdx]=src[srcIdx],dst[dstIdx+1]=src[srcIdx+1],dst[dstIdx+2]=src[srcIdx+2],dst[dstIdx+3]=src[srcIdx+3]}return new photon.PhotonImage(dst,h,w)}function applyExifOrientation(photon,image,originalBytes){let orientation=getExifOrientation(originalBytes);if(orientation===1)return image;switch(orientation){case 2:return photon.fliph(image),image;case 3:return photon.fliph(image),photon.flipv(image),image;case 4:return photon.flipv(image),image;case 5:{let rotated=rotate90(photon,image,(x,y,_w,h)=>x*h+(h-1-y));return photon.fliph(rotated),rotated}case 6:return rotate90(photon,image,(x,y,_w,h)=>x*h+(h-1-y));case 7:{let rotated=rotate90(photon,image,(x,y,w,h)=>(w-1-x)*h+y);return photon.fliph(rotated),rotated}case 8:return rotate90(photon,image,(x,y,w,h)=>(w-1-x)*h+y);default:return image}}import{createRequire}from"module";import*as path from"path";import{fileURLToPath}from"url";var require2=createRequire(import.meta.url),fs=require2("fs"),WASM_FILENAME="photon_rs_bg.wasm",photonModule=null,loadPromise=null;function pathOrNull(file){return typeof file=="string"?file:file instanceof URL?fileURLToPath(file):null}function getFallbackWasmPaths(){let execDir=path.dirname(process.execPath);return[path.join(execDir,WASM_FILENAME),path.join(execDir,"photon",WASM_FILENAME),path.join(process.cwd(),WASM_FILENAME)]}function patchPhotonWasmRead(){let originalReadFileSync=fs.readFileSync.bind(fs),fallbackPaths=getFallbackWasmPaths(),mutableFs=fs,patchedReadFileSync=((...args)=>{let[file,options]=args;if(pathOrNull(file)?.endsWith(WASM_FILENAME))try{return originalReadFileSync(...args)}catch(error){let err=error;if(err?.code&&err.code!=="ENOENT")throw error;for(let fallbackPath of fallbackPaths)if(fs.existsSync(fallbackPath))return options===void 0?originalReadFileSync(fallbackPath):originalReadFileSync(fallbackPath,options);throw error}return originalReadFileSync(...args)});try{mutableFs.readFileSync=patchedReadFileSync}catch{Object.defineProperty(fs,"readFileSync",{value:patchedReadFileSync,writable:!0,configurable:!0})}return()=>{try{mutableFs.readFileSync=originalReadFileSync}catch{Object.defineProperty(fs,"readFileSync",{value:originalReadFileSync,writable:!0,configurable:!0})}}}async function loadPhoton(){return photonModule||loadPromise||(loadPromise=(async()=>{let restoreReadFileSync=patchPhotonWasmRead();try{return photonModule=await import("@silvia-odwyer/photon-node"),photonModule}catch{return photonModule=null,photonModule}finally{restoreReadFileSync()}})(),loadPromise)}var DEFAULT_MAX_BYTES=4.5*1024*1024,DEFAULT_OPTIONS={maxWidth:2e3,maxHeight:2e3,maxBytes:DEFAULT_MAX_BYTES,jpegQuality:80};function encodeCandidate(buffer,mimeType){let data=Buffer.from(buffer).toString("base64");return{data,encodedSize:Buffer.byteLength(data,"utf-8"),mimeType}}async function resizeImageInProcess(inputBytes,mimeType,options){let opts={...DEFAULT_OPTIONS,...options},inputBase64Size=Math.ceil(inputBytes.byteLength/3)*4,photon=await loadPhoton();if(!photon)return null;let image;try{let tryEncodings=function(width,height,jpegQualities){let resized=photon.resize(image,width,height,photon.SamplingFilter.Lanczos3);try{let candidates=[encodeCandidate(resized.get_bytes(),"image/png")];for(let quality of jpegQualities)candidates.push(encodeCandidate(resized.get_bytes_jpeg(quality),"image/jpeg"));return candidates}finally{resized.free()}},rawImage=photon.PhotonImage.new_from_byteslice(inputBytes);image=applyExifOrientation(photon,rawImage,inputBytes),image!==rawImage&&rawImage.free();let originalWidth=image.get_width(),originalHeight=image.get_height(),format=mimeType.split("/")[1]??"png";if(originalWidth<=opts.maxWidth&&originalHeight<=opts.maxHeight&&inputBase64Size<opts.maxBytes)return{data:Buffer.from(inputBytes).toString("base64"),mimeType:mimeType||`image/${format}`,originalWidth,originalHeight,width:originalWidth,height:originalHeight,wasResized:!1};let targetWidth=originalWidth,targetHeight=originalHeight;targetWidth>opts.maxWidth&&(targetHeight=Math.round(targetHeight*opts.maxWidth/targetWidth),targetWidth=opts.maxWidth),targetHeight>opts.maxHeight&&(targetWidth=Math.round(targetWidth*opts.maxHeight/targetHeight),targetHeight=opts.maxHeight);let qualitySteps=Array.from(new Set([opts.jpegQuality,85,70,55,40])),currentWidth=targetWidth,currentHeight=targetHeight;for(;;){let candidates=tryEncodings(currentWidth,currentHeight,qualitySteps);for(let candidate of candidates)if(candidate.encodedSize<opts.maxBytes)return{data:candidate.data,mimeType:candidate.mimeType,originalWidth,originalHeight,width:currentWidth,height:currentHeight,wasResized:!0};if(currentWidth===1&¤tHeight===1)break;let nextWidth=currentWidth===1?1:Math.max(1,Math.floor(currentWidth*.75)),nextHeight=currentHeight===1?1:Math.max(1,Math.floor(currentHeight*.75));if(nextWidth===currentWidth&&nextHeight===currentHeight)break;currentWidth=nextWidth,currentHeight=nextHeight}return null}catch{return null}finally{image&&image.free()}}function isResizeImageWorkerRequest(value){if(!value||typeof value!="object")return!1;let record=value;return record.inputBytes instanceof Uint8Array&&typeof record.mimeType=="string"}var port=parentPort;if(!port)throw new Error(t("image resize worker requires parentPort"));port.once("message",message=>{(async()=>{try{if(!isResizeImageWorkerRequest(message))throw new Error(t("Invalid image resize worker request"));let response={result:await resizeImageInProcess(message.inputBytes,message.mimeType,message.options)};port.postMessage(response)}catch(error){let response={error:error instanceof Error?error.message:String(error)};port.postMessage(response)}})()});
|
package/dist/bundle/chunks/{mistral-conversations-JXUK24ID.js → mistral-conversations-IXUHSFSJ.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
|
|
2
|
-
import{shortHash}from"./chunk-PJACZCIR.js";import{buildBaseOptions,getJsonSchemaToolParameters,getPiUserAgent,resolveJsonSchemaStrictSampling,transformMessages}from"./chunk-TBPTHASB.js";import{sanitizeSurrogates}from"./chunk-L2ZPNLYD.js";import{headersToRecord}from"./chunk-
|
|
2
|
+
import{shortHash}from"./chunk-PJACZCIR.js";import{buildBaseOptions,getJsonSchemaToolParameters,getPiUserAgent,resolveJsonSchemaStrictSampling,transformMessages}from"./chunk-TBPTHASB.js";import{sanitizeSurrogates}from"./chunk-L2ZPNLYD.js";import{headersToRecord}from"./chunk-QDLOMKF6.js";import{parseStreamingJson}from"./chunk-TRDNDS6A.js";import{calculateCost,clampThinkingLevel}from"./chunk-HV64ASMT.js";import{AssistantMessageEventStream}from"./chunk-A3JYRWB6.js";import"./chunk-4L3WN2XY.js";var MISTRAL_TOOL_CALL_ID_LENGTH=9,MAX_MISTRAL_ERROR_BODY_CHARS=4e3,stream=(model,context,options)=>{let stream2=new AssistantMessageEventStream;return(async()=>{let output=createOutput(model);try{let apiKey=options?.apiKey;if(!apiKey)throw new Error(`No API key for provider: ${model.provider}`);let normalizeMistralToolCallId=createMistralToolCallIdNormalizer(),transformedMessages=transformMessages(context.messages,model,id=>normalizeMistralToolCallId(id)),payload=buildChatPayload(model,context,transformedMessages,options),nextPayload=await options?.onPayload?.(payload,model);nextPayload!==void 0&&(payload=nextPayload);let mistralStream=await requestMistralStream(model,payload,apiKey,options);if(stream2.push({type:"start",partial:output}),await consumeChatStream(model,output,stream2,mistralStream),options?.signal?.aborted)throw new Error("Request was aborted");if(output.stopReason==="pending")throw new Error("Mistral stream ended without a finish reason");if(output.stopReason==="aborted"||output.stopReason==="error")throw new Error(output.errorMessage||"An unknown error occurred");stream2.push({type:"done",reason:output.stopReason,message:output}),stream2.end()}catch(error){for(let block of output.content)delete block.partialArgs;output.stopReason=options?.signal?.aborted?"aborted":"error",output.errorMessage=formatMistralError(error),stream2.push({type:"error",reason:output.stopReason,error:output}),stream2.end()}})(),stream2},streamSimple=(model,context,options)=>{let apiKey=options?.apiKey;if(!apiKey)throw new Error(`No API key for provider: ${model.provider}`);let base={...buildBaseOptions(model,context,options,apiKey),toolChoice:options?.toolChoice},clampedReasoning=options?.reasoning?clampThinkingLevel(model,options.reasoning):void 0,reasoning=clampedReasoning==="off"?void 0:clampedReasoning,effortMap=model.reasoning?model.thinkingLevelMap:void 0,reasoningEffort=effortMap?reasoning?effortMap[reasoning]??"high":effortMap.off??void 0:void 0;return stream(model,context,{...base,promptMode:model.reasoning&&!effortMap&&reasoning?"reasoning":void 0,reasoningEffort})};function createOutput(model){return{role:"assistant",content:[],api:model.api,provider:model.provider,model:model.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()}}function createMistralToolCallIdNormalizer(){let idMap=new Map,reverseMap=new Map;return id=>{let existing=idMap.get(id);if(existing)return existing;let attempt=0;for(;;){let candidate=deriveMistralToolCallId(id,attempt),owner=reverseMap.get(candidate);if(!owner||owner===id)return idMap.set(id,candidate),reverseMap.set(candidate,id),candidate;attempt++}}}function deriveMistralToolCallId(id,attempt){let normalized=id.replace(/[^a-zA-Z0-9]/g,"");if(attempt===0&&normalized.length===MISTRAL_TOOL_CALL_ID_LENGTH)return normalized;let seedBase=normalized||id,seed=attempt===0?seedBase:`${seedBase}:${attempt}`;return shortHash(seed).replace(/[^a-zA-Z0-9]/g,"").slice(0,MISTRAL_TOOL_CALL_ID_LENGTH)}function formatMistralError(error){if(error instanceof Error){let httpError=error,statusCode=typeof httpError.statusCode=="number"?httpError.statusCode:void 0,bodyText=typeof httpError.body=="string"?httpError.body.trim():void 0;return statusCode!==void 0&&bodyText?`Mistral API error (${statusCode}): ${truncateErrorText(bodyText,MAX_MISTRAL_ERROR_BODY_CHARS)}`:statusCode!==void 0?`Mistral API error (${statusCode}): ${error.message}`:error.message}return safeJsonStringify(error)}function truncateErrorText(text,maxChars){return text.length<=maxChars?text:`${text.slice(0,maxChars)}... [truncated ${text.length-maxChars} chars]`}function safeJsonStringify(value){try{let serialized=JSON.stringify(value);return serialized===void 0?String(value):serialized}catch{return String(value)}}async function requestMistralStream(model,payload,apiKey,options){let baseUrl=new URL(model.baseUrl);baseUrl.pathname=`${baseUrl.pathname.replace(/\/+$/u,"")}/`;let url=new URL("v1/chat/completions",baseUrl),headers=buildMistralHeaders(model,apiKey,options),timeoutSignal=AbortSignal.timeout(options?.timeoutMs??6e4),signal=options?.signal?AbortSignal.any([options.signal,timeoutSignal]):timeoutSignal,response=await(options?.fetch??globalThis.fetch)(url,{method:"POST",headers,body:JSON.stringify(toMistralWirePayload(payload)),signal});if(await options?.onResponse?.({status:response.status,headers:headersToRecord(response.headers)},model),!response.ok){let body=await response.text();throw new MistralHttpError(response.status,body,response.statusText)}if(!response.body)throw new Error("Mistral response has no body");return readMistralEvents(response.body,signal)}var MistralHttpError=class extends Error{statusCode;body;constructor(statusCode,body,statusText){super(statusText||`Request failed with status ${statusCode}`),this.name="MistralHttpError",this.statusCode=statusCode,this.body=body}};function buildMistralHeaders(model,apiKey,options){let headers=new Headers({"User-Agent":getPiUserAgent(),accept:"text/event-stream",authorization:`Bearer ${apiKey}`,"content-type":"application/json"});applyMistralHeaderOverrides(headers,model.headers),applyMistralHeaderOverrides(headers,options?.headers);let hasExplicitAffinity=hasMistralHeaderOverride(model.headers,"x-affinity")||hasMistralHeaderOverride(options?.headers,"x-affinity");return shouldUsePromptCaching(options)&&!hasExplicitAffinity&&headers.set("x-affinity",options.sessionId),headers}function applyMistralHeaderOverrides(headers,overrides){if(overrides)for(let[name,value]of Object.entries(overrides))value===null?headers.delete(name):headers.set(name,value)}function hasMistralHeaderOverride(overrides,target){return!!overrides&&Object.keys(overrides).some(name=>name.toLowerCase()===target)}function toMistralWirePayload(payload){let wirePayload={...payload};for(let[source,target]of[["topP","top_p"],["maxTokens","max_tokens"],["randomSeed","random_seed"],["responseFormat","response_format"],["toolChoice","tool_choice"],["presencePenalty","presence_penalty"],["frequencyPenalty","frequency_penalty"],["parallelToolCalls","parallel_tool_calls"],["reasoningEffort","reasoning_effort"],["promptMode","prompt_mode"],["promptCacheKey","prompt_cache_key"],["safePrompt","safe_prompt"]])remapMistralProperty(wirePayload,source,target);wirePayload.messages=payload.messages.map(message=>toMistralWireMessage(message));let responseFormat=wirePayload.response_format;if(isMistralRecord(responseFormat)){let wireResponseFormat={...responseFormat};remapMistralProperty(wireResponseFormat,"jsonSchema","json_schema");let jsonSchema=wireResponseFormat.json_schema;if(isMistralRecord(jsonSchema)){let wireJsonSchema={...jsonSchema};remapMistralProperty(wireJsonSchema,"schemaDefinition","schema"),wireResponseFormat.json_schema=wireJsonSchema}wirePayload.response_format=wireResponseFormat}return wirePayload}function toMistralWireMessage(message){let wireMessage={...message};return remapMistralProperty(wireMessage,"toolCalls","tool_calls"),remapMistralProperty(wireMessage,"toolCallId","tool_call_id"),Array.isArray(message.content)&&(wireMessage.content=message.content.map(chunk=>toMistralWireContentChunk(chunk))),wireMessage}function toMistralWireContentChunk(chunk){let wireChunk={...chunk};for(let[source,target]of[["imageUrl","image_url"],["documentUrl","document_url"],["documentName","document_name"],["fileId","file_id"],["referenceIds","reference_ids"],["inputAudio","input_audio"]])remapMistralProperty(wireChunk,source,target);return wireChunk}function remapMistralProperty(record,source,target){source in record&&(record[target]=record[source],delete record[source])}function isMistralRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}var MISTRAL_STREAM_DONE=Symbol("mistral-stream-done");async function*readMistralEvents(body,signal){let reader=body.getReader(),decoder=new TextDecoder,buffer="",onAbort=()=>{reader.cancel().catch(()=>{})};signal.addEventListener("abort",onAbort,{once:!0});try{for(;;){if(signal.aborted)throw signal.reason;let{done,value}=await reader.read();if(signal.aborted)throw signal.reason;buffer+=done?decoder.decode():decoder.decode(value,{stream:!0});let boundary=findMistralEventBoundary(buffer);for(;boundary;){let event=parseMistralEvent(buffer.slice(0,boundary.index));if(buffer=buffer.slice(boundary.index+boundary.length),event===MISTRAL_STREAM_DONE)return;event&&(yield event),boundary=findMistralEventBoundary(buffer)}if(done)break}if(buffer.trim()){let event=parseMistralEvent(buffer);event!==MISTRAL_STREAM_DONE&&event&&(yield event)}}finally{signal.removeEventListener("abort",onAbort);try{await reader.cancel()}catch{}try{reader.releaseLock()}catch{}}}function findMistralEventBoundary(buffer){let match=/\r\n\r\n|\r\n\r|\r\n\n|\r\r\n|\n\r\n|\r\r|\n\r|\n\n/u.exec(buffer);return match?.index===void 0?void 0:{index:match.index,length:match[0].length}}function parseMistralEvent(raw){let data=raw.split(/\r\n|\r|\n/u).filter(line=>line.startsWith("data:")).map(line=>line.slice(5).trimStart()).join(`
|
|
3
3
|
`).trim();if(!data)return;if(data==="[DONE]")return MISTRAL_STREAM_DONE;let parsed=JSON.parse(data);if(!isMistralRecord(parsed)||!Array.isArray(parsed.choices))throw new Error("Invalid Mistral streaming event");return{data:parsed}}function buildChatPayload(model,context,messages,options){let payload={model:model.id,stream:!0,messages:toChatMessages(messages,model.input.includes("image"))};return context.tools?.length&&(payload.tools=toFunctionTools(context.tools)),options?.temperature!==void 0&&(payload.temperature=options.temperature),options?.maxTokens!==void 0&&(payload.maxTokens=options.maxTokens),options?.toolChoice&&(payload.toolChoice=mapToolChoice(options.toolChoice)),options?.promptMode&&(payload.promptMode=options.promptMode),options?.reasoningEffort&&(payload.reasoningEffort=options.reasoningEffort),shouldUsePromptCaching(options)&&(payload.promptCacheKey=options.sessionId),context.systemPrompt&&payload.messages.unshift({role:"system",content:sanitizeSurrogates(context.systemPrompt)}),payload}function shouldUsePromptCaching(options){return options?.cacheRetention!=="none"&&!!options?.sessionId}function getMistralCachedPromptTokens(usage,promptTokens){let rawUsage=usage,rawCachedTokens=rawUsage.promptTokensDetails?.cachedTokens??rawUsage.prompt_tokens_details?.cached_tokens??rawUsage.promptTokenDetails?.cachedTokens??rawUsage.prompt_token_details?.cached_tokens??rawUsage.numCachedTokens??rawUsage.num_cached_tokens??0,cachedTokens=typeof rawCachedTokens=="number"&&Number.isFinite(rawCachedTokens)?rawCachedTokens:0;return Math.min(promptTokens,Math.max(0,cachedTokens))}async function consumeChatStream(model,output,stream2,mistralStream){let currentBlock=null,blocks=output.content,blockIndex=()=>blocks.length-1,toolBlocksByKey=new Map,finishCurrentBlock=block=>{if(block){if(block.type==="text"){stream2.push({type:"text_end",contentIndex:blockIndex(),content:block.text,partial:output});return}block.type==="thinking"&&stream2.push({type:"thinking_end",contentIndex:blockIndex(),content:block.thinking,partial:output})}};for await(let event of mistralStream){let chunk=event.data;if(output.responseId||=chunk.id,chunk.usage){let promptTokens=chunk.usage.prompt_tokens||0,cachedPromptTokens=getMistralCachedPromptTokens(chunk.usage,promptTokens);output.usage.input=Math.max(0,promptTokens-cachedPromptTokens),output.usage.output=chunk.usage.completion_tokens||0,output.usage.cacheRead=cachedPromptTokens,output.usage.cacheWrite=0,output.usage.totalTokens=chunk.usage.total_tokens||output.usage.input+output.usage.output+output.usage.cacheRead+output.usage.cacheWrite,calculateCost(model,output.usage)}let choice=chunk.choices[0];if(!choice)continue;if(choice.finish_reason){output.rawStopReason=choice.finish_reason;let stopReasonResult=mapChatStopReason(choice.finish_reason);output.stopReason=stopReasonResult.stopReason,stopReasonResult.errorMessage&&(output.errorMessage=stopReasonResult.errorMessage)}let delta=choice.delta;if(delta.content!==null&&delta.content!==void 0){let contentItems=typeof delta.content=="string"?[delta.content]:delta.content;for(let item of contentItems){if(typeof item=="string"){let textDelta=sanitizeSurrogates(item);if(!textDelta)continue;(!currentBlock||currentBlock.type!=="text")&&(finishCurrentBlock(currentBlock),currentBlock={type:"text",text:""},output.content.push(currentBlock),stream2.push({type:"text_start",contentIndex:blockIndex(),partial:output})),currentBlock.text+=textDelta,stream2.push({type:"text_delta",contentIndex:blockIndex(),delta:textDelta,partial:output});continue}if(item.type==="thinking"){let deltaText=(item.thinking??[]).map(part=>part.text??"").filter(text=>text.length>0).join(""),thinkingDelta=sanitizeSurrogates(deltaText);if(!thinkingDelta)continue;(!currentBlock||currentBlock.type!=="thinking")&&(finishCurrentBlock(currentBlock),currentBlock={type:"thinking",thinking:""},output.content.push(currentBlock),stream2.push({type:"thinking_start",contentIndex:blockIndex(),partial:output})),currentBlock.thinking+=thinkingDelta,stream2.push({type:"thinking_delta",contentIndex:blockIndex(),delta:thinkingDelta,partial:output});continue}if(item.type==="text"){let textDelta=sanitizeSurrogates(item.text??"");if(!textDelta)continue;(!currentBlock||currentBlock.type!=="text")&&(finishCurrentBlock(currentBlock),currentBlock={type:"text",text:""},output.content.push(currentBlock),stream2.push({type:"text_start",contentIndex:blockIndex(),partial:output})),currentBlock.text+=textDelta,stream2.push({type:"text_delta",contentIndex:blockIndex(),delta:textDelta,partial:output})}}}let toolCalls=delta.tool_calls||[];for(let toolCall of toolCalls){currentBlock&&(finishCurrentBlock(currentBlock),currentBlock=null);let callId=toolCall.id&&toolCall.id!=="null"?toolCall.id:deriveMistralToolCallId(`toolcall:${toolCall.index??0}`,0),key=toolCall.index??callId,existingIndex=toolBlocksByKey.get(key),block;if(existingIndex!==void 0){let existing=output.content[existingIndex];existing?.type==="toolCall"&&(block=existing)}block||(block={type:"toolCall",id:callId,name:toolCall.function.name,arguments:{},partialArgs:""},output.content.push(block),toolBlocksByKey.set(key,output.content.length-1),stream2.push({type:"toolcall_start",contentIndex:output.content.length-1,partial:output}));let argsDelta=typeof toolCall.function.arguments=="string"?toolCall.function.arguments:JSON.stringify(toolCall.function.arguments||{});block.partialArgs=(block.partialArgs||"")+argsDelta,block.arguments=parseStreamingJson(block.partialArgs),stream2.push({type:"toolcall_delta",contentIndex:toolBlocksByKey.get(key),delta:argsDelta,partial:output})}}finishCurrentBlock(currentBlock);for(let index of toolBlocksByKey.values()){let block=output.content[index];if(block.type!=="toolCall")continue;let toolBlock=block;toolBlock.arguments=parseStreamingJson(toolBlock.partialArgs),delete toolBlock.partialArgs,stream2.push({type:"toolcall_end",contentIndex:index,toolCall:toolBlock,partial:output})}}function toFunctionTools(tools){return tools.map(tool=>{let strict=resolveJsonSchemaStrictSampling(tool,!0);return{type:"function",function:{name:tool.name,description:tool.description,parameters:stripSymbolKeys(getJsonSchemaToolParameters(tool,strict)),strict:strict??!1}}})}function stripSymbolKeys(value){if(Array.isArray(value))return value.map(item=>stripSymbolKeys(item));if(value&&typeof value=="object"){let result={};for(let[key,entry]of Object.entries(value))result[key]=stripSymbolKeys(entry);return result}return value}function toChatMessages(messages,supportsImages){let result=[];for(let msg of messages){if(msg.role==="user"){if(typeof msg.content=="string"){result.push({role:"user",content:sanitizeSurrogates(msg.content)});continue}let hadImages=msg.content.some(item=>item.type==="image"),content=msg.content.filter(item=>item.type==="text"||supportsImages).map(item=>item.type==="text"?{type:"text",text:sanitizeSurrogates(item.text)}:{type:"image_url",imageUrl:`data:${item.mimeType};base64,${item.data}`});if(content.length>0){result.push({role:"user",content});continue}hadImages&&!supportsImages&&result.push({role:"user",content:"(image omitted: model does not support images)"});continue}if(msg.role==="assistant"){let contentParts=[],toolCalls=[];for(let block of msg.content){if(block.type==="text"){block.text.trim().length>0&&contentParts.push({type:"text",text:sanitizeSurrogates(block.text)});continue}if(block.type==="thinking"){block.thinking.trim().length>0&&contentParts.push({type:"thinking",thinking:[{type:"text",text:sanitizeSurrogates(block.thinking)}]});continue}toolCalls.push({id:block.id,type:"function",function:{name:block.name,arguments:JSON.stringify(block.arguments||{})},index:0})}let assistantMessage={role:"assistant",prefix:!1};contentParts.length>0&&(assistantMessage.content=contentParts),toolCalls.length>0&&(assistantMessage.toolCalls=toolCalls),(contentParts.length>0||toolCalls.length>0)&&result.push(assistantMessage);continue}let toolContent=[],textResult=msg.content.filter(part=>part.type==="text").map(part=>part.type==="text"?sanitizeSurrogates(part.text):"").join(`
|
|
4
4
|
`),hasImages=msg.content.some(part=>part.type==="image"),toolText=buildToolResultText(textResult,hasImages,supportsImages,msg.isError);toolContent.push({type:"text",text:toolText});for(let part of msg.content)supportsImages&&part.type==="image"&&toolContent.push({type:"image_url",imageUrl:`data:${part.mimeType};base64,${part.data}`});result.push({role:"tool",toolCallId:msg.toolCallId,name:msg.toolName,content:toolContent})}return result}function buildToolResultText(text,hasImages,supportsImages,isError){let trimmed=text.trim(),errorPrefix=isError?"[tool error] ":"";return trimmed.length>0?`${errorPrefix}${trimmed}${hasImages&&!supportsImages?`
|
|
5
5
|
[tool image omitted: model does not support images]`:""}`:hasImages?supportsImages?isError?"[tool error] (see attached image)":"(see attached image)":isError?"[tool error] (image omitted: model does not support images)":"(image omitted: model does not support images)":isError?"[tool error] (no tool output)":"(no tool output)"}function mapToolChoice(choice){if(choice)return choice==="auto"||choice==="none"||choice==="any"||choice==="required"?choice:{type:"function",function:{name:choice.function.name}}}function mapChatStopReason(reason){if(reason===null)return{stopReason:"stop"};switch(reason){case"stop":return{stopReason:"stop"};case"length":case"model_length":return{stopReason:"length"};case"tool_calls":return{stopReason:"toolUse"};case"error":return{stopReason:"error",errorMessage:"Provider stopped with: error"};default:return{stopReason:"error",errorMessage:`Provider stopped with: ${reason}`}}}export{stream,streamSimple};
|