@mariozechner/pi-coding-agent 0.60.0 → 0.61.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 (195) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +11 -1
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js +1 -0
  5. package/dist/bun/cli.js.map +1 -1
  6. package/dist/bun/register-bedrock.d.ts.map +1 -1
  7. package/dist/bun/register-bedrock.js +3 -84
  8. package/dist/bun/register-bedrock.js.map +1 -1
  9. package/dist/cli/session-picker.d.ts.map +1 -1
  10. package/dist/cli/session-picker.js +2 -1
  11. package/dist/cli/session-picker.js.map +1 -1
  12. package/dist/cli.d.ts.map +1 -1
  13. package/dist/cli.js +1 -0
  14. package/dist/cli.js.map +1 -1
  15. package/dist/core/agent-session.d.ts +17 -2
  16. package/dist/core/agent-session.d.ts.map +1 -1
  17. package/dist/core/agent-session.js +61 -6
  18. package/dist/core/agent-session.js.map +1 -1
  19. package/dist/core/exec.d.ts.map +1 -1
  20. package/dist/core/exec.js +7 -3
  21. package/dist/core/exec.js.map +1 -1
  22. package/dist/core/export-html/template.css +43 -13
  23. package/dist/core/export-html/template.html +1 -0
  24. package/dist/core/export-html/template.js +107 -0
  25. package/dist/core/extensions/index.d.ts +1 -1
  26. package/dist/core/extensions/index.d.ts.map +1 -1
  27. package/dist/core/extensions/index.js.map +1 -1
  28. package/dist/core/extensions/loader.d.ts.map +1 -1
  29. package/dist/core/extensions/loader.js +4 -4
  30. package/dist/core/extensions/loader.js.map +1 -1
  31. package/dist/core/extensions/runner.d.ts +1 -1
  32. package/dist/core/extensions/runner.d.ts.map +1 -1
  33. package/dist/core/extensions/runner.js +45 -33
  34. package/dist/core/extensions/runner.js.map +1 -1
  35. package/dist/core/extensions/types.d.ts +4 -3
  36. package/dist/core/extensions/types.d.ts.map +1 -1
  37. package/dist/core/extensions/types.js.map +1 -1
  38. package/dist/core/footer-data-provider.d.ts +9 -2
  39. package/dist/core/footer-data-provider.d.ts.map +1 -1
  40. package/dist/core/footer-data-provider.js +85 -13
  41. package/dist/core/footer-data-provider.js.map +1 -1
  42. package/dist/core/index.d.ts +1 -1
  43. package/dist/core/index.d.ts.map +1 -1
  44. package/dist/core/index.js.map +1 -1
  45. package/dist/core/keybindings.d.ts +268 -51
  46. package/dist/core/keybindings.d.ts.map +1 -1
  47. package/dist/core/keybindings.js +221 -143
  48. package/dist/core/keybindings.js.map +1 -1
  49. package/dist/core/model-registry.d.ts +1 -0
  50. package/dist/core/model-registry.d.ts.map +1 -1
  51. package/dist/core/model-registry.js +23 -14
  52. package/dist/core/model-registry.js.map +1 -1
  53. package/dist/core/model-resolver.d.ts.map +1 -1
  54. package/dist/core/model-resolver.js +4 -4
  55. package/dist/core/model-resolver.js.map +1 -1
  56. package/dist/core/package-manager.d.ts +2 -0
  57. package/dist/core/package-manager.d.ts.map +1 -1
  58. package/dist/core/package-manager.js +42 -1
  59. package/dist/core/package-manager.js.map +1 -1
  60. package/dist/core/sdk.d.ts +2 -2
  61. package/dist/core/sdk.d.ts.map +1 -1
  62. package/dist/core/sdk.js +4 -4
  63. package/dist/core/sdk.js.map +1 -1
  64. package/dist/core/session-manager.d.ts +5 -0
  65. package/dist/core/session-manager.d.ts.map +1 -1
  66. package/dist/core/session-manager.js +2 -2
  67. package/dist/core/session-manager.js.map +1 -1
  68. package/dist/core/slash-commands.d.ts.map +1 -1
  69. package/dist/core/slash-commands.js +2 -1
  70. package/dist/core/slash-commands.js.map +1 -1
  71. package/dist/core/tools/bash.d.ts.map +1 -1
  72. package/dist/core/tools/bash.js +12 -10
  73. package/dist/core/tools/bash.js.map +1 -1
  74. package/dist/core/tools/edit.d.ts.map +1 -1
  75. package/dist/core/tools/edit.js +3 -2
  76. package/dist/core/tools/edit.js.map +1 -1
  77. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  78. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  79. package/dist/core/tools/file-mutation-queue.js +37 -0
  80. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  81. package/dist/core/tools/index.d.ts +1 -0
  82. package/dist/core/tools/index.d.ts.map +1 -1
  83. package/dist/core/tools/index.js +1 -0
  84. package/dist/core/tools/index.js.map +1 -1
  85. package/dist/core/tools/write.d.ts.map +1 -1
  86. package/dist/core/tools/write.js +6 -3
  87. package/dist/core/tools/write.js.map +1 -1
  88. package/dist/index.d.ts +3 -3
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +2 -2
  91. package/dist/index.js.map +1 -1
  92. package/dist/main.d.ts.map +1 -1
  93. package/dist/main.js +10 -5
  94. package/dist/main.js.map +1 -1
  95. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  96. package/dist/modes/interactive/components/bash-execution.js +4 -4
  97. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  98. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  99. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  100. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  101. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  102. package/dist/modes/interactive/components/branch-summary-message.js +2 -2
  103. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  104. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  105. package/dist/modes/interactive/components/compaction-summary-message.js +2 -2
  106. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  107. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  108. package/dist/modes/interactive/components/config-selector.js +8 -8
  109. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  110. package/dist/modes/interactive/components/custom-editor.d.ts +3 -3
  111. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  112. package/dist/modes/interactive/components/custom-editor.js +6 -6
  113. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  114. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  115. package/dist/modes/interactive/components/extension-editor.js +9 -9
  116. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  117. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  118. package/dist/modes/interactive/components/extension-input.js +5 -5
  119. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  120. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  121. package/dist/modes/interactive/components/extension-selector.js +8 -8
  122. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  123. package/dist/modes/interactive/components/index.d.ts +1 -1
  124. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  125. package/dist/modes/interactive/components/index.js +1 -1
  126. package/dist/modes/interactive/components/index.js.map +1 -1
  127. package/dist/modes/interactive/components/keybinding-hints.d.ts +3 -36
  128. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  129. package/dist/modes/interactive/components/keybinding-hints.js +5 -44
  130. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  131. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  132. package/dist/modes/interactive/components/login-dialog.js +6 -6
  133. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  134. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  135. package/dist/modes/interactive/components/model-selector.js +12 -8
  136. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  137. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  138. package/dist/modes/interactive/components/oauth-selector.js +6 -6
  139. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  140. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  141. package/dist/modes/interactive/components/scoped-models-selector.js +4 -4
  142. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  143. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  144. package/dist/modes/interactive/components/session-selector.js +32 -35
  145. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  146. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  147. package/dist/modes/interactive/components/skill-invocation-message.js +2 -2
  148. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  149. package/dist/modes/interactive/components/tool-execution.d.ts +7 -0
  150. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  151. package/dist/modes/interactive/components/tool-execution.js +51 -6
  152. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  153. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  154. package/dist/modes/interactive/components/tree-selector.js +15 -15
  155. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  156. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  157. package/dist/modes/interactive/components/user-message-selector.js +6 -6
  158. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  159. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  160. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  161. package/dist/modes/interactive/interactive-mode.js +156 -91
  162. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  163. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  164. package/dist/modes/interactive/theme/theme.js +49 -37
  165. package/dist/modes/interactive/theme/theme.js.map +1 -1
  166. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  167. package/dist/modes/rpc/rpc-mode.js +4 -1
  168. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  169. package/dist/utils/child-process.d.ts +11 -0
  170. package/dist/utils/child-process.d.ts.map +1 -0
  171. package/dist/utils/child-process.js +78 -0
  172. package/dist/utils/child-process.js.map +1 -0
  173. package/dist/utils/clipboard-native.d.ts +1 -0
  174. package/dist/utils/clipboard-native.d.ts.map +1 -1
  175. package/dist/utils/clipboard-native.js.map +1 -1
  176. package/dist/utils/clipboard.d.ts +1 -1
  177. package/dist/utils/clipboard.d.ts.map +1 -1
  178. package/dist/utils/clipboard.js +11 -1
  179. package/dist/utils/clipboard.js.map +1 -1
  180. package/docs/extensions.md +44 -7
  181. package/docs/keybindings.md +101 -112
  182. package/docs/providers.md +7 -0
  183. package/docs/rpc.md +4 -4
  184. package/docs/sdk.md +2 -2
  185. package/examples/extensions/antigravity-image-gen.ts +5 -3
  186. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  187. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  188. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  189. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  190. package/examples/extensions/subagent/index.ts +28 -6
  191. package/examples/extensions/tool-override.ts +9 -7
  192. package/examples/extensions/truncated-tool.ts +6 -3
  193. package/examples/extensions/with-deps/package-lock.json +2 -2
  194. package/examples/extensions/with-deps/package.json +1 -1
  195. package/package.json +4 -4
@@ -674,18 +674,27 @@ export class DefaultPackageManager {
674
674
  const globalSettings = this.settingsManager.getGlobalSettings();
675
675
  const projectSettings = this.settingsManager.getProjectSettings();
676
676
  const identity = source ? this.getPackageIdentity(source) : undefined;
677
+ let matched = false;
677
678
  for (const pkg of globalSettings.packages ?? []) {
678
679
  const sourceStr = typeof pkg === "string" ? pkg : pkg.source;
679
680
  if (identity && this.getPackageIdentity(sourceStr, "user") !== identity)
680
681
  continue;
682
+ matched = true;
681
683
  await this.updateSourceForScope(sourceStr, "user");
682
684
  }
683
685
  for (const pkg of projectSettings.packages ?? []) {
684
686
  const sourceStr = typeof pkg === "string" ? pkg : pkg.source;
685
687
  if (identity && this.getPackageIdentity(sourceStr, "project") !== identity)
686
688
  continue;
689
+ matched = true;
687
690
  await this.updateSourceForScope(sourceStr, "project");
688
691
  }
692
+ if (source && !matched) {
693
+ throw new Error(this.buildNoMatchingPackageMessage(source, [
694
+ ...(globalSettings.packages ?? []),
695
+ ...(projectSettings.packages ?? []),
696
+ ]));
697
+ }
689
698
  }
690
699
  async updateSourceForScope(source, scope) {
691
700
  if (isOfflineModeEnabled()) {
@@ -696,7 +705,10 @@ export class DefaultPackageManager {
696
705
  if (parsed.pinned)
697
706
  return;
698
707
  await this.withProgress("update", source, `Updating ${source}...`, async () => {
699
- await this.installNpm(parsed, scope, false);
708
+ await this.installNpm({
709
+ ...parsed,
710
+ spec: `${parsed.name}@latest`,
711
+ }, scope, false);
700
712
  });
701
713
  return;
702
714
  }
@@ -878,6 +890,35 @@ export class DefaultPackageManager {
878
890
  const baseDir = this.getBaseDirForScope(scope);
879
891
  return `local:${this.resolvePathFromBase(parsed.path, baseDir)}`;
880
892
  }
893
+ buildNoMatchingPackageMessage(source, configuredPackages) {
894
+ const suggestion = this.findSuggestedConfiguredSource(source, configuredPackages);
895
+ if (!suggestion) {
896
+ return `No matching package found for ${source}`;
897
+ }
898
+ return `No matching package found for ${source}. Did you mean ${suggestion}?`;
899
+ }
900
+ findSuggestedConfiguredSource(source, configuredPackages) {
901
+ const trimmedSource = source.trim();
902
+ const suggestions = new Set();
903
+ for (const pkg of configuredPackages) {
904
+ const sourceStr = this.getPackageSourceString(pkg);
905
+ const parsed = this.parseSource(sourceStr);
906
+ if (parsed.type === "npm") {
907
+ if (trimmedSource === parsed.name || trimmedSource === parsed.spec) {
908
+ suggestions.add(sourceStr);
909
+ }
910
+ continue;
911
+ }
912
+ if (parsed.type === "git") {
913
+ const shorthand = `${parsed.host}/${parsed.path}`;
914
+ const shorthandWithRef = parsed.ref ? `${shorthand}@${parsed.ref}` : undefined;
915
+ if (trimmedSource === shorthand || (shorthandWithRef && trimmedSource === shorthandWithRef)) {
916
+ suggestions.add(sourceStr);
917
+ }
918
+ }
919
+ }
920
+ return suggestions.values().next().value;
921
+ }
881
922
  packageSourcesMatch(existing, inputSource, scope) {
882
923
  const left = this.getSourceMatchKeyForSettings(this.getPackageSourceString(existing), scope);
883
924
  const right = this.getSourceMatchKeyForInput(inputSource);