@codex-infinity/pi-infinity 0.60.2 → 0.61.2

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 (248) hide show
  1. package/CHANGELOG.md +59 -1
  2. package/README.md +10 -0
  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/cli/args.js.map +1 -1
  7. package/dist/cli/config-selector.js.map +1 -1
  8. package/dist/cli/file-processor.js.map +1 -1
  9. package/dist/cli/initial-message.js.map +1 -1
  10. package/dist/cli/list-models.js.map +1 -1
  11. package/dist/cli/session-picker.d.ts.map +1 -1
  12. package/dist/cli/session-picker.js +2 -1
  13. package/dist/cli/session-picker.js.map +1 -1
  14. package/dist/cli.d.ts.map +1 -1
  15. package/dist/cli.js +1 -0
  16. package/dist/cli.js.map +1 -1
  17. package/dist/config.js.map +1 -1
  18. package/dist/core/agent-session.d.ts.map +1 -1
  19. package/dist/core/agent-session.js +50 -69
  20. package/dist/core/agent-session.js.map +1 -1
  21. package/dist/core/auth-storage.js +4 -8
  22. package/dist/core/auth-storage.js.map +1 -1
  23. package/dist/core/bash-executor.js.map +1 -1
  24. package/dist/core/compaction/branch-summarization.js.map +1 -1
  25. package/dist/core/compaction/compaction.js.map +1 -1
  26. package/dist/core/compaction/utils.js.map +1 -1
  27. package/dist/core/event-bus.js.map +1 -1
  28. package/dist/core/exec.js.map +1 -1
  29. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  30. package/dist/core/export-html/index.js.map +1 -1
  31. package/dist/core/export-html/template.css +43 -13
  32. package/dist/core/export-html/template.html +1 -0
  33. package/dist/core/export-html/template.js +107 -0
  34. package/dist/core/export-html/tool-renderer.js.map +1 -1
  35. package/dist/core/extensions/index.d.ts +1 -1
  36. package/dist/core/extensions/index.d.ts.map +1 -1
  37. package/dist/core/extensions/index.js.map +1 -1
  38. package/dist/core/extensions/loader.d.ts.map +1 -1
  39. package/dist/core/extensions/loader.js +4 -4
  40. package/dist/core/extensions/loader.js.map +1 -1
  41. package/dist/core/extensions/runner.d.ts +1 -1
  42. package/dist/core/extensions/runner.d.ts.map +1 -1
  43. package/dist/core/extensions/runner.js +62 -56
  44. package/dist/core/extensions/runner.js.map +1 -1
  45. package/dist/core/extensions/types.d.ts +4 -3
  46. package/dist/core/extensions/types.d.ts.map +1 -1
  47. package/dist/core/extensions/types.js.map +1 -1
  48. package/dist/core/extensions/wrapper.js.map +1 -1
  49. package/dist/core/footer-data-provider.d.ts +9 -2
  50. package/dist/core/footer-data-provider.d.ts.map +1 -1
  51. package/dist/core/footer-data-provider.js +92 -20
  52. package/dist/core/footer-data-provider.js.map +1 -1
  53. package/dist/core/index.d.ts +1 -1
  54. package/dist/core/index.d.ts.map +1 -1
  55. package/dist/core/index.js.map +1 -1
  56. package/dist/core/keybindings.d.ts +268 -51
  57. package/dist/core/keybindings.d.ts.map +1 -1
  58. package/dist/core/keybindings.js +220 -143
  59. package/dist/core/keybindings.js.map +1 -1
  60. package/dist/core/messages.js.map +1 -1
  61. package/dist/core/model-registry.d.ts +1 -0
  62. package/dist/core/model-registry.d.ts.map +1 -1
  63. package/dist/core/model-registry.js +29 -21
  64. package/dist/core/model-registry.js.map +1 -1
  65. package/dist/core/model-resolver.d.ts.map +1 -1
  66. package/dist/core/model-resolver.js +4 -4
  67. package/dist/core/model-resolver.js.map +1 -1
  68. package/dist/core/package-manager.d.ts +2 -0
  69. package/dist/core/package-manager.d.ts.map +1 -1
  70. package/dist/core/package-manager.js +42 -7
  71. package/dist/core/package-manager.js.map +1 -1
  72. package/dist/core/prompt-templates.js.map +1 -1
  73. package/dist/core/resolve-config-value.js.map +1 -1
  74. package/dist/core/resource-loader.js +0 -37
  75. package/dist/core/resource-loader.js.map +1 -1
  76. package/dist/core/sdk.d.ts +2 -2
  77. package/dist/core/sdk.d.ts.map +1 -1
  78. package/dist/core/sdk.js +4 -4
  79. package/dist/core/sdk.js.map +1 -1
  80. package/dist/core/session-manager.d.ts +5 -0
  81. package/dist/core/session-manager.d.ts.map +1 -1
  82. package/dist/core/session-manager.js +8 -12
  83. package/dist/core/session-manager.js.map +1 -1
  84. package/dist/core/settings-manager.js +7 -16
  85. package/dist/core/settings-manager.js.map +1 -1
  86. package/dist/core/skills.js.map +1 -1
  87. package/dist/core/system-prompt.js.map +1 -1
  88. package/dist/core/timings.js.map +1 -1
  89. package/dist/core/tools/bash.js.map +1 -1
  90. package/dist/core/tools/edit-diff.js.map +1 -1
  91. package/dist/core/tools/edit.d.ts.map +1 -1
  92. package/dist/core/tools/edit.js +3 -2
  93. package/dist/core/tools/edit.js.map +1 -1
  94. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  95. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  96. package/dist/core/tools/file-mutation-queue.js +37 -0
  97. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  98. package/dist/core/tools/find.js.map +1 -1
  99. package/dist/core/tools/grep.js.map +1 -1
  100. package/dist/core/tools/index.d.ts +1 -0
  101. package/dist/core/tools/index.d.ts.map +1 -1
  102. package/dist/core/tools/index.js +1 -0
  103. package/dist/core/tools/index.js.map +1 -1
  104. package/dist/core/tools/ls.js.map +1 -1
  105. package/dist/core/tools/path-utils.js.map +1 -1
  106. package/dist/core/tools/read.js.map +1 -1
  107. package/dist/core/tools/truncate.js.map +1 -1
  108. package/dist/core/tools/write.d.ts.map +1 -1
  109. package/dist/core/tools/write.js +6 -3
  110. package/dist/core/tools/write.js.map +1 -1
  111. package/dist/index.d.ts +3 -3
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +2 -2
  114. package/dist/index.js.map +1 -1
  115. package/dist/main.d.ts.map +1 -1
  116. package/dist/main.js +10 -5
  117. package/dist/main.js.map +1 -1
  118. package/dist/migrations.js.map +1 -1
  119. package/dist/modes/interactive/components/armin.js +6 -10
  120. package/dist/modes/interactive/components/armin.js.map +1 -1
  121. package/dist/modes/interactive/components/assistant-message.js +0 -4
  122. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  123. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  124. package/dist/modes/interactive/components/bash-execution.js +8 -14
  125. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  126. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  127. package/dist/modes/interactive/components/bordered-loader.js +1 -4
  128. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  129. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  130. package/dist/modes/interactive/components/branch-summary-message.js +3 -5
  131. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  132. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  133. package/dist/modes/interactive/components/compaction-summary-message.js +3 -5
  134. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  135. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  136. package/dist/modes/interactive/components/config-selector.js +14 -23
  137. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  138. package/dist/modes/interactive/components/countdown-timer.js +0 -5
  139. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  140. package/dist/modes/interactive/components/custom-editor.d.ts +3 -3
  141. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  142. package/dist/modes/interactive/components/custom-editor.js +7 -14
  143. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  144. package/dist/modes/interactive/components/custom-message.js +1 -6
  145. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  146. package/dist/modes/interactive/components/daxnuts.js +6 -8
  147. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  148. package/dist/modes/interactive/components/diff.js.map +1 -1
  149. package/dist/modes/interactive/components/dynamic-border.js +0 -1
  150. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  151. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  152. package/dist/modes/interactive/components/extension-editor.js +10 -15
  153. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  154. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  155. package/dist/modes/interactive/components/extension-input.js +7 -13
  156. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  157. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  158. package/dist/modes/interactive/components/extension-selector.js +9 -16
  159. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  160. package/dist/modes/interactive/components/footer.js +1 -3
  161. package/dist/modes/interactive/components/footer.js.map +1 -1
  162. package/dist/modes/interactive/components/index.d.ts +1 -1
  163. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  164. package/dist/modes/interactive/components/index.js +1 -1
  165. package/dist/modes/interactive/components/index.js.map +1 -1
  166. package/dist/modes/interactive/components/keybinding-hints.d.ts +3 -36
  167. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  168. package/dist/modes/interactive/components/keybinding-hints.js +5 -44
  169. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  170. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  171. package/dist/modes/interactive/components/login-dialog.js +9 -15
  172. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  173. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  174. package/dist/modes/interactive/components/model-selector.js +20 -28
  175. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  176. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  177. package/dist/modes/interactive/components/oauth-selector.js +8 -13
  178. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  179. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  180. package/dist/modes/interactive/components/scoped-models-selector.js +13 -17
  181. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  182. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  183. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  184. package/dist/modes/interactive/components/session-selector.js +65 -93
  185. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  186. package/dist/modes/interactive/components/settings-selector.js +0 -2
  187. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  188. package/dist/modes/interactive/components/show-images-selector.js +0 -1
  189. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  190. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  191. package/dist/modes/interactive/components/skill-invocation-message.js +3 -5
  192. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  193. package/dist/modes/interactive/components/theme-selector.js +0 -2
  194. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  195. package/dist/modes/interactive/components/thinking-selector.js +0 -1
  196. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  197. package/dist/modes/interactive/components/tool-execution.d.ts +7 -0
  198. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  199. package/dist/modes/interactive/components/tool-execution.js +57 -28
  200. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  201. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  202. package/dist/modes/interactive/components/tree-selector.js +32 -46
  203. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  204. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  205. package/dist/modes/interactive/components/user-message-selector.js +9 -12
  206. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  207. package/dist/modes/interactive/components/user-message.js.map +1 -1
  208. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  209. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  210. package/dist/modes/interactive/interactive-mode.js +155 -165
  211. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  212. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  213. package/dist/modes/interactive/theme/theme.js +61 -42
  214. package/dist/modes/interactive/theme/theme.js.map +1 -1
  215. package/dist/modes/print-mode.js.map +1 -1
  216. package/dist/modes/rpc/jsonl.js.map +1 -1
  217. package/dist/modes/rpc/rpc-client.js +6 -7
  218. package/dist/modes/rpc/rpc-client.js.map +1 -1
  219. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  220. package/dist/modes/rpc/rpc-mode.js +4 -1
  221. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  222. package/dist/utils/changelog.js.map +1 -1
  223. package/dist/utils/child-process.js.map +1 -1
  224. package/dist/utils/clipboard-image.js.map +1 -1
  225. package/dist/utils/clipboard.js.map +1 -1
  226. package/dist/utils/exif-orientation.js.map +1 -1
  227. package/dist/utils/frontmatter.js.map +1 -1
  228. package/dist/utils/git.js.map +1 -1
  229. package/dist/utils/image-convert.js.map +1 -1
  230. package/dist/utils/image-resize.js.map +1 -1
  231. package/dist/utils/mime.js.map +1 -1
  232. package/dist/utils/photon.js.map +1 -1
  233. package/dist/utils/shell.js.map +1 -1
  234. package/dist/utils/sleep.js.map +1 -1
  235. package/dist/utils/tools-manager.js.map +1 -1
  236. package/docs/extensions.md +42 -5
  237. package/docs/keybindings.md +101 -112
  238. package/examples/extensions/antigravity-image-gen.ts +5 -3
  239. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  240. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  241. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  242. package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
  243. package/examples/extensions/subagent/index.ts +28 -6
  244. package/examples/extensions/tool-override.ts +9 -7
  245. package/examples/extensions/truncated-tool.ts +6 -3
  246. package/examples/extensions/with-deps/package-lock.json +2 -2
  247. package/examples/extensions/with-deps/package.json +1 -1
  248. package/package.json +4 -4
@@ -507,12 +507,6 @@ function applyPatterns(allPaths, patterns, baseDir) {
507
507
  return new Set(result);
508
508
  }
509
509
  export class DefaultPackageManager {
510
- cwd;
511
- agentDir;
512
- settingsManager;
513
- globalNpmRoot;
514
- globalNpmRootCommandKey;
515
- progressCallback;
516
510
  constructor(options) {
517
511
  this.cwd = options.cwd;
518
512
  this.agentDir = options.agentDir;
@@ -674,18 +668,27 @@ export class DefaultPackageManager {
674
668
  const globalSettings = this.settingsManager.getGlobalSettings();
675
669
  const projectSettings = this.settingsManager.getProjectSettings();
676
670
  const identity = source ? this.getPackageIdentity(source) : undefined;
671
+ let matched = false;
677
672
  for (const pkg of globalSettings.packages ?? []) {
678
673
  const sourceStr = typeof pkg === "string" ? pkg : pkg.source;
679
674
  if (identity && this.getPackageIdentity(sourceStr, "user") !== identity)
680
675
  continue;
676
+ matched = true;
681
677
  await this.updateSourceForScope(sourceStr, "user");
682
678
  }
683
679
  for (const pkg of projectSettings.packages ?? []) {
684
680
  const sourceStr = typeof pkg === "string" ? pkg : pkg.source;
685
681
  if (identity && this.getPackageIdentity(sourceStr, "project") !== identity)
686
682
  continue;
683
+ matched = true;
687
684
  await this.updateSourceForScope(sourceStr, "project");
688
685
  }
686
+ if (source && !matched) {
687
+ throw new Error(this.buildNoMatchingPackageMessage(source, [
688
+ ...(globalSettings.packages ?? []),
689
+ ...(projectSettings.packages ?? []),
690
+ ]));
691
+ }
689
692
  }
690
693
  async updateSourceForScope(source, scope) {
691
694
  if (isOfflineModeEnabled()) {
@@ -696,7 +699,10 @@ export class DefaultPackageManager {
696
699
  if (parsed.pinned)
697
700
  return;
698
701
  await this.withProgress("update", source, `Updating ${source}...`, async () => {
699
- await this.installNpm(parsed, scope, false);
702
+ await this.installNpm({
703
+ ...parsed,
704
+ spec: `${parsed.name}@latest`,
705
+ }, scope, false);
700
706
  });
701
707
  return;
702
708
  }
@@ -878,6 +884,35 @@ export class DefaultPackageManager {
878
884
  const baseDir = this.getBaseDirForScope(scope);
879
885
  return `local:${this.resolvePathFromBase(parsed.path, baseDir)}`;
880
886
  }
887
+ buildNoMatchingPackageMessage(source, configuredPackages) {
888
+ const suggestion = this.findSuggestedConfiguredSource(source, configuredPackages);
889
+ if (!suggestion) {
890
+ return `No matching package found for ${source}`;
891
+ }
892
+ return `No matching package found for ${source}. Did you mean ${suggestion}?`;
893
+ }
894
+ findSuggestedConfiguredSource(source, configuredPackages) {
895
+ const trimmedSource = source.trim();
896
+ const suggestions = new Set();
897
+ for (const pkg of configuredPackages) {
898
+ const sourceStr = this.getPackageSourceString(pkg);
899
+ const parsed = this.parseSource(sourceStr);
900
+ if (parsed.type === "npm") {
901
+ if (trimmedSource === parsed.name || trimmedSource === parsed.spec) {
902
+ suggestions.add(sourceStr);
903
+ }
904
+ continue;
905
+ }
906
+ if (parsed.type === "git") {
907
+ const shorthand = `${parsed.host}/${parsed.path}`;
908
+ const shorthandWithRef = parsed.ref ? `${shorthand}@${parsed.ref}` : undefined;
909
+ if (trimmedSource === shorthand || (shorthandWithRef && trimmedSource === shorthandWithRef)) {
910
+ suggestions.add(sourceStr);
911
+ }
912
+ }
913
+ }
914
+ return suggestions.values().next().value;
915
+ }
881
916
  packageSourcesMatch(existing, inputSource, scope) {
882
917
  const left = this.getSourceMatchKeyForSettings(this.getPackageSourceString(existing), scope);
883
918
  const right = this.getSourceMatchKeyForInput(inputSource);