@openeryc/pi-coding-agent 0.75.53 → 0.75.55
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 +24 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session.d.ts +4 -2
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +30 -30
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/mcp/client.d.ts +16 -7
- package/dist/core/mcp/client.d.ts.map +1 -1
- package/dist/core/mcp/client.js +135 -107
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/manager.d.ts +12 -1
- package/dist/core/mcp/manager.d.ts.map +1 -1
- package/dist/core/mcp/manager.js +88 -34
- package/dist/core/mcp/manager.js.map +1 -1
- package/dist/core/mcp/types.d.ts +0 -13
- package/dist/core/mcp/types.d.ts.map +1 -1
- package/dist/core/mcp/types.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +3 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +18 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +360 -427
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +5 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js +7 -3
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.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
|
@@ -659,32 +659,14 @@ export class AgentSession {
|
|
|
659
659
|
const disabledSkills = new Set(this.settingsManager.getDisabledSkills());
|
|
660
660
|
const activeSkills = loadedSkills.filter((s) => !disabledSkills.has(s.name) && !s.disableModelInvocation);
|
|
661
661
|
const loadedContextFiles = this._resourceLoader.getAgentsFiles().agentsFiles;
|
|
662
|
-
// Collect MCP
|
|
663
|
-
|
|
664
|
-
const mcpTools = []
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
if (!def)
|
|
671
|
-
continue;
|
|
672
|
-
// Extract server name from label (mcp.<server>.<tool>)
|
|
673
|
-
const label = def.definition.label ?? "";
|
|
674
|
-
const labelParts = label.split(".");
|
|
675
|
-
const serverName = labelParts.length >= 3 ? labelParts.slice(1, -1).join(".") : label;
|
|
676
|
-
const desc = def.definition.description || `Tool from MCP server "${serverName}"`;
|
|
677
|
-
const existing = mcpServerMap.get(serverName);
|
|
678
|
-
if (existing) {
|
|
679
|
-
existing.push({ name, description: desc });
|
|
680
|
-
}
|
|
681
|
-
else {
|
|
682
|
-
mcpServerMap.set(serverName, [{ name, description: desc }]);
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
for (const [serverName, tools] of mcpServerMap) {
|
|
686
|
-
mcpTools.push({ serverName, tools });
|
|
687
|
-
}
|
|
662
|
+
// Collect MCP tool descriptions grouped by server
|
|
663
|
+
const mcpToolNames = new Set(validToolNames.filter((n) => n.startsWith("mcp_")));
|
|
664
|
+
const mcpTools = (this._mcpManager?.getMcpToolDescriptions() ?? [])
|
|
665
|
+
.map((server) => ({
|
|
666
|
+
...server,
|
|
667
|
+
tools: server.tools.filter((t) => mcpToolNames.has(t.name)),
|
|
668
|
+
}))
|
|
669
|
+
.filter((server) => server.tools.length > 0);
|
|
688
670
|
this._baseSystemPromptOptions = {
|
|
689
671
|
cwd: this._cwd,
|
|
690
672
|
skills: activeSkills,
|
|
@@ -1701,13 +1683,15 @@ export class AgentSession {
|
|
|
1701
1683
|
this._mcpManager = null;
|
|
1702
1684
|
}
|
|
1703
1685
|
this._mcpManager = new MCPManager();
|
|
1686
|
+
// Suppress per-server refresh during bulk startup; refresh once after
|
|
1687
|
+
let batchInit = true;
|
|
1704
1688
|
this._mcpManager.onStatusChange = (_serverName, status) => {
|
|
1705
|
-
if (status === "connected") {
|
|
1706
|
-
// A server reconnected — refresh the tool registry
|
|
1689
|
+
if (!batchInit && status === "connected") {
|
|
1707
1690
|
this._refreshMcpTools();
|
|
1708
1691
|
}
|
|
1709
1692
|
};
|
|
1710
1693
|
await this._mcpManager.start(mcpServers);
|
|
1694
|
+
batchInit = false;
|
|
1711
1695
|
this._refreshMcpTools();
|
|
1712
1696
|
}
|
|
1713
1697
|
_refreshMcpTools() {
|
|
@@ -1719,8 +1703,24 @@ export class AgentSession {
|
|
|
1719
1703
|
this._refreshToolRegistry();
|
|
1720
1704
|
}
|
|
1721
1705
|
}
|
|
1722
|
-
/** Reload MCP servers after config changes (e.g. toggle enabled).
|
|
1723
|
-
|
|
1706
|
+
/** Reload MCP servers after config changes (e.g. toggle enabled).
|
|
1707
|
+
* If changedServer is provided, only that server is started/stopped
|
|
1708
|
+
* instead of restarting all servers. */
|
|
1709
|
+
async reloadMcp(changedServer) {
|
|
1710
|
+
if (changedServer && this._mcpManager) {
|
|
1711
|
+
const configs = this.settingsManager.getMcpServers();
|
|
1712
|
+
const config = configs?.[changedServer];
|
|
1713
|
+
if (!config || config.enabled === false) {
|
|
1714
|
+
// Server was disabled — stop it
|
|
1715
|
+
await this._mcpManager.stopServer(changedServer);
|
|
1716
|
+
}
|
|
1717
|
+
else {
|
|
1718
|
+
// Server was enabled — start it
|
|
1719
|
+
await this._mcpManager.startServer(changedServer, config);
|
|
1720
|
+
}
|
|
1721
|
+
this._refreshMcpTools();
|
|
1722
|
+
return;
|
|
1723
|
+
}
|
|
1724
1724
|
await this._initMcp();
|
|
1725
1725
|
}
|
|
1726
1726
|
/** Get MCP connection statuses (for UI display) */
|