@openeryc/pi-coding-agent 0.75.33 → 0.75.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +30 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/mcp/manager.d.ts.map +1 -1
- package/dist/core/mcp/manager.js +5 -1
- package/dist/core/mcp/manager.js.map +1 -1
- package/dist/core/mcp/types.d.ts +1 -0
- package/dist/core/mcp/types.d.ts.map +1 -1
- package/dist/core/mcp/types.js.map +1 -1
- package/dist/core/settings-manager.d.ts +3 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +10 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts +8 -0
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +36 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +42 -9
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
@@ -2021,6 +2021,12 @@ export class InteractiveMode {
|
|
|
2021
2021
|
this.editor.setText("");
|
|
2022
2022
|
return;
|
|
2023
2023
|
}
|
|
2024
|
+
if (text.startsWith("/mcp ")) {
|
|
2025
|
+
const name = text.slice(5).trim();
|
|
2026
|
+
this.handleMcpToggle(name);
|
|
2027
|
+
this.editor.setText("");
|
|
2028
|
+
return;
|
|
2029
|
+
}
|
|
2024
2030
|
if (text === "/usage") {
|
|
2025
2031
|
this.editor.setText("");
|
|
2026
2032
|
await this.handleUsageCommand();
|
|
@@ -4404,7 +4410,6 @@ export class InteractiveMode {
|
|
|
4404
4410
|
const mcpTools = allTools.filter((t) => t.name.startsWith("mcp_"));
|
|
4405
4411
|
const toolsByServer = new Map();
|
|
4406
4412
|
for (const tool of mcpTools) {
|
|
4407
|
-
// mcp_<server>_<tool> - server name is everything between the first two underscores
|
|
4408
4413
|
const prefix = "mcp_";
|
|
4409
4414
|
const rest = tool.name.slice(prefix.length);
|
|
4410
4415
|
const secondUnderscore = rest.indexOf("_");
|
|
@@ -4423,26 +4428,39 @@ export class InteractiveMode {
|
|
|
4423
4428
|
this.ui.requestRender();
|
|
4424
4429
|
return;
|
|
4425
4430
|
}
|
|
4426
|
-
let info = `${theme.bold("MCP Servers")}\n
|
|
4431
|
+
let info = `${theme.bold("MCP Servers")}\n`;
|
|
4432
|
+
info += `${theme.fg("dim", "Use /mcp <name> to toggle a server on/off")}\n\n`;
|
|
4433
|
+
let idx = 0;
|
|
4427
4434
|
for (const [serverName, config] of Object.entries(configuredServers)) {
|
|
4428
4435
|
const tools = toolsByServer.get(serverName) ?? [];
|
|
4436
|
+
const disabled = config.enabled === false;
|
|
4429
4437
|
const connected = tools.length > 0;
|
|
4430
|
-
|
|
4438
|
+
let status;
|
|
4439
|
+
if (disabled) {
|
|
4440
|
+
status = theme.fg("muted", "disabled");
|
|
4441
|
+
}
|
|
4442
|
+
else if (connected) {
|
|
4443
|
+
status = theme.fg("success", "connected");
|
|
4444
|
+
}
|
|
4445
|
+
else {
|
|
4446
|
+
status = theme.fg("warning", "disconnected");
|
|
4447
|
+
}
|
|
4448
|
+
const toggleHint = disabled ? "[/mcp " + serverName + " to enable]" : "[/mcp " + serverName + " to disable]";
|
|
4431
4449
|
const transport = config.url ? (config.transport ?? "sse") : config.command ? "stdio" : "unknown";
|
|
4432
|
-
info += `${theme.bold(serverName)} ${status}\n`;
|
|
4433
|
-
info += `${theme.fg("dim", `
|
|
4450
|
+
info += `${theme.bold(++idx + ". " + serverName)} ${status} ${theme.fg("dim", toggleHint)}\n`;
|
|
4451
|
+
info += `${theme.fg("dim", ` Transport: ${transport}`)}\n`;
|
|
4434
4452
|
if (config.command) {
|
|
4435
4453
|
const cmd = config.args ? `${config.command} ${config.args.join(" ")}` : config.command;
|
|
4436
|
-
info += `${theme.fg("dim", `
|
|
4454
|
+
info += `${theme.fg("dim", ` Command: ${cmd}`)}\n`;
|
|
4437
4455
|
}
|
|
4438
4456
|
if (config.url) {
|
|
4439
|
-
info += `${theme.fg("dim", `
|
|
4457
|
+
info += `${theme.fg("dim", ` URL: ${config.url}`)}\n`;
|
|
4440
4458
|
}
|
|
4441
4459
|
if (connected) {
|
|
4442
|
-
info += `${theme.fg("dim", `
|
|
4460
|
+
info += `${theme.fg("dim", ` Tools: ${tools.length}`)}\n`;
|
|
4443
4461
|
for (const tool of tools) {
|
|
4444
4462
|
const desc = tool.description ? ` - ${tool.description.split("\n")[0].slice(0, 80)}` : "";
|
|
4445
|
-
info += `${theme.fg("dim", `
|
|
4463
|
+
info += `${theme.fg("dim", ` ${tool.name}${desc}`)}\n`;
|
|
4446
4464
|
}
|
|
4447
4465
|
}
|
|
4448
4466
|
info += "\n";
|
|
@@ -4450,6 +4468,21 @@ export class InteractiveMode {
|
|
|
4450
4468
|
this.chatContainer.addChild(new Text(info, 1, 0));
|
|
4451
4469
|
this.ui.requestRender();
|
|
4452
4470
|
}
|
|
4471
|
+
async handleMcpToggle(serverName) {
|
|
4472
|
+
const mcpServers = this.settingsManager.getMcpServers();
|
|
4473
|
+
if (!mcpServers || !mcpServers[serverName]) {
|
|
4474
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
4475
|
+
this.chatContainer.addChild(new Text(theme.fg("warning", `MCP server "${serverName}" not found.`), 1, 0));
|
|
4476
|
+
this.ui.requestRender();
|
|
4477
|
+
return;
|
|
4478
|
+
}
|
|
4479
|
+
const currentEnabled = mcpServers[serverName].enabled !== false;
|
|
4480
|
+
this.settingsManager.setMcpServerEnabled(serverName, !currentEnabled);
|
|
4481
|
+
await this.session.reloadMcp();
|
|
4482
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
4483
|
+
this.chatContainer.addChild(new Text(`${theme.bold(serverName)} ${theme.fg(currentEnabled ? "muted" : "success", currentEnabled ? "disabled" : "enabled")}`, 1, 0));
|
|
4484
|
+
this.handleMcpCommand();
|
|
4485
|
+
}
|
|
4453
4486
|
async handleUsageCommand() {
|
|
4454
4487
|
this.showStatus("Loading usage stats...");
|
|
4455
4488
|
this.ui.requestRender();
|