@greppleai/grip 0.0.0-stage → 0.1.3
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 +115 -0
- package/README.md +731 -2
- package/dist/bun/cli.d.ts +3 -0
- package/dist/bun/cli.d.ts.map +1 -0
- package/dist/bun/cli.js +13 -0
- package/dist/bun/cli.js.map +1 -0
- package/dist/bun/embedded-assets.d.ts +3 -0
- package/dist/bun/embedded-assets.d.ts.map +1 -0
- package/dist/bun/embedded-assets.js +52 -0
- package/dist/bun/embedded-assets.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +13 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +32 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +70 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +442 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +60 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +98 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/session-picker.d.ts +9 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +35 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +82 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +406 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session.d.ts +970 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +5191 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +150 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +557 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +26 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +99 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +83 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +220 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +65 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +550 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/compression-detection-ledger.d.ts +34 -0
- package/dist/core/compaction/compression-detection-ledger.d.ts.map +1 -0
- package/dist/core/compaction/compression-detection-ledger.js +52 -0
- package/dist/core/compaction/compression-detection-ledger.js.map +1 -0
- package/dist/core/compaction/compression-detector.d.ts +71 -0
- package/dist/core/compaction/compression-detector.d.ts.map +1 -0
- package/dist/core/compaction/compression-detector.js +407 -0
- package/dist/core/compaction/compression-detector.js.map +1 -0
- package/dist/core/compaction/compression-economics.d.ts +55 -0
- package/dist/core/compaction/compression-economics.d.ts.map +1 -0
- package/dist/core/compaction/compression-economics.js +151 -0
- package/dist/core/compaction/compression-economics.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +28 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +165 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +18 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +75 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +245 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +21 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +230 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1864 -0
- package/dist/core/export-html/tool-renderer.d.ts +32 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +78 -0
- package/dist/core/extensions/loader.d.ts +24 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +613 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +160 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +962 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1311 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +51 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +22 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +52 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +318 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/grip-agent.d.ts +240 -0
- package/dist/core/grip-agent.d.ts.map +1 -0
- package/dist/core/grip-agent.js +1243 -0
- package/dist/core/grip-agent.js.map +1 -0
- package/dist/core/grip-manifest.d.ts +9 -0
- package/dist/core/grip-manifest.d.ts.map +1 -0
- package/dist/core/grip-manifest.js +25 -0
- package/dist/core/grip-manifest.js.map +1 -0
- package/dist/core/hooks/aggregate.d.ts +5 -0
- package/dist/core/hooks/aggregate.d.ts.map +1 -0
- package/dist/core/hooks/aggregate.js +226 -0
- package/dist/core/hooks/aggregate.js.map +1 -0
- package/dist/core/hooks/config.d.ts +14 -0
- package/dist/core/hooks/config.d.ts.map +1 -0
- package/dist/core/hooks/config.js +372 -0
- package/dist/core/hooks/config.js.map +1 -0
- package/dist/core/hooks/executor.d.ts +12 -0
- package/dist/core/hooks/executor.d.ts.map +1 -0
- package/dist/core/hooks/executor.js +708 -0
- package/dist/core/hooks/executor.js.map +1 -0
- package/dist/core/hooks/index.d.ts +9 -0
- package/dist/core/hooks/index.d.ts.map +1 -0
- package/dist/core/hooks/index.js +14 -0
- package/dist/core/hooks/index.js.map +1 -0
- package/dist/core/hooks/matcher.d.ts +10 -0
- package/dist/core/hooks/matcher.d.ts.map +1 -0
- package/dist/core/hooks/matcher.js +70 -0
- package/dist/core/hooks/matcher.js.map +1 -0
- package/dist/core/hooks/trust-store.d.ts +38 -0
- package/dist/core/hooks/trust-store.d.ts.map +1 -0
- package/dist/core/hooks/trust-store.js +167 -0
- package/dist/core/hooks/trust-store.js.map +1 -0
- package/dist/core/hooks/types.d.ts +234 -0
- package/dist/core/hooks/types.d.ts.map +1 -0
- package/dist/core/hooks/types.js +52 -0
- package/dist/core/hooks/types.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts +21 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +82 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/instruction-resource-loader.d.ts +81 -0
- package/dist/core/instruction-resource-loader.d.ts.map +1 -0
- package/dist/core/instruction-resource-loader.js +574 -0
- package/dist/core/instruction-resource-loader.js.map +1 -0
- package/dist/core/keybindings.d.ts +399 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +299 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/lsp/abort.d.ts +3 -0
- package/dist/core/lsp/abort.d.ts.map +1 -0
- package/dist/core/lsp/abort.js +28 -0
- package/dist/core/lsp/abort.js.map +1 -0
- package/dist/core/lsp/client.d.ts +108 -0
- package/dist/core/lsp/client.d.ts.map +1 -0
- package/dist/core/lsp/client.js +586 -0
- package/dist/core/lsp/client.js.map +1 -0
- package/dist/core/lsp/config-loader.d.ts +44 -0
- package/dist/core/lsp/config-loader.d.ts.map +1 -0
- package/dist/core/lsp/config-loader.js +223 -0
- package/dist/core/lsp/config-loader.js.map +1 -0
- package/dist/core/lsp/config.d.ts +134 -0
- package/dist/core/lsp/config.d.ts.map +1 -0
- package/dist/core/lsp/config.js +682 -0
- package/dist/core/lsp/config.js.map +1 -0
- package/dist/core/lsp/diagnostics.d.ts +18 -0
- package/dist/core/lsp/diagnostics.d.ts.map +1 -0
- package/dist/core/lsp/diagnostics.js +311 -0
- package/dist/core/lsp/diagnostics.js.map +1 -0
- package/dist/core/lsp/file-sync.d.ts +58 -0
- package/dist/core/lsp/file-sync.d.ts.map +1 -0
- package/dist/core/lsp/file-sync.js +432 -0
- package/dist/core/lsp/file-sync.js.map +1 -0
- package/dist/core/lsp/integration.d.ts +62 -0
- package/dist/core/lsp/integration.d.ts.map +1 -0
- package/dist/core/lsp/integration.js +145 -0
- package/dist/core/lsp/integration.js.map +1 -0
- package/dist/core/lsp/language-map.d.ts +54 -0
- package/dist/core/lsp/language-map.d.ts.map +1 -0
- package/dist/core/lsp/language-map.js +300 -0
- package/dist/core/lsp/language-map.js.map +1 -0
- package/dist/core/lsp/manager.d.ts +120 -0
- package/dist/core/lsp/manager.d.ts.map +1 -0
- package/dist/core/lsp/manager.js +636 -0
- package/dist/core/lsp/manager.js.map +1 -0
- package/dist/core/lsp/navigation.d.ts +32 -0
- package/dist/core/lsp/navigation.d.ts.map +1 -0
- package/dist/core/lsp/navigation.js +327 -0
- package/dist/core/lsp/navigation.js.map +1 -0
- package/dist/core/lsp/portable-path.d.ts +18 -0
- package/dist/core/lsp/portable-path.d.ts.map +1 -0
- package/dist/core/lsp/portable-path.js +83 -0
- package/dist/core/lsp/portable-path.js.map +1 -0
- package/dist/core/lsp/refactor.d.ts +32 -0
- package/dist/core/lsp/refactor.d.ts.map +1 -0
- package/dist/core/lsp/refactor.js +519 -0
- package/dist/core/lsp/refactor.js.map +1 -0
- package/dist/core/lsp/transport.d.ts +39 -0
- package/dist/core/lsp/transport.d.ts.map +1 -0
- package/dist/core/lsp/transport.js +261 -0
- package/dist/core/lsp/transport.js.map +1 -0
- package/dist/core/messages.d.ts +34 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +140 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-registry.d.ts +148 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +812 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +115 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +498 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/output-guard.d.ts +7 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +89 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +209 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +2341 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +57 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +353 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +33 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/remote-workspace-protocol/contract.d.ts +465 -0
- package/dist/core/remote-workspace-protocol/contract.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/contract.js +825 -0
- package/dist/core/remote-workspace-protocol/contract.js.map +1 -0
- package/dist/core/remote-workspace-protocol/guest-shared-client.d.ts +16 -0
- package/dist/core/remote-workspace-protocol/guest-shared-client.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/guest-shared-client.js +54 -0
- package/dist/core/remote-workspace-protocol/guest-shared-client.js.map +1 -0
- package/dist/core/remote-workspace-protocol/guest-shared-outbound-scheduler.d.ts +23 -0
- package/dist/core/remote-workspace-protocol/guest-shared-outbound-scheduler.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/guest-shared-outbound-scheduler.js +112 -0
- package/dist/core/remote-workspace-protocol/guest-shared-outbound-scheduler.js.map +1 -0
- package/dist/core/remote-workspace-protocol/guest-shared-uplink.d.ts +30 -0
- package/dist/core/remote-workspace-protocol/guest-shared-uplink.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/guest-shared-uplink.js +243 -0
- package/dist/core/remote-workspace-protocol/guest-shared-uplink.js.map +1 -0
- package/dist/core/remote-workspace-protocol/lima-owner-directory.d.ts +3 -0
- package/dist/core/remote-workspace-protocol/lima-owner-directory.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/lima-owner-directory.js +31 -0
- package/dist/core/remote-workspace-protocol/lima-owner-directory.js.map +1 -0
- package/dist/core/remote-workspace-protocol/lima-owner-lock.d.ts +9 -0
- package/dist/core/remote-workspace-protocol/lima-owner-lock.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/lima-owner-lock.js +89 -0
- package/dist/core/remote-workspace-protocol/lima-owner-lock.js.map +1 -0
- package/dist/core/remote-workspace-protocol/session.d.ts +249 -0
- package/dist/core/remote-workspace-protocol/session.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/session.js +1842 -0
- package/dist/core/remote-workspace-protocol/session.js.map +1 -0
- package/dist/core/remote-workspace-protocol/shared-transport.d.ts +71 -0
- package/dist/core/remote-workspace-protocol/shared-transport.d.ts.map +1 -0
- package/dist/core/remote-workspace-protocol/shared-transport.js +68 -0
- package/dist/core/remote-workspace-protocol/shared-transport.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +32 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +257 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +200 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +1209 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/rules.d.ts +40 -0
- package/dist/core/rules.d.ts.map +1 -0
- package/dist/core/rules.js +57 -0
- package/dist/core/rules.js.map +1 -0
- package/dist/core/sandbox/command.d.ts +25 -0
- package/dist/core/sandbox/command.d.ts.map +1 -0
- package/dist/core/sandbox/command.js +102 -0
- package/dist/core/sandbox/command.js.map +1 -0
- package/dist/core/sandbox/config.d.ts +91 -0
- package/dist/core/sandbox/config.d.ts.map +1 -0
- package/dist/core/sandbox/config.js +88 -0
- package/dist/core/sandbox/config.js.map +1 -0
- package/dist/core/sandbox/lima-guest-binary.d.ts +11 -0
- package/dist/core/sandbox/lima-guest-binary.d.ts.map +1 -0
- package/dist/core/sandbox/lima-guest-binary.js +140 -0
- package/dist/core/sandbox/lima-guest-binary.js.map +1 -0
- package/dist/core/sandbox/lima.d.ts +57 -0
- package/dist/core/sandbox/lima.d.ts.map +1 -0
- package/dist/core/sandbox/lima.js +716 -0
- package/dist/core/sandbox/lima.js.map +1 -0
- package/dist/core/sandbox/shared-lima-roots.d.ts +11 -0
- package/dist/core/sandbox/shared-lima-roots.d.ts.map +1 -0
- package/dist/core/sandbox/shared-lima-roots.js +25 -0
- package/dist/core/sandbox/shared-lima-roots.js.map +1 -0
- package/dist/core/sandbox/update-shared-guest-binary.d.ts +8 -0
- package/dist/core/sandbox/update-shared-guest-binary.d.ts.map +1 -0
- package/dist/core/sandbox/update-shared-guest-binary.js +100 -0
- package/dist/core/sandbox/update-shared-guest-binary.js.map +1 -0
- package/dist/core/session/constants.d.ts +2 -0
- package/dist/core/session/constants.d.ts.map +1 -0
- package/dist/core/session/constants.js +2 -0
- package/dist/core/session/constants.js.map +1 -0
- package/dist/core/session/context-metadata.d.ts +5 -0
- package/dist/core/session/context-metadata.d.ts.map +1 -0
- package/dist/core/session/context-metadata.js +55 -0
- package/dist/core/session/context-metadata.js.map +1 -0
- package/dist/core/session/context.d.ts +14 -0
- package/dist/core/session/context.d.ts.map +1 -0
- package/dist/core/session/context.js +117 -0
- package/dist/core/session/context.js.map +1 -0
- package/dist/core/session/ids.d.ts +9 -0
- package/dist/core/session/ids.d.ts.map +1 -0
- package/dist/core/session/ids.js +21 -0
- package/dist/core/session/ids.js.map +1 -0
- package/dist/core/session/in-memory-session-manager.d.ts +17 -0
- package/dist/core/session/in-memory-session-manager.d.ts.map +1 -0
- package/dist/core/session/in-memory-session-manager.js +40 -0
- package/dist/core/session/in-memory-session-manager.js.map +1 -0
- package/dist/core/session/in-memory-session.d.ts +7 -0
- package/dist/core/session/in-memory-session.d.ts.map +1 -0
- package/dist/core/session/in-memory-session.js +11 -0
- package/dist/core/session/in-memory-session.js.map +1 -0
- package/dist/core/session/jsonl-errors.d.ts +36 -0
- package/dist/core/session/jsonl-errors.d.ts.map +1 -0
- package/dist/core/session/jsonl-errors.js +49 -0
- package/dist/core/session/jsonl-errors.js.map +1 -0
- package/dist/core/session/jsonl-helpers.d.ts +20 -0
- package/dist/core/session/jsonl-helpers.d.ts.map +1 -0
- package/dist/core/session/jsonl-helpers.js +21 -0
- package/dist/core/session/jsonl-helpers.js.map +1 -0
- package/dist/core/session/local-session-manager.d.ts +30 -0
- package/dist/core/session/local-session-manager.d.ts.map +1 -0
- package/dist/core/session/local-session-manager.js +205 -0
- package/dist/core/session/local-session-manager.js.map +1 -0
- package/dist/core/session/local-session.d.ts +9 -0
- package/dist/core/session/local-session.d.ts.map +1 -0
- package/dist/core/session/local-session.js +15 -0
- package/dist/core/session/local-session.js.map +1 -0
- package/dist/core/session/migrations.d.ts +11 -0
- package/dist/core/session/migrations.d.ts.map +1 -0
- package/dist/core/session/migrations.js +78 -0
- package/dist/core/session/migrations.js.map +1 -0
- package/dist/core/session/remote-session-client.d.ts +83 -0
- package/dist/core/session/remote-session-client.d.ts.map +1 -0
- package/dist/core/session/remote-session-client.js +224 -0
- package/dist/core/session/remote-session-client.js.map +1 -0
- package/dist/core/session/remote-session-manager.d.ts +32 -0
- package/dist/core/session/remote-session-manager.d.ts.map +1 -0
- package/dist/core/session/remote-session-manager.js +124 -0
- package/dist/core/session/remote-session-manager.js.map +1 -0
- package/dist/core/session/remote-session.d.ts +20 -0
- package/dist/core/session/remote-session.d.ts.map +1 -0
- package/dist/core/session/remote-session.js +33 -0
- package/dist/core/session/remote-session.js.map +1 -0
- package/dist/core/session/session-manager.d.ts +18 -0
- package/dist/core/session/session-manager.d.ts.map +1 -0
- package/dist/core/session/session-manager.js +2 -0
- package/dist/core/session/session-manager.js.map +1 -0
- package/dist/core/session/session.d.ts +140 -0
- package/dist/core/session/session.d.ts.map +1 -0
- package/dist/core/session/session.js +461 -0
- package/dist/core/session/session.js.map +1 -0
- package/dist/core/session/stores/in-memory-session-store.d.ts +39 -0
- package/dist/core/session/stores/in-memory-session-store.d.ts.map +1 -0
- package/dist/core/session/stores/in-memory-session-store.js +168 -0
- package/dist/core/session/stores/in-memory-session-store.js.map +1 -0
- package/dist/core/session/stores/jsonl-session-store.d.ts +97 -0
- package/dist/core/session/stores/jsonl-session-store.d.ts.map +1 -0
- package/dist/core/session/stores/jsonl-session-store.js +1140 -0
- package/dist/core/session/stores/jsonl-session-store.js.map +1 -0
- package/dist/core/session/stores/remote-session-store.d.ts +44 -0
- package/dist/core/session/stores/remote-session-store.d.ts.map +1 -0
- package/dist/core/session/stores/remote-session-store.js +159 -0
- package/dist/core/session/stores/remote-session-store.js.map +1 -0
- package/dist/core/session/stores/session-store.d.ts +42 -0
- package/dist/core/session/stores/session-store.d.ts.map +1 -0
- package/dist/core/session/stores/session-store.js +2 -0
- package/dist/core/session/stores/session-store.js.map +1 -0
- package/dist/core/session/types.d.ts +141 -0
- package/dist/core/session/types.d.ts.map +1 -0
- package/dist/core/session/types.js +2 -0
- package/dist/core/session/types.js.map +1 -0
- package/dist/core/session/usage-ledger.d.ts +18 -0
- package/dist/core/session/usage-ledger.d.ts.map +1 -0
- package/dist/core/session/usage-ledger.js +68 -0
- package/dist/core/session/usage-ledger.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/settings-manager.d.ts +314 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +991 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +40 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +57 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +15 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +36 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +26 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +27 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/system-prompt.d.ts +32 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +131 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/telemetry.d.ts +3 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +9 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/timings.d.ts +10 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +41 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +51 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +321 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/compress-context.d.ts +27 -0
- package/dist/core/tools/compress-context.d.ts.map +1 -0
- package/dist/core/tools/compress-context.js +142 -0
- package/dist/core/tools/compress-context.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +82 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +327 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +50 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +324 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +8 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +69 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +22 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +268 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +27 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +332 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/hash-store.d.ts +12 -0
- package/dist/core/tools/hash-store.d.ts.map +1 -0
- package/dist/core/tools/hash-store.js +48 -0
- package/dist/core/tools/hash-store.js.map +1 -0
- package/dist/core/tools/hashline/apply.d.ts +40 -0
- package/dist/core/tools/hashline/apply.d.ts.map +1 -0
- package/dist/core/tools/hashline/apply.js +261 -0
- package/dist/core/tools/hashline/apply.js.map +1 -0
- package/dist/core/tools/hashline/hash.d.ts +56 -0
- package/dist/core/tools/hashline/hash.d.ts.map +1 -0
- package/dist/core/tools/hashline/hash.js +196 -0
- package/dist/core/tools/hashline/hash.js.map +1 -0
- package/dist/core/tools/hashline/parse.d.ts +8 -0
- package/dist/core/tools/hashline/parse.d.ts.map +1 -0
- package/dist/core/tools/hashline/parse.js +41 -0
- package/dist/core/tools/hashline/parse.js.map +1 -0
- package/dist/core/tools/hashline/resolve.d.ts +51 -0
- package/dist/core/tools/hashline/resolve.d.ts.map +1 -0
- package/dist/core/tools/hashline/resolve.js +187 -0
- package/dist/core/tools/hashline/resolve.js.map +1 -0
- package/dist/core/tools/hashline-utils.d.ts +6 -0
- package/dist/core/tools/hashline-utils.d.ts.map +1 -0
- package/dist/core/tools/hashline-utils.js +23 -0
- package/dist/core/tools/hashline-utils.js.map +1 -0
- package/dist/core/tools/index.d.ts +36 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +141 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +21 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +156 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/operations.d.ts +212 -0
- package/dist/core/tools/operations.d.ts.map +1 -0
- package/dist/core/tools/operations.js +793 -0
- package/dist/core/tools/operations.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +54 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +184 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +9 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +99 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +32 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +318 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +33 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +61 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/replace-diff.d.ts +16 -0
- package/dist/core/tools/replace-diff.d.ts.map +1 -0
- package/dist/core/tools/replace-diff.js +117 -0
- package/dist/core/tools/replace-diff.js.map +1 -0
- package/dist/core/tools/replace-normalize.d.ts +2 -0
- package/dist/core/tools/replace-normalize.d.ts.map +1 -0
- package/dist/core/tools/replace-normalize.js +73 -0
- package/dist/core/tools/replace-normalize.js.map +1 -0
- package/dist/core/tools/replace-render.d.ts +51 -0
- package/dist/core/tools/replace-render.d.ts.map +1 -0
- package/dist/core/tools/replace-render.js +162 -0
- package/dist/core/tools/replace-render.js.map +1 -0
- package/dist/core/tools/runtime.d.ts +2 -0
- package/dist/core/tools/runtime.d.ts.map +1 -0
- package/dist/core/tools/runtime.js +6 -0
- package/dist/core/tools/runtime.js.map +1 -0
- package/dist/core/tools/session-history.d.ts +55 -0
- package/dist/core/tools/session-history.d.ts.map +1 -0
- package/dist/core/tools/session-history.js +649 -0
- package/dist/core/tools/session-history.js.map +1 -0
- package/dist/core/tools/subagent-agents.d.ts +29 -0
- package/dist/core/tools/subagent-agents.d.ts.map +1 -0
- package/dist/core/tools/subagent-agents.js +223 -0
- package/dist/core/tools/subagent-agents.js.map +1 -0
- package/dist/core/tools/subagent.d.ts +185 -0
- package/dist/core/tools/subagent.d.ts.map +1 -0
- package/dist/core/tools/subagent.js +1309 -0
- package/dist/core/tools/subagent.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +34 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +39 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +215 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/websearch.d.ts +33 -0
- package/dist/core/tools/websearch.d.ts.map +1 -0
- package/dist/core/tools/websearch.js +341 -0
- package/dist/core/tools/websearch.js.map +1 -0
- package/dist/core/tools/workspace-tool-host.d.ts +102 -0
- package/dist/core/tools/workspace-tool-host.d.ts.map +1 -0
- package/dist/core/tools/workspace-tool-host.js +348 -0
- package/dist/core/tools/workspace-tool-host.js.map +1 -0
- package/dist/core/tools/write.d.ts +16 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +204 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/core/workspace-identity.d.ts +7 -0
- package/dist/core/workspace-identity.d.ts.map +1 -0
- package/dist/core/workspace-identity.js +2 -0
- package/dist/core/workspace-identity.js.map +1 -0
- package/dist/daemon/activity-budget.d.ts +10 -0
- package/dist/daemon/activity-budget.d.ts.map +1 -0
- package/dist/daemon/activity-budget.js +34 -0
- package/dist/daemon/activity-budget.js.map +1 -0
- package/dist/daemon/command.d.ts +6 -0
- package/dist/daemon/command.d.ts.map +1 -0
- package/dist/daemon/command.js +58 -0
- package/dist/daemon/command.js.map +1 -0
- package/dist/daemon/config.d.ts +45 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +319 -0
- package/dist/daemon/config.js.map +1 -0
- package/dist/daemon/help.d.ts +2 -0
- package/dist/daemon/help.d.ts.map +1 -0
- package/dist/daemon/help.js +42 -0
- package/dist/daemon/help.js.map +1 -0
- package/dist/daemon/lsp-config.d.ts +4 -0
- package/dist/daemon/lsp-config.d.ts.map +1 -0
- package/dist/daemon/lsp-config.js +155 -0
- package/dist/daemon/lsp-config.js.map +1 -0
- package/dist/daemon/outbound-budget.d.ts +10 -0
- package/dist/daemon/outbound-budget.d.ts.map +1 -0
- package/dist/daemon/outbound-budget.js +30 -0
- package/dist/daemon/outbound-budget.js.map +1 -0
- package/dist/daemon/security.d.ts +19 -0
- package/dist/daemon/security.d.ts.map +1 -0
- package/dist/daemon/security.js +177 -0
- package/dist/daemon/security.js.map +1 -0
- package/dist/daemon/server.d.ts +20 -0
- package/dist/daemon/server.d.ts.map +1 -0
- package/dist/daemon/server.js +480 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/daemon/shared-connection.d.ts +33 -0
- package/dist/daemon/shared-connection.d.ts.map +1 -0
- package/dist/daemon/shared-connection.js +271 -0
- package/dist/daemon/shared-connection.js.map +1 -0
- package/dist/daemon/shared-revision.d.ts +5 -0
- package/dist/daemon/shared-revision.d.ts.map +1 -0
- package/dist/daemon/shared-revision.js +61 -0
- package/dist/daemon/shared-revision.js.map +1 -0
- package/dist/daemon/shared-roots.d.ts +9 -0
- package/dist/daemon/shared-roots.d.ts.map +1 -0
- package/dist/daemon/shared-roots.js +33 -0
- package/dist/daemon/shared-roots.js.map +1 -0
- package/dist/daemon/workspace-runtime.d.ts +46 -0
- package/dist/daemon/workspace-runtime.d.ts.map +1 -0
- package/dist/daemon/workspace-runtime.js +705 -0
- package/dist/daemon/workspace-runtime.js.map +1 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +39 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +765 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +35 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +412 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +30 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +159 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +36 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +173 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +18 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +54 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +17 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +45 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +17 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +46 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +74 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +514 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +25 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +85 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +81 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +118 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +22 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +128 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +26 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +83 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +36 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +227 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/hook-execution.d.ts +19 -0
- package/dist/modes/interactive/components/hook-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/hook-execution.js +185 -0
- package/dist/modes/interactive/components/hook-execution.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +55 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +176 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts +4 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/modes/interactive/components/mermaid.d.ts +14 -0
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/modes/interactive/components/mermaid.js +228 -0
- package/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/modes/interactive/components/message-card.d.ts +9 -0
- package/dist/modes/interactive/components/message-card.d.ts.map +1 -0
- package/dist/modes/interactive/components/message-card.js +24 -0
- package/dist/modes/interactive/components/message-card.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +52 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +296 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +165 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +50 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +300 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +22 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +144 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +108 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +835 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +81 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +455 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +18 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +48 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +50 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +51 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +67 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +312 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +127 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +1098 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +16 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +50 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +554 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +5870 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +86 -0
- package/dist/modes/interactive/theme/light.json +85 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +109 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +1040 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/json-event.d.ts +28 -0
- package/dist/modes/json-event.d.ts.map +1 -0
- package/dist/modes/json-event.js +12 -0
- package/dist/modes/json-event.js.map +1 -0
- package/dist/modes/print-mode.d.ts +29 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +142 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +49 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +321 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +755 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +963 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +652 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/package-manager-cli.d.ts +4 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +488 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +25 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/changelog.d.ts +23 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +74 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/child-process.d.ts +15 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +88 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +13 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +248 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +11 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +20 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts +4 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +171 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/deprecation.d.ts +4 -0
- package/dist/utils/deprecation.d.ts.map +1 -0
- package/dist/utils/deprecation.js +13 -0
- package/dist/utils/deprecation.js.map +1 -0
- package/dist/utils/directory-completions.d.ts +5 -0
- package/dist/utils/directory-completions.d.ts.map +1 -0
- package/dist/utils/directory-completions.js +64 -0
- package/dist/utils/directory-completions.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +6 -0
- package/dist/utils/exif-orientation.d.ts.map +1 -0
- package/dist/utils/exif-orientation.js +166 -0
- package/dist/utils/exif-orientation.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +27 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +237 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/grip-user-agent.d.ts +2 -0
- package/dist/utils/grip-user-agent.d.ts.map +1 -0
- package/dist/utils/grip-user-agent.js +5 -0
- package/dist/utils/grip-user-agent.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/image-convert.d.ts +12 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +43 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-process.d.ts +18 -0
- package/dist/utils/image-process.d.ts.map +1 -0
- package/dist/utils/image-process.js +83 -0
- package/dist/utils/image-process.js.map +1 -0
- package/dist/utils/image-resize-core.d.ts +30 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -0
- package/dist/utils/image-resize-core.js +133 -0
- package/dist/utils/image-resize-core.js.map +1 -0
- package/dist/utils/image-resize-worker.d.ts +2 -0
- package/dist/utils/image-resize-worker.d.ts.map +1 -0
- package/dist/utils/image-resize-worker.js +31 -0
- package/dist/utils/image-resize-worker.js.map +1 -0
- package/dist/utils/image-resize.d.ts +19 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +86 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +7 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +110 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/open-browser.d.ts +9 -0
- package/dist/utils/open-browser.d.ts.map +1 -0
- package/dist/utils/open-browser.js +22 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/paths.d.ts +31 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +87 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/photon.d.ts +22 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +126 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/shell.d.ts +28 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +188 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +125 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +5 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +329 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/version-check.d.ts +14 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +91 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -0
- package/dist/utils/windows-self-update.js +77 -0
- package/dist/utils/windows-self-update.js.map +1 -0
- package/docs/compaction.md +408 -0
- package/docs/custom-provider.md +714 -0
- package/docs/daemon-architecture.md +399 -0
- package/docs/daemon.md +112 -0
- package/docs/development.md +72 -0
- package/docs/docs.json +164 -0
- package/docs/extensions.md +2745 -0
- package/docs/hooks.md +85 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +77 -0
- package/docs/json.md +89 -0
- package/docs/keybindings.md +230 -0
- package/docs/lsp.md +499 -0
- package/docs/migrating-to-grip.md +18 -0
- package/docs/models.md +496 -0
- package/docs/packages.md +228 -0
- package/docs/prompt-templates.md +88 -0
- package/docs/providers.md +251 -0
- package/docs/quickstart.md +159 -0
- package/docs/rpc.md +1492 -0
- package/docs/rules.md +117 -0
- package/docs/sandbox.md +104 -0
- package/docs/sdk.md +360 -0
- package/docs/session-format.md +414 -0
- package/docs/sessions.md +137 -0
- package/docs/settings.md +372 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +246 -0
- package/docs/terminal-setup.md +112 -0
- package/docs/termux.md +112 -0
- package/docs/themes.md +295 -0
- package/docs/tmux.md +61 -0
- package/docs/tui.md +918 -0
- package/docs/usage.md +304 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +29 -0
- package/examples/daemon-docker/Dockerfile +43 -0
- package/examples/daemon-docker/README.md +45 -0
- package/examples/extensions/README.md +208 -0
- package/examples/extensions/auto-commit-on-exit.ts +46 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/border-status-editor.ts +145 -0
- package/examples/extensions/built-in-tool-renderer.ts +259 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +82 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +131 -0
- package/examples/extensions/custom-footer.ts +79 -0
- package/examples/extensions/custom-header.ts +73 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +707 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +402 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +104 -0
- package/examples/extensions/dirty-repo-guard.ts +59 -0
- package/examples/extensions/doom-overlay/README.md +46 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +133 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
- package/examples/extensions/doom-overlay/index.ts +74 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
- package/examples/extensions/dynamic-resources/RULES.md +8 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +16 -0
- package/examples/extensions/dynamic-tools.ts +74 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/git-merge-and-resolve.ts +125 -0
- package/examples/extensions/github-issue-autocomplete.ts +191 -0
- package/examples/extensions/handoff.ts +191 -0
- package/examples/extensions/hello.ts +26 -0
- package/examples/extensions/hidden-thinking-label.ts +53 -0
- package/examples/extensions/inline-bash.ts +104 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +194 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +428 -0
- package/examples/extensions/modal-editor.ts +86 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +55 -0
- package/examples/extensions/overlay-qa-tests.ts +1374 -0
- package/examples/extensions/overlay-test.ts +171 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +65 -0
- package/examples/extensions/plan-mode/index.ts +346 -0
- package/examples/extensions/plan-mode/utils.ts +172 -0
- package/examples/extensions/preset.ts +426 -0
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +29 -0
- package/examples/extensions/provider-payload.ts +18 -0
- package/examples/extensions/qna.ts +125 -0
- package/examples/extensions/question.ts +294 -0
- package/examples/extensions/questionnaire.ts +459 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +118 -0
- package/examples/extensions/sandbox/index.ts +320 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +381 -0
- package/examples/extensions/space-invaders.ts +597 -0
- package/examples/extensions/status-line.ts +32 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +175 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +126 -0
- package/examples/extensions/subagent/index.ts +1083 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +186 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/tic-tac-toe.ts +1091 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +306 -0
- package/examples/extensions/tool-override.ts +144 -0
- package/examples/extensions/tools.ts +141 -0
- package/examples/extensions/trigger-compact.ts +50 -0
- package/examples/extensions/truncated-tool.ts +200 -0
- package/examples/extensions/widget-placement.ts +9 -0
- package/examples/extensions/with-deps/index.ts +32 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/working-indicator.ts +123 -0
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/remote-session-server/README.md +71 -0
- package/examples/remote-session-server/server.ts +353 -0
- package/examples/rpc-extension-ui.ts +642 -0
- package/examples/sdk/01-minimal.ts +27 -0
- package/examples/sdk/02-custom-model.ts +54 -0
- package/examples/sdk/03-custom-prompt.ts +76 -0
- package/examples/sdk/04-skills.ts +60 -0
- package/examples/sdk/05-tools.ts +55 -0
- package/examples/sdk/06-extensions.ts +94 -0
- package/examples/sdk/07-context-files.ts +47 -0
- package/examples/sdk/08-prompt-templates.ts +56 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +50 -0
- package/examples/sdk/10-settings.ts +58 -0
- package/examples/sdk/11-sessions.ts +54 -0
- package/examples/sdk/12-full-control.ts +79 -0
- package/examples/sdk/13-session-runtime.ts +49 -0
- package/examples/sdk/README.md +94 -0
- package/npm-shrinkwrap.json +1878 -0
- package/package.json +101 -5
package/docs/lsp.md
ADDED
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
# Language Server Protocol
|
|
2
|
+
|
|
3
|
+
Grip can connect its `lsp_*` tools to explicitly configured Language Server Protocol (LSP) servers. Configuration controls document selection, workspace roots, transport, lifecycle, path mapping, initialization, settings, feature selection, priority, and timeouts.
|
|
4
|
+
|
|
5
|
+
Grip does not include or automatically select a TypeScript language server. Without LSP configuration, the LSP runtime and tools are disabled. Even when a server is configured, LSP tools are not exposed to the model by default; opt in with `--enable-lsp-tools`, `"enableLspTools": true` in settings, or an explicit `--tools` allowlist. Install and run the servers you configure yourself.
|
|
6
|
+
|
|
7
|
+
## Quick start: spawned TypeScript server
|
|
8
|
+
|
|
9
|
+
Install `typescript-language-server` and `typescript` in the project:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install --save-dev typescript-language-server typescript
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Create `.grip/lsp.json`:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"servers": [
|
|
20
|
+
{
|
|
21
|
+
"id": "typescript",
|
|
22
|
+
"selectors": [
|
|
23
|
+
{ "languageId": "javascript", "pattern": "**/*.js" },
|
|
24
|
+
{ "languageId": "javascriptreact", "pattern": "**/*.jsx" },
|
|
25
|
+
{ "languageId": "typescript", "pattern": "**/*.ts" },
|
|
26
|
+
{ "languageId": "typescriptreact", "pattern": "**/*.tsx" }
|
|
27
|
+
],
|
|
28
|
+
"transport": {
|
|
29
|
+
"type": "spawn",
|
|
30
|
+
"command": "../node_modules/.bin/typescript-language-server",
|
|
31
|
+
"args": ["--stdio"]
|
|
32
|
+
},
|
|
33
|
+
"lifecycle": { "type": "managed" },
|
|
34
|
+
"workspace": {
|
|
35
|
+
"type": "markers",
|
|
36
|
+
"markers": ["tsconfig.json", "jsconfig.json", "package.json"],
|
|
37
|
+
"fallback": "session"
|
|
38
|
+
},
|
|
39
|
+
"timeouts": {
|
|
40
|
+
"connectMs": 5000,
|
|
41
|
+
"initializeMs": 10000,
|
|
42
|
+
"requestMs": 10000,
|
|
43
|
+
"shutdownMs": 3000
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Start Grip with the reviewed configuration file:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
grip --lsp-config .grip/lsp.json --enable-lsp-tools
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Paths containing a slash, such as the command above, resolve relative to the configuration file. A bare command such as `typescript-language-server` is resolved through `PATH`.
|
|
57
|
+
|
|
58
|
+
## Configuration sources and precedence
|
|
59
|
+
|
|
60
|
+
Grip resolves LSP layers from lowest to highest precedence:
|
|
61
|
+
|
|
62
|
+
1. `lsp` in `~/.grip/agent/settings.json`
|
|
63
|
+
2. `lsp` in `.grip/settings.json`
|
|
64
|
+
3. CLI input from `--lsp-config <file>` or `--no-lsp`
|
|
65
|
+
4. SDK or host input through `GripAgent.create({ lsp })` and LSP values returned by `resolveSessionOptions`
|
|
66
|
+
|
|
67
|
+
A settings file wraps the layer in an `lsp` property:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"lsp": {
|
|
72
|
+
"servers": [
|
|
73
|
+
{
|
|
74
|
+
"id": "rust",
|
|
75
|
+
"selectors": [{ "languageId": "rust", "pattern": "**/*.rs" }],
|
|
76
|
+
"transport": { "type": "tcp", "host": "127.0.0.1", "port": 9257 },
|
|
77
|
+
"lifecycle": { "type": "attached" },
|
|
78
|
+
"workspace": { "type": "session" }
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
A file passed to `--lsp-config` contains the layer directly, as in the quick-start example.
|
|
86
|
+
|
|
87
|
+
Within a layer:
|
|
88
|
+
|
|
89
|
+
- `mode: "merge"` is the default. A higher-precedence entry replaces the complete lower-precedence server definition with the same `id`.
|
|
90
|
+
- `mode: "replace"` clears all lower-precedence server definitions before applying the layer.
|
|
91
|
+
- `{ "id": "name", "enabled": false }` removes an inherited server.
|
|
92
|
+
- Top-level `enabled: false` disables the resolved runtime. It does not make retained server definitions active.
|
|
93
|
+
- If no layer exists, LSP is disabled.
|
|
94
|
+
|
|
95
|
+
Disable LSP for one CLI invocation:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
grip --no-lsp
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Invalid JSON, invalid configuration, or an unreadable configured source fails closed: Grip reports source- and path-specific diagnostics at the source's applicable error or warning severity, disables LSP instead of using stale configuration, and continues startup. LSP configuration diagnostics are nonfatal; unrelated application errors remain fatal. `--no-lsp` is a reliable recovery path: it keeps the runtime and tools disabled and permits startup even when a lower-precedence LSP source is malformed or unreadable.
|
|
102
|
+
|
|
103
|
+
### Relative paths
|
|
104
|
+
|
|
105
|
+
Relative paths use the source that declared them:
|
|
106
|
+
|
|
107
|
+
- global settings: `~/.grip/agent`
|
|
108
|
+
- project settings: `.grip`
|
|
109
|
+
- `--lsp-config`: the configuration file's directory
|
|
110
|
+
- SDK inline configuration: `baseDir`, or the session working directory when omitted
|
|
111
|
+
|
|
112
|
+
This applies to path-like spawn commands, spawn `cwd`, Unix socket paths, fixed workspace roots, marker `stopAt`, and `agentRoot` path mappings. Path resolution follows the declaring source's path flavor rather than the host running Grip: Windows drive and UNC roots remain absolute on POSIX hosts, while backslashes in POSIX paths remain literal filename characters.
|
|
113
|
+
|
|
114
|
+
## Project transport trust
|
|
115
|
+
|
|
116
|
+
Every active project-settings LSP server can either execute code or receive document contents. Grip therefore blocks project-origin `spawn`, TCP, Unix socket, named-pipe, and host-factory `connection` entries unless the embedding host explicitly grants `trustProjectLspTransports: true`.
|
|
117
|
+
|
|
118
|
+
Project configuration cannot grant trust to itself. For an untrusted project layer, Grip removes active server entries and ignores top-level `enabled: true`, so the project cannot activate a globally configured transport that a lower-precedence layer left disabled. Safe `{ "id": "name", "enabled": false }`, top-level `enabled: false`, and `mode: "replace"` removal semantics remain effective. A blocked active same-ID entry does not remove the inherited server definition, but the project cannot positively activate it.
|
|
119
|
+
|
|
120
|
+
- move a trusted server definition to global settings;
|
|
121
|
+
- review it and pass it explicitly with `--lsp-config`; or
|
|
122
|
+
- in an SDK host with its own trust UI or policy, set `trustProjectLspTransports: true`.
|
|
123
|
+
|
|
124
|
+
Global settings, CLI inputs, and SDK/host layers are trusted by their source and are unchanged by this grant.
|
|
125
|
+
|
|
126
|
+
## Document selectors and server identity
|
|
127
|
+
|
|
128
|
+
Configuration is keyed by stable server `id`, independently from language IDs. One server can accept several selectors and language IDs. `languageId` is sent in `textDocument/didOpen`; `pattern` is a workspace-relative glob used for routing.
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"id": "web-language-server",
|
|
133
|
+
"selectors": [
|
|
134
|
+
{ "languageId": "javascript", "pattern": "**/*.js" },
|
|
135
|
+
{ "languageId": "typescript", "pattern": "**/*.ts" },
|
|
136
|
+
{ "languageId": "vue", "pattern": "**/*.vue" }
|
|
137
|
+
],
|
|
138
|
+
"transport": { "type": "tcp", "host": "127.0.0.1", "port": 2087 },
|
|
139
|
+
"lifecycle": { "type": "attached" },
|
|
140
|
+
"workspace": { "type": "session" }
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The optional selector `scheme` defaults to `file`. Selectors with the same scheme and pattern are rejected as ambiguous.
|
|
145
|
+
|
|
146
|
+
## Workspace roots
|
|
147
|
+
|
|
148
|
+
Each running instance is identified by server ID and resolved workspace root. One configured server can therefore create separate instances for nested projects.
|
|
149
|
+
|
|
150
|
+
### Session root
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{ "type": "session" }
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Uses the active session working directory.
|
|
157
|
+
|
|
158
|
+
### Fixed root
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{ "type": "fixed", "path": "../workspace" }
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Relative fixed paths resolve from the configuration source.
|
|
165
|
+
|
|
166
|
+
### Marker discovery
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"type": "markers",
|
|
171
|
+
"markers": ["package.json", "pyproject.toml", ".git"],
|
|
172
|
+
"fallback": "session",
|
|
173
|
+
"stopAt": ".."
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Grip searches from the document directory upward and selects the nearest directory containing a marker. Discovery uses the active `ToolOperations` file backend, including remote daemon backends; it does not probe the host filesystem for remote workspaces. `fallback: "session"` uses the active backend cwd when no marker is found; `fallback: "none"` leaves the document unrouted. `stopAt` limits the upward search and is source-relative when not absolute. Replacing the backend or changing its cwd invalidates cached roots and stale server instances.
|
|
178
|
+
|
|
179
|
+
## Transports and lifecycle
|
|
180
|
+
|
|
181
|
+
### Managed stdio
|
|
182
|
+
|
|
183
|
+
`spawn` starts one owned process per server/workspace instance and requires `lifecycle: { "type": "managed" }`. Grip sends protocol shutdown/exit messages, closes the connection, and terminates the child process if necessary.
|
|
184
|
+
|
|
185
|
+
```json
|
|
186
|
+
{
|
|
187
|
+
"transport": {
|
|
188
|
+
"type": "spawn",
|
|
189
|
+
"command": "rust-analyzer",
|
|
190
|
+
"args": [],
|
|
191
|
+
"cwd": ".",
|
|
192
|
+
"env": { "RUST_LOG": "warn" }
|
|
193
|
+
},
|
|
194
|
+
"lifecycle": { "type": "managed" }
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Attached TCP
|
|
199
|
+
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"transport": { "type": "tcp", "host": "127.0.0.1", "port": 9257 },
|
|
203
|
+
"lifecycle": { "type": "attached" }
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Attached endpoints default to `shutdown: "disconnect"`. Grip closes only its connection and never sends an operating-system signal to a shared service process.
|
|
208
|
+
|
|
209
|
+
Use protocol shutdown only when the connection is dedicated to this Grip client and the server expects it:
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"transport": { "type": "tcp", "host": "127.0.0.1", "port": 9257 },
|
|
214
|
+
"lifecycle": { "type": "attached", "shutdown": "protocol" }
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Even when a service process is shared, each Grip client generally needs a dedicated LSP connection. LSP maintains per-client initialization and document state; do not point several clients at one already-initialized byte stream. Use a listener that accepts a new connection per client, or a protocol-aware multiplexer.
|
|
219
|
+
|
|
220
|
+
### Unix socket
|
|
221
|
+
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"transport": { "type": "unix", "path": "/run/user/1000/rust-analyzer.sock" },
|
|
225
|
+
"lifecycle": { "type": "attached" }
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Unix socket paths may be absolute or source-relative.
|
|
230
|
+
|
|
231
|
+
### Windows named pipe
|
|
232
|
+
|
|
233
|
+
```json
|
|
234
|
+
{
|
|
235
|
+
"transport": { "type": "pipe", "path": "\\\\.\\pipe\\rust-analyzer" },
|
|
236
|
+
"lifecycle": { "type": "attached" }
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Named-pipe paths must be absolute Windows pipe paths such as `\\.\pipe\server`.
|
|
241
|
+
|
|
242
|
+
### Host-provided connection
|
|
243
|
+
|
|
244
|
+
A `connection` transport resolves an ID through the SDK host's `lspConnectionFactories`. Unlike built-in transports, it may declare either lifecycle:
|
|
245
|
+
|
|
246
|
+
- `managed` sends the current process ID during initialization and uses protocol shutdown before calling the handle's `close()`.
|
|
247
|
+
- `attached` sends a null process ID and either disconnects directly or performs explicit protocol shutdown according to `shutdown`.
|
|
248
|
+
|
|
249
|
+
For a custom factory, `LspConnectionHandle.close()` defines actual resource disposal. Grip sends operating-system signals only through its built-in managed `spawn` transport; a host factory is responsible for any owned process or connection it creates.
|
|
250
|
+
|
|
251
|
+
```json
|
|
252
|
+
{
|
|
253
|
+
"transport": { "type": "connection", "id": "workspace-lsp" },
|
|
254
|
+
"lifecycle": { "type": "attached" }
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
The required lifecycle combinations are: `spawn` → managed, TCP/Unix/named pipe → attached, and host-provided `connection` → managed or attached.
|
|
259
|
+
|
|
260
|
+
## Remote and container path mapping
|
|
261
|
+
|
|
262
|
+
Use `pathMappings` when agent-visible paths differ from file URIs seen by the language server. Outgoing document and workspace URIs must map through the selected route. Grip maps interpreted URI fields in incoming results when possible; unmapped locations and edit previews are labeled as unmapped rather than treated as local paths.
|
|
263
|
+
|
|
264
|
+
For example, a container daemon may expose `/workspace`, while its language server sees the same files at `/srv/repos/app`:
|
|
265
|
+
|
|
266
|
+
```json
|
|
267
|
+
{
|
|
268
|
+
"servers": [
|
|
269
|
+
{
|
|
270
|
+
"id": "remote-typescript",
|
|
271
|
+
"selectors": [{ "languageId": "typescript", "pattern": "**/*.ts" }],
|
|
272
|
+
"transport": { "type": "tcp", "host": "127.0.0.1", "port": 2087 },
|
|
273
|
+
"lifecycle": { "type": "attached" },
|
|
274
|
+
"workspace": { "type": "session" },
|
|
275
|
+
"pathMappings": [
|
|
276
|
+
{
|
|
277
|
+
"agentRoot": "/workspace",
|
|
278
|
+
"serverRootUri": "file:///srv/repos/app"
|
|
279
|
+
}
|
|
280
|
+
]
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
`agentRoot` may be relative to the configuration source. `serverRootUri` must be an absolute `file:` URI without query or fragment components. Windows drive and UNC paths are supported on every host. Windows containment and identity comparisons are case-insensitive, but mapped paths and URIs preserve the original component spelling.
|
|
287
|
+
|
|
288
|
+
Mappings must be reversible. If roots overlap, the agent and server sides must have the same parent/child relationship and relative suffix. Grip uses the longest matching root. A remote tool backend is rejected before server startup when its cwd is not covered by an explicit mapping; Grip will not guess that local and remote filesystems are identical.
|
|
289
|
+
|
|
290
|
+
### Colocated `grip --daemon` LSP
|
|
291
|
+
|
|
292
|
+
A daemon workspace uses an operator-owned LSP runtime in the daemon process. The orchestrating Grip process does not start a second local manager for those files and cannot reconfigure daemon LSP through `ctx.configureLsp()`. It consumes the daemon's negotiated `lsp_*` tools and sanitized status instead.
|
|
293
|
+
|
|
294
|
+
Configure an operator-reviewed layer with `grip --daemon --daemon-lsp-config <file>`. Optionally add the workspace's `.grip/settings.json` layer with `--daemon-trust-project-lsp`; project configuration cannot grant this trust to itself. Managed `spawn` transports also require `--daemon-allow-process-exec`. Host-provided `connection` factories are not available in daemon mode; configure a spawned or attached endpoint in the daemon namespace.
|
|
295
|
+
|
|
296
|
+
Daemon LSP paths, marker boundaries, Unix sockets, fixed roots, and path-mapping agent roots must remain in the configured workspace. Managed children receive the daemon's filtered environment and stop on daemon reload or shutdown. Every authenticated client observes the same daemon-global status and runtime; disconnecting one orchestrator does not stop it.
|
|
297
|
+
|
|
298
|
+
## Initialization, settings, features, priority, and timeouts
|
|
299
|
+
|
|
300
|
+
A server can customize initialization and workspace settings:
|
|
301
|
+
|
|
302
|
+
```json
|
|
303
|
+
{
|
|
304
|
+
"initializationOptions": { "provideFormatter": true },
|
|
305
|
+
"settings": {
|
|
306
|
+
"typescript": { "format": { "enable": true } }
|
|
307
|
+
},
|
|
308
|
+
"clientInfo": { "name": "my-grip-host", "version": "1.0.0" },
|
|
309
|
+
"locale": "en-US",
|
|
310
|
+
"trace": "off",
|
|
311
|
+
"features": {
|
|
312
|
+
"diagnostics": true,
|
|
313
|
+
"hover": true,
|
|
314
|
+
"definition": true,
|
|
315
|
+
"references": true,
|
|
316
|
+
"rename": false,
|
|
317
|
+
"codeActions": true
|
|
318
|
+
},
|
|
319
|
+
"priority": 100,
|
|
320
|
+
"timeouts": {
|
|
321
|
+
"connectMs": 5000,
|
|
322
|
+
"initializeMs": 10000,
|
|
323
|
+
"requestMs": 10000,
|
|
324
|
+
"shutdownMs": 3000
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
`initializationOptions` is sent during `initialize`. `settings` supplies `workspace/configuration` responses and the initial `workspace/didChangeConfiguration` notification. Grip advertises the protocol features its tools consume, including literal code-action kinds and preferred/data support, versioned `documentChanges`, and create/rename/delete workspace resource operations. A timeout of `0` disables that timeout.
|
|
330
|
+
|
|
331
|
+
`initializeMs` bounds the complete initialize/initialized/settings handshake. `shutdownMs` is one deadline for protocol shutdown, exit, connection disposal, and handle close. Reconfiguration and shutdown still abort pending connection creation when `connectMs` is `0`; a host factory cannot delay lifecycle completion by ignoring that abort, and any handle it returns late is closed exactly once.
|
|
332
|
+
|
|
333
|
+
Feature flags can disable selected tools for a server. Grip also checks advertised server capabilities before requests. Higher numeric `priority` runs first; ties preserve server and selector declaration order.
|
|
334
|
+
|
|
335
|
+
## Multiple servers and tool behavior
|
|
336
|
+
|
|
337
|
+
Several servers may match one document:
|
|
338
|
+
|
|
339
|
+
- Hover queries by priority and uses the first non-empty successful result.
|
|
340
|
+
- Definitions, references, and code actions aggregate capable providers, preserve configured priority/declaration order regardless of response timing, attribute providers, and deduplicate equivalent mapped results. Definition links use `targetSelectionRange` as the canonical jump location, so they merge with equivalent plain locations.
|
|
341
|
+
- Diagnostics aggregate and deduplicate providers, then sort by severity, path, position, and message rather than provider priority. Wildcard provider attribution follows configured priority/declaration order and stable workspace-instance identity. An unavailable provider set is rendered differently from a successful provider reporting zero diagnostics.
|
|
342
|
+
- Ordinary failure of one provider does not discard successful results from others. Caller cancellation propagates through routing, startup, synchronization, unavailable-reason resolution, and requests without becoming a provider failure or fallback.
|
|
343
|
+
- Rename includes successful null and empty responses in consensus, refuses empty/non-empty or differing edit sets, and rejects stale or unknown `TextDocumentEdit` versions. Valid route-local versions may differ between clients without making equivalent edits conflict.
|
|
344
|
+
- Wildcard diagnostics retain normalized server and workspace-instance attribution.
|
|
345
|
+
|
|
346
|
+
Document synchronization is per client. Grip respects each server's advertised open/change/save/close capabilities, tracks independent versions, and replays current open documents after reconnect. Changed content observed by either a read or write advances only the successfully notified client's version; saves remain write-only. A rejected, timed-out, or cancelled synchronization notification leaves remote state indeterminate, so Grip invalidates only that exact client, discards its document versions, and performs one bounded replacement replay starting at client-local version 1. A failed save is replayed after the replacement `didOpen`; replay failure does not reconnect recursively. Other providers continue independently, and normal read/write hooks synchronize only already-running clients without starting inactive servers.
|
|
347
|
+
|
|
348
|
+
LSP runtime enablement and model tool exposure are separate. An enabled runtime can synchronize a running client even when `lsp_*` tools are not exposed to the model. A disabled runtime allocates no manager or synchronization hooks. The `--enable-lsp-tools` flag or `enableLspTools` setting enables all configured LSP tools by default; an explicit `--tools` allowlist can select any subset without the flag. Neither option enables a disabled or unconfigured LSP runtime.
|
|
349
|
+
|
|
350
|
+
## SDK and host configuration
|
|
351
|
+
|
|
352
|
+
Pass inline layers or files through `GripAgent`:
|
|
353
|
+
|
|
354
|
+
```typescript
|
|
355
|
+
import {
|
|
356
|
+
InMemorySessionManager,
|
|
357
|
+
GripAgent,
|
|
358
|
+
createTcpConnectionFactory,
|
|
359
|
+
} from "@greppleai/grip";
|
|
360
|
+
|
|
361
|
+
const grip = await GripAgent.create({
|
|
362
|
+
cwd: process.cwd(),
|
|
363
|
+
sessionManager: new InMemorySessionManager(process.cwd()),
|
|
364
|
+
lsp: {
|
|
365
|
+
type: "configuration",
|
|
366
|
+
configuration: {
|
|
367
|
+
servers: [
|
|
368
|
+
{
|
|
369
|
+
id: "hosted",
|
|
370
|
+
selectors: [{ languageId: "typescript", pattern: "**/*.ts" }],
|
|
371
|
+
transport: { type: "connection", id: "workspace-lsp" },
|
|
372
|
+
lifecycle: { type: "attached" },
|
|
373
|
+
workspace: { type: "session" },
|
|
374
|
+
},
|
|
375
|
+
],
|
|
376
|
+
},
|
|
377
|
+
},
|
|
378
|
+
lspConnectionFactories: {
|
|
379
|
+
"workspace-lsp": createTcpConnectionFactory("127.0.0.1", 2087),
|
|
380
|
+
},
|
|
381
|
+
});
|
|
382
|
+
|
|
383
|
+
const session = await grip.createAgentSession();
|
|
384
|
+
console.log(session.getLspStatus());
|
|
385
|
+
await grip.dispose();
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
`connection` IDs are resolved only against host-provided `lspConnectionFactories`; JSON cannot load functions. A custom factory receives the server ID, agent workspace root, mapped workspace URI, abort signal, connection timeout, and stderr callback, and returns an `LspConnectionHandle`.
|
|
389
|
+
|
|
390
|
+
Hosts can return `lsp`, factories, and project-transport trust from `resolveSessionOptions`. `GripAgent.create()` and `resolveSessionOptions` inputs are re-applied on session replacement and reload, with source-relative paths resolved for the destination cwd. An ad-hoc `session.configureLsp()` or `ctx.configureLsp()` change is runtime-only and is replaced when normal sources are re-resolved. `session.reload()` returns current source- and JSON-path-attributed LSP diagnostics. `GripAgent.diagnostics` exposes formatted diagnostics from initial session creation and refreshes them after reload or replacement. Invalid or unreadable LSP configuration produces visible, nonfatal diagnostics and an empty disabled configuration without retaining stale runtime state; severity reflects the source and failure, while unrelated application diagnostics keep their existing fatal behavior.
|
|
391
|
+
|
|
392
|
+
## Extensions and status
|
|
393
|
+
|
|
394
|
+
Normal extensions must use the single `AgentSession`-owned runtime:
|
|
395
|
+
|
|
396
|
+
```typescript
|
|
397
|
+
import type { ExtensionAPI } from "@greppleai/grip";
|
|
398
|
+
|
|
399
|
+
export default function (pi: ExtensionAPI) {
|
|
400
|
+
pi.on("session_start", async (_event, ctx) => {
|
|
401
|
+
const status = ctx.getLspStatus();
|
|
402
|
+
ctx.ui.notify(`LSP enabled: ${status.enabled}`, "info");
|
|
403
|
+
|
|
404
|
+
if (!status.enabled) {
|
|
405
|
+
await ctx.configureLsp({
|
|
406
|
+
servers: [
|
|
407
|
+
{
|
|
408
|
+
id: "attached",
|
|
409
|
+
selectors: [{ languageId: "typescript", pattern: "**/*.ts" }],
|
|
410
|
+
transport: { type: "tcp", host: "127.0.0.1", port: 2087 },
|
|
411
|
+
lifecycle: { type: "attached" },
|
|
412
|
+
workspace: { type: "session" },
|
|
413
|
+
},
|
|
414
|
+
],
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
`getLspStatus()` returns the owner, resolved configuration, and per-server/instance state including workspace, endpoint, lifecycle, capabilities, diagnostics count, stderr, synchronization errors, and last transport/request errors. During `session_shutdown`, a superseded extension runner observes the latest LSP configuration and exact manager that runner owned, even if it configured LSP multiple times; the current runner continues to observe live AgentSession state.
|
|
422
|
+
|
|
423
|
+
`configureLsp()` validates one complete replacement layer, resolves relative paths from the current session cwd, and replaces the current session runtime. A later normal reload re-resolves settings, CLI, and host sources. Old extension contexts become stale after reload or session replacement and cannot reconfigure the new runtime.
|
|
424
|
+
|
|
425
|
+
`registerStandaloneLspLifecycleHandlers()` is only for extension hosts that do not use `AgentSession`. Registration is idempotent for one `ExtensionAPI`: repeated calls and `session_start` events reuse one tool set while replacing and shutting down runtime state. If that API later reports AgentSession ownership, the helper unregisters its tools, shuts down its standalone manager, and permanently delegates rather than creating a parallel runtime. Lifecycle reconfiguration is serialized, including nested work started by lifecycle callbacks, so shutdown status and disposal cannot overtake accepted reconfiguration. See [Migration](#migration) below.
|
|
426
|
+
|
|
427
|
+
## Public API exports
|
|
428
|
+
|
|
429
|
+
The package root curates the public LSP runtime values and types directly from the modules under `core/lsp/`, including configuration, client, routing, synchronization, lifecycle, and transport APIs. Import public APIs from `@greppleai/grip`; deep internal helpers are not part of the contract.
|
|
430
|
+
|
|
431
|
+
## Migration
|
|
432
|
+
|
|
433
|
+
This release intentionally replaces the old hardcoded and language-keyed LSP API:
|
|
434
|
+
|
|
435
|
+
- Grip no longer exports `getLspLanguageId` or `LSP_LANGUAGE_BY_EXTENSION`, and no longer supplies a built-in `typescript-language-server --stdio` command. Replace extension inference with explicit `selectors` entries whose `pattern` routes files and whose `languageId` is sent to the server, plus an explicit transport.
|
|
436
|
+
- The old `LspServerConfig` language-keyed command shorthand and associated manager configuration surface are removed. Use `LspConfigurationLayer`, `LspConfiguredServer`, `ResolvedLspConfiguration`, and server IDs.
|
|
437
|
+
- Direct `LspClient` users must provide `serverId` and an `LspConnectionFactory`; process and socket creation now live in transport factories.
|
|
438
|
+
- `registerLspLifecycleHandlers()` remains as a deprecated alias. Standalone extension hosts should migrate to `registerStandaloneLspLifecycleHandlers()`.
|
|
439
|
+
- Extensions running inside normal Grip/`AgentSession` must not register a second LSP manager. Use `ctx.getLspStatus()` and `ctx.configureLsp()`; the deprecated helper detects AgentSession ownership, declines standalone registration, and requires the context APIs.
|
|
440
|
+
|
|
441
|
+
Example conceptual migration:
|
|
442
|
+
|
|
443
|
+
```typescript
|
|
444
|
+
// Before: language key implied identity, routing, and a spawned command.
|
|
445
|
+
// const servers: LspServerConfig = { typescript: { command: "typescript-language-server", args: ["--stdio"] } };
|
|
446
|
+
|
|
447
|
+
// After: server identity, selectors, transport, lifecycle, and workspace are explicit.
|
|
448
|
+
const configuration = {
|
|
449
|
+
servers: [
|
|
450
|
+
{
|
|
451
|
+
id: "typescript",
|
|
452
|
+
selectors: [{ languageId: "typescript", pattern: "**/*.ts" }],
|
|
453
|
+
transport: { type: "spawn" as const, command: "typescript-language-server", args: ["--stdio"] },
|
|
454
|
+
lifecycle: { type: "managed" as const },
|
|
455
|
+
workspace: { type: "session" as const },
|
|
456
|
+
},
|
|
457
|
+
],
|
|
458
|
+
};
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
## Troubleshooting
|
|
462
|
+
|
|
463
|
+
### No LSP tools appear
|
|
464
|
+
|
|
465
|
+
- No configuration means LSP is disabled. A configured runtime still leaves model-facing LSP tools off unless `--enable-lsp-tools`, `enableLspTools: true`, or an explicit `--tools` allowlist selects them.
|
|
466
|
+
- Check for top-level `enabled: false`, `--no-lsp`, or a higher-precedence replacement/removal.
|
|
467
|
+
- With `--tools`, include the desired `lsp_*` names; an explicit allowlist overrides the default enable flag.
|
|
468
|
+
- Read startup diagnostics for the source and JSON path that failed validation. LSP configuration diagnostics do not terminate Grip; use `--no-lsp` to recover while correcting malformed or unreadable lower-precedence sources.
|
|
469
|
+
### A project server is missing
|
|
470
|
+
|
|
471
|
+
Project-settings spawn and attached endpoint definitions are blocked unless the host grants `trustProjectLspTransports`. An untrusted project also cannot use `enabled: true` to activate inherited transports. Blocked active entries leave inherited same-ID definitions intact, while explicit disable/removal entries remain effective. Move the definition to trusted global settings, pass a reviewed file with `--lsp-config`, or configure host trust explicitly.
|
|
472
|
+
|
|
473
|
+
### Connection refused or initialization timed out
|
|
474
|
+
|
|
475
|
+
- Confirm the command exists or the endpoint is listening and reachable from the Grip process.
|
|
476
|
+
- Confirm an attached service accepts a new dedicated connection for each client.
|
|
477
|
+
- Increase `connectMs` or `initializeMs` for slow servers.
|
|
478
|
+
- Inspect `getLspStatus().servers` for `endpoint`, `state`, `lastError`, and managed-process `stderr`.
|
|
479
|
+
|
|
480
|
+
### A file is not routed
|
|
481
|
+
|
|
482
|
+
- Check that the selector pattern is relative to the resolved workspace and that `languageId` is correct for the server.
|
|
483
|
+
- Check marker discovery, `stopAt`, and `fallback`.
|
|
484
|
+
- Check disabled feature flags and advertised server capabilities.
|
|
485
|
+
- For several matching servers, inspect priorities and per-server failures.
|
|
486
|
+
|
|
487
|
+
### Remote files report a mapping or synchronization error
|
|
488
|
+
|
|
489
|
+
- Add an explicit mapping covering the active tool backend cwd.
|
|
490
|
+
- Ensure the server URI is an absolute `file:` URI and maps back to the same relative path.
|
|
491
|
+
- Preserve equivalent parent/child relationships for overlapping roots.
|
|
492
|
+
- Server-returned locations and workspace-edit previews outside configured mappings are marked as unmapped and are never interpreted as local paths or applied.
|
|
493
|
+
|
|
494
|
+
### Changes are not synchronized
|
|
495
|
+
|
|
496
|
+
- Synchronization does not start an inactive server; invoke an LSP tool first when needed.
|
|
497
|
+
- The server's advertised text-document sync capability controls open/change/save/close notifications.
|
|
498
|
+
- Inspect `synchronizationError` in status, especially after switching to a container or remote daemon backend.
|
|
499
|
+
- Unexpected disconnects are reconnectable; the next routed request starts a replacement and replays open documents.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Migrating from Pi to Grip
|
|
2
|
+
|
|
3
|
+
This is a breaking project rename. There is no legacy executable alias, legacy-prefix environment-variable fallback, or automatic lookup, move, or deletion of old configuration data. Back up your existing files before migrating; the old installation and data remain yours to manage.
|
|
4
|
+
|
|
5
|
+
## Install and update integrations
|
|
6
|
+
|
|
7
|
+
- Replace the `pi` command with `grip` in scripts, shell configuration, editor integrations, and automation. Uninstall the old CLI and install `@greppleai/grip` when that package is available in your registry; reinstall rather than assuming an existing `pi` install supplies `grip`. The project-owned SDK packages are now `@greppleai/grip-ai`, `@greppleai/grip-agent-core`, and `@greppleai/grip-tui`.
|
|
8
|
+
- Update package dependencies, imports, extension code and lockfiles from retired Pi packages to their `@greppleai/grip-*` counterparts. Check your existing package manifests and lockfiles for the exact old names before uninstalling them. For example, `PiAgent` is now `GripAgent`. Review other imported `Pi*` symbols against the current SDK exports. Extensions using upstream Pi package specifiers must update their imports: the runtime no longer maps those specifiers to Grip packages. Back up and update extension source before launching Grip; it will not rewrite installed extensions or user data.
|
|
9
|
+
- Replace legacy project environment variables with their `GRIP_*` equivalents, including `GRIP_CODING_AGENT_DIR` and `GRIP_CODING_AGENT_SESSION_DIR` if you set custom locations. Provider variables such as `ANTHROPIC_API_KEY` are not part of this rename. Review service-specific daemon and sandbox settings before restarting those services.
|
|
10
|
+
|
|
11
|
+
## Move configuration manually
|
|
12
|
+
|
|
13
|
+
- The default global agent directory is now `~/.grip/agent` instead of `~/.pi/agent`; project configuration lives in `.grip` instead of `.pi`. After making a backup, copy only the settings, models, themes, extensions, prompts, skills, rules, and other resources you want to keep into their matching new directories. Update absolute and relative references inside settings, package manifests, scripts, and resources. Do not overwrite newer files without reviewing them.
|
|
14
|
+
- Settings are read from `~/.grip/agent/settings.json` and `<project>/.grip/settings.json`. Package resources previously declared under the `pi` key in a package's `package.json` must use `grip`; the coding-agent package configuration key is now `gripConfig` instead of `piConfig`. If you distribute packages, update their package metadata and references as well.
|
|
15
|
+
- Sessions are stored under the new agent directory by default. Existing JSONL sessions in `~/.pi/agent/sessions` are **not** discovered or moved automatically; copy only those you want to continue, preserving their directory structure. Review project-path references and file permissions before opening them. Export or back up sessions separately if you cannot safely reuse them.
|
|
16
|
+
- Authentication credentials in `~/.pi/agent/auth.json` are **not** imported automatically. If you choose to copy credentials to `~/.grip/agent/auth.json`, keep the file private and verify that authentication works; otherwise reauthenticate with `/login` or configure provider API keys. Never paste credentials into public logs or issue reports.
|
|
17
|
+
|
|
18
|
+
Reinstall extensions or package dependencies that refer to old project-owned package names and restart Grip after updating files. Upstream Pi extension import aliases and the upstream theme-sharing symbol are no longer provided; update extension imports and any code reading that runtime symbol before starting Grip. The old executable, configuration directory, and npm packages are not automatically mapped to Grip. Keep the old directory until you have checked sessions, settings, auth, and extensions in the new installation; do not delete it as part of installation.
|