pi-x-ide 1.11.1 → 1.13.0

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 (47) hide show
  1. package/README.md +15 -13
  2. package/README.zh-CN.md +15 -13
  3. package/dist/package.json +1 -1
  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.d.ts +9 -2
  19. package/dist/src/pi/ui.js +130 -35
  20. package/dist/src/pi/ui.js.map +1 -1
  21. package/dist/src/pi/zed.js +51 -42
  22. package/dist/src/pi/zed.js.map +1 -1
  23. package/dist/src/shared/errors.d.ts +5 -0
  24. package/dist/src/shared/errors.js +49 -0
  25. package/dist/src/shared/errors.js.map +1 -0
  26. package/dist/src/shared/format.d.ts +4 -4
  27. package/dist/src/shared/format.js +24 -18
  28. package/dist/src/shared/format.js.map +1 -1
  29. package/dist/src/shared/ide-server.d.ts +2 -0
  30. package/dist/src/shared/ide-server.js +63 -8
  31. package/dist/src/shared/ide-server.js.map +1 -1
  32. package/dist/test/connection.test.js +74 -5
  33. package/dist/test/connection.test.js.map +1 -1
  34. package/dist/test/shared.test.js +91 -5
  35. package/dist/test/shared.test.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/nvim/sidecar.ts +15 -4
  38. package/src/pi/commands.ts +48 -32
  39. package/src/pi/connection.ts +49 -10
  40. package/src/pi/context.ts +41 -26
  41. package/src/pi/index.ts +70 -45
  42. package/src/pi/safety.ts +38 -0
  43. package/src/pi/ui.ts +147 -34
  44. package/src/pi/zed.ts +51 -43
  45. package/src/shared/errors.ts +43 -0
  46. package/src/shared/format.ts +25 -22
  47. package/src/shared/ide-server.ts +63 -9
package/README.md CHANGED
@@ -95,10 +95,10 @@ Pi auto-loads `pi-x-ide` and connects to your IDE. The TUI should display `IDE:
95
95
  Open a file in your IDE and select some text. The widget should update in real time:
96
96
 
97
97
  ```
98
- IDE: vscode ✓ src/foo.ts#L10,20 pending
98
+ IDE: vscode ✓ src/foo.ts#L10-L20 pending
99
99
  ```
100
100
 
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`.
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-L20`.
102
102
 
103
103
  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
104
 
@@ -128,10 +128,9 @@ Pi also registers `Ctrl+Alt+K` in the TUI as a shortcut for `/ide attach` by def
128
128
 
129
129
  #### VS Code
130
130
 
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. |
131
+ | Key | Type | Default | Description |
132
+ | ---------------- | --------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
133
+ | `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
134
 
136
135
  #### Zed
137
136
 
@@ -154,7 +153,6 @@ When Pi runs in WSL and Zed runs as a Windows app, pi-x-ide normalizes Windows p
154
153
  require("pi_x_ide").setup({
155
154
  enabled = true,
156
155
  keymap = "<C-A-k>",
157
- range_format = "comma", -- or "dash"
158
156
  debounce_ms = 150,
159
157
  -- sidecar_cmd = { "node", "/absolute/path/to/pi-x-ide-nvim-sidecar.cjs" },
160
158
  -- (defaults to the platform binary; falls back to node + cjs if no binary found)
@@ -168,12 +166,12 @@ when no binary matches.
168
166
 
169
167
  **Commands:**
170
168
 
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` |
169
+ | Command | Behavior |
170
+ | --------------- | -------------------------------------------------------------------- |
171
+ | `:PiXIdeStart` | Start the Neovim sidecar and write the lock file |
172
+ | `:PiXIdeStop` | Stop the sidecar and remove the lock file |
173
+ | `:PiXIdeStatus` | Show whether the sidecar is running |
174
+ | `:PiXIdeAttach` | Attach the current file or selection to Pi as `@relative/path#Lx-Ly` |
177
175
 
178
176
  #### Pi-side Environment Variables
179
177
 
@@ -284,3 +282,7 @@ You should see a file like `vscode-12345-48123.lock`. If not, run **Developer: R
284
282
  This project uses [Release Please](https://github.com/googleapis/release-please) with [Conventional Commits](https://www.conventionalcommits.org/) to automate versioning and publishing.
285
283
 
286
284
  See [RELEASE.md](RELEASE.md) for the full release guide.
285
+
286
+ ## Acknowledgments
287
+
288
+ - [opencode](https://github.com/anomalyco/opencode)
package/README.zh-CN.md CHANGED
@@ -94,10 +94,10 @@ Pi 自动加载 `pi-x-ide` 并连接 IDE。TUI 底部应显示 `IDE: vscode ✓`
94
94
  在 IDE 中打开文件并选中文本,widget 应实时更新:
95
95
 
96
96
  ```text
97
- IDE: vscode ✓ src/foo.ts#L10,20 pending
97
+ IDE: vscode ✓ src/foo.ts#L10-L20 pending
98
98
  ```
99
99
 
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`。
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-L20`。
101
101
 
102
102
  在 Pi 中输入对话提示并提交,选中文本会作为 LLM 上下文注入(不写入 session 历史)。提交后 widget 显示 `sent`。
103
103
 
@@ -127,10 +127,9 @@ Pi 默认也会在 TUI 中注册 `Ctrl+Alt+K`,作为 `/ide attach` 的快捷
127
127
 
128
128
  #### VS Code
129
129
 
130
- | 键 | 类型 | 默认值 | 说明 |
131
- | -------------------- | --------------------- | --------- | --------------------------------------------------------------------------------------- |
132
- | `piXIde.rangeFormat` | `"comma"` \| `"dash"` | `"comma"` | 手动快捷键生成的文件引用格式 |
133
- | `piXIde.useTmux` | `boolean` | `false` | 通过终端图标用 `tmux` 打开 Pi。每次点击都会创建一个新 session,终端 detach 后自动销毁。 |
130
+ | 键 | 类型 | 默认值 | 说明 |
131
+ | ---------------- | --------- | ------- | --------------------------------------------------------------------------------------- |
132
+ | `piXIde.useTmux` | `boolean` | `false` | 通过终端图标用 `tmux` 打开 Pi。每次点击都会创建一个新 session,终端 detach 后自动销毁。 |
134
133
 
135
134
  #### Zed
136
135
 
@@ -153,7 +152,6 @@ Pi 默认也会在 TUI 中注册 `Ctrl+Alt+K`,作为 `/ide attach` 的快捷
153
152
  require("pi_x_ide").setup({
154
153
  enabled = true,
155
154
  keymap = "<C-A-k>",
156
- range_format = "comma", -- 或 "dash"
157
155
  debounce_ms = 150,
158
156
  -- sidecar_cmd = { "node", "/absolute/path/to/pi-x-ide-nvim-sidecar.cjs" },
159
157
  -- (默认使用平台二进制文件;找不到时降级到 node + cjs)
@@ -166,12 +164,12 @@ require("pi_x_ide").setup({
166
164
 
167
165
  **命令:**
168
166
 
169
- | 命令 | 行为 |
170
- | --------------- | ---------------------------------------------------- |
171
- | `:PiXIdeStart` | 启动 Neovim sidecar 并写入 lock file |
172
- | `:PiXIdeStop` | 停止 sidecar 并移除 lock file |
173
- | `:PiXIdeStatus` | 显示 sidecar 是否正在运行 |
174
- | `:PiXIdeAttach` | 将当前文件或选区作为 `@relative/path#Lx,y` 附加到 Pi |
167
+ | 命令 | 行为 |
168
+ | --------------- | ----------------------------------------------------- |
169
+ | `:PiXIdeStart` | 启动 Neovim sidecar 并写入 lock file |
170
+ | `:PiXIdeStop` | 停止 sidecar 并移除 lock file |
171
+ | `:PiXIdeStatus` | 显示 sidecar 是否正在运行 |
172
+ | `:PiXIdeAttach` | 将当前文件或选区作为 `@relative/path#Lx-Ly` 附加到 Pi |
175
173
 
176
174
  #### Pi 侧环境变量
177
175
 
@@ -282,3 +280,7 @@ ls -l ~/.pi/pi-x-ide/lock
282
280
  本项目使用 [Release Please](https://github.com/googleapis/release-please) 和 [Conventional Commits](https://www.conventionalcommits.org/) 来自动化版本管理和发布流程。
283
281
 
284
282
  详见 [RELEASE.md](RELEASE.md)。
283
+
284
+ ## 致谢
285
+
286
+ - [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.11.1",
3
+ "version": "1.13.0",
4
4
  "description": "Pi extension package for IDE selection context integration.",
5
5
  "files": [
6
6
  "dist",
@@ -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":"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"}
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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"}
@@ -5,10 +5,10 @@ exports.setLatestSelection = setLatestSelection;
5
5
  exports.clearLatestSelection = clearLatestSelection;
6
6
  const format_1 = require("../shared/format");
7
7
  const diagnostics_1 = require("./diagnostics");
8
+ const safety_1 = require("./safety");
8
9
  const ui_1 = require("./ui");
9
- const CONTEXT_MARKER = "pi-x-ide/editor-context";
10
10
  function registerContextHandlers(pi, runtime) {
11
- pi.on("before_agent_start", (_event, ctx) => {
11
+ pi.on("before_agent_start", (_event, ctx) => (0, safety_1.runPiBoundary)("Pi before_agent_start", runtime, () => {
12
12
  runtime.ctx = ctx;
13
13
  if (!runtime.enabled)
14
14
  return;
@@ -17,10 +17,10 @@ function registerContextHandlers(pi, runtime) {
17
17
  if (runtime.attachState !== "pending")
18
18
  return;
19
19
  runtime.turnSelection = runtime.latestSelection;
20
- });
20
+ }, ctx));
21
21
  // Merge the active editor context into the submitted user prompt rather than
22
22
  // adding a separate extension message.
23
- pi.on("message_end", (event, ctx) => {
23
+ pi.on("message_end", (event, ctx) => (0, safety_1.runPiBoundary)("Pi message_end", runtime, () => {
24
24
  runtime.ctx = ctx;
25
25
  if (!runtime.enabled || !runtime.turnSelection)
26
26
  return;
@@ -30,13 +30,13 @@ function registerContextHandlers(pi, runtime) {
30
30
  runtime.turnSelection = undefined;
31
31
  return;
32
32
  }
33
- const text = `${(0, format_1.formatEditorContext)(runtime.turnSelection)}\n<!-- ${CONTEXT_MARKER} -->\n`;
33
+ const text = `${(0, format_1.formatEditorContext)(runtime.turnSelection)}\n`;
34
34
  const message = mergeIntoUserMessage(event.message, text);
35
35
  runtime.attachState = "sent";
36
36
  runtime.turnSelection = undefined;
37
37
  (0, ui_1.updateIdeUi)(runtime, ctx);
38
38
  return { message };
39
- });
39
+ }, ctx));
40
40
  }
41
41
  function setLatestSelection(runtime, snapshot, ctx) {
42
42
  const key = (0, format_1.snapshotKey)(snapshot);
@@ -65,6 +65,6 @@ function normalizeUserContent(content) {
65
65
  }
66
66
  function messageContainsMarker(message) {
67
67
  const serialized = JSON.stringify(message);
68
- return serialized.includes(CONTEXT_MARKER) || serialized.includes(diagnostics_1.DIAGNOSTIC_CONTEXT_MARKER);
68
+ return serialized.includes(`<${format_1.SYSTEM_REMINDER_TAG}>`) || serialized.includes(diagnostics_1.DIAGNOSTIC_CONTEXT_MARKER);
69
69
  }
70
70
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/pi/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/pi/context.ts"],"names":[],"mappings":"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"}