@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
package/docs/security.md
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
# Security
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
lunR is a local coding agent. It runs with the permissions of the user account that starts it, and it treats files writable by that user as inside the same local trust boundary.
|
|
4
4
|
|
|
5
5
|
## Project Trust
|
|
6
6
|
|
|
7
|
-
Project trust controls whether
|
|
7
|
+
Project trust controls whether lunR loads project-local settings, resources, packages, and extensions. It is not a sandbox and it does not restrict what the model can ask tools to do after you start working in a directory.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
lunR considers a project to have resources that require trust when it finds any of these from the current working directory:
|
|
10
10
|
|
|
11
|
-
- `.
|
|
12
|
-
- `.
|
|
13
|
-
- `.
|
|
11
|
+
- `.lunr/settings.json`
|
|
12
|
+
- `.lunr/extensions`, `.lunr/skills`, `.lunr/prompts`, or `.lunr/themes`
|
|
13
|
+
- `.lunr/SYSTEM.md` or `.lunr/APPEND_SYSTEM.md`
|
|
14
14
|
- project `.agents/skills` in the current directory or an ancestor directory
|
|
15
15
|
|
|
16
|
-
A bare `.
|
|
16
|
+
A bare `.lunr` directory does not count as a project resource that requires trust.
|
|
17
17
|
|
|
18
|
-
When an interactive session starts in a project with resources that require trust and no saved decision for the current directory or a parent directory,
|
|
18
|
+
When an interactive session starts in a project with resources that require trust and no saved decision for the current directory or a parent directory, lunR follows `defaultProjectTrust` from global settings. The default value is `"ask"`, which asks whether to trust the project when UI is available. Saved decisions are stored by canonical directory in `~/.lunr/agent/trust.json`, and the closest saved decision on the current or parent path applies before the global default.
|
|
19
19
|
|
|
20
20
|
Trusting a project allows pi to load project resources that require trust, including:
|
|
21
21
|
|
|
22
|
-
- `.
|
|
23
|
-
- `.
|
|
22
|
+
- `.lunr/settings.json`
|
|
23
|
+
- `.lunr` resources such as extensions, skills, prompt templates, themes, and system prompt files
|
|
24
24
|
- missing project packages configured through project settings
|
|
25
25
|
- project-local extensions and project package-managed extensions
|
|
26
26
|
|
|
@@ -30,11 +30,11 @@ Non-interactive modes (`-p`, `--mode json`, and `--mode rpc`) do not show a trus
|
|
|
30
30
|
|
|
31
31
|
## No Built-in Sandbox
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
lunR does not include a built-in sandbox. Built-in tools can read files, write files, edit files, and run shell commands with the permissions of the pi process. Extensions are TypeScript modules that run with the same permissions. Package installs, shell commands, language servers, test commands, and other developer tools behave as ordinary local processes.
|
|
34
34
|
|
|
35
|
-
This is intentional.
|
|
35
|
+
This is intentional. lunR is designed to operate on local source trees, invoke project toolchains, and integrate with the user's existing development environment. A partial in-process sandbox would be easy to misunderstand as a security boundary while still depending on the host shell, filesystem, package managers, credentials, and extension code. Real isolation needs to come from the operating system or a virtualization/container boundary.
|
|
36
36
|
|
|
37
|
-
Project trust is only an input-loading guard. It prevents a repository from silently changing
|
|
37
|
+
Project trust is only an input-loading guard. It prevents a repository from silently changing lunR's settings or extensions before you approve it. It does not make untrusted code, untrusted prompts, or untrusted model output safe. Prompt injection from repository files, comments, documentation, context files, or build output is expected local-agent risk and cannot be reliably prevented by pi.
|
|
38
38
|
|
|
39
39
|
## Running Untrusted or Unmonitored Work
|
|
40
40
|
|
|
@@ -42,10 +42,10 @@ For untrusted repositories, generated code you do not intend to monitor closely,
|
|
|
42
42
|
|
|
43
43
|
Common patterns are documented in [Containerization](containerization.md):
|
|
44
44
|
|
|
45
|
-
- run the whole `
|
|
46
|
-
- run host
|
|
45
|
+
- run the whole `lunr` process inside a container/sandbox
|
|
46
|
+
- run host lunR while routing built-in tool execution into a Gondolin micro-VM
|
|
47
47
|
- mount only the workspace paths the agent should access
|
|
48
|
-
- avoid mounting host `~/.
|
|
48
|
+
- avoid mounting host `~/.lunr/agent` unless the container should access host sessions, settings, and credentials
|
|
49
49
|
- pass the minimum required API keys or use short-lived credentials
|
|
50
50
|
- restrict network access when the task does not need it
|
|
51
51
|
- review diffs and outputs before copying results back to trusted systems
|
|
@@ -54,6 +54,6 @@ If you bind-mount a host workspace read/write, writes from inside the container
|
|
|
54
54
|
|
|
55
55
|
## Reporting Security Issues
|
|
56
56
|
|
|
57
|
-
To report a security issue,
|
|
57
|
+
To report a security issue, use a [private GitHub security advisory](https://github.com/ashx-j/lunR/security/advisories/new) on [ashx-j/lunR](https://github.com/ashx-j/lunR). Do not open a public issue for security-sensitive reports.
|
|
58
58
|
|
|
59
|
-
Expected local-agent behavior, lack of a built-in sandbox, prompt injection from untrusted content, and behavior of user-installed extensions or skills are generally outside the security boundary unless the report demonstrates a real privilege-boundary bypass or shows how
|
|
59
|
+
Expected local-agent behavior, lack of a built-in sandbox, prompt injection from untrusted content, and behavior of user-installed extensions or skills are generally outside the security boundary unless the report demonstrates a real privilege-boundary bypass or shows how lunR grants access that the local user did not already have.
|
package/docs/session-format.md
CHANGED
|
@@ -5,16 +5,16 @@ Sessions are stored as JSONL (JSON Lines) files. Each line is a JSON object with
|
|
|
5
5
|
## File Location
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
~/.
|
|
8
|
+
~/.lunr/agent/sessions/--<path>--/<timestamp>_<uuid>.jsonl
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Where `<path>` is the working directory with `/` replaced by `-`.
|
|
12
12
|
|
|
13
13
|
## Deleting Sessions
|
|
14
14
|
|
|
15
|
-
Sessions can be removed by deleting their `.jsonl` files under `~/.
|
|
15
|
+
Sessions can be removed by deleting their `.jsonl` files under `~/.lunr/agent/sessions/`.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
lunR also supports deleting sessions interactively from `/resume` (select a session and press `Ctrl+D`, then confirm). When available, lunR uses the `trash` CLI to avoid permanent deletion.
|
|
18
18
|
|
|
19
19
|
## Session Version
|
|
20
20
|
|
|
@@ -28,13 +28,13 @@ Existing sessions are automatically migrated to the current version (v3) when lo
|
|
|
28
28
|
|
|
29
29
|
## Source Files
|
|
30
30
|
|
|
31
|
-
Source on GitHub ([
|
|
32
|
-
- [`packages/coding-agent/src/core/session-manager.ts`](https://github.com/
|
|
33
|
-
- [`packages/coding-agent/src/core/messages.ts`](https://github.com/
|
|
34
|
-
- [`packages/ai/src/types.ts`](https://github.com/
|
|
35
|
-
- [`packages/agent/src/types.ts`](https://github.com/
|
|
31
|
+
Source on GitHub ([lunR](https://github.com/ashx-j/lunR)):
|
|
32
|
+
- [`packages/coding-agent/src/core/session-manager.ts`](https://github.com/ashx-j/lunR/blob/master/packages/coding-agent/src/core/session-manager.ts) - Session entry types and SessionManager
|
|
33
|
+
- [`packages/coding-agent/src/core/messages.ts`](https://github.com/ashx-j/lunR/blob/master/packages/coding-agent/src/core/messages.ts) - Extended message types (BashExecutionMessage, CustomMessage, etc.)
|
|
34
|
+
- [`packages/ai/src/types.ts`](https://github.com/ashx-j/lunR/blob/master/packages/ai/src/types.ts) - Base message types (UserMessage, AssistantMessage, ToolResultMessage)
|
|
35
|
+
- [`packages/agent/src/types.ts`](https://github.com/ashx-j/lunR/blob/master/packages/agent/src/types.ts) - AgentMessage union type
|
|
36
36
|
|
|
37
|
-
For TypeScript definitions in your project, inspect `node_modules/@
|
|
37
|
+
For TypeScript definitions in your project, inspect `node_modules/@ashx-j/lunr/dist/` and `node_modules/@ashx-j/lunr-ai/dist/`.
|
|
38
38
|
|
|
39
39
|
## Message Types
|
|
40
40
|
|
package/docs/sessions.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# Sessions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
lunR saves conversations as sessions so you can continue work, branch from earlier turns, and revisit previous paths.
|
|
4
4
|
|
|
5
5
|
## Session Storage
|
|
6
6
|
|
|
7
|
-
Sessions auto-save to `~/.
|
|
7
|
+
Sessions auto-save to `~/.lunr/agent/sessions/`, organized by working directory. Each session is a JSONL file with a tree structure.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
lunr -c # Continue most recent session
|
|
11
|
+
lunr -r # Browse and select from past sessions
|
|
12
|
+
lunr --no-session # Ephemeral mode; do not save
|
|
13
|
+
lunr --name "my task" # Set session display name at startup
|
|
14
|
+
lunr --session <path|id> # Use a specific session file or partial session ID
|
|
15
|
+
lunr --session-id <id> # Exact project session ID, created if missing
|
|
16
|
+
lunr --fork <path|id> # Fork a session file or partial session ID into a new session
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
Use `/session` in interactive mode to see the current session file, session ID, message count, tokens, and cost.
|
|
@@ -47,7 +48,7 @@ In the picker you can:
|
|
|
47
48
|
- rename with Ctrl+R
|
|
48
49
|
- delete with Ctrl+D, then confirm
|
|
49
50
|
|
|
50
|
-
When available,
|
|
51
|
+
When available, lunR uses the `trash` CLI for deletion instead of permanently removing files.
|
|
51
52
|
|
|
52
53
|
## Naming Sessions
|
|
53
54
|
|
|
@@ -60,8 +61,8 @@ Use `/name <name>` to set a human-readable session name:
|
|
|
60
61
|
Set the name at startup with `--name` or `-n`:
|
|
61
62
|
|
|
62
63
|
```bash
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
lunr --name "Refactor auth module"
|
|
65
|
+
lunr --name "CI audit" -p "Review this build failure"
|
|
65
66
|
```
|
|
66
67
|
|
|
67
68
|
Named sessions are easier to find in `/resume` and `pi -r`.
|
|
@@ -128,7 +129,7 @@ Use `/tree` when you want to keep alternatives together. Use `/fork` or `/clone`
|
|
|
128
129
|
|
|
129
130
|
## Branch Summaries
|
|
130
131
|
|
|
131
|
-
When `/tree` switches away from one branch to another,
|
|
132
|
+
When `/tree` switches away from one branch to another, lunR can summarize the abandoned branch and attach that summary at the new position. This preserves important context from the path you left without replaying the whole branch.
|
|
132
133
|
|
|
133
134
|
When prompted, choose one of:
|
|
134
135
|
|
package/docs/settings.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# Settings
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
lunR uses JSON settings files with project settings overriding global settings.
|
|
4
4
|
|
|
5
5
|
| Location | Scope |
|
|
6
6
|
|----------|-------|
|
|
7
|
-
| `~/.
|
|
8
|
-
| `.
|
|
7
|
+
| `~/.lunr/agent/settings.json` | Global (all projects) |
|
|
8
|
+
| `.lunr/settings.json` | Project (current directory) |
|
|
9
9
|
|
|
10
10
|
Edit directly or use `/settings` for common options.
|
|
11
11
|
|
|
12
12
|
## Project Trust
|
|
13
13
|
|
|
14
|
-
On interactive startup,
|
|
14
|
+
On interactive startup, lunR asks before trusting a project folder that contains project-local settings, resources, or project `.agents/skills` and has no saved decision for the folder or a parent folder in `~/.lunr/agent/trust.json`. Trusting a project allows lunR to load `.lunr/settings.json` and `.lunr` resources, install missing project packages, and execute project extensions.
|
|
15
15
|
|
|
16
16
|
Non-interactive modes (`-p`, `--mode json`, and `--mode rpc`) do not show a trust prompt. Without an applicable saved trust decision, they use `defaultProjectTrust` from global settings: `ask` (default) and `never` ignore those project resources, while `always` trusts them. Pass `--approve`/`-a` or `--no-approve`/`-na` to override project trust for one run.
|
|
17
17
|
|
|
18
|
-
If no extension or saved decision applies, `defaultProjectTrust` controls the fallback behavior. Set it to `"ask"`, `"always"`, or `"never"` in `~/.
|
|
18
|
+
If no extension or saved decision applies, `defaultProjectTrust` controls the fallback behavior. Set it to `"ask"`, `"always"`, or `"never"` in `~/.lunr/agent/settings.json`, or change it with `/settings`.
|
|
19
19
|
|
|
20
|
-
`
|
|
20
|
+
`lunr config` and package commands use the same project trust flow. Pass `--approve` to trust project-local settings for one command or `--no-approve` to ignore them. `lunr update` never prompts; it only reinstalls the global CLI.
|
|
21
21
|
|
|
22
|
-
Use `/trust` in interactive mode to save a project trust decision for future sessions, including trust for the immediate parent folder. It writes `~/.
|
|
22
|
+
Use `/trust` in interactive mode to save a project trust decision for future sessions, including trust for the immediate parent folder. It writes `~/.lunr/agent/trust.json` only; the current session is not reloaded, so restart lunR for changes to take effect.
|
|
23
23
|
|
|
24
24
|
## All Settings
|
|
25
25
|
|
|
@@ -51,12 +51,19 @@ Use `/trust` in interactive mode to save a project trust decision for future ses
|
|
|
51
51
|
|
|
52
52
|
| Setting | Type | Default | Description |
|
|
53
53
|
|---------|------|---------|-------------|
|
|
54
|
-
| `theme` | string | `"
|
|
54
|
+
| `theme` | string | `"moon"` | Theme name (`"moon"` is the only built-in, or a custom theme name) |
|
|
55
55
|
| `externalEditor` | string | `$VISUAL`, then `$EDITOR`, then Notepad on Windows or `nano` elsewhere | Command for Ctrl+G external editor; takes precedence over environment variables |
|
|
56
56
|
| `quietStartup` | boolean | `false` | Hide startup header |
|
|
57
|
+
| `smoothStreaming` | boolean | `false` | Reveal streamed responses grapheme by grapheme (~30 FPS). Interactive TUI only |
|
|
58
|
+
| `thinkingCollapse` | boolean | `true` | Collapse completed thinking blocks to a short label plus the first sentence |
|
|
59
|
+
| `cacheRetention` | string | unset → `PI_CACHE_RETENTION` → `"short"` | `"none"`, `"short"`, or `"long"` prompt-cache retention |
|
|
57
60
|
| `defaultProjectTrust` | string | `"ask"` | Fallback project trust behavior: `"ask"`, `"always"`, or `"never"`. Global setting only |
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
61
|
+
| `defaultPermissionMode` | string | `"manual"` | Startup permission mode: `"manual"`, `"yolo"`, `"plan"`, or `"auto"` |
|
|
62
|
+
| `openaiFastMode` | boolean | `false` | Persist OpenAI Codex subscription Fast mode. Ignored by other providers |
|
|
63
|
+
| `memoryEnabled` | boolean | `true` | Enable durable-fact injection and the model-facing memory tools. Global-only; disabling preserves the file |
|
|
64
|
+
| `memoryCharCap` | number | `5000` | Durable-facts memory character cap (1–30000) |
|
|
65
|
+
| `sessionRetentionDays` | number | `30` | Delete session files older than N days at launch; `0` keeps forever |
|
|
66
|
+
| `modelTiers` | object | - | Enable model tiers and per-tier thinking |
|
|
60
67
|
| `enableAnalytics` | boolean | `false` | Opt-in analytics data sharing. Currently only asked for during the experimental first-time setup (`PI_EXPERIMENTAL=1`) |
|
|
61
68
|
| `trackingId` | string | - | Analytics tracking identifier, generated when `enableAnalytics` is turned on |
|
|
62
69
|
| `doubleEscapeAction` | string | `"tree"` | Action for double-escape: `"tree"`, `"fork"`, or `"none"` |
|
|
@@ -66,7 +73,7 @@ Use `/trust` in interactive mode to save a project trust decision for future ses
|
|
|
66
73
|
| `autocompleteMaxVisible` | number | `5` | Max visible items in autocomplete dropdown (3-20) |
|
|
67
74
|
| `showHardwareCursor` | boolean | `false` | Show the terminal cursor while TUI positions it for IME support |
|
|
68
75
|
|
|
69
|
-
For VS Code, include `--wait` so
|
|
76
|
+
For VS Code, include `--wait` so lunR resumes after the editor exits:
|
|
70
77
|
|
|
71
78
|
```json
|
|
72
79
|
{
|
|
@@ -74,11 +81,11 @@ For VS Code, include `--wait` so pi resumes after the editor exits:
|
|
|
74
81
|
}
|
|
75
82
|
```
|
|
76
83
|
|
|
77
|
-
###
|
|
84
|
+
### Offline and updates
|
|
78
85
|
|
|
79
|
-
|
|
86
|
+
lunR does not use `enableInstallTelemetry`, `collapseChangelog`, `PI_SKIP_VERSION_CHECK`, or `PI_TELEMETRY`. There is no pi.dev latest-version or report-install ping.
|
|
80
87
|
|
|
81
|
-
|
|
88
|
+
`lunr update` reinstalls global `@ashx-j/lunr` from npm. Catalog refresh is `/refresh`. Use `--offline` or `PI_OFFLINE=1` to skip startup network operations (npm update check, package update checks, live catalog probes). First interactive paint is already cache-only.
|
|
82
89
|
|
|
83
90
|
### Network
|
|
84
91
|
|
|
@@ -130,7 +137,7 @@ Set `PI_SKIP_VERSION_CHECK=1` to disable the Pi version update check. Use `--off
|
|
|
130
137
|
|
|
131
138
|
When a provider requests a retry delay longer than `retry.provider.maxRetryDelayMs` (e.g., Google's "quota will reset after 5h"), the request fails immediately with an informative error instead of waiting silently. Set to `0` to disable the cap.
|
|
132
139
|
|
|
133
|
-
Keep `retry.provider.maxRetries` at `0` unless provider-level retries are explicitly needed. Setting it above `0` can make SDK/provider retries handle out-of-usage-limit errors before
|
|
140
|
+
Keep `retry.provider.maxRetries` at `0` unless provider-level retries are explicitly needed. Setting it above `0` can make SDK/provider retries handle out-of-usage-limit errors before lunR sees them, which may block the agent until the provider quota resets in some circumstances.
|
|
134
141
|
|
|
135
142
|
```json
|
|
136
143
|
{
|
|
@@ -181,7 +188,7 @@ Keep `retry.provider.maxRetries` at `0` unless provider-level retries are explic
|
|
|
181
188
|
}
|
|
182
189
|
```
|
|
183
190
|
|
|
184
|
-
`npmCommand` is used for all npm package-manager operations, including installs, uninstalls, and dependency installs inside git packages. User-scoped npm packages install under `~/.
|
|
191
|
+
`npmCommand` is used for all npm package-manager operations, including installs, uninstalls, and dependency installs inside git packages. User-scoped npm packages install under `~/.lunr/agent/npm/`; project-scoped npm packages install under `.lunr/npm/`. Use argv-style entries exactly as the process should be launched. When `npmCommand` is configured, git package dependency installs use plain `install` to avoid npm-specific flags in wrappers or alternate package managers.
|
|
185
192
|
|
|
186
193
|
### Sessions
|
|
187
194
|
|
|
@@ -190,7 +197,7 @@ Keep `retry.provider.maxRetries` at `0` unless provider-level retries are explic
|
|
|
190
197
|
| `sessionDir` | string | - | Directory where session files are stored. Accepts absolute or relative paths, plus `~`. |
|
|
191
198
|
|
|
192
199
|
```json
|
|
193
|
-
{ "sessionDir": ".
|
|
200
|
+
{ "sessionDir": ".lunr/sessions" }
|
|
194
201
|
```
|
|
195
202
|
|
|
196
203
|
When multiple sources specify a session directory, precedence is `--session-dir`, `PI_CODING_AGENT_SESSION_DIR`, then `sessionDir` in settings.json.
|
|
@@ -213,11 +220,42 @@ When multiple sources specify a session directory, precedence is `--session-dir`
|
|
|
213
220
|
|---------|------|---------|-------------|
|
|
214
221
|
| `markdown.codeBlockIndent` | string | `" "` | Indentation for code blocks |
|
|
215
222
|
|
|
223
|
+
### TUI, footer, plan bar
|
|
224
|
+
|
|
225
|
+
| Setting | Type | Default | Description |
|
|
226
|
+
|---------|------|---------|-------------|
|
|
227
|
+
| `gutterRail` | boolean | `true` | Thin left rail around each turn |
|
|
228
|
+
| `promptSymbol` | boolean | `true` | Show the ☾ › prompt glyph on the editor's first line |
|
|
229
|
+
| `footerMcp` | boolean | `true` | Show MCP status in the footer |
|
|
230
|
+
| `footerLsp` | boolean | `false` | Show LSP status in the footer |
|
|
231
|
+
| `footerContext` | boolean | `true` | Show context-usage pct/window |
|
|
232
|
+
| `footerTokens` | boolean | `true` | Show ↑in ↓out token totals |
|
|
233
|
+
| `footerCacheHitRate` | boolean | `true` | Show the latest prompt cache-hit rate when reported |
|
|
234
|
+
| `footerTps` | boolean | `true` | Show tokens/second. Independent of feature statuses |
|
|
235
|
+
| `footerStatuses` | boolean | `true` | Show plan/goal/swarm status segments |
|
|
236
|
+
| `footerGit` | boolean | `true` | Show git branch + added/removed |
|
|
237
|
+
| `footerPlan` | boolean | `true` | Show the subscription usage segment |
|
|
238
|
+
| `footerPlanBar` | boolean | `true` | Show the █░ fill; off keeps the percent only |
|
|
239
|
+
| `planUsageWindow` | string | `"5h"` | Preferred plan window: `"5h"` or `"weekly"`. Missing 5h falls back to weekly |
|
|
240
|
+
|
|
241
|
+
Customize these from `/settings` → Customize → Footer as well.
|
|
242
|
+
|
|
243
|
+
### Cron, rollback, subscriptions
|
|
244
|
+
|
|
245
|
+
| Setting | Type | Default | Description |
|
|
246
|
+
|---------|------|---------|-------------|
|
|
247
|
+
| `cronFallbackModels` | string[] | - | `provider/modelId` entries tried in order when a gateway cron fire fails. Hand-edited |
|
|
248
|
+
| `rollbackEnabled` | boolean | `false` | Enable `/rollback` snapshots |
|
|
249
|
+
| `rollbackTurns` | number | `2` | How many user-turns of snapshots to retain |
|
|
250
|
+
| `rollbackCapture` | string | `"copies"` | Snapshot capture mode |
|
|
251
|
+
| `rollbackScope` | string | `"tools"` | What to snapshot |
|
|
252
|
+
| `autoManageSubscriptions` | boolean | `false` | When true, subscription key switching is fully automatic (no manual picker) |
|
|
253
|
+
|
|
216
254
|
### Resources
|
|
217
255
|
|
|
218
256
|
These settings define where to load extensions, skills, prompts, and themes from.
|
|
219
257
|
|
|
220
|
-
Paths in `~/.
|
|
258
|
+
Paths in `~/.lunr/agent/settings.json` resolve relative to `~/.lunr/agent`. Paths in `.lunr/settings.json` resolve relative to `.lunr`. Absolute paths and `~` are supported.
|
|
221
259
|
|
|
222
260
|
| Setting | Type | Default | Description |
|
|
223
261
|
|---------|------|---------|-------------|
|
|
@@ -227,6 +265,7 @@ Paths in `~/.pi/agent/settings.json` resolve relative to `~/.pi/agent`. Paths in
|
|
|
227
265
|
| `prompts` | string[] | `[]` | Local prompt template paths or directories |
|
|
228
266
|
| `themes` | string[] | `[]` | Local theme file paths or directories |
|
|
229
267
|
| `enableSkillCommands` | boolean | `true` | Register skills as `/skill:name` commands |
|
|
268
|
+
| `skillTagCharacter` | `"+" \| "~" \| "$"` | `"+"` | Character that lists skills mid-message after a space |
|
|
230
269
|
|
|
231
270
|
Arrays support glob patterns and exclusions. Use `!pattern` to exclude. Use `+path` to force-include an exact path and `-path` to force-exclude an exact path.
|
|
232
271
|
|
|
@@ -263,7 +302,7 @@ See [packages.md](packages.md) for package management details.
|
|
|
263
302
|
"defaultProvider": "anthropic",
|
|
264
303
|
"defaultModel": "claude-sonnet-4-20250514",
|
|
265
304
|
"defaultThinkingLevel": "medium",
|
|
266
|
-
"theme": "
|
|
305
|
+
"theme": "moon",
|
|
267
306
|
"compaction": {
|
|
268
307
|
"enabled": true,
|
|
269
308
|
"reserveTokens": 16384,
|
|
@@ -280,23 +319,23 @@ See [packages.md](packages.md) for package management details.
|
|
|
280
319
|
|
|
281
320
|
## Project Overrides
|
|
282
321
|
|
|
283
|
-
Project settings (`.
|
|
322
|
+
Project settings (`.lunr/settings.json`) override global settings. Nested objects are merged:
|
|
284
323
|
|
|
285
324
|
```json
|
|
286
|
-
// ~/.
|
|
325
|
+
// ~/.lunr/agent/settings.json (global)
|
|
287
326
|
{
|
|
288
|
-
"theme": "
|
|
327
|
+
"theme": "moon",
|
|
289
328
|
"compaction": { "enabled": true, "reserveTokens": 16384 }
|
|
290
329
|
}
|
|
291
330
|
|
|
292
|
-
// .
|
|
331
|
+
// .lunr/settings.json (project)
|
|
293
332
|
{
|
|
294
333
|
"compaction": { "reserveTokens": 8192 }
|
|
295
334
|
}
|
|
296
335
|
|
|
297
336
|
// Result
|
|
298
337
|
{
|
|
299
|
-
"theme": "
|
|
338
|
+
"theme": "moon",
|
|
300
339
|
"compaction": { "enabled": true, "reserveTokens": 8192 }
|
|
301
340
|
}
|
|
302
341
|
```
|
package/docs/shell-aliases.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Shell Aliases
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
lunR runs bash in non-interactive mode (`bash -c`), which doesn't expand aliases by default.
|
|
4
4
|
|
|
5
|
-
To enable your shell aliases, add to `~/.
|
|
5
|
+
To enable your shell aliases, add to `~/.lunr/agent/settings.json`:
|
|
6
6
|
|
|
7
7
|
```json
|
|
8
8
|
{
|
package/docs/skills.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
>
|
|
1
|
+
> lunR can create skills. Ask it to build one for your use case.
|
|
2
2
|
|
|
3
3
|
# Skills
|
|
4
4
|
|
|
5
5
|
Skills are self-contained capability packages that the agent loads on-demand. A skill provides specialized workflows, setup instructions, helper scripts, and reference documentation for specific tasks.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
lunR implements the [Agent Skills standard](https://agentskills.io/specification), warning about most violations but remaining lenient. lunR allows skill names to differ from their parent directory even though the standard disallows it; that rule is suboptimal for shared skill directories used across multiple agent harnesses.
|
|
8
8
|
|
|
9
9
|
## Table of Contents
|
|
10
10
|
|
|
@@ -21,20 +21,20 @@ Pi implements the [Agent Skills standard](https://agentskills.io/specification),
|
|
|
21
21
|
|
|
22
22
|
> **Security:** Skills can instruct the model to perform any action and may include executable code the model invokes. Review skill content before use.
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
lunR loads skills from:
|
|
25
25
|
|
|
26
26
|
- Global:
|
|
27
|
-
- `~/.
|
|
27
|
+
- `~/.lunr/agent/skills/`
|
|
28
28
|
- `~/.agents/skills/`
|
|
29
29
|
- Project (only after the project is trusted):
|
|
30
|
-
- `.
|
|
30
|
+
- `.lunr/skills/`
|
|
31
31
|
- `.agents/skills/` in `cwd` and ancestor directories (up to git repo root, or filesystem root when not in a repo)
|
|
32
32
|
- Packages: `skills/` directories or `pi.skills` entries in `package.json`
|
|
33
33
|
- Settings: `skills` array with files or directories
|
|
34
34
|
- CLI: `--skill <path>` (repeatable, additive even with `--no-skills`)
|
|
35
35
|
|
|
36
36
|
Discovery rules:
|
|
37
|
-
- In `~/.
|
|
37
|
+
- In `~/.lunr/agent/skills/` and `.lunr/skills/`, direct root `.md` files are discovered as individual skills
|
|
38
38
|
- In all skill locations, directories containing `SKILL.md` are discovered recursively
|
|
39
39
|
- In `~/.agents/skills/` and project `.agents/skills/`, root `.md` files are ignored
|
|
40
40
|
|
|
@@ -53,7 +53,7 @@ To use skills from Claude Code or OpenAI Codex, add their directories to setting
|
|
|
53
53
|
}
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
For project-level Claude Code skills, add to `.
|
|
56
|
+
For project-level Claude Code skills, add to `.lunr/settings.json`:
|
|
57
57
|
|
|
58
58
|
```json
|
|
59
59
|
{
|
|
@@ -89,6 +89,16 @@ Toggle skill commands via `/settings` in interactive mode or in `settings.json`:
|
|
|
89
89
|
}
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
+
### Skill tags
|
|
93
|
+
|
|
94
|
+
`/settings` → Skill tag picks `+`, `~`, or `$` (default `+`). After a space — or at the start of a line — that character lists loaded skills, the same picker `/` opens at the start of the TUI. Completing inserts a tag; it does not expand SKILL.md the way `/skill:name` does.
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
Please use +pdf-tools on this file
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`xyz+` does not open the list. `xyz +` does. When the tag character is `~`, `~/path` still completes as a file path.
|
|
101
|
+
|
|
92
102
|
## Skill Structure
|
|
93
103
|
|
|
94
104
|
A skill is a directory with a `SKILL.md` file. Everything else is freeform.
|
|
@@ -140,7 +150,7 @@ Per the [Agent Skills specification](https://agentskills.io/specification#frontm
|
|
|
140
150
|
|
|
141
151
|
| Field | Required | Description |
|
|
142
152
|
|-------|----------|-------------|
|
|
143
|
-
| `name` | Yes | Max 64 chars. Lowercase a-z, 0-9, hyphens. Unlike the standard,
|
|
153
|
+
| `name` | Yes | Max 64 chars. Lowercase a-z, 0-9, hyphens. Unlike the standard, lunR does not require this to match the parent directory because that standard requirement is suboptimal for shared skill directories. |
|
|
144
154
|
| `description` | Yes | Max 1024 chars. What the skill does and when to use it. |
|
|
145
155
|
| `license` | No | License name or reference to bundled file. |
|
|
146
156
|
| `compatibility` | No | Max 500 chars. Environment requirements. |
|
|
@@ -154,7 +164,7 @@ Per the [Agent Skills specification](https://agentskills.io/specification#frontm
|
|
|
154
164
|
- Lowercase letters, numbers, hyphens only
|
|
155
165
|
- No leading/trailing hyphens
|
|
156
166
|
- No consecutive hyphens
|
|
157
|
-
|
|
167
|
+
lunR does not require the name to match the parent directory. The Agent Skills standard does, but that requirement is suboptimal for shared skill directories used by multiple tools.
|
|
158
168
|
|
|
159
169
|
Valid: `pdf-processing`, `data-analysis`, `code-review`
|
|
160
170
|
Invalid: `PDF-Processing`, `-pdf`, `pdf--processing`
|
|
@@ -175,7 +185,7 @@ description: Helps with PDFs.
|
|
|
175
185
|
|
|
176
186
|
## Validation
|
|
177
187
|
|
|
178
|
-
|
|
188
|
+
lunR validates skills against the Agent Skills standard. Most issues produce warnings but still load the skill:
|
|
179
189
|
|
|
180
190
|
- Name exceeds 64 characters or contains invalid characters
|
|
181
191
|
- Name starts/ends with hyphen or has consecutive hyphens
|
|
@@ -228,4 +238,4 @@ cd /path/to/brave-search && npm install
|
|
|
228
238
|
## Skill Repositories
|
|
229
239
|
|
|
230
240
|
- [Anthropic Skills](https://github.com/anthropics/skills) - Document processing (docx, pdf, pptx, xlsx), web development
|
|
231
|
-
- [
|
|
241
|
+
- [lunR Skills](https://github.com/badlogic/pi-skills) - Web search, browser automation, Google APIs, transcription
|
package/docs/terminal-setup.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Terminal Setup
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
lunR uses the [Kitty keyboard protocol](https://sw.kovidgoyal.net/kitty/keyboard-protocol/) for reliable modifier key detection. Most modern terminals support this protocol, but some require configuration.
|
|
4
4
|
|
|
5
5
|
## Kitty, iTerm2
|
|
6
6
|
|
|
@@ -8,9 +8,9 @@ Work out of the box.
|
|
|
8
8
|
|
|
9
9
|
## Apple Terminal
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
lunR enables enhanced key reporting when available. If Terminal.app still sends plain Return for `Shift+Enter`, lunR uses a local macOS modifier fallback to treat that Return as `Shift+Enter`.
|
|
12
12
|
|
|
13
|
-
This fallback only works when
|
|
13
|
+
This fallback only works when lunR runs on the same Mac as Terminal.app. It cannot detect the local keyboard over remote SSH.
|
|
14
14
|
|
|
15
15
|
## Ghostty
|
|
16
16
|
|
|
@@ -30,7 +30,7 @@ That mapping sends a raw linefeed byte. Inside pi, that is indistinguishable fro
|
|
|
30
30
|
|
|
31
31
|
If Claude Code 2.x or newer is the only reason you added that mapping, you can remove it, unless you want to use Claude Code in tmux, where it still requires that Ghostty mapping.
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
lunR binds `Ctrl+J` as a default newline alias, so `Shift+Enter` keeps working in tmux via that remap without extra lunr configuration.
|
|
34
34
|
|
|
35
35
|
## WezTerm
|
|
36
36
|
|
|
@@ -112,7 +112,7 @@ A successful paste toasts `Pasted [image_1]` and inserts that chip in the editor
|
|
|
112
112
|
|
|
113
113
|
## Windows Terminal
|
|
114
114
|
|
|
115
|
-
Add to `settings.json` (Ctrl+Shift+, or Settings → Open JSON file) to forward the modified Enter keys
|
|
115
|
+
Add to `settings.json` (Ctrl+Shift+, or Settings → Open JSON file) to forward the modified Enter keys lunR uses:
|
|
116
116
|
|
|
117
117
|
```json
|
|
118
118
|
{
|
package/docs/termux.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Termux (Android) Setup
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
lunR runs on Android via [Termux](https://termux.dev/), a terminal emulator and Linux environment for Android.
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
@@ -16,14 +16,14 @@ pkg update && pkg upgrade
|
|
|
16
16
|
# Install dependencies
|
|
17
17
|
pkg install nodejs termux-api git
|
|
18
18
|
|
|
19
|
-
# Install
|
|
20
|
-
npm
|
|
19
|
+
# Install lunR (Node ≥ 22.19)
|
|
20
|
+
npm i -g @ashx-j/lunr
|
|
21
21
|
|
|
22
22
|
# Create config directory
|
|
23
|
-
mkdir -p ~/.
|
|
23
|
+
mkdir -p ~/.lunr/agent
|
|
24
24
|
|
|
25
|
-
# Run
|
|
26
|
-
|
|
25
|
+
# Run lunR
|
|
26
|
+
lunr
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
## Clipboard Support
|
|
@@ -34,7 +34,7 @@ Image clipboard is not supported on Termux (the `ctrl+v` image paste feature wil
|
|
|
34
34
|
|
|
35
35
|
## Example AGENTS.md for Termux
|
|
36
36
|
|
|
37
|
-
Create `~/.
|
|
37
|
+
Create `~/.lunr/agent/AGENTS.md` to help the agent understand the Termux environment:
|
|
38
38
|
|
|
39
39
|
````markdown
|
|
40
40
|
# Agent Environment: Termux on Android
|
package/docs/themes.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
>
|
|
1
|
+
> lunR can create themes. Ask it to build one for your setup.
|
|
2
2
|
|
|
3
3
|
# Themes
|
|
4
4
|
|
|
@@ -16,11 +16,11 @@ Themes are JSON files that define colors for the TUI.
|
|
|
16
16
|
|
|
17
17
|
## Locations
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
lunR loads themes from:
|
|
20
20
|
|
|
21
|
-
- Built-in: `
|
|
22
|
-
- Global: `~/.
|
|
23
|
-
- Project: `.
|
|
21
|
+
- Built-in: `moon` only (`getDefaultTheme()` returns `"moon"`)
|
|
22
|
+
- Global: `~/.lunr/agent/themes/*.json`
|
|
23
|
+
- Project: `.lunr/themes/*.json` (only after the project is trusted)
|
|
24
24
|
- Packages: `themes/` directories or `pi.themes` entries in `package.json`
|
|
25
25
|
- Settings: `themes` array with files or directories
|
|
26
26
|
- CLI: `--theme <path>` (repeatable)
|
|
@@ -37,22 +37,22 @@ Select a theme via `/settings` or in `settings.json`:
|
|
|
37
37
|
}
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
The default theme is `moon`. Custom themes still hot-reload when you edit the active file.
|
|
41
41
|
|
|
42
42
|
## Creating a Custom Theme
|
|
43
43
|
|
|
44
44
|
1. Create a theme file:
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
mkdir -p ~/.
|
|
48
|
-
vim ~/.
|
|
47
|
+
mkdir -p ~/.lunr/agent/themes
|
|
48
|
+
vim ~/.lunr/agent/themes/my-theme.json
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
2. Define the theme with all required colors (see [Color Tokens](#color-tokens)):
|
|
52
52
|
|
|
53
53
|
```json
|
|
54
54
|
{
|
|
55
|
-
"$schema": "https://raw.githubusercontent.com/
|
|
55
|
+
"$schema": "https://raw.githubusercontent.com/ashx-j/lunR/master/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
56
56
|
"name": "my-theme",
|
|
57
57
|
"vars": {
|
|
58
58
|
"primary": "#00aaff",
|
|
@@ -123,7 +123,7 @@ vim ~/.pi/agent/themes/my-theme.json
|
|
|
123
123
|
|
|
124
124
|
```json
|
|
125
125
|
{
|
|
126
|
-
"$schema": "https://raw.githubusercontent.com/
|
|
126
|
+
"$schema": "https://raw.githubusercontent.com/ashx-j/lunR/master/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
127
127
|
"name": "my-theme",
|
|
128
128
|
"vars": {
|
|
129
129
|
"blue": "#0066cc",
|
|
@@ -270,7 +270,7 @@ Four formats are supported:
|
|
|
270
270
|
|
|
271
271
|
### Terminal Compatibility
|
|
272
272
|
|
|
273
|
-
|
|
273
|
+
lunR uses 24-bit RGB colors. Most modern terminals support this (iTerm2, Kitty, WezTerm, Windows Terminal, VS Code). For older terminals with only 256-color support, lunR falls back to the nearest approximation.
|
|
274
274
|
|
|
275
275
|
Check truecolor support:
|
|
276
276
|
|
|
@@ -292,6 +292,4 @@ echo $COLORTERM # Should output "truecolor" or "24bit"
|
|
|
292
292
|
|
|
293
293
|
## Examples
|
|
294
294
|
|
|
295
|
-
|
|
296
|
-
- [dark.json](../src/modes/interactive/theme/dark.json)
|
|
297
|
-
- [light.json](../src/modes/interactive/theme/light.json)
|
|
295
|
+
The only built-in theme is `moon`. Schema for custom themes: [theme-schema.json](https://github.com/ashx-j/lunR/blob/master/packages/coding-agent/src/modes/interactive/theme/theme-schema.json) (also packed as `dist/modes/interactive/theme/theme-schema.json` in `@ashx-j/lunr`).
|