@ashx-j/lunr 0.2.11 → 0.2.13
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 +13 -0
- package/README.md +211 -236
- package/dist/builtin-extensions/ashxj-tui.d.ts +3 -0
- package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
- package/dist/builtin-extensions/ashxj-tui.js +28 -11
- package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
- package/dist/builtin-extensions/index.d.ts.map +1 -1
- package/dist/builtin-extensions/index.js +0 -2
- package/dist/builtin-extensions/index.js.map +1 -1
- package/dist/builtin-extensions/lunr-cron.d.ts +1 -1
- package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-cron.js +1 -1
- package/dist/builtin-extensions/lunr-cron.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js +3 -3
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts +0 -2
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js +1 -23
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +6 -7
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js +7 -14
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +12 -9
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +38 -34
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +3 -3
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +32 -47
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +7 -10
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +90 -109
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +3 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +37 -50
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts +4 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js +5 -5
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +31 -13
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +4 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +48 -20
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +90 -64
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +6 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +262 -161
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +24 -33
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +25 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +51 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js +20 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +4 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +5 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +9 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +20 -17
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +70 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +153 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts +13 -8
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.js +20 -51
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +80 -20
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js +10 -2
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +20 -32
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +23 -449
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +13 -11
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js +18 -17
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js.map +1 -1
- package/dist/builtin-extensions/simple-pi-memory.d.ts +2 -2
- package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -1
- package/dist/builtin-extensions/simple-pi-memory.js +41 -17
- package/dist/builtin-extensions/simple-pi-memory.js.map +1 -1
- package/dist/catalog/models.json +1 -1
- package/dist/catalog/providers/amazon-bedrock.json +1 -1
- package/dist/catalog/providers/azure-openai-responses.json +1 -1
- package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -1
- package/dist/catalog/providers/cloudflare-workers-ai.json +1 -1
- package/dist/catalog/providers/fireworks.json +1 -1
- package/dist/catalog/providers/github-copilot.json +1 -1
- package/dist/catalog/providers/huggingface.json +1 -1
- package/dist/catalog/providers/minimax-cn.json +1 -1
- package/dist/catalog/providers/minimax.json +1 -1
- package/dist/catalog/providers/mistral.json +1 -1
- package/dist/catalog/providers/nvidia.json +1 -1
- package/dist/catalog/providers/openai.json +1 -1
- package/dist/catalog/providers/opencode-go.json +1 -1
- package/dist/catalog/providers/opencode.json +1 -1
- package/dist/catalog/providers/openrouter.json +1 -1
- package/dist/catalog/providers/qwen-cloud-cn.json +1 -1
- package/dist/catalog/providers/qwen-cloud.json +1 -1
- package/dist/catalog/providers/qwen-token-plan-cn.json +1 -1
- package/dist/catalog/providers/qwen-token-plan.json +1 -1
- package/dist/catalog/providers/together.json +1 -1
- package/dist/catalog/providers/vercel-ai-gateway.json +1 -1
- package/dist/catalog/providers/zai-coding-cn.json +1 -1
- package/dist/catalog/providers/zai.json +1 -1
- package/dist/catalog/publication.json +3 -3
- package/dist/core/agent-session.d.ts +7 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +34 -4
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/context-breakdown.d.ts +3 -1
- package/dist/core/context-breakdown.d.ts.map +1 -1
- package/dist/core/context-breakdown.js +5 -2
- package/dist/core/context-breakdown.js.map +1 -1
- package/dist/core/customize.d.ts +2 -0
- package/dist/core/customize.d.ts.map +1 -1
- package/dist/core/customize.js +6 -0
- package/dist/core/customize.js.map +1 -1
- package/dist/core/memory-cap.d.ts +4 -8
- package/dist/core/memory-cap.d.ts.map +1 -1
- package/dist/core/memory-cap.js +8 -8
- package/dist/core/memory-cap.js.map +1 -1
- package/dist/core/permissions.d.ts +2 -0
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +30 -14
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/plan-mode.d.ts.map +1 -1
- package/dist/core/plan-mode.js +1 -9
- package/dist/core/plan-mode.js.map +1 -1
- package/dist/core/rollback.d.ts.map +1 -1
- package/dist/core/rollback.js +1 -1
- package/dist/core/rollback.js.map +1 -1
- package/dist/core/settings-manager.d.ts +16 -5
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +37 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -5
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/subagent-permission-inherit.d.ts +34 -22
- package/dist/core/subagent-permission-inherit.d.ts.map +1 -1
- package/dist/core/subagent-permission-inherit.js +37 -80
- package/dist/core/subagent-permission-inherit.js.map +1 -1
- package/dist/core/swarm.d.ts.map +1 -1
- package/dist/core/swarm.js +13 -7
- package/dist/core/swarm.js.map +1 -1
- package/dist/core/system-prompt.d.ts +6 -4
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +38 -48
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/usage-adapters/openai-codex.d.ts +1 -1
- package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -1
- package/dist/core/usage-adapters/openai-codex.js +22 -17
- package/dist/core/usage-adapters/openai-codex.js.map +1 -1
- package/dist/core/usage-service.d.ts +10 -1
- package/dist/core/usage-service.d.ts.map +1 -1
- package/dist/core/usage-service.js +17 -6
- package/dist/core/usage-service.js.map +1 -1
- package/dist/gateway/agent-bridge.d.ts.map +1 -1
- package/dist/gateway/agent-bridge.js +1 -4
- package/dist/gateway/agent-bridge.js.map +1 -1
- package/dist/gateway/cron.d.ts.map +1 -1
- package/dist/gateway/cron.js +1 -4
- package/dist/gateway/cron.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +0 -5
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +2 -0
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +21 -0
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +7 -4
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +122 -162
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/usage-view.d.ts +1 -1
- package/dist/modes/interactive/components/usage-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/usage-view.js +7 -4
- package/dist/modes/interactive/components/usage-view.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +55 -96
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/skill-tag-autocomplete.d.ts +13 -0
- package/dist/modes/interactive/skill-tag-autocomplete.d.ts.map +1 -0
- package/dist/modes/interactive/skill-tag-autocomplete.js +72 -0
- package/dist/modes/interactive/skill-tag-autocomplete.js.map +1 -0
- package/docs/compaction.md +23 -23
- package/docs/containerization.md +24 -24
- package/docs/custom-provider.md +18 -18
- package/docs/development.md +16 -15
- package/docs/docs.json +6 -2
- package/docs/extensions.md +82 -80
- package/docs/features.md +102 -0
- package/docs/index.md +25 -19
- package/docs/json.md +7 -7
- package/docs/keybindings.md +4 -4
- package/docs/models.md +2 -2
- package/docs/packages.md +38 -42
- package/docs/prompt-templates.md +4 -4
- package/docs/providers.md +22 -10
- package/docs/quickstart.md +81 -46
- package/docs/rpc.md +7 -13
- package/docs/sdk.md +43 -41
- package/docs/security.md +18 -18
- package/docs/session-format.md +9 -9
- package/docs/sessions.md +13 -12
- package/docs/settings.md +63 -24
- package/docs/shell-aliases.md +2 -2
- package/docs/skills.md +21 -11
- package/docs/terminal-setup.md +5 -5
- package/docs/termux.md +7 -7
- package/docs/themes.md +12 -14
- package/docs/tmux.md +4 -4
- package/docs/tui.md +23 -23
- package/docs/usage.md +112 -87
- package/docs/windows.md +10 -2
- package/examples/README.md +3 -1
- package/examples/extensions/README.md +6 -6
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/doom-overlay/README.md +2 -2
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/plan-mode/README.md +3 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/subagent/README.md +13 -11
- package/examples/extensions/todo.ts +2 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/README.md +9 -5
- package/package.json +6 -7
- package/dist/builtin-extensions/lunr-behavior.d.ts +0 -44
- package/dist/builtin-extensions/lunr-behavior.d.ts.map +0 -1
- package/dist/builtin-extensions/lunr-behavior.js +0 -213
- package/dist/builtin-extensions/lunr-behavior.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/agents/context-builder.md +0 -46
- package/dist/builtin-extensions/pi-subagents/agents/deep-researcher.md +0 -36
- package/dist/builtin-extensions/pi-subagents/agents/delegate.md +0 -12
- package/dist/builtin-extensions/pi-subagents/agents/oracle.md +0 -73
- package/dist/builtin-extensions/pi-subagents/agents/planner.md +0 -55
- package/dist/builtin-extensions/pi-subagents/agents/research-writer.md +0 -37
- package/dist/builtin-extensions/pi-subagents/agents/researcher.md +0 -52
- package/dist/builtin-extensions/pi-subagents/agents/reviewer.md +0 -79
- package/dist/builtin-extensions/pi-subagents/agents/scout.md +0 -50
- package/dist/builtin-extensions/pi-subagents/agents/worker.md +0 -55
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts +0 -20
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js +0 -1273
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts +0 -49
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js +0 -252
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts +0 -3
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js +0 -6
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts +0 -3
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js +0 -23
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts +0 -8
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js +0 -143
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts +0 -176
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.js +0 -1326
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts +0 -7
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js +0 -307
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts +0 -8
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.js +0 -30
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts +0 -35
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js +0 -151
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts +0 -131
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js +0 -491
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js.map +0 -1
- package/dist/core/behavior-preset.d.ts +0 -60
- package/dist/core/behavior-preset.d.ts.map +0 -1
- package/dist/core/behavior-preset.js +0 -257
- package/dist/core/behavior-preset.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-view.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/usage-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,gCAAgC,CAAC;AAIjF,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,mFAAmF;IACnF,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9F,IAAI,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"usage-view.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/usage-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,gCAAgC,CAAC;AAIjF,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,mFAAmF;IACnF,aAAa,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9F,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,sEAAsE;IACtE,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAID,kFAAgF;AAChF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAIhF;AAWD,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,CAevF;AAQD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBjG;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA6D9E","sourcesContent":["import { truncateToWidth, visibleWidth } from \"@ashx-j/lunr-tui\";\nimport type { ContextBreakdown } from \"../../../core/context-breakdown.ts\";\nimport type { PlanUsage, PlanUsageWindow } from \"../../../core/usage-service.ts\";\nimport { theme } from \"../theme/theme.ts\";\nimport { formatTokens } from \"./footer.ts\";\n\n/** Simple token totals (rendered by /usage). */\nexport interface UsageTotals {\n\tinput: number;\n\toutput: number;\n\tcacheRead?: number;\n\tcacheWrite?: number;\n\ttotal: number;\n}\n\nexport interface UsageViewData {\n\t/** Session-wide token totals (summed across models); omitted when no usage yet. */\n\tsessionTotals: UsageTotals | undefined;\n\tcontext: { tokens: number | null; contextWindow: number; percent: number | null } | undefined;\n\tplan: PlanUsage[];\n\t/** Live session context split; omitted when the window is unknown. */\n\tbreakdown?: ContextBreakdown;\n}\n\nconst BAR_CELLS = 20;\n\n/** Traffic-light token for a 0–100 usage percent. Matches footer thresholds. */\nexport function usageLevelColor(percent: number): \"success\" | \"warning\" | \"error\" {\n\tif (percent > 90) return \"error\";\n\tif (percent > 70) return \"warning\";\n\treturn \"success\";\n}\n\n/** `cached X (Y%)` where Y = cacheRead / (input + cacheRead + cacheWrite). */\nfunction formatCachedSuffix(input: number, cacheRead: number, cacheWrite: number): string {\n\tif (cacheRead <= 0) return \"\";\n\tconst prompt = input + cacheRead + cacheWrite;\n\tif (prompt <= 0) return \"\";\n\tconst percent = Math.round((cacheRead / prompt) * 100);\n\treturn ` cached ${formatTokens(cacheRead)} (${percent}%)`;\n}\n\n/** 20-cell bar: filled cells green / yellow / red, empty cells dim. */\nexport function usageBar(percent: number): string {\n\tconst clamped = Math.max(0, Math.min(100, percent));\n\tconst filled = Math.round((clamped / 100) * BAR_CELLS);\n\tconst empty = BAR_CELLS - filled;\n\tconst fill = filled > 0 ? theme.fg(usageLevelColor(clamped), \"█\".repeat(filled)) : \"\";\n\tconst rest = empty > 0 ? theme.fg(\"dim\", \"░\".repeat(empty)) : \"\";\n\treturn fill + rest;\n}\n\n/** Compact countdown: `6d 21h`, `2h 51m`, `45m`, `now`. */\nexport function formatResetCountdown(resetsAt: number, now: number = Date.now()): string {\n\tconst diff = resetsAt - now;\n\tif (diff <= 0) return \"now\";\n\tconst minutes = Math.floor(diff / 60000);\n\tif (minutes >= 24 * 60) {\n\t\tconst days = Math.floor(minutes / (24 * 60));\n\t\tconst hours = Math.floor((minutes % (24 * 60)) / 60);\n\t\treturn hours > 0 ? `${days}d ${hours}h` : `${days}d`;\n\t}\n\tif (minutes >= 60) {\n\t\tconst hours = Math.floor(minutes / 60);\n\t\tconst rest = minutes % 60;\n\t\treturn rest > 0 ? `${hours}h ${rest}m` : `${hours}h`;\n\t}\n\treturn `${Math.max(1, minutes)}m`;\n}\n\nfunction planWindowLine(window: PlanUsageWindow, labelWidth: number): string {\n\tconst pct = `${Math.round(window.usedPercent)}% used`;\n\tconst reset = window.resetsAt !== undefined ? ` resets in ${formatResetCountdown(window.resetsAt)}` : \"\";\n\treturn ` ${window.label.padEnd(labelWidth)} ${usageBar(window.usedPercent)} ${pct}${reset}`;\n}\n\n/**\n * Shared bordered box chrome (monochrome, moon theme conventions) used by\n * /usage and /context. `headerText` includes its surrounding spaces (e.g.\n * \" Usage \"). `maxWidth` is the available terminal width; content truncates\n * to fit.\n */\nexport function renderThemedBox(headerText: string, content: string[], maxWidth: number): string[] {\n\t// Box width: widest content + `│ ` / ` │` chrome, capped by the terminal.\n\tconst contentWidth = Math.max(...content.map((line) => visibleWidth(line)));\n\tconst totalWidth = Math.max(24, Math.min(contentWidth + 4, Math.max(24, maxWidth)));\n\tconst innerWidth = totalWidth - 4;\n\n\tconst border = (text: string): string => theme.fg(\"border\", text);\n\tconst top = border(`╭${headerText}${\"─\".repeat(Math.max(0, totalWidth - 2 - headerText.length))}╮`);\n\tconst bottom = border(`╰${\"─\".repeat(totalWidth - 2)}╯`);\n\tconst lines = [top];\n\tfor (const rawLine of content) {\n\t\tconst line = rawLine.length > 0 ? truncateToWidth(rawLine, innerWidth, \"\") : \"\";\n\t\tconst padding = \" \".repeat(Math.max(0, innerWidth - visibleWidth(line)));\n\t\tlines.push(`${border(\"│ \")}${line}${padding}${border(\" │\")}`);\n\t}\n\tlines.push(bottom);\n\treturn lines;\n}\n\n/**\n * Render the /usage bordered box (moon theme conventions).\n * Current session only: token totals, live context split, window bar, plan quota.\n * `maxWidth` is the available terminal width; content truncates to fit.\n */\nexport function renderUsageBox(data: UsageViewData, maxWidth: number): string[] {\n\tconst content: string[] = [];\n\n\tif (data.sessionTotals && data.sessionTotals.total > 0) {\n\t\tcontent.push(\"Session usage\");\n\t\tcontent.push(\n\t\t\t` input ${formatTokens(data.sessionTotals.input)} output ${formatTokens(data.sessionTotals.output)} total ${formatTokens(data.sessionTotals.total)}${formatCachedSuffix(data.sessionTotals.input, data.sessionTotals.cacheRead ?? 0, data.sessionTotals.cacheWrite ?? 0)}`,\n\t\t);\n\t}\n\n\tif (data.breakdown) {\n\t\tif (content.length > 0) content.push(\"\");\n\t\tcontent.push(\"Context\");\n\t\tcontent.push(theme.fg(\"dim\", \"Estimated (chars/4), current session only — actual token counts may differ.\"));\n\t\tconst rows: { label: string; tokens: number }[] = [\n\t\t\t{ label: \"System prompt\", tokens: data.breakdown.systemPrompt },\n\t\t\t...data.breakdown.contextFiles.map((file) => ({ label: file.label, tokens: file.tokens })),\n\t\t\t{ label: \"Skills\", tokens: data.breakdown.skills },\n\t\t\t{ label: \"Tool definitions\", tokens: data.breakdown.toolDefinitions },\n\t\t\t{ label: \"User messages\", tokens: data.breakdown.user },\n\t\t\t{ label: \"Assistant text\", tokens: data.breakdown.assistantText },\n\t\t\t{ label: \"Thinking\", tokens: data.breakdown.thinking },\n\t\t\t{ label: \"Tool calls\", tokens: data.breakdown.toolCalls },\n\t\t\t{ label: \"Tool results\", tokens: data.breakdown.toolResults },\n\t\t\t{ label: \"Summaries\", tokens: data.breakdown.summaries },\n\t\t\t{ label: \"Free\", tokens: data.breakdown.free },\n\t\t].filter((row) => row.tokens > 0);\n\t\tif (rows.length > 0) {\n\t\t\tconst labelWidth = Math.max(...rows.map((row) => row.label.length));\n\t\t\tfor (const row of rows) {\n\t\t\t\tcontent.push(` ${row.label.padEnd(labelWidth)} ${formatTokens(row.tokens)}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (data.context) {\n\t\tconst pct = data.context.percent;\n\t\tconst tokens = data.context.tokens;\n\t\tif (content.length > 0) content.push(\"\");\n\t\tcontent.push(\"Context window\");\n\t\tconst pctText = pct == null ? \"?\" : `${Math.round(pct)}%`;\n\t\tconst tokensText = tokens == null ? \"?\" : formatTokens(tokens);\n\t\tcontent.push(\n\t\t\t` ${usageBar(pct ?? 0)} ${pctText} (${tokensText} / ${formatTokens(data.context.contextWindow)})`,\n\t\t);\n\t}\n\n\tfor (const plan of data.plan) {\n\t\tif (plan.windows.length === 0) continue;\n\t\tif (content.length > 0) content.push(\"\");\n\t\tconst planName = plan.planLabel ? `${plan.provider} · ${plan.planLabel}` : plan.provider;\n\t\tcontent.push(`Plan usage (${planName})`);\n\t\tconst labelWidth = Math.max(...plan.windows.map((window) => window.label.length));\n\t\tfor (const window of plan.windows) {\n\t\t\tcontent.push(planWindowLine(window, labelWidth));\n\t\t}\n\t}\n\n\tif (content.length === 0) content.push(\"No usage data yet.\");\n\n\treturn renderThemedBox(\" Usage \", content, maxWidth);\n}\n"]}
|
|
@@ -121,12 +121,15 @@ export function renderUsageBox(data, maxWidth) {
|
|
|
121
121
|
const tokensText = tokens == null ? "?" : formatTokens(tokens);
|
|
122
122
|
content.push(` ${usageBar(pct ?? 0)} ${pctText} (${tokensText} / ${formatTokens(data.context.contextWindow)})`);
|
|
123
123
|
}
|
|
124
|
-
|
|
124
|
+
for (const plan of data.plan) {
|
|
125
|
+
if (plan.windows.length === 0)
|
|
126
|
+
continue;
|
|
125
127
|
if (content.length > 0)
|
|
126
128
|
content.push("");
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
const planName = plan.planLabel ? `${plan.provider} · ${plan.planLabel}` : plan.provider;
|
|
130
|
+
content.push(`Plan usage (${planName})`);
|
|
131
|
+
const labelWidth = Math.max(...plan.windows.map((window) => window.label.length));
|
|
132
|
+
for (const window of plan.windows) {
|
|
130
133
|
content.push(planWindowLine(window, labelWidth));
|
|
131
134
|
}
|
|
132
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-view.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/usage-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { truncateToWidth, visibleWidth } from \"@ashx-j/lunr-tui\";\nimport type { ContextBreakdown } from \"../../../core/context-breakdown.ts\";\nimport type { PlanUsage, PlanUsageWindow } from \"../../../core/usage-service.ts\";\nimport { theme } from \"../theme/theme.ts\";\nimport { formatTokens } from \"./footer.ts\";\n\n/** Simple token totals (rendered by /usage). */\nexport interface UsageTotals {\n\tinput: number;\n\toutput: number;\n\tcacheRead?: number;\n\tcacheWrite?: number;\n\ttotal: number;\n}\n\nexport interface UsageViewData {\n\t/** Session-wide token totals (summed across models); omitted when no usage yet. */\n\tsessionTotals: UsageTotals | undefined;\n\tcontext: { tokens: number | null; contextWindow: number; percent: number | null } | undefined;\n\tplan: PlanUsage | undefined;\n\t/** Live session context split; omitted when the window is unknown. */\n\tbreakdown?: ContextBreakdown;\n}\n\nconst BAR_CELLS = 20;\n\n/** Traffic-light token for a 0–100 usage percent. Matches footer thresholds. */\nexport function usageLevelColor(percent: number): \"success\" | \"warning\" | \"error\" {\n\tif (percent > 90) return \"error\";\n\tif (percent > 70) return \"warning\";\n\treturn \"success\";\n}\n\n/** `cached X (Y%)` where Y = cacheRead / (input + cacheRead + cacheWrite). */\nfunction formatCachedSuffix(input: number, cacheRead: number, cacheWrite: number): string {\n\tif (cacheRead <= 0) return \"\";\n\tconst prompt = input + cacheRead + cacheWrite;\n\tif (prompt <= 0) return \"\";\n\tconst percent = Math.round((cacheRead / prompt) * 100);\n\treturn ` cached ${formatTokens(cacheRead)} (${percent}%)`;\n}\n\n/** 20-cell bar: filled cells green / yellow / red, empty cells dim. */\nexport function usageBar(percent: number): string {\n\tconst clamped = Math.max(0, Math.min(100, percent));\n\tconst filled = Math.round((clamped / 100) * BAR_CELLS);\n\tconst empty = BAR_CELLS - filled;\n\tconst fill = filled > 0 ? theme.fg(usageLevelColor(clamped), \"█\".repeat(filled)) : \"\";\n\tconst rest = empty > 0 ? theme.fg(\"dim\", \"░\".repeat(empty)) : \"\";\n\treturn fill + rest;\n}\n\n/** Compact countdown: `6d 21h`, `2h 51m`, `45m`, `now`. */\nexport function formatResetCountdown(resetsAt: number, now: number = Date.now()): string {\n\tconst diff = resetsAt - now;\n\tif (diff <= 0) return \"now\";\n\tconst minutes = Math.floor(diff / 60000);\n\tif (minutes >= 24 * 60) {\n\t\tconst days = Math.floor(minutes / (24 * 60));\n\t\tconst hours = Math.floor((minutes % (24 * 60)) / 60);\n\t\treturn hours > 0 ? `${days}d ${hours}h` : `${days}d`;\n\t}\n\tif (minutes >= 60) {\n\t\tconst hours = Math.floor(minutes / 60);\n\t\tconst rest = minutes % 60;\n\t\treturn rest > 0 ? `${hours}h ${rest}m` : `${hours}h`;\n\t}\n\treturn `${Math.max(1, minutes)}m`;\n}\n\nfunction planWindowLine(window: PlanUsageWindow, labelWidth: number): string {\n\tconst pct = `${Math.round(window.usedPercent)}% used`;\n\tconst reset = window.resetsAt !== undefined ? ` resets in ${formatResetCountdown(window.resetsAt)}` : \"\";\n\treturn ` ${window.label.padEnd(labelWidth)} ${usageBar(window.usedPercent)} ${pct}${reset}`;\n}\n\n/**\n * Shared bordered box chrome (monochrome, moon theme conventions) used by\n * /usage and /context. `headerText` includes its surrounding spaces (e.g.\n * \" Usage \"). `maxWidth` is the available terminal width; content truncates\n * to fit.\n */\nexport function renderThemedBox(headerText: string, content: string[], maxWidth: number): string[] {\n\t// Box width: widest content + `│ ` / ` │` chrome, capped by the terminal.\n\tconst contentWidth = Math.max(...content.map((line) => visibleWidth(line)));\n\tconst totalWidth = Math.max(24, Math.min(contentWidth + 4, Math.max(24, maxWidth)));\n\tconst innerWidth = totalWidth - 4;\n\n\tconst border = (text: string): string => theme.fg(\"border\", text);\n\tconst top = border(`╭${headerText}${\"─\".repeat(Math.max(0, totalWidth - 2 - headerText.length))}╮`);\n\tconst bottom = border(`╰${\"─\".repeat(totalWidth - 2)}╯`);\n\tconst lines = [top];\n\tfor (const rawLine of content) {\n\t\tconst line = rawLine.length > 0 ? truncateToWidth(rawLine, innerWidth, \"\") : \"\";\n\t\tconst padding = \" \".repeat(Math.max(0, innerWidth - visibleWidth(line)));\n\t\tlines.push(`${border(\"│ \")}${line}${padding}${border(\" │\")}`);\n\t}\n\tlines.push(bottom);\n\treturn lines;\n}\n\n/**\n * Render the /usage bordered box (moon theme conventions).\n * Current session only: token totals, live context split, window bar, plan quota.\n * `maxWidth` is the available terminal width; content truncates to fit.\n */\nexport function renderUsageBox(data: UsageViewData, maxWidth: number): string[] {\n\tconst content: string[] = [];\n\n\tif (data.sessionTotals && data.sessionTotals.total > 0) {\n\t\tcontent.push(\"Session usage\");\n\t\tcontent.push(\n\t\t\t` input ${formatTokens(data.sessionTotals.input)} output ${formatTokens(data.sessionTotals.output)} total ${formatTokens(data.sessionTotals.total)}${formatCachedSuffix(data.sessionTotals.input, data.sessionTotals.cacheRead ?? 0, data.sessionTotals.cacheWrite ?? 0)}`,\n\t\t);\n\t}\n\n\tif (data.breakdown) {\n\t\tif (content.length > 0) content.push(\"\");\n\t\tcontent.push(\"Context\");\n\t\tcontent.push(theme.fg(\"dim\", \"Estimated (chars/4), current session only — actual token counts may differ.\"));\n\t\tconst rows: { label: string; tokens: number }[] = [\n\t\t\t{ label: \"System prompt\", tokens: data.breakdown.systemPrompt },\n\t\t\t...data.breakdown.contextFiles.map((file) => ({ label: file.label, tokens: file.tokens })),\n\t\t\t{ label: \"Skills\", tokens: data.breakdown.skills },\n\t\t\t{ label: \"Tool definitions\", tokens: data.breakdown.toolDefinitions },\n\t\t\t{ label: \"User messages\", tokens: data.breakdown.user },\n\t\t\t{ label: \"Assistant text\", tokens: data.breakdown.assistantText },\n\t\t\t{ label: \"Thinking\", tokens: data.breakdown.thinking },\n\t\t\t{ label: \"Tool calls\", tokens: data.breakdown.toolCalls },\n\t\t\t{ label: \"Tool results\", tokens: data.breakdown.toolResults },\n\t\t\t{ label: \"Summaries\", tokens: data.breakdown.summaries },\n\t\t\t{ label: \"Free\", tokens: data.breakdown.free },\n\t\t].filter((row) => row.tokens > 0);\n\t\tif (rows.length > 0) {\n\t\t\tconst labelWidth = Math.max(...rows.map((row) => row.label.length));\n\t\t\tfor (const row of rows) {\n\t\t\t\tcontent.push(` ${row.label.padEnd(labelWidth)} ${formatTokens(row.tokens)}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (data.context) {\n\t\tconst pct = data.context.percent;\n\t\tconst tokens = data.context.tokens;\n\t\tif (content.length > 0) content.push(\"\");\n\t\tcontent.push(\"Context window\");\n\t\tconst pctText = pct == null ? \"?\" : `${Math.round(pct)}%`;\n\t\tconst tokensText = tokens == null ? \"?\" : formatTokens(tokens);\n\t\tcontent.push(\n\t\t\t` ${usageBar(pct ?? 0)} ${pctText} (${tokensText} / ${formatTokens(data.context.contextWindow)})`,\n\t\t);\n\t}\n\n\tif (data.plan && data.plan.windows.length > 0) {\n\t\tif (content.length > 0) content.push(\"\");\n\t\tcontent.push(data.plan.planLabel ? `Plan usage (${data.plan.planLabel})` : \"Plan usage\");\n\t\tconst labelWidth = Math.max(...data.plan.windows.map((window) => window.label.length));\n\t\tfor (const window of data.plan.windows) {\n\t\t\tcontent.push(planWindowLine(window, labelWidth));\n\t\t}\n\t}\n\n\tif (content.length === 0) content.push(\"No usage data yet.\");\n\n\treturn renderThemedBox(\" Usage \", content, maxWidth);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"usage-view.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/usage-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { truncateToWidth, visibleWidth } from \"@ashx-j/lunr-tui\";\nimport type { ContextBreakdown } from \"../../../core/context-breakdown.ts\";\nimport type { PlanUsage, PlanUsageWindow } from \"../../../core/usage-service.ts\";\nimport { theme } from \"../theme/theme.ts\";\nimport { formatTokens } from \"./footer.ts\";\n\n/** Simple token totals (rendered by /usage). */\nexport interface UsageTotals {\n\tinput: number;\n\toutput: number;\n\tcacheRead?: number;\n\tcacheWrite?: number;\n\ttotal: number;\n}\n\nexport interface UsageViewData {\n\t/** Session-wide token totals (summed across models); omitted when no usage yet. */\n\tsessionTotals: UsageTotals | undefined;\n\tcontext: { tokens: number | null; contextWindow: number; percent: number | null } | undefined;\n\tplan: PlanUsage[];\n\t/** Live session context split; omitted when the window is unknown. */\n\tbreakdown?: ContextBreakdown;\n}\n\nconst BAR_CELLS = 20;\n\n/** Traffic-light token for a 0–100 usage percent. Matches footer thresholds. */\nexport function usageLevelColor(percent: number): \"success\" | \"warning\" | \"error\" {\n\tif (percent > 90) return \"error\";\n\tif (percent > 70) return \"warning\";\n\treturn \"success\";\n}\n\n/** `cached X (Y%)` where Y = cacheRead / (input + cacheRead + cacheWrite). */\nfunction formatCachedSuffix(input: number, cacheRead: number, cacheWrite: number): string {\n\tif (cacheRead <= 0) return \"\";\n\tconst prompt = input + cacheRead + cacheWrite;\n\tif (prompt <= 0) return \"\";\n\tconst percent = Math.round((cacheRead / prompt) * 100);\n\treturn ` cached ${formatTokens(cacheRead)} (${percent}%)`;\n}\n\n/** 20-cell bar: filled cells green / yellow / red, empty cells dim. */\nexport function usageBar(percent: number): string {\n\tconst clamped = Math.max(0, Math.min(100, percent));\n\tconst filled = Math.round((clamped / 100) * BAR_CELLS);\n\tconst empty = BAR_CELLS - filled;\n\tconst fill = filled > 0 ? theme.fg(usageLevelColor(clamped), \"█\".repeat(filled)) : \"\";\n\tconst rest = empty > 0 ? theme.fg(\"dim\", \"░\".repeat(empty)) : \"\";\n\treturn fill + rest;\n}\n\n/** Compact countdown: `6d 21h`, `2h 51m`, `45m`, `now`. */\nexport function formatResetCountdown(resetsAt: number, now: number = Date.now()): string {\n\tconst diff = resetsAt - now;\n\tif (diff <= 0) return \"now\";\n\tconst minutes = Math.floor(diff / 60000);\n\tif (minutes >= 24 * 60) {\n\t\tconst days = Math.floor(minutes / (24 * 60));\n\t\tconst hours = Math.floor((minutes % (24 * 60)) / 60);\n\t\treturn hours > 0 ? `${days}d ${hours}h` : `${days}d`;\n\t}\n\tif (minutes >= 60) {\n\t\tconst hours = Math.floor(minutes / 60);\n\t\tconst rest = minutes % 60;\n\t\treturn rest > 0 ? `${hours}h ${rest}m` : `${hours}h`;\n\t}\n\treturn `${Math.max(1, minutes)}m`;\n}\n\nfunction planWindowLine(window: PlanUsageWindow, labelWidth: number): string {\n\tconst pct = `${Math.round(window.usedPercent)}% used`;\n\tconst reset = window.resetsAt !== undefined ? ` resets in ${formatResetCountdown(window.resetsAt)}` : \"\";\n\treturn ` ${window.label.padEnd(labelWidth)} ${usageBar(window.usedPercent)} ${pct}${reset}`;\n}\n\n/**\n * Shared bordered box chrome (monochrome, moon theme conventions) used by\n * /usage and /context. `headerText` includes its surrounding spaces (e.g.\n * \" Usage \"). `maxWidth` is the available terminal width; content truncates\n * to fit.\n */\nexport function renderThemedBox(headerText: string, content: string[], maxWidth: number): string[] {\n\t// Box width: widest content + `│ ` / ` │` chrome, capped by the terminal.\n\tconst contentWidth = Math.max(...content.map((line) => visibleWidth(line)));\n\tconst totalWidth = Math.max(24, Math.min(contentWidth + 4, Math.max(24, maxWidth)));\n\tconst innerWidth = totalWidth - 4;\n\n\tconst border = (text: string): string => theme.fg(\"border\", text);\n\tconst top = border(`╭${headerText}${\"─\".repeat(Math.max(0, totalWidth - 2 - headerText.length))}╮`);\n\tconst bottom = border(`╰${\"─\".repeat(totalWidth - 2)}╯`);\n\tconst lines = [top];\n\tfor (const rawLine of content) {\n\t\tconst line = rawLine.length > 0 ? truncateToWidth(rawLine, innerWidth, \"\") : \"\";\n\t\tconst padding = \" \".repeat(Math.max(0, innerWidth - visibleWidth(line)));\n\t\tlines.push(`${border(\"│ \")}${line}${padding}${border(\" │\")}`);\n\t}\n\tlines.push(bottom);\n\treturn lines;\n}\n\n/**\n * Render the /usage bordered box (moon theme conventions).\n * Current session only: token totals, live context split, window bar, plan quota.\n * `maxWidth` is the available terminal width; content truncates to fit.\n */\nexport function renderUsageBox(data: UsageViewData, maxWidth: number): string[] {\n\tconst content: string[] = [];\n\n\tif (data.sessionTotals && data.sessionTotals.total > 0) {\n\t\tcontent.push(\"Session usage\");\n\t\tcontent.push(\n\t\t\t` input ${formatTokens(data.sessionTotals.input)} output ${formatTokens(data.sessionTotals.output)} total ${formatTokens(data.sessionTotals.total)}${formatCachedSuffix(data.sessionTotals.input, data.sessionTotals.cacheRead ?? 0, data.sessionTotals.cacheWrite ?? 0)}`,\n\t\t);\n\t}\n\n\tif (data.breakdown) {\n\t\tif (content.length > 0) content.push(\"\");\n\t\tcontent.push(\"Context\");\n\t\tcontent.push(theme.fg(\"dim\", \"Estimated (chars/4), current session only — actual token counts may differ.\"));\n\t\tconst rows: { label: string; tokens: number }[] = [\n\t\t\t{ label: \"System prompt\", tokens: data.breakdown.systemPrompt },\n\t\t\t...data.breakdown.contextFiles.map((file) => ({ label: file.label, tokens: file.tokens })),\n\t\t\t{ label: \"Skills\", tokens: data.breakdown.skills },\n\t\t\t{ label: \"Tool definitions\", tokens: data.breakdown.toolDefinitions },\n\t\t\t{ label: \"User messages\", tokens: data.breakdown.user },\n\t\t\t{ label: \"Assistant text\", tokens: data.breakdown.assistantText },\n\t\t\t{ label: \"Thinking\", tokens: data.breakdown.thinking },\n\t\t\t{ label: \"Tool calls\", tokens: data.breakdown.toolCalls },\n\t\t\t{ label: \"Tool results\", tokens: data.breakdown.toolResults },\n\t\t\t{ label: \"Summaries\", tokens: data.breakdown.summaries },\n\t\t\t{ label: \"Free\", tokens: data.breakdown.free },\n\t\t].filter((row) => row.tokens > 0);\n\t\tif (rows.length > 0) {\n\t\t\tconst labelWidth = Math.max(...rows.map((row) => row.label.length));\n\t\t\tfor (const row of rows) {\n\t\t\t\tcontent.push(` ${row.label.padEnd(labelWidth)} ${formatTokens(row.tokens)}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (data.context) {\n\t\tconst pct = data.context.percent;\n\t\tconst tokens = data.context.tokens;\n\t\tif (content.length > 0) content.push(\"\");\n\t\tcontent.push(\"Context window\");\n\t\tconst pctText = pct == null ? \"?\" : `${Math.round(pct)}%`;\n\t\tconst tokensText = tokens == null ? \"?\" : formatTokens(tokens);\n\t\tcontent.push(\n\t\t\t` ${usageBar(pct ?? 0)} ${pctText} (${tokensText} / ${formatTokens(data.context.contextWindow)})`,\n\t\t);\n\t}\n\n\tfor (const plan of data.plan) {\n\t\tif (plan.windows.length === 0) continue;\n\t\tif (content.length > 0) content.push(\"\");\n\t\tconst planName = plan.planLabel ? `${plan.provider} · ${plan.planLabel}` : plan.provider;\n\t\tcontent.push(`Plan usage (${planName})`);\n\t\tconst labelWidth = Math.max(...plan.windows.map((window) => window.label.length));\n\t\tfor (const window of plan.windows) {\n\t\t\tcontent.push(planWindowLine(window, labelWidth));\n\t\t}\n\t}\n\n\tif (content.length === 0) content.push(\"No usage data yet.\");\n\n\treturn renderThemedBox(\" Usage \", content, maxWidth);\n}\n"]}
|
|
@@ -87,7 +87,6 @@ export declare class InteractiveMode {
|
|
|
87
87
|
private signalCleanupHandlers;
|
|
88
88
|
private isBashMode;
|
|
89
89
|
private swarmMode;
|
|
90
|
-
private researchMode;
|
|
91
90
|
private previousPermissionMode;
|
|
92
91
|
private preGoalPermissionMode;
|
|
93
92
|
private redoStack;
|
|
@@ -429,7 +428,6 @@ export declare class InteractiveMode {
|
|
|
429
428
|
private showLoginDialog;
|
|
430
429
|
private handleInitCommand;
|
|
431
430
|
private handleSwarmCommand;
|
|
432
|
-
private handleResearchCommand;
|
|
433
431
|
private rewindLastTurn;
|
|
434
432
|
private handleUndoCommand;
|
|
435
433
|
private handleEditCommand;
|
|
@@ -452,6 +450,7 @@ export declare class InteractiveMode {
|
|
|
452
450
|
private generateSessionTitle;
|
|
453
451
|
private handleSessionCommand;
|
|
454
452
|
private collectUsageBreakdown;
|
|
453
|
+
private handleFastCommand;
|
|
455
454
|
private handleUsageCommand;
|
|
456
455
|
private handleContextCommand;
|
|
457
456
|
private handlePlanCommand;
|