pi-x-ide 1.12.0 → 1.13.1

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.
Files changed (46) hide show
  1. package/README.md +41 -28
  2. package/README.zh-CN.md +34 -28
  3. package/dist/package.json +6 -6
  4. package/dist/src/nvim/sidecar.js +15 -4
  5. package/dist/src/nvim/sidecar.js.map +1 -1
  6. package/dist/src/pi/commands.js +7 -4
  7. package/dist/src/pi/commands.js.map +1 -1
  8. package/dist/src/pi/connection.d.ts +3 -0
  9. package/dist/src/pi/connection.js +48 -11
  10. package/dist/src/pi/connection.js.map +1 -1
  11. package/dist/src/pi/context.js +7 -7
  12. package/dist/src/pi/context.js.map +1 -1
  13. package/dist/src/pi/index.js +33 -28
  14. package/dist/src/pi/index.js.map +1 -1
  15. package/dist/src/pi/safety.d.ts +7 -0
  16. package/dist/src/pi/safety.js +20 -0
  17. package/dist/src/pi/safety.js.map +1 -0
  18. package/dist/src/pi/ui.js +55 -15
  19. package/dist/src/pi/ui.js.map +1 -1
  20. package/dist/src/pi/zed.js +51 -42
  21. package/dist/src/pi/zed.js.map +1 -1
  22. package/dist/src/shared/errors.d.ts +5 -0
  23. package/dist/src/shared/errors.js +49 -0
  24. package/dist/src/shared/errors.js.map +1 -0
  25. package/dist/src/shared/format.d.ts +4 -4
  26. package/dist/src/shared/format.js +24 -18
  27. package/dist/src/shared/format.js.map +1 -1
  28. package/dist/src/shared/ide-server.d.ts +2 -0
  29. package/dist/src/shared/ide-server.js +63 -8
  30. package/dist/src/shared/ide-server.js.map +1 -1
  31. package/dist/test/connection.test.js +74 -5
  32. package/dist/test/connection.test.js.map +1 -1
  33. package/dist/test/shared.test.js +91 -5
  34. package/dist/test/shared.test.js.map +1 -1
  35. package/package.json +6 -6
  36. package/src/nvim/sidecar.ts +15 -4
  37. package/src/pi/commands.ts +48 -32
  38. package/src/pi/connection.ts +49 -10
  39. package/src/pi/context.ts +41 -26
  40. package/src/pi/index.ts +70 -45
  41. package/src/pi/safety.ts +38 -0
  42. package/src/pi/ui.ts +85 -42
  43. package/src/pi/zed.ts +51 -43
  44. package/src/shared/errors.ts +43 -0
  45. package/src/shared/format.ts +25 -22
  46. package/src/shared/ide-server.ts +63 -9
package/README.md CHANGED
@@ -14,8 +14,6 @@ Automatically attaches the currently opened or selected file and text range from
14
14
  pi install npm:pi-x-ide
15
15
  ```
16
16
 
17
- This installs `pi-x-ide` as a global Pi extension. Pi loads it automatically on startup — no flags needed.
18
-
19
17
  ### Install the IDE Extension
20
18
 
21
19
  #### VS Code / Cursor / Windsurf
@@ -51,16 +49,22 @@ SHA-256 digest before caching it. If the download or checksum verification fails
51
49
  or no binary matches your platform, the plugin falls back to the bundled Node.js
52
50
  sidecar — Node.js is then required on PATH.
53
51
 
54
- The binary is cached under `stdpath("cache")/pi-x-ide/` and reused on subsequent
55
- starts. Plugin updates trigger a one-time re-download.
52
+ Downloaded binaries are cached under `stdpath("cache")/pi-x-ide/` and reused on
53
+ subsequent starts. The optional lazy.nvim build hook uses the bundled binary when
54
+ present; otherwise it checks the release digest on install and update,
55
+ downloading only when the cached binary is missing or stale.
56
56
 
57
57
  **lazy.nvim:**
58
58
 
59
59
  ```lua
60
60
  {
61
61
  "balaenis/pi-x-ide",
62
+ build = function(plugin)
63
+ vim.opt.rtp:prepend(plugin.dir .. "/ide-plugins/nvim")
64
+ require("pi_x_ide.download").run({ refresh = true })
65
+ end,
62
66
  init = function(plugin)
63
- vim.opt.rtp:prepend(plugin.dir .. "/nvim")
67
+ vim.opt.rtp:prepend(plugin.dir .. "/ide-plugins/nvim")
64
68
  end,
65
69
  main = "pi_x_ide",
66
70
  opts = {
@@ -69,12 +73,19 @@ starts. Plugin updates trigger a one-time re-download.
69
73
  }
70
74
  ```
71
75
 
72
- > **Note:** The `init` block manually adds the `nvim/` subdirectory to the runtime path to avoid a Lua module resolution issue with some lazy.nvim versions. The plugin options are passed through lazy.nvim's recommended `opts` field.
76
+ > **Note:** The `init` block manually adds the `ide-plugins/nvim/` subdirectory to the runtime path to avoid a Lua module resolution issue with some lazy.nvim versions. The plugin options are passed through lazy.nvim's recommended `opts` field.
77
+ >
78
+ > The optional `build` hook resolves the bundled sidecar binary when present;
79
+ > otherwise it checks the GitHub Release asset digest at install/update time
80
+ > (`:Lazy build pi-x-ide` to re-run) and downloads only when the cached binary is
81
+ > missing or stale. It is safe to omit: the plugin still downloads the binary
82
+ > lazily on first start and falls back to the Node.js sidecar if the download is
83
+ > unavailable.
73
84
 
74
85
  **Native package:**
75
86
 
76
87
  ```vim
77
- set runtimepath+=/path/to/pi-x-ide/nvim
88
+ set runtimepath+=/path/to/pi-x-ide/ide-plugins/nvim
78
89
  lua require("pi_x_ide").setup({ keymap = "<leader>pa" })
79
90
  ```
80
91
 
@@ -95,10 +106,10 @@ Pi auto-loads `pi-x-ide` and connects to your IDE. The TUI should display `IDE:
95
106
  Open a file in your IDE and select some text. The widget should update in real time:
96
107
 
97
108
  ```
98
- IDE: vscode ✓ src/foo.ts#L10,20 pending
109
+ IDE: vscode ✓ src/foo.ts#L10-L20 pending
99
110
  ```
100
111
 
101
- Attach the selection from either side: press `Ctrl+Alt+K` (Linux/Windows) or `Cmd+Alt+K` (macOS) in a VS Code-family IDE, or focus the Pi TUI and press `Ctrl+Alt+K` / run `/ide attach`. The Pi input box should insert `@src/foo.ts#L10,20`.
112
+ Attach the selection from either side: press `Ctrl+Alt+K` (Linux/Windows) or `Cmd+Alt+K` (macOS) in a VS Code-family IDE, or focus the Pi TUI and press `Ctrl+Alt+K` / run `/ide attach`. The Pi input box should insert `@src/foo.ts#L10-L20`.
102
113
 
103
114
  Type a chat prompt in Pi and submit it. The selected text is injected as LLM context (does not persist in session history). After submission, the widget shows `sent`.
104
115
 
@@ -128,10 +139,9 @@ Pi also registers `Ctrl+Alt+K` in the TUI as a shortcut for `/ide attach` by def
128
139
 
129
140
  #### VS Code
130
141
 
131
- | Key | Type | Default | Description |
132
- | -------------------- | --------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------- |
133
- | `piXIde.rangeFormat` | `"comma"` \| `"dash"` | `"comma"` | File reference format for the manual shortcut |
134
- | `piXIde.useTmux` | `boolean` | `false` | Open Pi through `tmux` from the terminal icon. Each click creates a new session that is destroyed when the terminal detaches. |
142
+ | Key | Type | Default | Description |
143
+ | ---------------- | --------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
144
+ | `piXIde.useTmux` | `boolean` | `false` | Open Pi through `tmux` from the terminal icon. Each click creates a new session that is destroyed when the terminal detaches. |
135
145
 
136
146
  #### Zed
137
147
 
@@ -154,7 +164,6 @@ When Pi runs in WSL and Zed runs as a Windows app, pi-x-ide normalizes Windows p
154
164
  require("pi_x_ide").setup({
155
165
  enabled = true,
156
166
  keymap = "<C-A-k>",
157
- range_format = "comma", -- or "dash"
158
167
  debounce_ms = 150,
159
168
  -- sidecar_cmd = { "node", "/absolute/path/to/pi-x-ide-nvim-sidecar.cjs" },
160
169
  -- (defaults to the platform binary; falls back to node + cjs if no binary found)
@@ -168,12 +177,12 @@ when no binary matches.
168
177
 
169
178
  **Commands:**
170
179
 
171
- | Command | Behavior |
172
- | --------------- | ------------------------------------------------------------------- |
173
- | `:PiXIdeStart` | Start the Neovim sidecar and write the lock file |
174
- | `:PiXIdeStop` | Stop the sidecar and remove the lock file |
175
- | `:PiXIdeStatus` | Show whether the sidecar is running |
176
- | `:PiXIdeAttach` | Attach the current file or selection to Pi as `@relative/path#Lx,y` |
180
+ | Command | Behavior |
181
+ | --------------- | -------------------------------------------------------------------- |
182
+ | `:PiXIdeStart` | Start the Neovim sidecar and write the lock file |
183
+ | `:PiXIdeStop` | Stop the sidecar and remove the lock file |
184
+ | `:PiXIdeStatus` | Show whether the sidecar is running |
185
+ | `:PiXIdeAttach` | Attach the current file or selection to Pi as `@relative/path#Lx-Ly` |
177
186
 
178
187
  #### Pi-side Environment Variables
179
188
 
@@ -243,13 +252,13 @@ pi -e ./src/pi/index.ts
243
252
 
244
253
  All `bun run` commands have equivalent `mise run` tasks (see `mise.toml`):
245
254
 
246
- | Command | Description |
247
- | ----------------------------- | -------------------------------------------------------------------------------------------------- |
248
- | `bun run build` | Build Pi-side TypeScript → `dist/` + Neovim sidecar → `nvim/bin/` + VS Code bundle → `vscode/out/` |
249
- | `bun run typecheck` | Type-check only (no output files) |
250
- | `bun run test` | Build + run unit tests |
251
- | `bun run package:vsix` | Package VS Code extension as VSIX |
252
- | `bun run check:config-schema` | Verify `schemas/config.json` is in sync with the config registry |
255
+ | Command | Description |
256
+ | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
257
+ | `bun run build` | Build Pi-side TypeScript → `dist/` + Neovim sidecar → `ide-plugins/nvim/bin/` + VS Code bundle → `ide-plugins/vscode/out/` |
258
+ | `bun run typecheck` | Type-check only (no output files) |
259
+ | `bun run test` | Build + run unit tests |
260
+ | `bun run package:vsix` | Package VS Code extension as VSIX |
261
+ | `bun run check:config-schema` | Verify `schemas/config.json` is in sync with the config registry |
253
262
 
254
263
  ### Testing the VS Code Extension Locally
255
264
 
@@ -266,7 +275,7 @@ All `bun run` commands have equivalent `mise run` tasks (see `mise.toml`):
266
275
 
267
276
  ```bash
268
277
  bun run package:vsix
269
- cd vscode && code --install-extension dist/pi-x-ide-$(node -p "require('./package.json').version").vsix
278
+ cd ide-plugins/vscode && code --install-extension dist/pi-x-ide-$(node -p "require('./package.json').version").vsix
270
279
  ```
271
280
 
272
281
  The extension installed this way runs in all VS Code windows, independent of the F5 Extension Host.
@@ -284,3 +293,7 @@ You should see a file like `vscode-12345-48123.lock`. If not, run **Developer: R
284
293
  This project uses [Release Please](https://github.com/googleapis/release-please) with [Conventional Commits](https://www.conventionalcommits.org/) to automate versioning and publishing.
285
294
 
286
295
  See [RELEASE.md](RELEASE.md) for the full release guide.
296
+
297
+ ## Acknowledgments
298
+
299
+ - [opencode](https://github.com/anomalyco/opencode)
package/README.zh-CN.md CHANGED
@@ -14,8 +14,6 @@
14
14
  pi install npm:pi-x-ide
15
15
  ```
16
16
 
17
- 将 `pi-x-ide` 安装为全局 Pi 扩展,Pi 启动时自动加载,无需额外参数。
18
-
19
17
  ### 安装 IDE 扩展
20
18
 
21
19
  #### VS Code / Cursor / Windsurf
@@ -50,16 +48,20 @@ x64 或 arm64),并在写入缓存前用 release asset 的 SHA-256 digest 做
50
48
  或校验失败、或无匹配二进制时,插件降级到内置的 Node.js sidecar — 此时需要
51
49
  PATH 中有 Node.js。
52
50
 
53
- 二进制文件缓存在 `stdpath("cache")/pi-x-ide/` 目录,后续启动直接复用。插件
54
- 更新后会触发一次重新下载。
51
+ 下载的二进制文件缓存在 `stdpath("cache")/pi-x-ide/` 目录,后续启动直接复用。可选的
52
+ lazy.nvim build 钩子会优先使用插件包内的 bundled binary;如果不存在,则在安装和更新时检查 release digest,仅在缓存二进制缺失或过期时下载。
55
53
 
56
54
  **lazy.nvim:**
57
55
 
58
56
  ```lua
59
57
  {
60
58
  "balaenis/pi-x-ide",
59
+ build = function(plugin)
60
+ vim.opt.rtp:prepend(plugin.dir .. "/ide-plugins/nvim")
61
+ require("pi_x_ide.download").run({ refresh = true })
62
+ end,
61
63
  init = function(plugin)
62
- vim.opt.rtp:prepend(plugin.dir .. "/nvim")
64
+ vim.opt.rtp:prepend(plugin.dir .. "/ide-plugins/nvim")
63
65
  end,
64
66
  main = "pi_x_ide",
65
67
  opts = {
@@ -68,12 +70,14 @@ PATH 中有 Node.js。
68
70
  }
69
71
  ```
70
72
 
71
- > **注意:** `init` 块手动将 `nvim/` 子目录加入 runtime path,以规避部分版本 lazy.nvim 的 Lua 模块解析兼容性问题。插件选项通过 lazy.nvim 推荐的 `opts` 字段传入。
73
+ > **注意:** `init` 块手动将 `ide-plugins/nvim/` 子目录加入 runtime path,以规避部分版本 lazy.nvim 的 Lua 模块解析兼容性问题。插件选项通过 lazy.nvim 推荐的 `opts` 字段传入。
74
+ >
75
+ > 可选的 `build` 钩子会优先使用插件包内的 bundled sidecar 二进制;如果不存在,则在安装/更新时检查 GitHub Release asset digest(用 `:Lazy build pi-x-ide` 可重新触发),仅在缓存二进制缺失或过期时下载。该钩子可以省略:插件仍会在首次启动时按需下载二进制,下载不可用时回退到 Node.js sidecar。
72
76
 
73
77
  **原生 package:**
74
78
 
75
79
  ```vim
76
- set runtimepath+=/path/to/pi-x-ide/nvim
80
+ set runtimepath+=/path/to/pi-x-ide/ide-plugins/nvim
77
81
  lua require("pi_x_ide").setup({ keymap = "<leader>pa" })
78
82
  ```
79
83
 
@@ -94,10 +98,10 @@ Pi 自动加载 `pi-x-ide` 并连接 IDE。TUI 底部应显示 `IDE: vscode ✓`
94
98
  在 IDE 中打开文件并选中文本,widget 应实时更新:
95
99
 
96
100
  ```text
97
- IDE: vscode ✓ src/foo.ts#L10,20 pending
101
+ IDE: vscode ✓ src/foo.ts#L10-L20 pending
98
102
  ```
99
103
 
100
- 可以从任一侧附加选区:在 VS Code 系列 IDE 中按 `Ctrl+Alt+K`(Linux/Windows)或 `Cmd+Alt+K`(macOS),或聚焦 Pi TUI 后按 `Ctrl+Alt+K` / 运行 `/ide attach`。Pi 输入框应插入 `@src/foo.ts#L10,20`。
104
+ 可以从任一侧附加选区:在 VS Code 系列 IDE 中按 `Ctrl+Alt+K`(Linux/Windows)或 `Cmd+Alt+K`(macOS),或聚焦 Pi TUI 后按 `Ctrl+Alt+K` / 运行 `/ide attach`。Pi 输入框应插入 `@src/foo.ts#L10-L20`。
101
105
 
102
106
  在 Pi 中输入对话提示并提交,选中文本会作为 LLM 上下文注入(不写入 session 历史)。提交后 widget 显示 `sent`。
103
107
 
@@ -127,10 +131,9 @@ Pi 默认也会在 TUI 中注册 `Ctrl+Alt+K`,作为 `/ide attach` 的快捷
127
131
 
128
132
  #### VS Code
129
133
 
130
- | 键 | 类型 | 默认值 | 说明 |
131
- | -------------------- | --------------------- | --------- | --------------------------------------------------------------------------------------- |
132
- | `piXIde.rangeFormat` | `"comma"` \| `"dash"` | `"comma"` | 手动快捷键生成的文件引用格式 |
133
- | `piXIde.useTmux` | `boolean` | `false` | 通过终端图标用 `tmux` 打开 Pi。每次点击都会创建一个新 session,终端 detach 后自动销毁。 |
134
+ | 键 | 类型 | 默认值 | 说明 |
135
+ | ---------------- | --------- | ------- | --------------------------------------------------------------------------------------- |
136
+ | `piXIde.useTmux` | `boolean` | `false` | 通过终端图标用 `tmux` 打开 Pi。每次点击都会创建一个新 session,终端 detach 后自动销毁。 |
134
137
 
135
138
  #### Zed
136
139
 
@@ -153,7 +156,6 @@ Pi 默认也会在 TUI 中注册 `Ctrl+Alt+K`,作为 `/ide attach` 的快捷
153
156
  require("pi_x_ide").setup({
154
157
  enabled = true,
155
158
  keymap = "<C-A-k>",
156
- range_format = "comma", -- 或 "dash"
157
159
  debounce_ms = 150,
158
160
  -- sidecar_cmd = { "node", "/absolute/path/to/pi-x-ide-nvim-sidecar.cjs" },
159
161
  -- (默认使用平台二进制文件;找不到时降级到 node + cjs)
@@ -166,12 +168,12 @@ require("pi_x_ide").setup({
166
168
 
167
169
  **命令:**
168
170
 
169
- | 命令 | 行为 |
170
- | --------------- | ---------------------------------------------------- |
171
- | `:PiXIdeStart` | 启动 Neovim sidecar 并写入 lock file |
172
- | `:PiXIdeStop` | 停止 sidecar 并移除 lock file |
173
- | `:PiXIdeStatus` | 显示 sidecar 是否正在运行 |
174
- | `:PiXIdeAttach` | 将当前文件或选区作为 `@relative/path#Lx,y` 附加到 Pi |
171
+ | 命令 | 行为 |
172
+ | --------------- | ----------------------------------------------------- |
173
+ | `:PiXIdeStart` | 启动 Neovim sidecar 并写入 lock file |
174
+ | `:PiXIdeStop` | 停止 sidecar 并移除 lock file |
175
+ | `:PiXIdeStatus` | 显示 sidecar 是否正在运行 |
176
+ | `:PiXIdeAttach` | 将当前文件或选区作为 `@relative/path#Lx-Ly` 附加到 Pi |
175
177
 
176
178
  #### Pi 侧环境变量
177
179
 
@@ -241,13 +243,13 @@ pi -e ./src/pi/index.ts
241
243
 
242
244
  所有 `bun run` 命令都有等效的 `mise run` 任务(见 `mise.toml`):
243
245
 
244
- | 命令 | 说明 |
245
- | ----------------------------- | ----------------------------------------------------------------------------------------------- |
246
- | `bun run build` | 编译 Pi 侧 TypeScript → `dist/` + Neovim sidecar → `nvim/bin/` + VS Code bundle → `vscode/out/` |
247
- | `bun run typecheck` | 类型检查(不产出文件) |
248
- | `bun run test` | 编译 + 运行单元测试 |
249
- | `bun run package:vsix` | 打包 VS Code 扩展为 VSIX |
250
- | `bun run check:config-schema` | 验证 `schemas/config.json` 与配置注册表是否同步 |
246
+ | 命令 | 说明 |
247
+ | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
248
+ | `bun run build` | 编译 Pi 侧 TypeScript → `dist/` + Neovim sidecar → `ide-plugins/nvim/bin/` + VS Code bundle → `ide-plugins/vscode/out/` |
249
+ | `bun run typecheck` | 类型检查(不产出文件) |
250
+ | `bun run test` | 编译 + 运行单元测试 |
251
+ | `bun run package:vsix` | 打包 VS Code 扩展为 VSIX |
252
+ | `bun run check:config-schema` | 验证 `schemas/config.json` 与配置注册表是否同步 |
251
253
 
252
254
  ### 本地测试 VS Code 扩展
253
255
 
@@ -264,7 +266,7 @@ pi -e ./src/pi/index.ts
264
266
 
265
267
  ```bash
266
268
  bun run package:vsix
267
- cd vscode && code --install-extension dist/pi-x-ide-$(node -p "require('./package.json').version").vsix
269
+ cd ide-plugins/vscode && code --install-extension dist/pi-x-ide-$(node -p "require('./package.json').version").vsix
268
270
  ```
269
271
 
270
272
  这样安装的扩展在所有 VS Code 窗口中运行,不依赖 F5 Extension Host。
@@ -282,3 +284,7 @@ ls -l ~/.pi/pi-x-ide/lock
282
284
  本项目使用 [Release Please](https://github.com/googleapis/release-please) 和 [Conventional Commits](https://www.conventionalcommits.org/) 来自动化版本管理和发布流程。
283
285
 
284
286
  详见 [RELEASE.md](RELEASE.md)。
287
+
288
+ ## 致谢
289
+
290
+ - [opencode](https://github.com/anomalyco/opencode)
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-x-ide",
3
- "version": "1.12.0",
3
+ "version": "1.13.1",
4
4
  "description": "Pi extension package for IDE selection context integration.",
5
5
  "files": [
6
6
  "dist",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "homepage": "https://github.com/balaenis/pi-x-ide#readme",
28
28
  "workspaces": [
29
- "vscode"
29
+ "ide-plugins/vscode"
30
30
  ],
31
31
  "packageManager": "bun@1.3.14",
32
32
  "engines": {
@@ -35,7 +35,7 @@
35
35
  "type": "commonjs",
36
36
  "main": "./dist/src/pi/index.js",
37
37
  "scripts": {
38
- "typecheck": "tsc -p tsconfig.json --noEmit && bun run --filter './vscode' typecheck",
38
+ "typecheck": "tsc -p tsconfig.json --noEmit && bun run --filter './ide-plugins/vscode' typecheck",
39
39
  "generate:config-schema": "bun run scripts/generate-config-schema.cjs",
40
40
  "check:config-schema": "bun run scripts/generate-config-schema.cjs --check",
41
41
  "test": "bun run check:config-schema && bun run compile && node --test dist/test/*.test.js",
@@ -44,9 +44,9 @@
44
44
  "format": "prettier --write .",
45
45
  "format:check": "prettier --check .",
46
46
  "compile": "tsc -p tsconfig.json",
47
- "compile:vsix": "bun run --filter './vscode' compile",
48
- "sync:vsix-assets": "bun run --filter './vscode' sync:assets",
49
- "package:vsix": "bun run --filter './vscode' package",
47
+ "compile:vsix": "bun run --filter './ide-plugins/vscode' compile",
48
+ "sync:vsix-assets": "bun run --filter './ide-plugins/vscode' sync:assets",
49
+ "package:vsix": "bun run --filter './ide-plugins/vscode' package",
50
50
  "package:nvim-sidecar": "bun run scripts/build-nvim-sidecar.mjs --production",
51
51
  "package:nvim-sidecar:all": "bun run scripts/build-nvim-sidecar.mjs --production --target=all",
52
52
  "build": "bun run compile && bun run compile:vsix && bun run package:nvim-sidecar",
@@ -2,6 +2,8 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.startNvimSidecar = startNvimSidecar;
5
+ // ABOUTME: Runs the Neovim sidecar process that bridges Neovim selections to Pi over WebSocket.
6
+ // ABOUTME: Maintains lock files and contains sidecar message handling failures.
5
7
  const node_readline_1 = require("node:readline");
6
8
  const format_1 = require("../shared/format");
7
9
  const ide_server_1 = require("../shared/ide-server");
@@ -35,6 +37,11 @@ async function startNvimSidecar(options = {}) {
35
37
  };
36
38
  const stdin = options.stdin ?? process.stdin;
37
39
  const stderr = options.stderr ?? process.stderr;
40
+ const stopSafely = (reason) => {
41
+ void stop().catch((error) => {
42
+ stderr.write(`pi-x-ide nvim sidecar: failed to stop after ${reason}: ${errorMessage(error)}\n`);
43
+ });
44
+ };
38
45
  const rl = (0, node_readline_1.createInterface)({ input: stdin });
39
46
  rl.on("line", (line) => {
40
47
  const trimmed = line.trim();
@@ -43,7 +50,9 @@ async function startNvimSidecar(options = {}) {
43
50
  const parsed = (0, sidecar_schema_1.parseJsonLine)(trimmed);
44
51
  const config = (0, sidecar_schema_1.parseSidecarConfig)(parsed);
45
52
  if (config && !("type" in parsed)) {
46
- void applyConfig(state, config, stderr);
53
+ void applyConfig(state, config, stderr).catch((error) => {
54
+ stderr.write(`pi-x-ide nvim sidecar: failed to apply config: ${errorMessage(error)}\n`);
55
+ });
47
56
  return;
48
57
  }
49
58
  const message = (0, sidecar_schema_1.parseNvimSidecarMessage)(parsed);
@@ -51,10 +60,12 @@ async function startNvimSidecar(options = {}) {
51
60
  stderr.write(`pi-x-ide nvim sidecar: ignored malformed message: ${trimmed}\n`);
52
61
  return;
53
62
  }
54
- void handleMessage(state, server, message, stderr, stop);
63
+ void handleMessage(state, server, message, stderr, stop).catch((error) => {
64
+ stderr.write(`pi-x-ide nvim sidecar: failed to handle message: ${errorMessage(error)}\n`);
65
+ });
55
66
  });
56
- rl.on("close", () => void stop());
57
- const cleanup = () => void stop();
67
+ rl.on("close", () => stopSafely("stdin close"));
68
+ const cleanup = () => stopSafely("process signal");
58
69
  process.once("SIGINT", cleanup);
59
70
  process.once("SIGTERM", cleanup);
60
71
  process.once("beforeExit", cleanup);
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../../src/nvim/sidecar.ts"],"names":[],"mappings":";;;AAsCA,4CA8DC;AAnGD,iDAAgD;AAEhD,6CAAsD;AACtD,qDAA0D;AAC1D,mDAO6B;AAC7B,qDAAuH;AAyBhH,KAAK,UAAU,gBAAgB,CAAC,UAA8B,EAAE;IACrE,MAAM,KAAK,GAAiB;QAC1B,gBAAgB,EAAE,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACrE,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,2BAAe,GAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,+BAAkB,CACnC,SAAS,EACT,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAC/C,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAC5B,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAClC,KAAK,CAAC,YAAY,GAAG,IAAA,iCAAqB,EAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,KAAK,CAAC,QAAQ,GAAG,IAAA,6BAAiB,EAAC;QACjC,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;QAC9B,IAAI;QACJ,SAAS;QACT,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACzC,CAAC,CAAC;IACH,MAAM,IAAA,4BAAgB,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAE/F,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,MAAM,IAAA,6BAAiB,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,GAAG,IAAA,+BAAe,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,OAAO,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAK,MAAkC,CAAC,EAAE,CAAC;YAC/D,KAAK,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,wCAAuB,EAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,qDAAqD,OAAO,IAAI,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,KAAK,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAmB,EACnB,MAAuC,EACvC,MAA6B;IAE7B,IAAI,MAAM,CAAC,gBAAgB;QAAE,KAAK,CAAC,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO;IACnD,KAAK,CAAC,QAAQ,GAAG,IAAA,8BAAkB,EAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,IAAA,4BAAgB,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,uDAAuD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,KAAmB,EACnB,MAA0B,EAC1B,OAA2B,EAC3B,MAA6B,EAC7B,IAAyB;IAEzB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClD,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;aACvE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,KAAK,mBAAmB;YACtB,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;YAClC,MAAM,CAAC,SAAS,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,kBAAkB,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;aACjG,CAAC,CAAC;YACH,OAAO;QACT,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClD,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC;YACjC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAA,2BAAkB,EAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,CAAC,SAAS,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;aAClF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,KAAK,mBAAmB;YACtB,MAAM,WAAW,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;YACjF,OAAO;QACT,KAAK,UAAU;YACb,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;IACX,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAoC,QAAW;IACpE,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAsC;IACvE,MAAM,OAAO,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACpD,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;aAC9C,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;aAC1D,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO,CAAC,gBAAgB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClG,CAAC;aAAM,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAA,mCAAkB,EAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,EAAE,gBAAgB;gBAAE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8WAA8W,CAC/W,CAAC;AACJ,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../../src/nvim/sidecar.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ exports.registerIdeCommand = registerIdeCommand;
5
5
  exports.resolveAttachShortcut = resolveAttachShortcut;
6
6
  const config_1 = require("../shared/config");
7
7
  const format_1 = require("../shared/format");
8
+ const safety_1 = require("./safety");
8
9
  const ui_1 = require("./ui");
9
10
  exports.PI_X_IDE_ATTACH_SHORTCUT_ENV = "PI_X_IDE_ATTACH_SHORTCUT";
10
11
  exports.DEFAULT_ATTACH_SHORTCUT = "ctrl+alt+k";
@@ -15,8 +16,10 @@ function registerIdeCommand(pi, runtime, actions, options = {}) {
15
16
  pi.registerShortcut(attachShortcut, {
16
17
  description: "Attach latest IDE selection to the prompt",
17
18
  handler: (ctx) => {
18
- runtime.ctx = ctx;
19
- attachLatest(runtime, ctx);
19
+ (0, safety_1.runPiBoundary)("IDE attach shortcut", runtime, () => {
20
+ runtime.ctx = ctx;
21
+ attachLatest(runtime, ctx);
22
+ }, ctx);
20
23
  },
21
24
  });
22
25
  }
@@ -34,7 +37,7 @@ function registerIdeCommand(pi, runtime, actions, options = {}) {
34
37
  const filtered = subcommands.filter((s) => s.value.startsWith(argumentPrefix));
35
38
  return filtered.length > 0 ? filtered : null;
36
39
  },
37
- handler: async (args, ctx) => {
40
+ handler: (args, ctx) => (0, safety_1.runPiBoundaryAsync)("/ide command", runtime, async () => {
38
41
  runtime.ctx = ctx;
39
42
  const [subcommand] = args.trim().split(/\s+/, 1);
40
43
  switch (subcommand || "") {
@@ -63,7 +66,7 @@ function registerIdeCommand(pi, runtime, actions, options = {}) {
63
66
  default:
64
67
  ctx.ui.notify("Usage: /ide [status|list|auto|off|attach|install]", "warning");
65
68
  }
66
- },
69
+ }, ctx),
67
70
  });
68
71
  }
69
72
  async function showPicker(runtime, actions, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/pi/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/pi/commands.ts"],"names":[],"mappings":"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"}
@@ -30,4 +30,7 @@ export declare class IdeConnection {
30
30
  disconnect(): void;
31
31
  private sendInitialize;
32
32
  private handleMessage;
33
+ private runSocketHandler;
34
+ private emitCallback;
35
+ private reportError;
33
36
  }
@@ -4,9 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.IdeConnection = exports.IdeConnectionTimeoutError = exports.IDE_CONNECT_TIMEOUT_MS = void 0;
7
+ // ABOUTME: Implements the Pi-side WebSocket client that receives IDE selection notifications.
8
+ // ABOUTME: Contains callback dispatch boundaries so IDE messages cannot crash the Pi process.
7
9
  const ws_1 = __importDefault(require("ws"));
8
10
  const protocol_1 = require("../shared/protocol");
9
11
  const schema_1 = require("../shared/schema");
12
+ const errors_1 = require("../shared/errors");
10
13
  const ws_2 = require("../shared/ws");
11
14
  exports.IDE_CONNECT_TIMEOUT_MS = 5_000;
12
15
  class IdeConnectionTimeoutError extends Error {
@@ -43,16 +46,18 @@ class IdeConnection {
43
46
  },
44
47
  });
45
48
  this.socket = socket;
46
- socket.on("message", (raw) => this.handleMessage((0, ws_2.decodeRawData)(raw)));
49
+ socket.on("message", (raw) => this.runSocketHandler("message", () => this.handleMessage((0, ws_2.decodeRawData)(raw))));
47
50
  socket.on("close", (_code, reason) => {
48
- if (this.socket !== socket)
49
- return;
50
- this.socket = undefined;
51
- this.callbacks.onDisconnected?.(reason.toString("utf8") || (this.closedByUser ? "closed" : "disconnected"));
51
+ this.runSocketHandler("close", () => {
52
+ if (this.socket !== socket)
53
+ return;
54
+ this.socket = undefined;
55
+ this.emitCallback("disconnected callback", () => this.callbacks.onDisconnected?.(reason.toString("utf8") || (this.closedByUser ? "closed" : "disconnected")));
56
+ });
52
57
  });
53
58
  socket.on("error", (error) => {
54
59
  if (this.socket === socket)
55
- this.callbacks.onError?.(error);
60
+ this.reportError("websocket error", error);
56
61
  });
57
62
  await new Promise((resolve, reject) => {
58
63
  const timeout = setTimeout(() => {
@@ -110,23 +115,55 @@ class IdeConnection {
110
115
  if (isRpcResponse(parsed)) {
111
116
  const server = getServerInfo(parsed);
112
117
  if (server)
113
- this.callbacks.onConnected?.(server);
118
+ this.emitCallback("connected callback", () => this.callbacks.onConnected?.(server));
114
119
  return;
115
120
  }
116
121
  if (!isNotification(parsed))
117
122
  return;
118
123
  if (parsed.method === "selection_changed" && (0, schema_1.isSelectionChangedParams)(parsed.params)) {
119
- this.callbacks.onSelectionChanged?.(withReceivedAt(parsed.params));
124
+ const params = withReceivedAt(parsed.params);
125
+ this.emitCallback("selection changed callback", () => this.callbacks.onSelectionChanged?.(params));
120
126
  }
121
127
  else if (parsed.method === "selection_cleared" && (0, schema_1.isSelectionClearedParams)(parsed.params)) {
122
- this.callbacks.onSelectionCleared?.(withReceivedAt(parsed.params));
128
+ const params = withReceivedAt(parsed.params);
129
+ this.emitCallback("selection cleared callback", () => this.callbacks.onSelectionCleared?.(params));
123
130
  }
124
131
  else if (parsed.method === "at_mentioned" && (0, schema_1.isAtMentionedParams)(parsed.params)) {
125
132
  const params = withReceivedAt(parsed.params);
126
- this.callbacks.onAtMentioned?.(params);
133
+ this.emitCallback("at mentioned callback", () => this.callbacks.onAtMentioned?.(params));
127
134
  }
128
135
  else if (parsed.method === "diagnostic_fix_requested" && (0, schema_1.isDiagnosticFixRequestedParams)(parsed.params)) {
129
- this.callbacks.onDiagnosticFixRequested?.(withReceivedAt(parsed.params));
136
+ const params = withReceivedAt(parsed.params);
137
+ this.emitCallback("diagnostic fix requested callback", () => this.callbacks.onDiagnosticFixRequested?.(params));
138
+ }
139
+ }
140
+ runSocketHandler(label, action) {
141
+ try {
142
+ action();
143
+ }
144
+ catch (error) {
145
+ this.reportError(`websocket ${label}`, error);
146
+ }
147
+ }
148
+ emitCallback(label, action) {
149
+ try {
150
+ action();
151
+ }
152
+ catch (error) {
153
+ this.reportError(label, error);
154
+ }
155
+ }
156
+ reportError(label, error) {
157
+ const reported = (0, errors_1.toError)(error, label);
158
+ if (!this.callbacks.onError) {
159
+ (0, errors_1.logExtensionError)(label, reported);
160
+ return;
161
+ }
162
+ try {
163
+ this.callbacks.onError(reported);
164
+ }
165
+ catch (callbackError) {
166
+ (0, errors_1.logExtensionError)(`${label} onError callback`, callbackError);
130
167
  }
131
168
  }
132
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/pi/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/pi/connection.ts"],"names":[],"mappings":"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"}