gsd-pi 2.34.0-dev.ed0bfbf → 2.35.0-dev.55dcc60
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/dist/resources/extensions/gsd/changelog.js +162 -0
- package/dist/resources/extensions/gsd/commands-bootstrap.js +1 -0
- package/dist/resources/extensions/gsd/commands-inspect.js +10 -3
- package/dist/resources/extensions/gsd/commands-prefs-wizard.js +5 -1
- package/dist/resources/extensions/gsd/commands.js +8 -1
- package/dist/resources/extensions/gsd/docs/preferences-reference.md +10 -0
- package/dist/resources/extensions/gsd/doctor-checks.js +113 -5
- package/dist/resources/extensions/gsd/doctor-proactive.js +22 -0
- package/dist/resources/extensions/gsd/doctor.js +36 -0
- package/dist/resources/extensions/gsd/guided-flow.js +4 -2
- package/dist/resources/extensions/gsd/preferences-validation.js +38 -0
- package/dist/resources/extensions/gsd/preferences.js +2 -0
- package/dist/resources/skills/create-gsd-extension/references/events-reference.md +4 -4
- package/package.json +1 -1
- package/packages/pi-agent-core/dist/agent-loop.d.ts +14 -0
- package/packages/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/agent-loop.js +24 -27
- package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/packages/pi-agent-core/dist/agent.d.ts +1 -0
- package/packages/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/agent.js +11 -22
- package/packages/pi-agent-core/dist/agent.js.map +1 -1
- package/packages/pi-agent-core/dist/proxy.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/proxy.js +2 -8
- package/packages/pi-agent-core/dist/proxy.js.map +1 -1
- package/packages/pi-agent-core/src/agent-loop.ts +30 -27
- package/packages/pi-agent-core/src/agent.ts +12 -23
- package/packages/pi-agent-core/src/proxy.ts +2 -8
- package/packages/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/azure-openai-responses.js +5 -41
- package/packages/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/openai-completions.js +10 -73
- package/packages/pi-ai/dist/providers/openai-completions.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/openai-responses.js +8 -79
- package/packages/pi-ai/dist/providers/openai-responses.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-shared.d.ts +65 -0
- package/packages/pi-ai/dist/providers/openai-shared.d.ts.map +1 -0
- package/packages/pi-ai/dist/providers/openai-shared.js +146 -0
- package/packages/pi-ai/dist/providers/openai-shared.js.map +1 -0
- package/packages/pi-ai/dist/utils/oauth/google-antigravity.d.ts.map +1 -1
- package/packages/pi-ai/dist/utils/oauth/google-antigravity.js +7 -135
- package/packages/pi-ai/dist/utils/oauth/google-antigravity.js.map +1 -1
- package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.d.ts.map +1 -1
- package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js +7 -135
- package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js.map +1 -1
- package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.d.ts +46 -0
- package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.d.ts.map +1 -0
- package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.js +160 -0
- package/packages/pi-ai/dist/utils/oauth/google-oauth-utils.js.map +1 -0
- package/packages/pi-ai/src/providers/azure-openai-responses.ts +11 -45
- package/packages/pi-ai/src/providers/openai-completions.ts +16 -86
- package/packages/pi-ai/src/providers/openai-responses.ts +15 -95
- package/packages/pi-ai/src/providers/openai-shared.ts +193 -0
- package/packages/pi-ai/src/utils/oauth/google-antigravity.ts +14 -162
- package/packages/pi-ai/src/utils/oauth/google-gemini-cli.ts +13 -161
- package/packages/pi-ai/src/utils/oauth/google-oauth-utils.ts +201 -0
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts +16 -63
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.js +104 -641
- package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +0 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/auth-storage.js +4 -35
- package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.js +5 -43
- package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/compaction.js +11 -69
- package/packages/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/utils.d.ts +40 -0
- package/packages/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction/utils.js +78 -0
- package/packages/pi-coding-agent/dist/core/compaction/utils.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/compaction-orchestrator.d.ts +77 -0
- package/packages/pi-coding-agent/dist/core/compaction-orchestrator.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/compaction-orchestrator.js +331 -0
- package/packages/pi-coding-agent/dist/core/compaction-orchestrator.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +2 -2
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.js +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +15 -0
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.js +129 -243
- package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +49 -42
- package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/types.js +2 -21
- package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/lock-utils.d.ts +39 -0
- package/packages/pi-coding-agent/dist/core/lock-utils.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/lock-utils.js +89 -0
- package/packages/pi-coding-agent/dist/core/lock-utils.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/lsp/config.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/lsp/config.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/config.js +4 -1
- package/packages/pi-coding-agent/dist/core/lsp/config.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/index.js +52 -107
- package/packages/pi-coding-agent/dist/core/lsp/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/lspmux.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/lspmux.js +2 -21
- package/packages/pi-coding-agent/dist/core/lsp/lspmux.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/types.d.ts +0 -1
- package/packages/pi-coding-agent/dist/core/lsp/types.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/types.js +0 -28
- package/packages/pi-coding-agent/dist/core/lsp/types.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/package-manager.js +2 -4
- package/packages/pi-coding-agent/dist/core/package-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/resource-loader.d.ts +2 -4
- package/packages/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/resource-loader.js +33 -58
- package/packages/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/retry-handler.d.ts +87 -0
- package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/retry-handler.js +295 -0
- package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/session-manager.d.ts +0 -1
- package/packages/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/session-manager.js +3 -28
- package/packages/pi-coding-agent/dist/core/session-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +8 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js +76 -166
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/skills.js +1 -3
- package/packages/pi-coding-agent/dist/core/skills.js.map +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/index.js +1 -1
- package/packages/pi-coding-agent/dist/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.js +9 -26
- package/packages/pi-coding-agent/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +1 -13
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.d.ts +44 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.js +61 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tree-render-utils.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tree-selector.js +6 -9
- package/packages/pi-coding-agent/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +65 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +6 -16
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts +12 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +175 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.d.ts +6 -0
- package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.js +15 -0
- package/packages/pi-coding-agent/dist/modes/interactive/utils/shorten-path.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/print-mode.js +2 -30
- package/packages/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js +2 -28
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.d.ts +19 -0
- package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.js +45 -0
- package/packages/pi-coding-agent/dist/modes/shared/command-context-actions.js.map +1 -0
- package/packages/pi-coding-agent/dist/utils/error.d.ts +5 -0
- package/packages/pi-coding-agent/dist/utils/error.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/utils/error.js +7 -0
- package/packages/pi-coding-agent/dist/utils/error.js.map +1 -0
- package/packages/pi-coding-agent/package.json +1 -1
- package/packages/pi-coding-agent/src/core/agent-session.ts +117 -745
- package/packages/pi-coding-agent/src/core/auth-storage.ts +4 -38
- package/packages/pi-coding-agent/src/core/compaction/branch-summarization.ts +7 -53
- package/packages/pi-coding-agent/src/core/compaction/compaction.ts +14 -74
- package/packages/pi-coding-agent/src/core/compaction/utils.ts +100 -0
- package/packages/pi-coding-agent/src/core/compaction-orchestrator.ts +424 -0
- package/packages/pi-coding-agent/src/core/extensions/index.ts +1 -21
- package/packages/pi-coding-agent/src/core/extensions/runner.ts +119 -243
- package/packages/pi-coding-agent/src/core/extensions/types.ts +50 -69
- package/packages/pi-coding-agent/src/core/lock-utils.ts +113 -0
- package/packages/pi-coding-agent/src/core/lsp/config.ts +4 -1
- package/packages/pi-coding-agent/src/core/lsp/index.ts +83 -152
- package/packages/pi-coding-agent/src/core/lsp/lspmux.ts +2 -22
- package/packages/pi-coding-agent/src/core/lsp/types.ts +0 -29
- package/packages/pi-coding-agent/src/core/package-manager.ts +1 -4
- package/packages/pi-coding-agent/src/core/resource-loader.ts +43 -67
- package/packages/pi-coding-agent/src/core/retry-handler.ts +359 -0
- package/packages/pi-coding-agent/src/core/session-manager.ts +3 -30
- package/packages/pi-coding-agent/src/core/settings-manager.ts +85 -164
- package/packages/pi-coding-agent/src/core/skills.ts +1 -4
- package/packages/pi-coding-agent/src/index.ts +1 -7
- package/packages/pi-coding-agent/src/modes/interactive/components/session-selector.ts +17 -29
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +1 -13
- package/packages/pi-coding-agent/src/modes/interactive/components/tree-render-utils.ts +81 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/tree-selector.ts +14 -19
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +7 -18
- package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +196 -0
- package/packages/pi-coding-agent/src/modes/interactive/utils/shorten-path.ts +14 -0
- package/packages/pi-coding-agent/src/modes/print-mode.ts +2 -30
- package/packages/pi-coding-agent/src/modes/rpc/rpc-mode.ts +2 -28
- package/packages/pi-coding-agent/src/modes/shared/command-context-actions.ts +53 -0
- package/packages/pi-coding-agent/src/utils/error.ts +6 -0
- package/packages/pi-tui/dist/components/markdown.d.ts +5 -0
- package/packages/pi-tui/dist/components/markdown.d.ts.map +1 -1
- package/packages/pi-tui/dist/components/markdown.js +25 -31
- package/packages/pi-tui/dist/components/markdown.js.map +1 -1
- package/packages/pi-tui/dist/keys.d.ts +0 -4
- package/packages/pi-tui/dist/keys.d.ts.map +1 -1
- package/packages/pi-tui/dist/keys.js +94 -162
- package/packages/pi-tui/dist/keys.js.map +1 -1
- package/packages/pi-tui/src/components/markdown.ts +25 -29
- package/packages/pi-tui/src/keys.ts +94 -173
- package/pkg/dist/modes/interactive/theme/theme.d.ts +65 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/theme.js +6 -16
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.d.ts +12 -0
- package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -0
- package/pkg/dist/modes/interactive/theme/themes.js +175 -0
- package/pkg/dist/modes/interactive/theme/themes.js.map +1 -0
- package/pkg/package.json +1 -1
- package/src/resources/extensions/gsd/changelog.ts +213 -0
- package/src/resources/extensions/gsd/commands-bootstrap.ts +1 -0
- package/src/resources/extensions/gsd/commands-inspect.ts +10 -3
- package/src/resources/extensions/gsd/commands-prefs-wizard.ts +5 -1
- package/src/resources/extensions/gsd/commands.ts +9 -1
- package/src/resources/extensions/gsd/docs/preferences-reference.md +10 -0
- package/src/resources/extensions/gsd/doctor-checks.ts +107 -5
- package/src/resources/extensions/gsd/doctor-proactive.ts +24 -0
- package/src/resources/extensions/gsd/doctor-types.ts +9 -1
- package/src/resources/extensions/gsd/doctor.ts +35 -0
- package/src/resources/extensions/gsd/guided-flow.ts +4 -2
- package/src/resources/extensions/gsd/preferences-validation.ts +38 -0
- package/src/resources/extensions/gsd/preferences.ts +2 -0
- package/src/resources/extensions/gsd/tests/commands-inspect-open-db.test.ts +46 -0
- package/src/resources/extensions/gsd/tests/doctor-git.test.ts +98 -2
- package/src/resources/extensions/gsd/tests/doctor-runtime.test.ts +59 -3
- package/src/resources/extensions/gsd/tests/preferences.test.ts +28 -0
- package/src/resources/skills/create-gsd-extension/references/events-reference.md +4 -4
- package/packages/pi-coding-agent/dist/modes/interactive/theme/dark.json +0 -85
- package/packages/pi-coding-agent/dist/modes/interactive/theme/light.json +0 -84
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.json +0 -335
- package/packages/pi-coding-agent/src/modes/interactive/theme/dark.json +0 -85
- package/packages/pi-coding-agent/src/modes/interactive/theme/light.json +0 -84
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.json +0 -335
- package/pkg/dist/modes/interactive/theme/dark.json +0 -85
- package/pkg/dist/modes/interactive/theme/light.json +0 -84
- package/pkg/dist/modes/interactive/theme/theme-schema.json +0 -335
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lspmux.js","sourceRoot":"","sources":["../../../src/core/lsp/lspmux.ts"],"names":[],"mappings":"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","sourcesContent":["import { execSync, spawn } from \"node:child_process\";\nimport * as fsPromises from \"node:fs/promises\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport { LSP_LIVENESS_TIMEOUT_MS, LSP_STATE_CACHE_TTL_MS } from \"../constants.js\";\n\n/**\n * lspmux integration for LSP server multiplexing.\n *\n * When lspmux is available and running, this module wraps supported LSP server\n * commands to use lspmux client mode, enabling server instance sharing across\n * multiple editor windows.\n *\n * Integration is transparent: if lspmux is unavailable, falls back to direct spawning.\n */\n\n// =============================================================================\n// Types\n// =============================================================================\n\ninterface LspmuxConfig {\n\tinstance_timeout?: number;\n\tgc_interval?: number;\n\tlisten?: [string, number] | string;\n\tconnect?: [string, number] | string;\n\tlog_filters?: string;\n\tpass_environment?: string[];\n}\n\ninterface LspmuxState {\n\tavailable: boolean;\n\trunning: boolean;\n\tbinaryPath: string | null;\n\tconfig: LspmuxConfig | null;\n}\n\n// =============================================================================\n// Constants\n// =============================================================================\n\nconst DEFAULT_SUPPORTED_SERVERS = new Set([\n\t\"rust-analyzer\",\n]);\n\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nfunction which(command: string): string | null {\n\ttry {\n\t\t// On Windows, prefer `where.exe` over `which` — MSYS/Git Bash's `which`\n\t\t// returns POSIX paths (/c/Users/...) that Node's spawn() can't execute (#1121).\n\t\tconst isWindows = process.platform === \"win32\";\n\t\tconst cmd = isWindows ? \"where.exe\" : \"which\";\n\t\tconst result = isWindows\n\t\t\t? execSync(`${cmd} ${command}`, { encoding: \"utf-8\" })\n\t\t\t: execSync(`which ${command}`, { encoding: \"utf-8\" });\n\t\t// `where.exe` may return multiple lines — take the first\n\t\tconst resolved = result.trim().split(/\\r?\\n/)[0]?.trim();\n\t\treturn resolved || null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\n// =============================================================================\n// Config Path\n// =============================================================================\n\nfunction getConfigPath(): string {\n\tconst home = os.homedir();\n\tswitch (os.platform()) {\n\t\tcase \"win32\":\n\t\t\treturn path.join(process.env.APPDATA ?? path.join(home, \"AppData\", \"Roaming\"), \"lspmux\", \"config.toml\");\n\t\tcase \"darwin\":\n\t\t\treturn path.join(home, \"Library\", \"Application Support\", \"lspmux\", \"config.toml\");\n\t\tdefault:\n\t\t\treturn path.join(process.env.XDG_CONFIG_HOME ?? path.join(home, \".config\"), \"lspmux\", \"config.toml\");\n\t}\n}\n\n// =============================================================================\n// State Management\n// =============================================================================\n\nlet cachedState: LspmuxState | null = null;\nlet cacheTimestamp = 0;\n\nasync function parseConfig(): Promise<LspmuxConfig | null> {\n\ttry {\n\t\tconst configPath = getConfigPath();\n\t\t// lspmux config uses TOML, but since we're stripping TOML support,\n\t\t// attempt a simple key=value parse for the config file.\n\t\t// If the config file exists but can't be parsed, return null.\n\t\ttry {\n\t\t\tawait fsPromises.access(configPath);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t\t// Config exists but we can't parse TOML without a dependency.\n\t\t// Return an empty config object to indicate the file exists.\n\t\treturn {} as LspmuxConfig;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nasync function checkServerRunning(binaryPath: string): Promise<boolean> {\n\ttry {\n\t\tconst proc = spawn(binaryPath, [\"status\"], {\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t});\n\n\t\tconst exited = await Promise.race([\n\t\t\tnew Promise<number>((resolve) => {\n\t\t\t\tproc.on(\"exit\", (code: number | null) => resolve(code ?? 1));\n\t\t\t}),\n\t\t\tnew Promise<null>(resolve => setTimeout(() => resolve(null), LSP_LIVENESS_TIMEOUT_MS)),\n\t\t]);\n\n\t\tif (exited === null) {\n\t\t\tproc.kill();\n\t\t\treturn false;\n\t\t}\n\n\t\treturn exited === 0;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport async function detectLspmux(): Promise<LspmuxState> {\n\tconst now = Date.now();\n\tif (cachedState && now - cacheTimestamp < LSP_STATE_CACHE_TTL_MS) {\n\t\treturn cachedState;\n\t}\n\n\tif (process.env.PI_DISABLE_LSPMUX === \"1\" || process.env.GSD_DISABLE_LSPMUX === \"1\") {\n\t\tcachedState = { available: false, running: false, binaryPath: null, config: null };\n\t\tcacheTimestamp = now;\n\t\treturn cachedState;\n\t}\n\n\tconst binaryPath = which(\"lspmux\");\n\tif (!binaryPath) {\n\t\tcachedState = { available: false, running: false, binaryPath: null, config: null };\n\t\tcacheTimestamp = now;\n\t\treturn cachedState;\n\t}\n\n\tconst [config, running] = await Promise.all([parseConfig(), checkServerRunning(binaryPath)]);\n\n\tcachedState = { available: true, running, binaryPath, config };\n\tcacheTimestamp = now;\n\n\treturn cachedState;\n}\n\n// =============================================================================\n// Command Wrapping\n// =============================================================================\n\nexport function isLspmuxSupported(command: string): boolean {\n\tconst baseName = command.split(\"/\").pop() ?? command;\n\treturn DEFAULT_SUPPORTED_SERVERS.has(baseName);\n}\n\nexport interface LspmuxWrappedCommand {\n\tcommand: string;\n\targs: string[];\n\tenv?: Record<string, string>;\n}\n\nfunction wrapWithLspmux(\n\toriginalCommand: string,\n\toriginalArgs: string[] | undefined,\n\tstate: LspmuxState,\n): LspmuxWrappedCommand {\n\tif (!state.available || !state.running || !state.binaryPath) {\n\t\treturn { command: originalCommand, args: originalArgs ?? [] };\n\t}\n\n\tif (!isLspmuxSupported(originalCommand)) {\n\t\treturn { command: originalCommand, args: originalArgs ?? [] };\n\t}\n\n\tconst baseName = originalCommand.split(\"/\").pop() ?? originalCommand;\n\tconst isDefaultRustAnalyzer = baseName === \"rust-analyzer\" && originalCommand === \"rust-analyzer\";\n\tconst hasArgs = originalArgs && originalArgs.length > 0;\n\n\tif (isDefaultRustAnalyzer && !hasArgs) {\n\t\treturn { command: state.binaryPath, args: [] };\n\t}\n\n\tconst args = hasArgs ? [\"client\", \"--\", ...originalArgs] : [\"client\"];\n\treturn {\n\t\tcommand: state.binaryPath,\n\t\targs,\n\t\tenv: { LSPMUX_SERVER: originalCommand },\n\t};\n}\n\nexport async function getLspmuxCommand(command: string, args?: string[]): Promise<LspmuxWrappedCommand> {\n\tconst state = await detectLspmux();\n\treturn wrapWithLspmux(command, args, state);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"lspmux.js","sourceRoot":"","sources":["../../../src/core/lsp/lspmux.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn } from \"node:child_process\";\nimport * as fsPromises from \"node:fs/promises\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport { LSP_LIVENESS_TIMEOUT_MS, LSP_STATE_CACHE_TTL_MS } from \"../constants.js\";\nimport { which } from \"./config.js\";\n\n/**\n * lspmux integration for LSP server multiplexing.\n *\n * When lspmux is available and running, this module wraps supported LSP server\n * commands to use lspmux client mode, enabling server instance sharing across\n * multiple editor windows.\n *\n * Integration is transparent: if lspmux is unavailable, falls back to direct spawning.\n */\n\n// =============================================================================\n// Types\n// =============================================================================\n\ninterface LspmuxConfig {\n\tinstance_timeout?: number;\n\tgc_interval?: number;\n\tlisten?: [string, number] | string;\n\tconnect?: [string, number] | string;\n\tlog_filters?: string;\n\tpass_environment?: string[];\n}\n\ninterface LspmuxState {\n\tavailable: boolean;\n\trunning: boolean;\n\tbinaryPath: string | null;\n\tconfig: LspmuxConfig | null;\n}\n\n// =============================================================================\n// Constants\n// =============================================================================\n\nconst DEFAULT_SUPPORTED_SERVERS = new Set([\n\t\"rust-analyzer\",\n]);\n\n\n// =============================================================================\n// Config Path\n// =============================================================================\n\nfunction getConfigPath(): string {\n\tconst home = os.homedir();\n\tswitch (os.platform()) {\n\t\tcase \"win32\":\n\t\t\treturn path.join(process.env.APPDATA ?? path.join(home, \"AppData\", \"Roaming\"), \"lspmux\", \"config.toml\");\n\t\tcase \"darwin\":\n\t\t\treturn path.join(home, \"Library\", \"Application Support\", \"lspmux\", \"config.toml\");\n\t\tdefault:\n\t\t\treturn path.join(process.env.XDG_CONFIG_HOME ?? path.join(home, \".config\"), \"lspmux\", \"config.toml\");\n\t}\n}\n\n// =============================================================================\n// State Management\n// =============================================================================\n\nlet cachedState: LspmuxState | null = null;\nlet cacheTimestamp = 0;\n\nasync function parseConfig(): Promise<LspmuxConfig | null> {\n\ttry {\n\t\tconst configPath = getConfigPath();\n\t\t// lspmux config uses TOML, but since we're stripping TOML support,\n\t\t// attempt a simple key=value parse for the config file.\n\t\t// If the config file exists but can't be parsed, return null.\n\t\ttry {\n\t\t\tawait fsPromises.access(configPath);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t\t// Config exists but we can't parse TOML without a dependency.\n\t\t// Return an empty config object to indicate the file exists.\n\t\treturn {} as LspmuxConfig;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nasync function checkServerRunning(binaryPath: string): Promise<boolean> {\n\ttry {\n\t\tconst proc = spawn(binaryPath, [\"status\"], {\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t});\n\n\t\tconst exited = await Promise.race([\n\t\t\tnew Promise<number>((resolve) => {\n\t\t\t\tproc.on(\"exit\", (code: number | null) => resolve(code ?? 1));\n\t\t\t}),\n\t\t\tnew Promise<null>(resolve => setTimeout(() => resolve(null), LSP_LIVENESS_TIMEOUT_MS)),\n\t\t]);\n\n\t\tif (exited === null) {\n\t\t\tproc.kill();\n\t\t\treturn false;\n\t\t}\n\n\t\treturn exited === 0;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport async function detectLspmux(): Promise<LspmuxState> {\n\tconst now = Date.now();\n\tif (cachedState && now - cacheTimestamp < LSP_STATE_CACHE_TTL_MS) {\n\t\treturn cachedState;\n\t}\n\n\tif (process.env.PI_DISABLE_LSPMUX === \"1\" || process.env.GSD_DISABLE_LSPMUX === \"1\") {\n\t\tcachedState = { available: false, running: false, binaryPath: null, config: null };\n\t\tcacheTimestamp = now;\n\t\treturn cachedState;\n\t}\n\n\tconst binaryPath = which(\"lspmux\");\n\tif (!binaryPath) {\n\t\tcachedState = { available: false, running: false, binaryPath: null, config: null };\n\t\tcacheTimestamp = now;\n\t\treturn cachedState;\n\t}\n\n\tconst [config, running] = await Promise.all([parseConfig(), checkServerRunning(binaryPath)]);\n\n\tcachedState = { available: true, running, binaryPath, config };\n\tcacheTimestamp = now;\n\n\treturn cachedState;\n}\n\n// =============================================================================\n// Command Wrapping\n// =============================================================================\n\nexport function isLspmuxSupported(command: string): boolean {\n\tconst baseName = command.split(\"/\").pop() ?? command;\n\treturn DEFAULT_SUPPORTED_SERVERS.has(baseName);\n}\n\nexport interface LspmuxWrappedCommand {\n\tcommand: string;\n\targs: string[];\n\tenv?: Record<string, string>;\n}\n\nfunction wrapWithLspmux(\n\toriginalCommand: string,\n\toriginalArgs: string[] | undefined,\n\tstate: LspmuxState,\n): LspmuxWrappedCommand {\n\tif (!state.available || !state.running || !state.binaryPath) {\n\t\treturn { command: originalCommand, args: originalArgs ?? [] };\n\t}\n\n\tif (!isLspmuxSupported(originalCommand)) {\n\t\treturn { command: originalCommand, args: originalArgs ?? [] };\n\t}\n\n\tconst baseName = originalCommand.split(\"/\").pop() ?? originalCommand;\n\tconst isDefaultRustAnalyzer = baseName === \"rust-analyzer\" && originalCommand === \"rust-analyzer\";\n\tconst hasArgs = originalArgs && originalArgs.length > 0;\n\n\tif (isDefaultRustAnalyzer && !hasArgs) {\n\t\treturn { command: state.binaryPath, args: [] };\n\t}\n\n\tconst args = hasArgs ? [\"client\", \"--\", ...originalArgs] : [\"client\"];\n\treturn {\n\t\tcommand: state.binaryPath,\n\t\targs,\n\t\tenv: { LSPMUX_SERVER: originalCommand },\n\t};\n}\n\nexport async function getLspmuxCommand(command: string, args?: string[]): Promise<LspmuxWrappedCommand> {\n\tconst state = await detectLspmux();\n\treturn wrapWithLspmux(command, args, state);\n}\n"]}
|
|
@@ -138,7 +138,6 @@ export interface CodeActionContext {
|
|
|
138
138
|
triggerKind?: 1 | 2;
|
|
139
139
|
}
|
|
140
140
|
export type SymbolKind = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26;
|
|
141
|
-
export declare const SYMBOL_KIND_NAMES: Record<SymbolKind, string>;
|
|
142
141
|
export interface DocumentSymbol {
|
|
143
142
|
name: string;
|
|
144
143
|
detail?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/lsp/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/lsp/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,32 +39,4 @@ export const lspSchema = Type.Object({
|
|
|
39
39
|
insert_spaces: Type.Optional(Type.Boolean({ description: "Use spaces for formatting (default: true)" })),
|
|
40
40
|
timeout: Type.Optional(Type.Number({ description: "Request timeout in seconds" })),
|
|
41
41
|
});
|
|
42
|
-
export const SYMBOL_KIND_NAMES = {
|
|
43
|
-
1: "File",
|
|
44
|
-
2: "Module",
|
|
45
|
-
3: "Namespace",
|
|
46
|
-
4: "Package",
|
|
47
|
-
5: "Class",
|
|
48
|
-
6: "Method",
|
|
49
|
-
7: "Property",
|
|
50
|
-
8: "Field",
|
|
51
|
-
9: "Constructor",
|
|
52
|
-
10: "Enum",
|
|
53
|
-
11: "Interface",
|
|
54
|
-
12: "Function",
|
|
55
|
-
13: "Variable",
|
|
56
|
-
14: "Constant",
|
|
57
|
-
15: "String",
|
|
58
|
-
16: "Number",
|
|
59
|
-
17: "Boolean",
|
|
60
|
-
18: "Array",
|
|
61
|
-
19: "Object",
|
|
62
|
-
20: "Key",
|
|
63
|
-
21: "Null",
|
|
64
|
-
22: "EnumMember",
|
|
65
|
-
23: "Struct",
|
|
66
|
-
24: "Event",
|
|
67
|
-
25: "Operator",
|
|
68
|
-
26: "TypeParameter",
|
|
69
|
-
};
|
|
70
42
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/lsp/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGpE,SAAS,UAAU,CAClB,MAAS,EACT,OAAuD;IAEvD,OAAO,IAAI,CAAC,MAAM,CAAY;QAC7B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAa;QACnB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACrD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,UAAU,CACjB;QACC,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,OAAO;QACP,SAAS;QACT,QAAQ;QACR,cAAc;QACd,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,QAAQ;KACR,EACD,EAAE,WAAW,EAAE,eAAe,EAAE,CAChC;IACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9D,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC5E,MAAM,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iEAAiE,EAAE,CAAC,CAC/F;IACD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC,CAAC;IAC5G,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACjF,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC5E,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAClF,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC,CAAC;IAC7F,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CAAC;IACxG,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;CAClF,CAAC,CAAC;AA8MH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC5D,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,aAAa;IAChB,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,eAAe;CACnB,CAAC","sourcesContent":["import { type Static, type TUnsafe, Type } from \"@sinclair/typebox\";\nimport type { ChildProcess } from \"node:child_process\";\n\nfunction StringEnum<T extends readonly string[]>(\n\tvalues: T,\n\toptions?: { description?: string; default?: T[number] },\n): TUnsafe<T[number]> {\n\treturn Type.Unsafe<T[number]>({\n\t\ttype: \"string\",\n\t\tenum: values as any,\n\t\t...(options?.description && { description: options.description }),\n\t\t...(options?.default && { default: options.default }),\n\t});\n}\n\n// =============================================================================\n// Tool Schema\n// =============================================================================\n\nexport const lspSchema = Type.Object({\n\taction: StringEnum(\n\t\t[\n\t\t\t\"diagnostics\",\n\t\t\t\"definition\",\n\t\t\t\"references\",\n\t\t\t\"hover\",\n\t\t\t\"symbols\",\n\t\t\t\"rename\",\n\t\t\t\"code_actions\",\n\t\t\t\"type_definition\",\n\t\t\t\"implementation\",\n\t\t\t\"incoming_calls\",\n\t\t\t\"outgoing_calls\",\n\t\t\t\"format\",\n\t\t\t\"signature\",\n\t\t\t\"status\",\n\t\t\t\"reload\",\n\t\t],\n\t\t{ description: \"LSP operation\" },\n\t),\n\tfile: Type.Optional(Type.String({ description: \"File path\" })),\n\tline: Type.Optional(Type.Number({ description: \"Line number (1-indexed)\" })),\n\tsymbol: Type.Optional(\n\t\tType.String({ description: \"Symbol/substring to locate on the line (used to compute column)\" }),\n\t),\n\toccurrence: Type.Optional(Type.Number({ description: \"Symbol occurrence on line (1-indexed, default: 1)\" })),\n\tquery: Type.Optional(Type.String({ description: \"Search query or SSR pattern\" })),\n\tnew_name: Type.Optional(Type.String({ description: \"New name for rename\" })),\n\tapply: Type.Optional(Type.Boolean({ description: \"Apply edits (default: true)\" })),\n\ttab_size: Type.Optional(Type.Number({ description: \"Tab size for formatting (default: 4)\" })),\n\tinsert_spaces: Type.Optional(Type.Boolean({ description: \"Use spaces for formatting (default: true)\" })),\n\ttimeout: Type.Optional(Type.Number({ description: \"Request timeout in seconds\" })),\n});\n\nexport type LspParams = Static<typeof lspSchema>;\n\nexport interface LspToolDetails {\n\tserverName?: string;\n\taction: string;\n\tsuccess: boolean;\n\trequest?: LspParams;\n}\n\n// =============================================================================\n// Core LSP Protocol Types\n// =============================================================================\n\nexport interface Position {\n\tline: number;\n\tcharacter: number;\n}\n\nexport interface Range {\n\tstart: Position;\n\tend: Position;\n}\n\nexport interface Location {\n\turi: string;\n\trange: Range;\n}\n\nexport interface LocationLink {\n\toriginSelectionRange?: Range;\n\ttargetUri: string;\n\ttargetRange: Range;\n\ttargetSelectionRange: Range;\n}\n\n// =============================================================================\n// Diagnostics\n// =============================================================================\n\nexport type DiagnosticSeverity = 1 | 2 | 3 | 4; // error, warning, info, hint\n\nexport interface DiagnosticRelatedInformation {\n\tlocation: Location;\n\tmessage: string;\n}\n\nexport interface Diagnostic {\n\trange: Range;\n\tseverity?: DiagnosticSeverity;\n\tcode?: string | number;\n\tcodeDescription?: { href: string };\n\tsource?: string;\n\tmessage: string;\n\ttags?: number[];\n\trelatedInformation?: DiagnosticRelatedInformation[];\n\tdata?: unknown;\n}\n\n// =============================================================================\n// Text Edits\n// =============================================================================\n\nexport interface TextEdit {\n\trange: Range;\n\tnewText: string;\n}\n\nexport interface AnnotatedTextEdit extends TextEdit {\n\tannotationId?: string;\n}\n\nexport interface TextDocumentIdentifier {\n\turi: string;\n}\n\nexport interface VersionedTextDocumentIdentifier extends TextDocumentIdentifier {\n\tversion: number | null;\n}\n\nexport interface OptionalVersionedTextDocumentIdentifier extends TextDocumentIdentifier {\n\tversion?: number | null;\n}\n\nexport interface TextDocumentEdit {\n\ttextDocument: OptionalVersionedTextDocumentIdentifier;\n\tedits: (TextEdit | AnnotatedTextEdit)[];\n}\n\n// =============================================================================\n// Resource Operations\n// =============================================================================\n\nexport interface CreateFileOptions {\n\toverwrite?: boolean;\n\tignoreIfExists?: boolean;\n}\n\nexport interface CreateFile {\n\tkind: \"create\";\n\turi: string;\n\toptions?: CreateFileOptions;\n}\n\nexport interface RenameFileOptions {\n\toverwrite?: boolean;\n\tignoreIfExists?: boolean;\n}\n\nexport interface RenameFile {\n\tkind: \"rename\";\n\toldUri: string;\n\tnewUri: string;\n\toptions?: RenameFileOptions;\n}\n\nexport interface DeleteFileOptions {\n\trecursive?: boolean;\n\tignoreIfNotExists?: boolean;\n}\n\nexport interface DeleteFile {\n\tkind: \"delete\";\n\turi: string;\n\toptions?: DeleteFileOptions;\n}\n\nexport type DocumentChange = TextDocumentEdit | CreateFile | RenameFile | DeleteFile;\n\nexport interface WorkspaceEdit {\n\tchanges?: Record<string, TextEdit[]>;\n\tdocumentChanges?: DocumentChange[];\n\tchangeAnnotations?: Record<string, { label: string; needsConfirmation?: boolean; description?: string }>;\n}\n\n// =============================================================================\n// Code Actions\n// =============================================================================\n\nexport type CodeActionKind =\n\t| \"quickfix\"\n\t| \"refactor\"\n\t| \"refactor.extract\"\n\t| \"refactor.inline\"\n\t| \"refactor.rewrite\"\n\t| \"source\"\n\t| \"source.organizeImports\"\n\t| \"source.fixAll\"\n\t| string;\n\nexport interface Command {\n\ttitle: string;\n\tcommand: string;\n\targuments?: unknown[];\n}\n\nexport interface CodeAction {\n\ttitle: string;\n\tkind?: CodeActionKind;\n\tdiagnostics?: Diagnostic[];\n\tisPreferred?: boolean;\n\tdisabled?: { reason: string };\n\tedit?: WorkspaceEdit;\n\tcommand?: Command;\n\tdata?: unknown;\n}\n\nexport interface CodeActionContext {\n\tdiagnostics: Diagnostic[];\n\tonly?: CodeActionKind[];\n\ttriggerKind?: 1 | 2; // Invoked = 1, Automatic = 2\n}\n\n// =============================================================================\n// Symbols\n// =============================================================================\n\nexport type SymbolKind =\n\t| 1 // File\n\t| 2 // Module\n\t| 3 // Namespace\n\t| 4 // Package\n\t| 5 // Class\n\t| 6 // Method\n\t| 7 // Property\n\t| 8 // Field\n\t| 9 // Constructor\n\t| 10 // Enum\n\t| 11 // Interface\n\t| 12 // Function\n\t| 13 // Variable\n\t| 14 // Constant\n\t| 15 // String\n\t| 16 // Number\n\t| 17 // Boolean\n\t| 18 // Array\n\t| 19 // Object\n\t| 20 // Key\n\t| 21 // Null\n\t| 22 // EnumMember\n\t| 23 // Struct\n\t| 24 // Event\n\t| 25 // Operator\n\t| 26; // TypeParameter\n\nexport const SYMBOL_KIND_NAMES: Record<SymbolKind, string> = {\n\t1: \"File\",\n\t2: \"Module\",\n\t3: \"Namespace\",\n\t4: \"Package\",\n\t5: \"Class\",\n\t6: \"Method\",\n\t7: \"Property\",\n\t8: \"Field\",\n\t9: \"Constructor\",\n\t10: \"Enum\",\n\t11: \"Interface\",\n\t12: \"Function\",\n\t13: \"Variable\",\n\t14: \"Constant\",\n\t15: \"String\",\n\t16: \"Number\",\n\t17: \"Boolean\",\n\t18: \"Array\",\n\t19: \"Object\",\n\t20: \"Key\",\n\t21: \"Null\",\n\t22: \"EnumMember\",\n\t23: \"Struct\",\n\t24: \"Event\",\n\t25: \"Operator\",\n\t26: \"TypeParameter\",\n};\n\nexport interface DocumentSymbol {\n\tname: string;\n\tdetail?: string;\n\tkind: SymbolKind;\n\ttags?: number[];\n\tdeprecated?: boolean;\n\trange: Range;\n\tselectionRange: Range;\n\tchildren?: DocumentSymbol[];\n}\n\nexport interface SymbolInformation {\n\tname: string;\n\tkind: SymbolKind;\n\ttags?: number[];\n\tdeprecated?: boolean;\n\tlocation: Location;\n\tcontainerName?: string;\n}\n\n// =============================================================================\n// Hover\n// =============================================================================\n\nexport interface MarkupContent {\n\tkind: \"plaintext\" | \"markdown\";\n\tvalue: string;\n}\n\nexport type MarkedString = string | { language: string; value: string };\n\nexport interface Hover {\n\tcontents: MarkupContent | MarkedString | MarkedString[];\n\trange?: Range;\n}\n\n// =============================================================================\n// Server Configuration\n// =============================================================================\n\nexport interface ServerCapabilities {\n\tflycheck?: boolean;\n\tssr?: boolean;\n\texpandMacro?: boolean;\n\trunnables?: boolean;\n\trelatedTests?: boolean;\n}\n\nexport interface ServerConfig {\n\tcommand: string;\n\targs?: string[];\n\tfileTypes: string[];\n\trootMarkers: string[];\n\tinitOptions?: Record<string, unknown>;\n\tsettings?: Record<string, unknown>;\n\tdisabled?: boolean;\n\t/** Per-server warmup timeout in milliseconds. */\n\twarmupTimeoutMs?: number;\n\tcapabilities?: ServerCapabilities;\n\t/** If true, this is a linter/formatter server — used only for diagnostics/actions, not type intelligence */\n\tisLinter?: boolean;\n\t/** Resolved absolute path to the command binary (set during config loading) */\n\tresolvedCommand?: string;\n}\n\n// =============================================================================\n// Client State\n// =============================================================================\n\nexport interface OpenFile {\n\tversion: number;\n\tlanguageId: string;\n}\n\nexport interface PendingRequest {\n\tresolve: (result: unknown) => void;\n\treject: (error: Error) => void;\n\tmethod: string;\n}\n\nexport interface LspServerCapabilities {\n\trenameProvider?: boolean | { prepareProvider?: boolean };\n\tcodeActionProvider?: boolean | { resolveProvider?: boolean };\n\thoverProvider?: boolean;\n\tdefinitionProvider?: boolean;\n\treferencesProvider?: boolean;\n\tdocumentSymbolProvider?: boolean;\n\tdocumentFormattingProvider?: boolean;\n\tworkspaceSymbolProvider?: boolean;\n\t[key: string]: unknown;\n}\n\nexport interface LspClient {\n\tname: string;\n\tcwd: string;\n\tconfig: ServerConfig;\n\tproc: {\n\t\tstdin: ChildProcess[\"stdin\"];\n\t\tstdout: ChildProcess[\"stdout\"];\n\t\tstderr: ChildProcess[\"stderr\"];\n\t\tpid: number;\n\t\texitCode: number | null;\n\t\texited: Promise<number>;\n\t\tkill(signal?: number): void;\n\t};\n\trequestId: number;\n\tdiagnostics: Map<string, Diagnostic[]>;\n\tdiagnosticsVersion: number;\n\topenFiles: Map<string, OpenFile>;\n\tpendingRequests: Map<number, PendingRequest>;\n\tmessageBuffer: Buffer;\n\tisReading: boolean;\n\tserverCapabilities?: LspServerCapabilities;\n\tlastActivity: number;\n\tstderrBuffer: string;\n}\n\n// =============================================================================\n// JSON-RPC Protocol Types\n// =============================================================================\n\nexport interface LspJsonRpcRequest {\n\tjsonrpc: \"2.0\";\n\tid: number;\n\tmethod: string;\n\tparams: unknown;\n}\n\nexport interface LspJsonRpcResponse {\n\tjsonrpc: \"2.0\";\n\tid?: number;\n\tresult?: unknown;\n\terror?: { code: number; message: string; data?: unknown };\n}\n\nexport interface LspJsonRpcNotification {\n\tjsonrpc: \"2.0\";\n\tmethod: string;\n\tparams?: unknown;\n}\n\n// =============================================================================\n// Call Hierarchy\n// =============================================================================\n\nexport interface CallHierarchyItem {\n\tname: string;\n\tkind: SymbolKind;\n\ttags?: number[];\n\tdetail?: string;\n\turi: string;\n\trange: Range;\n\tselectionRange: Range;\n\tdata?: unknown;\n}\n\nexport interface CallHierarchyIncomingCall {\n\tfrom: CallHierarchyItem;\n\tfromRanges: Range[];\n}\n\nexport interface CallHierarchyOutgoingCall {\n\tto: CallHierarchyItem;\n\tfromRanges: Range[];\n}\n\n// =============================================================================\n// Signature Help\n// =============================================================================\n\nexport interface ParameterInformation {\n\tlabel: string | [number, number];\n\tdocumentation?: string | MarkupContent;\n}\n\nexport interface SignatureInformation {\n\tlabel: string;\n\tdocumentation?: string | MarkupContent;\n\tparameters?: ParameterInformation[];\n\tactiveParameter?: number;\n}\n\nexport interface SignatureHelp {\n\tsignatures: SignatureInformation[];\n\tactiveSignature?: number;\n\tactiveParameter?: number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/lsp/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGpE,SAAS,UAAU,CAClB,MAAS,EACT,OAAuD;IAEvD,OAAO,IAAI,CAAC,MAAM,CAAY;QAC7B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAa;QACnB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACrD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,UAAU,CACjB;QACC,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,OAAO;QACP,SAAS;QACT,QAAQ;QACR,cAAc;QACd,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,QAAQ;KACR,EACD,EAAE,WAAW,EAAE,eAAe,EAAE,CAChC;IACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9D,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC5E,MAAM,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iEAAiE,EAAE,CAAC,CAC/F;IACD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC,CAAC;IAC5G,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACjF,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC5E,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAClF,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC,CAAC;IAC7F,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CAAC;IACxG,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;CAClF,CAAC,CAAC","sourcesContent":["import { type Static, type TUnsafe, Type } from \"@sinclair/typebox\";\nimport type { ChildProcess } from \"node:child_process\";\n\nfunction StringEnum<T extends readonly string[]>(\n\tvalues: T,\n\toptions?: { description?: string; default?: T[number] },\n): TUnsafe<T[number]> {\n\treturn Type.Unsafe<T[number]>({\n\t\ttype: \"string\",\n\t\tenum: values as any,\n\t\t...(options?.description && { description: options.description }),\n\t\t...(options?.default && { default: options.default }),\n\t});\n}\n\n// =============================================================================\n// Tool Schema\n// =============================================================================\n\nexport const lspSchema = Type.Object({\n\taction: StringEnum(\n\t\t[\n\t\t\t\"diagnostics\",\n\t\t\t\"definition\",\n\t\t\t\"references\",\n\t\t\t\"hover\",\n\t\t\t\"symbols\",\n\t\t\t\"rename\",\n\t\t\t\"code_actions\",\n\t\t\t\"type_definition\",\n\t\t\t\"implementation\",\n\t\t\t\"incoming_calls\",\n\t\t\t\"outgoing_calls\",\n\t\t\t\"format\",\n\t\t\t\"signature\",\n\t\t\t\"status\",\n\t\t\t\"reload\",\n\t\t],\n\t\t{ description: \"LSP operation\" },\n\t),\n\tfile: Type.Optional(Type.String({ description: \"File path\" })),\n\tline: Type.Optional(Type.Number({ description: \"Line number (1-indexed)\" })),\n\tsymbol: Type.Optional(\n\t\tType.String({ description: \"Symbol/substring to locate on the line (used to compute column)\" }),\n\t),\n\toccurrence: Type.Optional(Type.Number({ description: \"Symbol occurrence on line (1-indexed, default: 1)\" })),\n\tquery: Type.Optional(Type.String({ description: \"Search query or SSR pattern\" })),\n\tnew_name: Type.Optional(Type.String({ description: \"New name for rename\" })),\n\tapply: Type.Optional(Type.Boolean({ description: \"Apply edits (default: true)\" })),\n\ttab_size: Type.Optional(Type.Number({ description: \"Tab size for formatting (default: 4)\" })),\n\tinsert_spaces: Type.Optional(Type.Boolean({ description: \"Use spaces for formatting (default: true)\" })),\n\ttimeout: Type.Optional(Type.Number({ description: \"Request timeout in seconds\" })),\n});\n\nexport type LspParams = Static<typeof lspSchema>;\n\nexport interface LspToolDetails {\n\tserverName?: string;\n\taction: string;\n\tsuccess: boolean;\n\trequest?: LspParams;\n}\n\n// =============================================================================\n// Core LSP Protocol Types\n// =============================================================================\n\nexport interface Position {\n\tline: number;\n\tcharacter: number;\n}\n\nexport interface Range {\n\tstart: Position;\n\tend: Position;\n}\n\nexport interface Location {\n\turi: string;\n\trange: Range;\n}\n\nexport interface LocationLink {\n\toriginSelectionRange?: Range;\n\ttargetUri: string;\n\ttargetRange: Range;\n\ttargetSelectionRange: Range;\n}\n\n// =============================================================================\n// Diagnostics\n// =============================================================================\n\nexport type DiagnosticSeverity = 1 | 2 | 3 | 4; // error, warning, info, hint\n\nexport interface DiagnosticRelatedInformation {\n\tlocation: Location;\n\tmessage: string;\n}\n\nexport interface Diagnostic {\n\trange: Range;\n\tseverity?: DiagnosticSeverity;\n\tcode?: string | number;\n\tcodeDescription?: { href: string };\n\tsource?: string;\n\tmessage: string;\n\ttags?: number[];\n\trelatedInformation?: DiagnosticRelatedInformation[];\n\tdata?: unknown;\n}\n\n// =============================================================================\n// Text Edits\n// =============================================================================\n\nexport interface TextEdit {\n\trange: Range;\n\tnewText: string;\n}\n\nexport interface AnnotatedTextEdit extends TextEdit {\n\tannotationId?: string;\n}\n\nexport interface TextDocumentIdentifier {\n\turi: string;\n}\n\nexport interface VersionedTextDocumentIdentifier extends TextDocumentIdentifier {\n\tversion: number | null;\n}\n\nexport interface OptionalVersionedTextDocumentIdentifier extends TextDocumentIdentifier {\n\tversion?: number | null;\n}\n\nexport interface TextDocumentEdit {\n\ttextDocument: OptionalVersionedTextDocumentIdentifier;\n\tedits: (TextEdit | AnnotatedTextEdit)[];\n}\n\n// =============================================================================\n// Resource Operations\n// =============================================================================\n\nexport interface CreateFileOptions {\n\toverwrite?: boolean;\n\tignoreIfExists?: boolean;\n}\n\nexport interface CreateFile {\n\tkind: \"create\";\n\turi: string;\n\toptions?: CreateFileOptions;\n}\n\nexport interface RenameFileOptions {\n\toverwrite?: boolean;\n\tignoreIfExists?: boolean;\n}\n\nexport interface RenameFile {\n\tkind: \"rename\";\n\toldUri: string;\n\tnewUri: string;\n\toptions?: RenameFileOptions;\n}\n\nexport interface DeleteFileOptions {\n\trecursive?: boolean;\n\tignoreIfNotExists?: boolean;\n}\n\nexport interface DeleteFile {\n\tkind: \"delete\";\n\turi: string;\n\toptions?: DeleteFileOptions;\n}\n\nexport type DocumentChange = TextDocumentEdit | CreateFile | RenameFile | DeleteFile;\n\nexport interface WorkspaceEdit {\n\tchanges?: Record<string, TextEdit[]>;\n\tdocumentChanges?: DocumentChange[];\n\tchangeAnnotations?: Record<string, { label: string; needsConfirmation?: boolean; description?: string }>;\n}\n\n// =============================================================================\n// Code Actions\n// =============================================================================\n\nexport type CodeActionKind =\n\t| \"quickfix\"\n\t| \"refactor\"\n\t| \"refactor.extract\"\n\t| \"refactor.inline\"\n\t| \"refactor.rewrite\"\n\t| \"source\"\n\t| \"source.organizeImports\"\n\t| \"source.fixAll\"\n\t| string;\n\nexport interface Command {\n\ttitle: string;\n\tcommand: string;\n\targuments?: unknown[];\n}\n\nexport interface CodeAction {\n\ttitle: string;\n\tkind?: CodeActionKind;\n\tdiagnostics?: Diagnostic[];\n\tisPreferred?: boolean;\n\tdisabled?: { reason: string };\n\tedit?: WorkspaceEdit;\n\tcommand?: Command;\n\tdata?: unknown;\n}\n\nexport interface CodeActionContext {\n\tdiagnostics: Diagnostic[];\n\tonly?: CodeActionKind[];\n\ttriggerKind?: 1 | 2; // Invoked = 1, Automatic = 2\n}\n\n// =============================================================================\n// Symbols\n// =============================================================================\n\nexport type SymbolKind =\n\t| 1 // File\n\t| 2 // Module\n\t| 3 // Namespace\n\t| 4 // Package\n\t| 5 // Class\n\t| 6 // Method\n\t| 7 // Property\n\t| 8 // Field\n\t| 9 // Constructor\n\t| 10 // Enum\n\t| 11 // Interface\n\t| 12 // Function\n\t| 13 // Variable\n\t| 14 // Constant\n\t| 15 // String\n\t| 16 // Number\n\t| 17 // Boolean\n\t| 18 // Array\n\t| 19 // Object\n\t| 20 // Key\n\t| 21 // Null\n\t| 22 // EnumMember\n\t| 23 // Struct\n\t| 24 // Event\n\t| 25 // Operator\n\t| 26; // TypeParameter\n\nexport interface DocumentSymbol {\n\tname: string;\n\tdetail?: string;\n\tkind: SymbolKind;\n\ttags?: number[];\n\tdeprecated?: boolean;\n\trange: Range;\n\tselectionRange: Range;\n\tchildren?: DocumentSymbol[];\n}\n\nexport interface SymbolInformation {\n\tname: string;\n\tkind: SymbolKind;\n\ttags?: number[];\n\tdeprecated?: boolean;\n\tlocation: Location;\n\tcontainerName?: string;\n}\n\n// =============================================================================\n// Hover\n// =============================================================================\n\nexport interface MarkupContent {\n\tkind: \"plaintext\" | \"markdown\";\n\tvalue: string;\n}\n\nexport type MarkedString = string | { language: string; value: string };\n\nexport interface Hover {\n\tcontents: MarkupContent | MarkedString | MarkedString[];\n\trange?: Range;\n}\n\n// =============================================================================\n// Server Configuration\n// =============================================================================\n\nexport interface ServerCapabilities {\n\tflycheck?: boolean;\n\tssr?: boolean;\n\texpandMacro?: boolean;\n\trunnables?: boolean;\n\trelatedTests?: boolean;\n}\n\nexport interface ServerConfig {\n\tcommand: string;\n\targs?: string[];\n\tfileTypes: string[];\n\trootMarkers: string[];\n\tinitOptions?: Record<string, unknown>;\n\tsettings?: Record<string, unknown>;\n\tdisabled?: boolean;\n\t/** Per-server warmup timeout in milliseconds. */\n\twarmupTimeoutMs?: number;\n\tcapabilities?: ServerCapabilities;\n\t/** If true, this is a linter/formatter server — used only for diagnostics/actions, not type intelligence */\n\tisLinter?: boolean;\n\t/** Resolved absolute path to the command binary (set during config loading) */\n\tresolvedCommand?: string;\n}\n\n// =============================================================================\n// Client State\n// =============================================================================\n\nexport interface OpenFile {\n\tversion: number;\n\tlanguageId: string;\n}\n\nexport interface PendingRequest {\n\tresolve: (result: unknown) => void;\n\treject: (error: Error) => void;\n\tmethod: string;\n}\n\nexport interface LspServerCapabilities {\n\trenameProvider?: boolean | { prepareProvider?: boolean };\n\tcodeActionProvider?: boolean | { resolveProvider?: boolean };\n\thoverProvider?: boolean;\n\tdefinitionProvider?: boolean;\n\treferencesProvider?: boolean;\n\tdocumentSymbolProvider?: boolean;\n\tdocumentFormattingProvider?: boolean;\n\tworkspaceSymbolProvider?: boolean;\n\t[key: string]: unknown;\n}\n\nexport interface LspClient {\n\tname: string;\n\tcwd: string;\n\tconfig: ServerConfig;\n\tproc: {\n\t\tstdin: ChildProcess[\"stdin\"];\n\t\tstdout: ChildProcess[\"stdout\"];\n\t\tstderr: ChildProcess[\"stderr\"];\n\t\tpid: number;\n\t\texitCode: number | null;\n\t\texited: Promise<number>;\n\t\tkill(signal?: number): void;\n\t};\n\trequestId: number;\n\tdiagnostics: Map<string, Diagnostic[]>;\n\tdiagnosticsVersion: number;\n\topenFiles: Map<string, OpenFile>;\n\tpendingRequests: Map<number, PendingRequest>;\n\tmessageBuffer: Buffer;\n\tisReading: boolean;\n\tserverCapabilities?: LspServerCapabilities;\n\tlastActivity: number;\n\tstderrBuffer: string;\n}\n\n// =============================================================================\n// JSON-RPC Protocol Types\n// =============================================================================\n\nexport interface LspJsonRpcRequest {\n\tjsonrpc: \"2.0\";\n\tid: number;\n\tmethod: string;\n\tparams: unknown;\n}\n\nexport interface LspJsonRpcResponse {\n\tjsonrpc: \"2.0\";\n\tid?: number;\n\tresult?: unknown;\n\terror?: { code: number; message: string; data?: unknown };\n}\n\nexport interface LspJsonRpcNotification {\n\tjsonrpc: \"2.0\";\n\tmethod: string;\n\tparams?: unknown;\n}\n\n// =============================================================================\n// Call Hierarchy\n// =============================================================================\n\nexport interface CallHierarchyItem {\n\tname: string;\n\tkind: SymbolKind;\n\ttags?: number[];\n\tdetail?: string;\n\turi: string;\n\trange: Range;\n\tselectionRange: Range;\n\tdata?: unknown;\n}\n\nexport interface CallHierarchyIncomingCall {\n\tfrom: CallHierarchyItem;\n\tfromRanges: Range[];\n}\n\nexport interface CallHierarchyOutgoingCall {\n\tto: CallHierarchyItem;\n\tfromRanges: Range[];\n}\n\n// =============================================================================\n// Signature Help\n// =============================================================================\n\nexport interface ParameterInformation {\n\tlabel: string | [number, number];\n\tdocumentation?: string | MarkupContent;\n}\n\nexport interface SignatureInformation {\n\tlabel: string;\n\tdocumentation?: string | MarkupContent;\n\tparameters?: ParameterInformation[];\n\tactiveParameter?: number;\n}\n\nexport interface SignatureHelp {\n\tsignatures: SignatureInformation[];\n\tactiveSignature?: number;\n\tactiveParameter?: number;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/core/package-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/core/package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,12 @@ import { spawn, spawnSync } from "node:child_process";
|
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
3
|
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { homedir, tmpdir } from "node:os";
|
|
5
|
-
import { basename, dirname, join, relative, resolve
|
|
5
|
+
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
6
6
|
import ignore from "ignore";
|
|
7
7
|
import { minimatch } from "minimatch";
|
|
8
8
|
import { CONFIG_DIR_NAME } from "../config.js";
|
|
9
9
|
import { parseGitUrl } from "../utils/git.js";
|
|
10
|
+
import { toPosixPath } from "../utils/path-display.js";
|
|
10
11
|
const NETWORK_TIMEOUT_MS = 10000;
|
|
11
12
|
function isOfflineModeEnabled() {
|
|
12
13
|
const value = process.env.PI_OFFLINE;
|
|
@@ -22,9 +23,6 @@ const FILE_PATTERNS = {
|
|
|
22
23
|
themes: /\.json$/,
|
|
23
24
|
};
|
|
24
25
|
const IGNORE_FILE_NAMES = [".gitignore", ".ignore", ".fdignore"];
|
|
25
|
-
function toPosixPath(p) {
|
|
26
|
-
return p.split(sep).join("/");
|
|
27
|
-
}
|
|
28
26
|
function prefixIgnorePattern(line, prefix) {
|
|
29
27
|
const trimmed = line.trim();
|
|
30
28
|
if (!trimmed)
|