@openeryc/pi-coding-agent 0.75.42 → 0.75.43

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 (34) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/cli.js +0 -0
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +3 -1
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/settings-manager.d.ts +3 -0
  7. package/dist/core/settings-manager.d.ts.map +1 -1
  8. package/dist/core/settings-manager.js +16 -0
  9. package/dist/core/settings-manager.js.map +1 -1
  10. package/dist/modes/interactive/components/mcp-selector.d.ts +8 -5
  11. package/dist/modes/interactive/components/mcp-selector.d.ts.map +1 -1
  12. package/dist/modes/interactive/components/mcp-selector.js +22 -13
  13. package/dist/modes/interactive/components/mcp-selector.js.map +1 -1
  14. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  15. package/dist/modes/interactive/interactive-mode.js +45 -30
  16. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  17. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  18. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  19. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  20. package/examples/extensions/sandbox/package-lock.json +2 -2
  21. package/examples/extensions/sandbox/package.json +1 -1
  22. package/examples/extensions/with-deps/package-lock.json +2 -2
  23. package/examples/extensions/with-deps/package.json +1 -1
  24. package/npm-shrinkwrap.json +2 -2
  25. package/package.json +4 -4
  26. package/dist/core/export-html/template.css +0 -1066
  27. package/dist/core/export-html/template.html +0 -55
  28. package/dist/core/export-html/template.js +0 -1848
  29. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  30. package/dist/core/export-html/vendor/marked.min.js +0 -6
  31. package/dist/modes/interactive/assets/clankolas.png +0 -0
  32. package/dist/modes/interactive/theme/dark.json +0 -86
  33. package/dist/modes/interactive/theme/light.json +0 -85
  34. package/dist/modes/interactive/theme/theme-schema.json +0 -335
@@ -4419,26 +4419,33 @@ export class InteractiveMode {
4419
4419
  }
4420
4420
  showMcpSelector(highlightServer) {
4421
4421
  const configured = this.settingsManager.getMcpServers();
4422
- const allTools = this.session.getAllTools();
4423
- const mcpTools = allTools.filter((t) => t.name.startsWith("mcp_"));
4424
- const toolCountByServer = new Map();
4425
- for (const tool of mcpTools) {
4426
- const rest = tool.name.slice(4);
4427
- const idx = rest.indexOf("_");
4428
- const srv = idx === -1 ? rest : rest.slice(0, idx);
4429
- toolCountByServer.set(srv, (toolCountByServer.get(srv) ?? 0) + 1);
4430
- }
4431
- const items = (configured ? Object.entries(configured) : []).map(([name, cfg]) => {
4432
- const disabled = cfg.enabled === false;
4433
- const connected = (toolCountByServer.get(name) ?? 0) > 0;
4434
- const transport = cfg.url ? (cfg.transport ?? "sse") : cfg.command ? "stdio" : "unknown";
4435
- return {
4436
- name,
4437
- status: disabled ? "disabled" : connected ? "connected" : "disconnected",
4438
- toolCount: toolCountByServer.get(name) ?? 0,
4439
- transport,
4440
- };
4441
- });
4422
+ const buildItems = () => {
4423
+ const allTools = this.session.getAllTools();
4424
+ const mcpTools = allTools.filter((t) => t.name.startsWith("mcp_"));
4425
+ const cnt = new Map();
4426
+ for (const t of mcpTools) {
4427
+ const rest = t.name.slice(4);
4428
+ const idx = rest.indexOf("_");
4429
+ const srv = idx === -1 ? rest : rest.slice(0, idx);
4430
+ cnt.set(srv, (cnt.get(srv) ?? 0) + 1);
4431
+ }
4432
+ return (configured ? Object.entries(configured) : []).map(([name, c]) => {
4433
+ const disabled = c.enabled === false;
4434
+ const connected = (cnt.get(name) ?? 0) > 0;
4435
+ const transport = c.url ? (c.transport ?? "sse") : c.command ? "stdio" : "unknown";
4436
+ return {
4437
+ name,
4438
+ status: disabled
4439
+ ? "disabled"
4440
+ : connected
4441
+ ? "connected"
4442
+ : "disconnected",
4443
+ toolCount: cnt.get(name) ?? 0,
4444
+ transport,
4445
+ };
4446
+ });
4447
+ };
4448
+ const items = buildItems();
4442
4449
  if (items.length === 0) {
4443
4450
  this.chatContainer.addChild(new Spacer(1));
4444
4451
  this.chatContainer.addChild(new Text(`${theme.bold("MCP Servers")}\n\n${theme.fg("dim", "No MCP servers configured. Add 'mcpServers' to settings.json.")}`, 1, 0));
@@ -4454,15 +4461,14 @@ export class InteractiveMode {
4454
4461
  }
4455
4462
  }
4456
4463
  this.showSelector((done) => {
4457
- const selector = new McpSelectorComponent(items, async (name) => {
4464
+ const selector = new McpSelectorComponent("MCP Servers", items, async (name) => {
4458
4465
  const server = configured?.[name];
4459
4466
  if (!server)
4460
4467
  return;
4461
4468
  const currentEnabled = server.enabled !== false;
4462
4469
  this.settingsManager.setMcpServerEnabled(name, !currentEnabled);
4463
4470
  await this.session.reloadMcp();
4464
- done();
4465
- this.showStatus(`${name} ${currentEnabled ? "disabled" : "enabled"}`);
4471
+ selector.setItems(buildItems());
4466
4472
  }, () => done());
4467
4473
  return { component: selector, focus: selector };
4468
4474
  });
@@ -4475,14 +4481,23 @@ export class InteractiveMode {
4475
4481
  this.ui.requestRender();
4476
4482
  return;
4477
4483
  }
4484
+ const buildItems = () => {
4485
+ const disabledSkills = this.settingsManager.getDisabledSkills();
4486
+ return skills.map((s) => {
4487
+ const isDisabled = disabledSkills.includes(s.name) || s.disableModelInvocation;
4488
+ return {
4489
+ name: s.name,
4490
+ status: isDisabled ? "disabled" : "connected",
4491
+ toolCount: 0,
4492
+ transport: s.description.length > 60 ? `${s.description.slice(0, 57)}...` : s.description,
4493
+ };
4494
+ });
4495
+ };
4478
4496
  this.showSelector((done) => {
4479
- const selector = new McpSelectorComponent(skills.map((s) => ({
4480
- name: s.name,
4481
- status: s.disableModelInvocation ? "disabled" : "connected",
4482
- toolCount: 0,
4483
- transport: s.description.slice(0, 60),
4484
- })), (_name) => {
4485
- done();
4497
+ const selector = new McpSelectorComponent("Skills", buildItems(), (name) => {
4498
+ this.settingsManager.toggleSkillDisabled(name);
4499
+ this.session.setActiveToolsByName(this.session.getActiveToolNames());
4500
+ selector.setItems(buildItems());
4486
4501
  }, () => done());
4487
4502
  return { component: selector, focus: selector };
4488
4503
  });