pi-x-ide 1.12.0 → 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.
- package/README.md +15 -13
- package/README.zh-CN.md +15 -13
- package/dist/package.json +1 -1
- package/dist/src/nvim/sidecar.js +15 -4
- package/dist/src/nvim/sidecar.js.map +1 -1
- package/dist/src/pi/commands.js +7 -4
- package/dist/src/pi/commands.js.map +1 -1
- package/dist/src/pi/connection.d.ts +3 -0
- package/dist/src/pi/connection.js +48 -11
- package/dist/src/pi/connection.js.map +1 -1
- package/dist/src/pi/context.js +7 -7
- package/dist/src/pi/context.js.map +1 -1
- package/dist/src/pi/index.js +33 -28
- package/dist/src/pi/index.js.map +1 -1
- package/dist/src/pi/safety.d.ts +7 -0
- package/dist/src/pi/safety.js +20 -0
- package/dist/src/pi/safety.js.map +1 -0
- package/dist/src/pi/ui.js +55 -15
- package/dist/src/pi/ui.js.map +1 -1
- package/dist/src/pi/zed.js +51 -42
- package/dist/src/pi/zed.js.map +1 -1
- package/dist/src/shared/errors.d.ts +5 -0
- package/dist/src/shared/errors.js +49 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/format.d.ts +4 -4
- package/dist/src/shared/format.js +24 -18
- package/dist/src/shared/format.js.map +1 -1
- package/dist/src/shared/ide-server.d.ts +2 -0
- package/dist/src/shared/ide-server.js +63 -8
- package/dist/src/shared/ide-server.js.map +1 -1
- package/dist/test/connection.test.js +74 -5
- package/dist/test/connection.test.js.map +1 -1
- package/dist/test/shared.test.js +91 -5
- package/dist/test/shared.test.js.map +1 -1
- package/package.json +1 -1
- package/src/nvim/sidecar.ts +15 -4
- package/src/pi/commands.ts +48 -32
- package/src/pi/connection.ts +49 -10
- package/src/pi/context.ts +41 -26
- package/src/pi/index.ts +70 -45
- package/src/pi/safety.ts +38 -0
- package/src/pi/ui.ts +85 -42
- package/src/pi/zed.ts +51 -43
- package/src/shared/errors.ts +43 -0
- package/src/shared/format.ts +25 -22
- 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
|
|
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
|
|
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
|
|
132
|
-
|
|
|
133
|
-
| `piXIde.
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
package/dist/src/nvim/sidecar.js
CHANGED
|
@@ -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", () =>
|
|
57
|
-
const cleanup = () =>
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../../src/nvim/sidecar.ts"],"names":[],"mappings":"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"}
|
package/dist/src/pi/commands.js
CHANGED
|
@@ -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
|
-
|
|
19
|
-
|
|
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:
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/pi/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;;;;AAAA,4CAA2B;AAC3B,iDAU4B;AAC5B,6CAK0B;AAC1B,qCAA6C;AAEhC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAE5C,MAAa,yBAA0B,SAAQ,KAAK;IAC7B;IAArB,YAAqB,SAA4B;QAC/C,KAAK,CAAC,2BAA2B,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QADtF,cAAS,GAAT,SAAS,CAAmB;QAE/C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AALD,8DAKC;AAYD,MAAa,aAAa;IAMb;IACQ;IACA;IAPX,MAAM,CAAa;IACnB,MAAM,GAAG,CAAC,CAAC;IACX,YAAY,GAAG,KAAK,CAAC;IAE7B,YACW,SAA4B,EACpB,GAAW,EACX,SAAiC;QAFzC,cAAS,GAAT,SAAS,CAAmB;QACpB,QAAG,GAAH,GAAG,CAAQ;QACX,cAAS,GAAT,SAAS,CAAwB;IACjD,CAAC;IAEJ,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,YAAS,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,8BAAsB;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,YAAS,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YAC7D,gBAAgB,EAAE,SAAS,GAAG,KAAK;YACnC,OAAO,EAAE;gBACP,CAAC,sBAAW,CAAC,EAAE,IAAI,CAAC,SAAS;aAC9B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAA,kBAAa,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/pi/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/src/pi/context.js
CHANGED
|
@@ -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
|
|
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(
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/pi/context.ts"],"names":[],"mappings":"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"}
|