@openeryc/pi-coding-agent 0.75.54 → 0.75.56

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 (74) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +4 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/agent-session.d.ts.map +1 -1
  6. package/dist/core/agent-session.js +11 -26
  7. package/dist/core/agent-session.js.map +1 -1
  8. package/dist/core/fetch-openai-models.d.ts +25 -0
  9. package/dist/core/fetch-openai-models.d.ts.map +1 -0
  10. package/dist/core/fetch-openai-models.js +107 -0
  11. package/dist/core/fetch-openai-models.js.map +1 -0
  12. package/dist/core/mcp/client.d.ts +16 -7
  13. package/dist/core/mcp/client.d.ts.map +1 -1
  14. package/dist/core/mcp/client.js +135 -107
  15. package/dist/core/mcp/client.js.map +1 -1
  16. package/dist/core/mcp/manager.d.ts +8 -1
  17. package/dist/core/mcp/manager.d.ts.map +1 -1
  18. package/dist/core/mcp/manager.js +56 -33
  19. package/dist/core/mcp/manager.js.map +1 -1
  20. package/dist/core/mcp/types.d.ts +0 -13
  21. package/dist/core/mcp/types.d.ts.map +1 -1
  22. package/dist/core/mcp/types.js.map +1 -1
  23. package/dist/core/model-registry.d.ts +112 -0
  24. package/dist/core/model-registry.d.ts.map +1 -1
  25. package/dist/core/model-registry.js +99 -2
  26. package/dist/core/model-registry.js.map +1 -1
  27. package/dist/core/package-manager.d.ts.map +1 -1
  28. package/dist/core/package-manager.js +3 -1
  29. package/dist/core/package-manager.js.map +1 -1
  30. package/dist/core/session-manager.d.ts.map +1 -1
  31. package/dist/core/session-manager.js +1 -1
  32. package/dist/core/session-manager.js.map +1 -1
  33. package/dist/core/settings-manager.d.ts +4 -0
  34. package/dist/core/settings-manager.d.ts.map +1 -1
  35. package/dist/core/settings-manager.js +12 -0
  36. package/dist/core/settings-manager.js.map +1 -1
  37. package/dist/core/slash-commands.d.ts.map +1 -1
  38. package/dist/core/slash-commands.js +2 -2
  39. package/dist/core/slash-commands.js.map +1 -1
  40. package/dist/modes/interactive/components/index.d.ts +1 -1
  41. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  42. package/dist/modes/interactive/components/index.js +1 -1
  43. package/dist/modes/interactive/components/index.js.map +1 -1
  44. package/dist/modes/interactive/components/model-hub.d.ts +115 -0
  45. package/dist/modes/interactive/components/model-hub.d.ts.map +1 -0
  46. package/dist/modes/interactive/components/model-hub.js +753 -0
  47. package/dist/modes/interactive/components/model-hub.js.map +1 -0
  48. package/dist/modes/interactive/components/model-selector.d.ts +2 -44
  49. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  50. package/dist/modes/interactive/components/model-selector.js +2 -275
  51. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  52. package/dist/modes/interactive/interactive-mode.d.ts +22 -2
  53. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  54. package/dist/modes/interactive/interactive-mode.js +666 -557
  55. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  56. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  57. package/dist/modes/rpc/rpc-client.js +5 -1
  58. package/dist/modes/rpc/rpc-client.js.map +1 -1
  59. package/dist/utils/sleep.d.ts.map +1 -1
  60. package/dist/utils/sleep.js +7 -3
  61. package/dist/utils/sleep.js.map +1 -1
  62. package/dist/utils/tools-manager.d.ts.map +1 -1
  63. package/dist/utils/tools-manager.js.map +1 -1
  64. package/docs/models.md +20 -0
  65. package/docs/providers.md +13 -0
  66. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  67. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  68. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  69. package/examples/extensions/sandbox/package-lock.json +2 -2
  70. package/examples/extensions/sandbox/package.json +1 -1
  71. package/examples/extensions/with-deps/package-lock.json +2 -2
  72. package/examples/extensions/with-deps/package.json +1 -1
  73. package/npm-shrinkwrap.json +12 -12
  74. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.75.56] - 2026-07-11
4
+
5
+ ### Added
6
+ - Unified model hub at `/model` (and `Ctrl+L`) with Select / Cycle / Manage tabs: grouped model picking with recent models, cycle whitelist management, and interactive custom provider management.
7
+ - OpenAI-compatible `/login` flow discovers models via `GET {baseUrl}/models`, uses human-readable provider ids, and falls back to selecting the first available model when no provider default exists.
8
+ - `models.json` can be written from the TUI Manage tab (`upsertProviderInModelsJson` / `removeProviderFromModelsJson`).
9
+ - Settings store `recentModels` (most-recent first, max 10) and update on model select/cycle.
10
+
11
+ ### Changed
12
+ - `/scoped-models` is now an alias that opens the model hub Cycle tab.
13
+ - Selecting a model after custom provider setup no longer requires a hard-coded default for every provider.
14
+
15
+ ## [0.75.55] - 2026-05-31
16
+
17
+ ### Fixed
18
+ - MCP tool calls no longer hang for 120s when server disconnects mid-call — pending promises are now rejected immediately on disconnect.
19
+ - RPC client requests no longer hang forever when the subprocess disconnects.
20
+ - `sleep()` no longer leaks AbortSignal listeners on normal completion.
21
+ - Proxy and codex-responses AbortSignal listeners now use `{ once: true }` to prevent leaks.
22
+ - Startup checks (`checkForNewPiVersion`, `checkForPackageUpdates`, `checkTmuxKeyboardSetup`) now have `.catch()` to prevent unhandled rejections.
23
+ - Added global `unhandledRejection` handler to prevent silent crashes.
24
+ - MCP connect handshake timeout increased from 30s to 120s to accommodate npx cold starts.
25
+ - `/mcp <name>` toggle now immediately reflects in selector without needing Esc+reopen.
26
+
27
+ ### Changed
28
+ - MCP server `initialize` handshake timeout raised to 120s (was 30s) for npx cold start compatibility.
29
+ - `handleEvent` switch (337 lines) split into 15 named `_handleXxx()` methods.
30
+ - Slash command dispatch (170-line if-else chain) replaced with `Map`-based dispatch.
31
+ - MCP tool grouping for system prompt moved from `_rebuildSystemPrompt` to `MCPManager.getMcpToolDescriptions()`.
32
+
3
33
  ## [0.75.54] - 2026-05-31
4
34
 
5
35
  ### Changed
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI entry point for the refactored coding agent.\n * Uses main.ts with AgentSession and new mode modules.\n *\n * Test with: npx tsx src/cli-new.ts [args...]\n */\nimport { APP_NAME } from \"./config.ts\";\nimport { configureHttpDispatcher } from \"./core/http-dispatcher.ts\";\nimport { main } from \"./main.ts\";\n\nprocess.title = APP_NAME;\nprocess.env.PI_CODING_AGENT = \"true\";\nprocess.emitWarning = (() => {}) as typeof process.emitWarning;\n\n// Configure undici's global dispatcher before provider SDKs issue requests.\n// Runtime settings are applied once SettingsManager has loaded global/project settings.\nconfigureHttpDispatcher();\n\nmain(process.argv.slice(2));\n"]}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI entry point for the refactored coding agent.\n * Uses main.ts with AgentSession and new mode modules.\n *\n * Test with: npx tsx src/cli-new.ts [args...]\n */\nimport { APP_NAME } from \"./config.ts\";\nimport { configureHttpDispatcher } from \"./core/http-dispatcher.ts\";\nimport { main } from \"./main.ts\";\n\nprocess.title = APP_NAME;\nprocess.env.PI_CODING_AGENT = \"true\";\nprocess.emitWarning = (() => {}) as typeof process.emitWarning;\n\n// Catch unhandled promise rejections so they don't crash the process silently\nprocess.on(\"unhandledRejection\", (reason) => {\n\tconsole.error(\"[Unhandled Promise Rejection]\", reason instanceof Error ? reason.message : String(reason));\n});\n\n// Configure undici's global dispatcher before provider SDKs issue requests.\n// Runtime settings are applied once SettingsManager has loaded global/project settings.\nconfigureHttpDispatcher();\n\nmain(process.argv.slice(2));\n"]}
package/dist/cli.js CHANGED
@@ -11,6 +11,10 @@ import { main } from "./main.js";
11
11
  process.title = APP_NAME;
12
12
  process.env.PI_CODING_AGENT = "true";
13
13
  process.emitWarning = (() => { });
14
+ // Catch unhandled promise rejections so they don't crash the process silently
15
+ process.on("unhandledRejection", (reason) => {
16
+ console.error("[Unhandled Promise Rejection]", reason instanceof Error ? reason.message : String(reason));
17
+ });
14
18
  // Configure undici's global dispatcher before provider SDKs issue requests.
15
19
  // Runtime settings are applied once SettingsManager has loaded global/project settings.
16
20
  configureHttpDispatcher();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;AACzB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;AACrC,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC,EAAC,CAAC,CAA+B,CAAC;AAE/D,4EAA4E;AAC5E,wFAAwF;AACxF,uBAAuB,EAAE,CAAC;AAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI entry point for the refactored coding agent.\n * Uses main.ts with AgentSession and new mode modules.\n *\n * Test with: npx tsx src/cli-new.ts [args...]\n */\nimport { APP_NAME } from \"./config.ts\";\nimport { configureHttpDispatcher } from \"./core/http-dispatcher.ts\";\nimport { main } from \"./main.ts\";\n\nprocess.title = APP_NAME;\nprocess.env.PI_CODING_AGENT = \"true\";\nprocess.emitWarning = (() => {}) as typeof process.emitWarning;\n\n// Configure undici's global dispatcher before provider SDKs issue requests.\n// Runtime settings are applied once SettingsManager has loaded global/project settings.\nconfigureHttpDispatcher();\n\nmain(process.argv.slice(2));\n"]}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;AACzB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;AACrC,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC,EAAC,CAAC,CAA+B,CAAC;AAE/D,8EAA8E;AAC9E,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5C,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,CAC1G,CAAC,CAAC;AAEH,4EAA4E;AAC5E,wFAAwF;AACxF,uBAAuB,EAAE,CAAC;AAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI entry point for the refactored coding agent.\n * Uses main.ts with AgentSession and new mode modules.\n *\n * Test with: npx tsx src/cli-new.ts [args...]\n */\nimport { APP_NAME } from \"./config.ts\";\nimport { configureHttpDispatcher } from \"./core/http-dispatcher.ts\";\nimport { main } from \"./main.ts\";\n\nprocess.title = APP_NAME;\nprocess.env.PI_CODING_AGENT = \"true\";\nprocess.emitWarning = (() => {}) as typeof process.emitWarning;\n\n// Catch unhandled promise rejections so they don't crash the process silently\nprocess.on(\"unhandledRejection\", (reason) => {\n\tconsole.error(\"[Unhandled Promise Rejection]\", reason instanceof Error ? reason.message : String(reason));\n});\n\n// Configure undici's global dispatcher before provider SDKs issue requests.\n// Runtime settings are applied once SettingsManager has loaded global/project settings.\nconfigureHttpDispatcher();\n\nmain(process.argv.slice(2));\n"]}