@mariozechner/pi-coding-agent 0.55.4 → 0.56.1

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 (77) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +1 -0
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +1 -0
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +5 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/core/agent-session.d.ts +5 -4
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +26 -5
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/auth-storage.d.ts +1 -1
  14. package/dist/core/auth-storage.d.ts.map +1 -1
  15. package/dist/core/auth-storage.js +2 -1
  16. package/dist/core/auth-storage.js.map +1 -1
  17. package/dist/core/compaction/compaction.d.ts.map +1 -1
  18. package/dist/core/compaction/compaction.js +4 -1
  19. package/dist/core/compaction/compaction.js.map +1 -1
  20. package/dist/core/extensions/loader.d.ts.map +1 -1
  21. package/dist/core/extensions/loader.js +14 -3
  22. package/dist/core/extensions/loader.js.map +1 -1
  23. package/dist/core/model-registry.d.ts +1 -0
  24. package/dist/core/model-registry.d.ts.map +1 -1
  25. package/dist/core/model-registry.js +9 -6
  26. package/dist/core/model-registry.js.map +1 -1
  27. package/dist/core/model-resolver.d.ts.map +1 -1
  28. package/dist/core/model-resolver.js +35 -5
  29. package/dist/core/model-resolver.js.map +1 -1
  30. package/dist/core/sdk.d.ts +1 -1
  31. package/dist/core/sdk.d.ts.map +1 -1
  32. package/dist/core/sdk.js.map +1 -1
  33. package/dist/core/settings-manager.d.ts +3 -0
  34. package/dist/core/settings-manager.d.ts.map +1 -1
  35. package/dist/core/settings-manager.js +4 -0
  36. package/dist/core/settings-manager.js.map +1 -1
  37. package/dist/main.d.ts.map +1 -1
  38. package/dist/main.js +4 -4
  39. package/dist/main.js.map +1 -1
  40. package/dist/modes/interactive/components/extension-editor.d.ts +5 -2
  41. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  42. package/dist/modes/interactive/components/extension-editor.js +8 -0
  43. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  44. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  45. package/dist/modes/interactive/components/login-dialog.js +1 -1
  46. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  47. package/dist/modes/interactive/components/model-selector.d.ts +1 -1
  48. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  49. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  50. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  51. package/dist/modes/interactive/components/oauth-selector.js +1 -1
  52. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  53. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  54. package/dist/modes/interactive/components/session-selector.js +1 -1
  55. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  56. package/dist/modes/interactive/components/user-message.d.ts +1 -0
  57. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  58. package/dist/modes/interactive/components/user-message.js +11 -0
  59. package/dist/modes/interactive/components/user-message.js.map +1 -1
  60. package/dist/modes/interactive/interactive-mode.d.ts +1 -1
  61. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  62. package/dist/modes/interactive/interactive-mode.js +27 -25
  63. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  64. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  65. package/dist/modes/interactive/theme/theme.js +5 -0
  66. package/dist/modes/interactive/theme/theme.js.map +1 -1
  67. package/docs/custom-provider.md +10 -2
  68. package/docs/providers.md +3 -1
  69. package/docs/settings.md +1 -0
  70. package/examples/extensions/antigravity-image-gen.ts +3 -1
  71. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  72. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  73. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  74. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  75. package/examples/extensions/with-deps/package-lock.json +2 -2
  76. package/examples/extensions/with-deps/package.json +1 -1
  77. package/package.json +8 -6
@@ -6,7 +6,6 @@ import * as crypto from "node:crypto";
6
6
  import * as fs from "node:fs";
7
7
  import * as os from "node:os";
8
8
  import * as path from "node:path";
9
- import { getOAuthProviders, } from "@mariozechner/pi-ai";
10
9
  import { CombinedAutocompleteProvider, Container, fuzzyFilter, Loader, Markdown, matchesKey, ProcessTerminal, Spacer, Text, TruncatedText, TUI, visibleWidth, } from "@mariozechner/pi-tui";
11
10
  import { spawn, spawnSync } from "child_process";
12
11
  import { APP_NAME, getAuthPath, getDebugLogPath, getShareViewerUrl, getUpdateInstruction, VERSION, } from "../../config.js";
@@ -2779,12 +2778,10 @@ export class InteractiveMode {
2779
2778
  // Helper to update session's scoped models (session-only, no persist)
2780
2779
  const updateSessionModels = async (enabledIds) => {
2781
2780
  if (enabledIds.size > 0 && enabledIds.size < allModels.length) {
2782
- // Use current session thinking level, not settings default
2783
- const currentThinkingLevel = this.session.thinkingLevel;
2784
2781
  const newScopedModels = await resolveModelScope(Array.from(enabledIds), this.session.modelRegistry);
2785
2782
  this.session.setScopedModels(newScopedModels.map((sm) => ({
2786
2783
  model: sm.model,
2787
- thinkingLevel: sm.thinkingLevel ?? currentThinkingLevel,
2784
+ thinkingLevel: sm.thinkingLevel,
2788
2785
  })));
2789
2786
  }
2790
2787
  else {
@@ -2898,27 +2895,30 @@ export class InteractiveMode {
2898
2895
  // Loop until user makes a complete choice or cancels to tree
2899
2896
  let wantsSummary = false;
2900
2897
  let customInstructions;
2901
- while (true) {
2902
- const summaryChoice = await this.showExtensionSelector("Summarize branch?", [
2903
- "No summary",
2904
- "Summarize",
2905
- "Summarize with custom prompt",
2906
- ]);
2907
- if (summaryChoice === undefined) {
2908
- // User pressed escape - re-show tree selector with same selection
2909
- this.showTreeSelector(entryId);
2910
- return;
2911
- }
2912
- wantsSummary = summaryChoice !== "No summary";
2913
- if (summaryChoice === "Summarize with custom prompt") {
2914
- customInstructions = await this.showExtensionEditor("Custom summarization instructions");
2915
- if (customInstructions === undefined) {
2916
- // User cancelled - loop back to summary selector
2917
- continue;
2898
+ // Check if we should skip the prompt (user preference to always default to no summary)
2899
+ if (!this.settingsManager.getBranchSummarySkipPrompt()) {
2900
+ while (true) {
2901
+ const summaryChoice = await this.showExtensionSelector("Summarize branch?", [
2902
+ "No summary",
2903
+ "Summarize",
2904
+ "Summarize with custom prompt",
2905
+ ]);
2906
+ if (summaryChoice === undefined) {
2907
+ // User pressed escape - re-show tree selector with same selection
2908
+ this.showTreeSelector(entryId);
2909
+ return;
2918
2910
  }
2911
+ wantsSummary = summaryChoice !== "No summary";
2912
+ if (summaryChoice === "Summarize with custom prompt") {
2913
+ customInstructions = await this.showExtensionEditor("Custom summarization instructions");
2914
+ if (customInstructions === undefined) {
2915
+ // User cancelled - loop back to summary selector
2916
+ continue;
2917
+ }
2918
+ }
2919
+ // User made a complete choice
2920
+ break;
2919
2921
  }
2920
- // User made a complete choice
2921
- break;
2922
2922
  }
2923
2923
  // Set up escape handler and loader if summarizing
2924
2924
  let summaryLoader;
@@ -3036,7 +3036,9 @@ export class InteractiveMode {
3036
3036
  }
3037
3037
  else {
3038
3038
  // Logout flow
3039
- const providerInfo = getOAuthProviders().find((p) => p.id === providerId);
3039
+ const providerInfo = this.session.modelRegistry.authStorage
3040
+ .getOAuthProviders()
3041
+ .find((p) => p.id === providerId);
3040
3042
  const providerName = providerInfo?.name || providerId;
3041
3043
  try {
3042
3044
  this.session.modelRegistry.authStorage.logout(providerId);
@@ -3056,7 +3058,7 @@ export class InteractiveMode {
3056
3058
  });
3057
3059
  }
3058
3060
  async showLoginDialog(providerId) {
3059
- const providerInfo = getOAuthProviders().find((p) => p.id === providerId);
3061
+ const providerInfo = this.session.modelRegistry.authStorage.getOAuthProviders().find((p) => p.id === providerId);
3060
3062
  const providerName = providerInfo?.name || providerId;
3061
3063
  // Providers that use callback servers (can paste redirect URL)
3062
3064
  const usesCallbackServer = providerInfo?.usesCallbackServer ?? false;