@oh-my-pi/pi-coding-agent 15.11.1 → 15.11.3

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 (69) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/dist/cli.js +643 -627
  3. package/dist/types/config/settings-schema.d.ts +36 -0
  4. package/dist/types/extensibility/custom-commands/types.d.ts +6 -3
  5. package/dist/types/extensibility/custom-tools/loader.d.ts +2 -1
  6. package/dist/types/extensibility/custom-tools/types.d.ts +8 -4
  7. package/dist/types/extensibility/extensions/types.d.ts +2 -2
  8. package/dist/types/extensibility/hooks/types.d.ts +8 -4
  9. package/dist/types/irc/bus.d.ts +15 -2
  10. package/dist/types/lsp/format-options.d.ts +32 -0
  11. package/dist/types/mnemopi/state.d.ts +29 -1
  12. package/dist/types/modes/components/plan-review-overlay.d.ts +2 -0
  13. package/dist/types/modes/rpc/rpc-client.d.ts +10 -1
  14. package/dist/types/modes/rpc/rpc-mode.d.ts +2 -0
  15. package/dist/types/modes/rpc/rpc-types.d.ts +30 -0
  16. package/dist/types/modes/theme/theme.d.ts +1 -1
  17. package/dist/types/session/agent-session.d.ts +17 -3
  18. package/dist/types/slash-commands/available-commands.d.ts +34 -0
  19. package/dist/types/tools/bash.d.ts +1 -1
  20. package/dist/types/tools/browser/attach.d.ts +4 -4
  21. package/dist/types/tools/browser/registry.d.ts +1 -0
  22. package/dist/types/tools/irc.d.ts +3 -2
  23. package/dist/types/tools/path-utils.d.ts +5 -5
  24. package/dist/types/utils/git.d.ts +1 -1
  25. package/package.json +11 -11
  26. package/src/config/settings-schema.ts +40 -0
  27. package/src/exec/bash-executor.ts +21 -6
  28. package/src/extensibility/custom-commands/loader.ts +3 -1
  29. package/src/extensibility/custom-commands/types.ts +6 -3
  30. package/src/extensibility/custom-tools/loader.ts +4 -7
  31. package/src/extensibility/custom-tools/types.ts +8 -4
  32. package/src/extensibility/extensions/loader.ts +2 -1
  33. package/src/extensibility/extensions/types.ts +2 -2
  34. package/src/extensibility/hooks/loader.ts +3 -1
  35. package/src/extensibility/hooks/types.ts +8 -4
  36. package/src/internal-urls/docs-index.generated.ts +4 -4
  37. package/src/irc/bus.ts +14 -3
  38. package/src/lsp/clients/lsp-linter-client.ts +2 -10
  39. package/src/lsp/defaults.json +6 -0
  40. package/src/lsp/format-options.ts +119 -0
  41. package/src/lsp/index.ts +2 -10
  42. package/src/lsp/render.ts +2 -28
  43. package/src/memories/index.ts +2 -0
  44. package/src/mnemopi/backend.ts +4 -8
  45. package/src/mnemopi/state.ts +42 -3
  46. package/src/modes/acp/acp-agent.ts +4 -67
  47. package/src/modes/components/plan-review-overlay.ts +32 -3
  48. package/src/modes/controllers/streaming-reveal.ts +16 -8
  49. package/src/modes/interactive-mode.ts +54 -2
  50. package/src/modes/rpc/rpc-client.ts +32 -0
  51. package/src/modes/rpc/rpc-mode.ts +82 -7
  52. package/src/modes/rpc/rpc-types.ts +23 -0
  53. package/src/modes/theme/theme.ts +7 -7
  54. package/src/modes/utils/ui-helpers.ts +13 -4
  55. package/src/prompts/memories/consolidation_system.md +4 -0
  56. package/src/prompts/system/irc-autoreply.md +6 -0
  57. package/src/prompts/system/irc-incoming.md +1 -1
  58. package/src/prompts/tools/bash.md +1 -0
  59. package/src/prompts/tools/irc.md +1 -1
  60. package/src/session/agent-session.ts +96 -7
  61. package/src/slash-commands/available-commands.ts +105 -0
  62. package/src/tools/bash.ts +5 -1
  63. package/src/tools/browser/attach.ts +26 -7
  64. package/src/tools/browser/registry.ts +11 -1
  65. package/src/tools/irc.ts +16 -4
  66. package/src/tools/job.ts +7 -3
  67. package/src/tools/path-utils.ts +56 -25
  68. package/src/tools/search.ts +11 -0
  69. package/src/utils/git.ts +7 -2
@@ -795,6 +795,7 @@ export class SearchTool implements AgentTool<typeof searchSchema, SearchToolDeta
795
795
  internalUrlAction: "search",
796
796
  trackImmutableSources: true,
797
797
  surfaceExactFilePaths: true,
798
+ fanOutFileTargets: true,
798
799
  multipathStatHint: " (`paths` entries must each exist relative to cwd)",
799
800
  settings: this.session.settings,
800
801
  signal,
@@ -863,6 +864,7 @@ export class SearchTool implements AgentTool<typeof searchSchema, SearchToolDeta
863
864
  if (searchablePaths.length > 0) {
864
865
  if (exactFilePaths || multiTargets) {
865
866
  const matches: GrepMatch[] = [];
867
+ const seenMatchKeys = new Set<string>();
866
868
  let limitReached = false;
867
869
  let totalMatches = 0;
868
870
  let filesSearched = 0;
@@ -900,6 +902,15 @@ export class SearchTool implements AgentTool<typeof searchSchema, SearchToolDeta
900
902
  filesSearched += targetResult.filesSearched;
901
903
  for (const match of targetResult.matches) {
902
904
  const absolute = path.resolve(target.basePath, match.path);
905
+ // Overlapping targets (a directory plus a file nested
906
+ // inside it) surface the same physical line twice;
907
+ // keep the first occurrence.
908
+ const matchKey = `${absolute}\0${match.lineNumber}`;
909
+ if (seenMatchKeys.has(matchKey)) {
910
+ totalMatches = Math.max(0, totalMatches - 1);
911
+ continue;
912
+ }
913
+ seenMatchKeys.add(matchKey);
903
914
  const rebased = path.relative(searchPath, absolute).replace(/\\/g, "/");
904
915
  matches.push({ ...match, path: rebased });
905
916
  }
package/src/utils/git.ts CHANGED
@@ -1126,9 +1126,14 @@ export async function commit(cwd: string, message: string, options: CommitOption
1126
1126
  return runChecked(cwd, args, { signal: options.signal, stdin: message });
1127
1127
  }
1128
1128
 
1129
- /** Push the current branch. */
1129
+ /** Push the current branch (branch-scoped: never follows tags). */
1130
1130
  export async function push(cwd: string, options: PushOptions = {}): Promise<void> {
1131
- const args = ["push"];
1131
+ // `--no-follow-tags` overrides a user's `push.followTags = true`, which
1132
+ // would otherwise ride every reachable annotated tag along with the
1133
+ // branch — rejected refs ("permission denied") on remotes the user
1134
+ // cannot tag (e.g. PR-head forks), failing the call after the branch
1135
+ // itself already updated. Tool pushes push exactly the named refspec.
1136
+ const args = ["push", "--no-follow-tags"];
1132
1137
  if (options.forceWithLease) args.push("--force-with-lease");
1133
1138
  if (options.remote) args.push(options.remote);
1134
1139
  if (options.refspec) args.push(options.refspec);