@oh-my-pi/pi-coding-agent 16.1.23 → 16.2.0

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 (254) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/cli.js +3817 -3735
  3. package/dist/types/advisor/__tests__/emission-guard.test.d.ts +1 -0
  4. package/dist/types/advisor/emission-guard.d.ts +73 -0
  5. package/dist/types/advisor/index.d.ts +1 -0
  6. package/dist/types/advisor/runtime.d.ts +7 -0
  7. package/dist/types/advisor/watchdog.d.ts +2 -0
  8. package/dist/types/cli/flag-tables.d.ts +1 -0
  9. package/dist/types/cli/gallery-fixtures/search.d.ts +1 -1
  10. package/dist/types/collab/display-name.d.ts +3 -0
  11. package/dist/types/collab/host.d.ts +0 -2
  12. package/dist/types/commands/worktree.d.ts +0 -3
  13. package/dist/types/config/inline-tool-descriptors-mode.d.ts +13 -0
  14. package/dist/types/config/model-discovery.d.ts +6 -1
  15. package/dist/types/config/model-registry.d.ts +6 -2
  16. package/dist/types/config/model-resolver.d.ts +12 -0
  17. package/dist/types/config/models-config-schema.d.ts +29 -2
  18. package/dist/types/config/models-config.d.ts +22 -1
  19. package/dist/types/config/settings-schema.d.ts +91 -21
  20. package/dist/types/config/settings.d.ts +2 -0
  21. package/dist/types/dap/config.d.ts +1 -1
  22. package/dist/types/edit/hashline/filesystem.d.ts +4 -2
  23. package/dist/types/edit/renderer.d.ts +4 -0
  24. package/dist/types/extensibility/extensions/types.d.ts +17 -17
  25. package/dist/types/extensibility/hooks/types.d.ts +10 -10
  26. package/dist/types/extensibility/plugins/marketplace/types.d.ts +1 -0
  27. package/dist/types/internal-urls/__tests__/ssh-protocol.test.d.ts +1 -0
  28. package/dist/types/internal-urls/index.d.ts +1 -0
  29. package/dist/types/internal-urls/registry-helpers.d.ts +2 -0
  30. package/dist/types/internal-urls/router.d.ts +1 -1
  31. package/dist/types/internal-urls/ssh-protocol.d.ts +10 -0
  32. package/dist/types/internal-urls/types.d.ts +19 -2
  33. package/dist/types/irc/bus.d.ts +6 -0
  34. package/dist/types/modes/components/__tests__/move-overlay.test.d.ts +1 -0
  35. package/dist/types/modes/components/custom-editor.d.ts +7 -0
  36. package/dist/types/modes/components/move-overlay.d.ts +23 -0
  37. package/dist/types/modes/components/plugin-selector.d.ts +2 -1
  38. package/dist/types/modes/components/queue-mode-selector.d.ts +2 -1
  39. package/dist/types/modes/components/select-list-mouse-routing.d.ts +2 -0
  40. package/dist/types/modes/components/settings-defs.d.ts +4 -1
  41. package/dist/types/modes/components/settings-selector.d.ts +2 -0
  42. package/dist/types/modes/components/show-images-selector.d.ts +2 -1
  43. package/dist/types/modes/components/status-line/component.d.ts +2 -0
  44. package/dist/types/modes/components/status-line/types.d.ts +2 -0
  45. package/dist/types/modes/components/theme-selector.d.ts +2 -1
  46. package/dist/types/modes/components/thinking-selector.d.ts +2 -1
  47. package/dist/types/modes/controllers/command-controller.d.ts +10 -1
  48. package/dist/types/modes/controllers/streaming-reveal.d.ts +6 -0
  49. package/dist/types/modes/interactive-mode.d.ts +10 -1
  50. package/dist/types/modes/internal-url-autocomplete.d.ts +1 -1
  51. package/dist/types/modes/running-subagent-badge.d.ts +6 -0
  52. package/dist/types/modes/theme/theme.d.ts +1 -1
  53. package/dist/types/modes/types.d.ts +9 -1
  54. package/dist/types/sdk.d.ts +2 -2
  55. package/dist/types/session/agent-session.d.ts +2 -1
  56. package/dist/types/session/session-manager.d.ts +13 -0
  57. package/dist/types/slash-commands/builtin-registry.d.ts +1 -1
  58. package/dist/types/ssh/__tests__/connection-manager-args.test.d.ts +1 -0
  59. package/dist/types/ssh/__tests__/file-transfer-posix-guard.test.d.ts +1 -0
  60. package/dist/types/ssh/connection-manager.d.ts +2 -0
  61. package/dist/types/ssh/file-transfer.d.ts +79 -0
  62. package/dist/types/ssh/utils.d.ts +6 -0
  63. package/dist/types/system-prompt.d.ts +3 -0
  64. package/dist/types/task/executor.d.ts +16 -0
  65. package/dist/types/tiny/text.d.ts +1 -1
  66. package/dist/types/tools/builtin-names.d.ts +5 -1
  67. package/dist/types/tools/{find.d.ts → glob.d.ts} +15 -15
  68. package/dist/types/tools/{search.d.ts → grep.d.ts} +14 -14
  69. package/dist/types/tools/index.d.ts +3 -3
  70. package/dist/types/tools/path-utils.d.ts +29 -0
  71. package/dist/types/tools/read.d.ts +2 -2
  72. package/dist/types/tools/render-utils.d.ts +8 -0
  73. package/dist/types/tools/renderers.d.ts +11 -0
  74. package/dist/types/tools/ssh.d.ts +2 -0
  75. package/dist/types/tools/todo.d.ts +0 -16
  76. package/dist/types/tools/write.d.ts +2 -2
  77. package/dist/types/utils/active-repo-context.d.ts +8 -0
  78. package/dist/types/utils/image-resize.d.ts +1 -0
  79. package/dist/types/utils/markit-cache.d.ts +23 -0
  80. package/dist/types/utils/markit.d.ts +5 -1
  81. package/dist/types/utils/prompt-path.d.ts +1 -0
  82. package/dist/types/web/search/providers/duckduckgo.d.ts +14 -0
  83. package/dist/types/web/search/providers/firecrawl.d.ts +28 -0
  84. package/dist/types/web/search/providers/tinyfish.d.ts +29 -0
  85. package/dist/types/web/search/providers/xai.d.ts +13 -0
  86. package/dist/types/web/search/types.d.ts +18 -2
  87. package/package.json +30 -15
  88. package/scripts/build-binary.ts +9 -9
  89. package/scripts/bundle-dist.ts +2 -2
  90. package/src/advisor/__tests__/advisor.test.ts +40 -4
  91. package/src/advisor/__tests__/emission-guard.test.ts +147 -0
  92. package/src/advisor/advise-tool.ts +1 -1
  93. package/src/advisor/emission-guard.ts +172 -0
  94. package/src/advisor/index.ts +1 -0
  95. package/src/advisor/runtime.ts +11 -0
  96. package/src/advisor/watchdog.ts +12 -1
  97. package/src/cli/args.ts +5 -2
  98. package/src/cli/auth-broker-cli.ts +17 -0
  99. package/src/cli/config-cli.ts +4 -0
  100. package/src/cli/flag-tables.ts +7 -4
  101. package/src/cli/gallery-cli.ts +14 -2
  102. package/src/cli/gallery-fixtures/edit.ts +60 -0
  103. package/src/cli/gallery-fixtures/fs.ts +17 -17
  104. package/src/cli/gallery-fixtures/search.ts +4 -4
  105. package/src/cli/usage-cli.ts +20 -1
  106. package/src/cli/web-search-cli.ts +1 -1
  107. package/src/collab/display-name.ts +13 -0
  108. package/src/collab/guest.ts +5 -1
  109. package/src/collab/host.ts +2 -13
  110. package/src/commands/worktree.ts +6 -0
  111. package/src/config/inline-tool-descriptors-mode.ts +27 -0
  112. package/src/config/model-discovery.ts +77 -8
  113. package/src/config/model-registry.ts +89 -11
  114. package/src/config/model-resolver.ts +39 -1
  115. package/src/config/models-config-schema.ts +41 -5
  116. package/src/config/models-config.ts +4 -1
  117. package/src/config/settings-schema.ts +85 -27
  118. package/src/config/settings.ts +172 -1
  119. package/src/cursor.ts +1 -1
  120. package/src/dap/config.ts +152 -8
  121. package/src/dap/session.ts +1 -1
  122. package/src/discovery/helpers.ts +3 -1
  123. package/src/edit/hashline/diff.ts +14 -3
  124. package/src/edit/hashline/execute.ts +42 -6
  125. package/src/edit/hashline/filesystem.ts +38 -2
  126. package/src/edit/index.ts +1 -0
  127. package/src/edit/modes/patch.ts +11 -1
  128. package/src/edit/renderer.ts +140 -13
  129. package/src/eval/__tests__/agent-bridge.test.ts +101 -0
  130. package/src/eval/agent-bridge.ts +26 -3
  131. package/src/eval/js/tool-bridge.ts +2 -2
  132. package/src/export/html/index.ts +1 -1
  133. package/src/export/html/template.js +3 -1
  134. package/src/export/html/tool-views.generated.js +20 -20
  135. package/src/extensibility/extensions/types.ts +22 -22
  136. package/src/extensibility/hooks/types.ts +11 -11
  137. package/src/extensibility/plugins/legacy-pi-bundled-keys.ts +8 -3
  138. package/src/extensibility/plugins/legacy-pi-bundled-registry.ts +25 -10
  139. package/src/extensibility/plugins/marketplace/manager.ts +22 -0
  140. package/src/extensibility/plugins/marketplace/types.ts +1 -0
  141. package/src/internal-urls/__tests__/ssh-protocol.test.ts +331 -0
  142. package/src/internal-urls/docs-index.generated.txt +2 -2
  143. package/src/internal-urls/docs-index.ts +2 -3
  144. package/src/internal-urls/index.ts +1 -0
  145. package/src/internal-urls/registry-helpers.ts +19 -4
  146. package/src/internal-urls/router.ts +5 -3
  147. package/src/internal-urls/ssh-protocol.ts +367 -0
  148. package/src/internal-urls/types.ts +19 -2
  149. package/src/irc/bus.ts +11 -3
  150. package/src/mcp/tool-bridge.ts +32 -2
  151. package/src/memories/index.ts +1 -1
  152. package/src/modes/acp/acp-event-mapper.ts +2 -2
  153. package/src/modes/components/__tests__/move-overlay.test.ts +166 -0
  154. package/src/modes/components/agent-hub.ts +3 -0
  155. package/src/modes/components/agent-transcript-viewer.ts +9 -7
  156. package/src/modes/components/custom-editor.ts +90 -5
  157. package/src/modes/components/move-overlay.ts +282 -0
  158. package/src/modes/components/plan-review-overlay.ts +35 -35
  159. package/src/modes/components/plugin-selector.ts +6 -1
  160. package/src/modes/components/queue-mode-selector.ts +6 -1
  161. package/src/modes/components/select-list-mouse-routing.ts +35 -0
  162. package/src/modes/components/session-selector.ts +11 -10
  163. package/src/modes/components/settings-defs.ts +14 -1
  164. package/src/modes/components/settings-selector.ts +196 -29
  165. package/src/modes/components/show-images-selector.ts +6 -1
  166. package/src/modes/components/status-line/component.ts +108 -28
  167. package/src/modes/components/status-line/segments.ts +5 -1
  168. package/src/modes/components/status-line/types.ts +2 -0
  169. package/src/modes/components/theme-selector.ts +6 -1
  170. package/src/modes/components/thinking-selector.ts +6 -1
  171. package/src/modes/components/tool-execution.ts +25 -9
  172. package/src/modes/components/tree-selector.ts +5 -5
  173. package/src/modes/controllers/command-controller.ts +140 -47
  174. package/src/modes/controllers/event-controller.ts +59 -3
  175. package/src/modes/controllers/input-controller.ts +68 -2
  176. package/src/modes/controllers/selector-controller.ts +5 -2
  177. package/src/modes/controllers/streaming-reveal.ts +17 -0
  178. package/src/modes/controllers/tool-args-reveal.ts +1 -1
  179. package/src/modes/interactive-mode.ts +116 -50
  180. package/src/modes/internal-url-autocomplete.ts +17 -2
  181. package/src/modes/prompt-action-autocomplete.ts +3 -1
  182. package/src/modes/running-subagent-badge.ts +13 -0
  183. package/src/modes/setup-wizard/scenes/glyph.ts +2 -13
  184. package/src/modes/setup-wizard/scenes/providers.ts +2 -1
  185. package/src/modes/setup-wizard/scenes/theme.ts +6 -12
  186. package/src/modes/setup-wizard/scenes/web-search.ts +8 -13
  187. package/src/modes/setup-wizard/wizard-overlay.ts +6 -5
  188. package/src/modes/theme/theme.ts +9 -1
  189. package/src/modes/types.ts +9 -1
  190. package/src/modes/utils/interactive-context-helpers.ts +1 -1
  191. package/src/priority.json +15 -0
  192. package/src/prompts/advisor/active-repo-watchdog.md +6 -0
  193. package/src/prompts/advisor/system.md +21 -7
  194. package/src/prompts/agents/designer.md +1 -1
  195. package/src/prompts/agents/explore.md +1 -1
  196. package/src/prompts/agents/librarian.md +2 -2
  197. package/src/prompts/agents/plan.md +2 -2
  198. package/src/prompts/agents/reviewer.md +1 -1
  199. package/src/prompts/agents/task.md +2 -2
  200. package/src/prompts/system/active-repo-context.md +4 -0
  201. package/src/prompts/system/gemini-tool-call-reminder.md +9 -0
  202. package/src/prompts/system/plan-mode-active.md +3 -3
  203. package/src/prompts/system/project-prompt.md +2 -2
  204. package/src/prompts/system/system-prompt.md +6 -6
  205. package/src/prompts/tools/bash.md +2 -2
  206. package/src/prompts/tools/checkpoint.md +1 -1
  207. package/src/prompts/tools/{find.md → glob.md} +1 -1
  208. package/src/prompts/tools/{search.md → grep.md} +3 -3
  209. package/src/prompts/tools/read.md +4 -2
  210. package/src/sdk.ts +55 -25
  211. package/src/session/agent-session.ts +508 -132
  212. package/src/session/session-history-format.ts +2 -2
  213. package/src/session/session-manager.ts +46 -0
  214. package/src/slash-commands/builtin-registry.ts +138 -20
  215. package/src/slash-commands/helpers/usage-report.ts +23 -2
  216. package/src/ssh/__tests__/connection-manager-args.test.ts +69 -0
  217. package/src/ssh/__tests__/file-transfer-posix-guard.test.ts +68 -0
  218. package/src/ssh/connection-manager.ts +12 -15
  219. package/src/ssh/file-transfer.ts +209 -0
  220. package/src/ssh/utils.ts +24 -0
  221. package/src/system-prompt.ts +56 -28
  222. package/src/task/executor.ts +96 -36
  223. package/src/task/index.ts +3 -3
  224. package/src/task/render.ts +14 -13
  225. package/src/task/worktree.ts +38 -1
  226. package/src/tiny/text.ts +49 -4
  227. package/src/tiny/worker.ts +3 -3
  228. package/src/tools/bash.ts +2 -2
  229. package/src/tools/builtin-names.ts +26 -2
  230. package/src/tools/{find.ts → glob.ts} +48 -42
  231. package/src/tools/{search.ts → grep.ts} +311 -129
  232. package/src/tools/index.ts +13 -14
  233. package/src/tools/irc.ts +6 -2
  234. package/src/tools/path-utils.ts +64 -1
  235. package/src/tools/read.ts +35 -6
  236. package/src/tools/render-utils.ts +14 -0
  237. package/src/tools/renderers.ts +15 -4
  238. package/src/tools/ssh.ts +17 -2
  239. package/src/tools/todo.ts +4 -26
  240. package/src/tools/write.ts +25 -9
  241. package/src/utils/active-repo-context.ts +143 -0
  242. package/src/utils/image-resize.ts +88 -7
  243. package/src/utils/lang-from-path.ts +3 -3
  244. package/src/utils/markit-cache.ts +166 -0
  245. package/src/utils/markit.ts +86 -18
  246. package/src/utils/prompt-path.ts +3 -0
  247. package/src/utils/title-generator.ts +1 -1
  248. package/src/web/search/provider.ts +54 -34
  249. package/src/web/search/providers/duckduckgo.ts +140 -0
  250. package/src/web/search/providers/firecrawl.ts +144 -0
  251. package/src/web/search/providers/tinyfish.ts +159 -0
  252. package/src/web/search/providers/xai.ts +292 -0
  253. package/src/web/search/providers/zai.ts +142 -56
  254. package/src/web/search/types.ts +6 -2
@@ -50,12 +50,12 @@ import type { ReadonlySessionManager, SessionManager } from "../../session/sessi
50
50
  import type {
51
51
  BashToolDetails,
52
52
  BashToolInput,
53
- FindToolDetails,
54
- FindToolInput,
53
+ GlobToolDetails,
54
+ GlobToolInput,
55
+ GrepToolDetails,
56
+ GrepToolInput,
55
57
  ReadToolDetails,
56
58
  ReadToolInput,
57
- SearchToolDetails,
58
- SearchToolInput,
59
59
  WriteToolInput,
60
60
  } from "../../tools";
61
61
  import type { ApprovalMode } from "../../tools/approval";
@@ -697,14 +697,14 @@ export interface WriteToolCallEvent extends ToolCallEventBase {
697
697
  input: WriteToolInput;
698
698
  }
699
699
 
700
- export interface SearchToolCallEvent extends ToolCallEventBase {
701
- toolName: "search";
702
- input: SearchToolInput;
700
+ export interface GrepToolCallEvent extends ToolCallEventBase {
701
+ toolName: "grep";
702
+ input: GrepToolInput;
703
703
  }
704
704
 
705
- export interface FindToolCallEvent extends ToolCallEventBase {
706
- toolName: "find";
707
- input: FindToolInput;
705
+ export interface GlobToolCallEvent extends ToolCallEventBase {
706
+ toolName: "glob";
707
+ input: GlobToolInput;
708
708
  }
709
709
 
710
710
  export interface CustomToolCallEvent extends ToolCallEventBase {
@@ -718,8 +718,8 @@ export type ToolCallEvent =
718
718
  | ReadToolCallEvent
719
719
  | EditToolCallEvent
720
720
  | WriteToolCallEvent
721
- | SearchToolCallEvent
722
- | FindToolCallEvent
721
+ | GrepToolCallEvent
722
+ | GlobToolCallEvent
723
723
  | CustomToolCallEvent;
724
724
 
725
725
  interface ToolResultEventBase {
@@ -750,14 +750,14 @@ export interface WriteToolResultEvent extends ToolResultEventBase {
750
750
  details: undefined;
751
751
  }
752
752
 
753
- export interface SearchToolResultEvent extends ToolResultEventBase {
754
- toolName: "search";
755
- details: SearchToolDetails | undefined;
753
+ export interface GrepToolResultEvent extends ToolResultEventBase {
754
+ toolName: "grep";
755
+ details: GrepToolDetails | undefined;
756
756
  }
757
757
 
758
- export interface FindToolResultEvent extends ToolResultEventBase {
759
- toolName: "find";
760
- details: FindToolDetails | undefined;
758
+ export interface GlobToolResultEvent extends ToolResultEventBase {
759
+ toolName: "glob";
760
+ details: GlobToolDetails | undefined;
761
761
  }
762
762
 
763
763
  export interface CustomToolResultEvent extends ToolResultEventBase {
@@ -771,8 +771,8 @@ export type ToolResultEvent =
771
771
  | ReadToolResultEvent
772
772
  | EditToolResultEvent
773
773
  | WriteToolResultEvent
774
- | SearchToolResultEvent
775
- | FindToolResultEvent
774
+ | GrepToolResultEvent
775
+ | GlobToolResultEvent
776
776
  | CustomToolResultEvent;
777
777
 
778
778
  /**
@@ -799,8 +799,8 @@ export function isToolCallEventType(toolName: "bash", event: ToolCallEvent): eve
799
799
  export function isToolCallEventType(toolName: "read", event: ToolCallEvent): event is ReadToolCallEvent;
800
800
  export function isToolCallEventType(toolName: "edit", event: ToolCallEvent): event is EditToolCallEvent;
801
801
  export function isToolCallEventType(toolName: "write", event: ToolCallEvent): event is WriteToolCallEvent;
802
- export function isToolCallEventType(toolName: "search", event: ToolCallEvent): event is SearchToolCallEvent;
803
- export function isToolCallEventType(toolName: "find", event: ToolCallEvent): event is FindToolCallEvent;
802
+ export function isToolCallEventType(toolName: "grep", event: ToolCallEvent): event is GrepToolCallEvent;
803
+ export function isToolCallEventType(toolName: "glob", event: ToolCallEvent): event is GlobToolCallEvent;
804
804
  export function isToolCallEventType<TName extends string, TInput extends Record<string, unknown>>(
805
805
  toolName: TName,
806
806
  event: ToolCallEvent,
@@ -10,7 +10,7 @@ import type * as PiCodingAgent from "../../index";
10
10
  import type { Theme } from "../../modes/theme/theme";
11
11
  import type { HookMessage } from "../../session/messages";
12
12
  import type { ReadonlySessionManager, SessionManager } from "../../session/session-manager";
13
- import type { BashToolDetails, FindToolDetails, ReadToolDetails, SearchToolDetails } from "../../tools";
13
+ import type { BashToolDetails, GlobToolDetails, GrepToolDetails, ReadToolDetails } from "../../tools";
14
14
  import type {
15
15
  AgentEndEvent,
16
16
  AgentStartEvent,
@@ -352,16 +352,16 @@ export interface WriteToolResultEvent extends ToolResultEventBase {
352
352
  details: undefined;
353
353
  }
354
354
 
355
- /** Tool result event for search tool */
356
- export interface SearchToolResultEvent extends ToolResultEventBase {
357
- toolName: "search";
358
- details: SearchToolDetails | undefined;
355
+ /** Tool result event for grep tool */
356
+ export interface GrepToolResultEvent extends ToolResultEventBase {
357
+ toolName: "grep";
358
+ details: GrepToolDetails | undefined;
359
359
  }
360
360
 
361
- /** Tool result event for find tool */
362
- export interface FindToolResultEvent extends ToolResultEventBase {
363
- toolName: "find";
364
- details: FindToolDetails | undefined;
361
+ /** Tool result event for glob tool */
362
+ export interface GlobToolResultEvent extends ToolResultEventBase {
363
+ toolName: "glob";
364
+ details: GlobToolDetails | undefined;
365
365
  }
366
366
 
367
367
  /** Tool result event for custom/unknown tools */
@@ -380,8 +380,8 @@ export type ToolResultEvent =
380
380
  | ReadToolResultEvent
381
381
  | EditToolResultEvent
382
382
  | WriteToolResultEvent
383
- | SearchToolResultEvent
384
- | FindToolResultEvent
383
+ | GrepToolResultEvent
384
+ | GlobToolResultEvent
385
385
  | CustomToolResultEvent;
386
386
 
387
387
  /**
@@ -93,6 +93,7 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
93
93
  "@oh-my-pi/pi-ai/usage/google-antigravity",
94
94
  "@oh-my-pi/pi-ai/usage/kimi",
95
95
  "@oh-my-pi/pi-ai/usage/minimax-code",
96
+ "@oh-my-pi/pi-ai/usage/ollama",
96
97
  "@oh-my-pi/pi-ai/usage/openai-codex-reset",
97
98
  "@oh-my-pi/pi-ai/usage/openai-codex",
98
99
  "@oh-my-pi/pi-ai/usage/opencode-go",
@@ -107,7 +108,6 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
107
108
  "@oh-my-pi/pi-ai/utils/google-validation",
108
109
  "@oh-my-pi/pi-ai/utils/http-inspector",
109
110
  "@oh-my-pi/pi-ai/utils/idle-iterator",
110
- "@oh-my-pi/pi-ai/utils/json-parse",
111
111
  "@oh-my-pi/pi-ai/utils/openai-http",
112
112
  "@oh-my-pi/pi-ai/utils/openrouter-headers",
113
113
  "@oh-my-pi/pi-ai/utils/overflow",
@@ -353,6 +353,7 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
353
353
  "@oh-my-pi/pi-coding-agent/config/append-only-context-mode",
354
354
  "@oh-my-pi/pi-coding-agent/config/config-file",
355
355
  "@oh-my-pi/pi-coding-agent/config/file-lock",
356
+ "@oh-my-pi/pi-coding-agent/config/inline-tool-descriptors-mode",
356
357
  "@oh-my-pi/pi-coding-agent/config/keybindings",
357
358
  "@oh-my-pi/pi-coding-agent/config/model-discovery",
358
359
  "@oh-my-pi/pi-coding-agent/config/model-registry",
@@ -781,13 +782,14 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
781
782
  "@oh-my-pi/pi-coding-agent/tools/eval",
782
783
  "@oh-my-pi/pi-coding-agent/tools/fetch",
783
784
  "@oh-my-pi/pi-coding-agent/tools/file-recorder",
784
- "@oh-my-pi/pi-coding-agent/tools/find",
785
785
  "@oh-my-pi/pi-coding-agent/tools/fs-cache-invalidation",
786
786
  "@oh-my-pi/pi-coding-agent/tools/gh-cache-invalidation",
787
787
  "@oh-my-pi/pi-coding-agent/tools/gh-format",
788
788
  "@oh-my-pi/pi-coding-agent/tools/gh-renderer",
789
789
  "@oh-my-pi/pi-coding-agent/tools/gh",
790
790
  "@oh-my-pi/pi-coding-agent/tools/github-cache",
791
+ "@oh-my-pi/pi-coding-agent/tools/glob",
792
+ "@oh-my-pi/pi-coding-agent/tools/grep",
791
793
  "@oh-my-pi/pi-coding-agent/tools/grouped-file-output",
792
794
  "@oh-my-pi/pi-coding-agent/tools/image-gen",
793
795
  "@oh-my-pi/pi-coding-agent/tools/inspect-image-renderer",
@@ -818,7 +820,6 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
818
820
  "@oh-my-pi/pi-coding-agent/tools/resolve",
819
821
  "@oh-my-pi/pi-coding-agent/tools/review",
820
822
  "@oh-my-pi/pi-coding-agent/tools/search-tool-bm25",
821
- "@oh-my-pi/pi-coding-agent/tools/search",
822
823
  "@oh-my-pi/pi-coding-agent/tools/sqlite-reader",
823
824
  "@oh-my-pi/pi-coding-agent/tools/ssh",
824
825
  "@oh-my-pi/pi-coding-agent/tools/todo",
@@ -955,7 +956,9 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
955
956
  "@oh-my-pi/pi-coding-agent/web/search/providers/base",
956
957
  "@oh-my-pi/pi-coding-agent/web/search/providers/brave",
957
958
  "@oh-my-pi/pi-coding-agent/web/search/providers/codex",
959
+ "@oh-my-pi/pi-coding-agent/web/search/providers/duckduckgo",
958
960
  "@oh-my-pi/pi-coding-agent/web/search/providers/exa",
961
+ "@oh-my-pi/pi-coding-agent/web/search/providers/firecrawl",
959
962
  "@oh-my-pi/pi-coding-agent/web/search/providers/gemini",
960
963
  "@oh-my-pi/pi-coding-agent/web/search/providers/jina",
961
964
  "@oh-my-pi/pi-coding-agent/web/search/providers/kagi",
@@ -966,7 +969,9 @@ export const BUNDLED_PI_REGISTRY_KEYS: ReadonlySet<string> = new Set([
966
969
  "@oh-my-pi/pi-coding-agent/web/search/providers/searxng",
967
970
  "@oh-my-pi/pi-coding-agent/web/search/providers/synthetic",
968
971
  "@oh-my-pi/pi-coding-agent/web/search/providers/tavily",
972
+ "@oh-my-pi/pi-coding-agent/web/search/providers/tinyfish",
969
973
  "@oh-my-pi/pi-coding-agent/web/search/providers/utils",
974
+ "@oh-my-pi/pi-coding-agent/web/search/providers/xai",
970
975
  "@oh-my-pi/pi-coding-agent/web/search/providers/zai",
971
976
  "@oh-my-pi/pi-natives",
972
977
  "@oh-my-pi/pi-tui",
@@ -116,6 +116,7 @@ import * as bundledPiAiUsageGithubCopilot from "@oh-my-pi/pi-ai/usage/github-cop
116
116
  import * as bundledPiAiUsageGoogleAntigravity from "@oh-my-pi/pi-ai/usage/google-antigravity";
117
117
  import * as bundledPiAiUsageKimi from "@oh-my-pi/pi-ai/usage/kimi";
118
118
  import * as bundledPiAiUsageMinimaxCode from "@oh-my-pi/pi-ai/usage/minimax-code";
119
+ import * as bundledPiAiUsageOllama from "@oh-my-pi/pi-ai/usage/ollama";
119
120
  import * as bundledPiAiUsageOpenaiCodex from "@oh-my-pi/pi-ai/usage/openai-codex";
120
121
  import * as bundledPiAiUsageOpenaiCodexReset from "@oh-my-pi/pi-ai/usage/openai-codex-reset";
121
122
  import * as bundledPiAiUsageOpencodeGo from "@oh-my-pi/pi-ai/usage/opencode-go";
@@ -131,7 +132,6 @@ import * as bundledPiAiUtilsGoogleValidation from "@oh-my-pi/pi-ai/utils/google-
131
132
  import * as bundledPiAiUtilsHarmonyLeak from "@oh-my-pi/pi-ai/utils/harmony-leak";
132
133
  import * as bundledPiAiUtilsHttpInspector from "@oh-my-pi/pi-ai/utils/http-inspector";
133
134
  import * as bundledPiAiUtilsIdleIterator from "@oh-my-pi/pi-ai/utils/idle-iterator";
134
- import * as bundledPiAiUtilsJsonParse from "@oh-my-pi/pi-ai/utils/json-parse";
135
135
  import * as bundledPiAiUtilsOpenaiHttp from "@oh-my-pi/pi-ai/utils/openai-http";
136
136
  import * as bundledPiAiUtilsOpenrouterHeaders from "@oh-my-pi/pi-ai/utils/openrouter-headers";
137
137
  import * as bundledPiAiUtilsOverflow from "@oh-my-pi/pi-ai/utils/overflow";
@@ -321,6 +321,7 @@ import * as bundledPiCodingAgentConfigApiKeyResolver from "@oh-my-pi/pi-coding-a
321
321
  import * as bundledPiCodingAgentConfigAppendOnlyContextMode from "@oh-my-pi/pi-coding-agent/config/append-only-context-mode";
322
322
  import * as bundledPiCodingAgentConfigConfigFile from "@oh-my-pi/pi-coding-agent/config/config-file";
323
323
  import * as bundledPiCodingAgentConfigFileLock from "@oh-my-pi/pi-coding-agent/config/file-lock";
324
+ import * as bundledPiCodingAgentConfigInlineToolDescriptorsMode from "@oh-my-pi/pi-coding-agent/config/inline-tool-descriptors-mode";
324
325
  import * as bundledPiCodingAgentConfigKeybindings from "@oh-my-pi/pi-coding-agent/config/keybindings";
325
326
  import * as bundledPiCodingAgentConfigModelDiscovery from "@oh-my-pi/pi-coding-agent/config/model-discovery";
326
327
  import * as bundledPiCodingAgentConfigModelRegistry from "@oh-my-pi/pi-coding-agent/config/model-registry";
@@ -783,13 +784,14 @@ import * as bundledPiCodingAgentToolsEvalBackends from "@oh-my-pi/pi-coding-agen
783
784
  import * as bundledPiCodingAgentToolsEvalRender from "@oh-my-pi/pi-coding-agent/tools/eval-render";
784
785
  import * as bundledPiCodingAgentToolsFetch from "@oh-my-pi/pi-coding-agent/tools/fetch";
785
786
  import * as bundledPiCodingAgentToolsFileRecorder from "@oh-my-pi/pi-coding-agent/tools/file-recorder";
786
- import * as bundledPiCodingAgentToolsFind from "@oh-my-pi/pi-coding-agent/tools/find";
787
787
  import * as bundledPiCodingAgentToolsFsCacheInvalidation from "@oh-my-pi/pi-coding-agent/tools/fs-cache-invalidation";
788
788
  import * as bundledPiCodingAgentToolsGh from "@oh-my-pi/pi-coding-agent/tools/gh";
789
789
  import * as bundledPiCodingAgentToolsGhCacheInvalidation from "@oh-my-pi/pi-coding-agent/tools/gh-cache-invalidation";
790
790
  import * as bundledPiCodingAgentToolsGhFormat from "@oh-my-pi/pi-coding-agent/tools/gh-format";
791
791
  import * as bundledPiCodingAgentToolsGhRenderer from "@oh-my-pi/pi-coding-agent/tools/gh-renderer";
792
792
  import * as bundledPiCodingAgentToolsGithubCache from "@oh-my-pi/pi-coding-agent/tools/github-cache";
793
+ import * as bundledPiCodingAgentToolsGlob from "@oh-my-pi/pi-coding-agent/tools/glob";
794
+ import * as bundledPiCodingAgentToolsGrep from "@oh-my-pi/pi-coding-agent/tools/grep";
793
795
  import * as bundledPiCodingAgentToolsGroupedFileOutput from "@oh-my-pi/pi-coding-agent/tools/grouped-file-output";
794
796
  import * as bundledPiCodingAgentToolsImageGen from "@oh-my-pi/pi-coding-agent/tools/image-gen";
795
797
  import * as bundledPiCodingAgentToolsInspectImage from "@oh-my-pi/pi-coding-agent/tools/inspect-image";
@@ -819,7 +821,6 @@ import * as bundledPiCodingAgentToolsRenderers from "@oh-my-pi/pi-coding-agent/t
819
821
  import * as bundledPiCodingAgentToolsReportToolIssue from "@oh-my-pi/pi-coding-agent/tools/report-tool-issue";
820
822
  import * as bundledPiCodingAgentToolsResolve from "@oh-my-pi/pi-coding-agent/tools/resolve";
821
823
  import * as bundledPiCodingAgentToolsReview from "@oh-my-pi/pi-coding-agent/tools/review";
822
- import * as bundledPiCodingAgentToolsSearch from "@oh-my-pi/pi-coding-agent/tools/search";
823
824
  import * as bundledPiCodingAgentToolsSearchToolBm25 from "@oh-my-pi/pi-coding-agent/tools/search-tool-bm25";
824
825
  import * as bundledPiCodingAgentToolsSqliteReader from "@oh-my-pi/pi-coding-agent/tools/sqlite-reader";
825
826
  import * as bundledPiCodingAgentToolsSsh from "@oh-my-pi/pi-coding-agent/tools/ssh";
@@ -957,7 +958,9 @@ import * as bundledPiCodingAgentWebSearchProvidersAnthropic from "@oh-my-pi/pi-c
957
958
  import * as bundledPiCodingAgentWebSearchProvidersBase from "@oh-my-pi/pi-coding-agent/web/search/providers/base";
958
959
  import * as bundledPiCodingAgentWebSearchProvidersBrave from "@oh-my-pi/pi-coding-agent/web/search/providers/brave";
959
960
  import * as bundledPiCodingAgentWebSearchProvidersCodex from "@oh-my-pi/pi-coding-agent/web/search/providers/codex";
961
+ import * as bundledPiCodingAgentWebSearchProvidersDuckduckgo from "@oh-my-pi/pi-coding-agent/web/search/providers/duckduckgo";
960
962
  import * as bundledPiCodingAgentWebSearchProvidersExa from "@oh-my-pi/pi-coding-agent/web/search/providers/exa";
963
+ import * as bundledPiCodingAgentWebSearchProvidersFirecrawl from "@oh-my-pi/pi-coding-agent/web/search/providers/firecrawl";
961
964
  import * as bundledPiCodingAgentWebSearchProvidersGemini from "@oh-my-pi/pi-coding-agent/web/search/providers/gemini";
962
965
  import * as bundledPiCodingAgentWebSearchProvidersJina from "@oh-my-pi/pi-coding-agent/web/search/providers/jina";
963
966
  import * as bundledPiCodingAgentWebSearchProvidersKagi from "@oh-my-pi/pi-coding-agent/web/search/providers/kagi";
@@ -968,7 +971,9 @@ import * as bundledPiCodingAgentWebSearchProvidersPerplexityAuth from "@oh-my-pi
968
971
  import * as bundledPiCodingAgentWebSearchProvidersSearxng from "@oh-my-pi/pi-coding-agent/web/search/providers/searxng";
969
972
  import * as bundledPiCodingAgentWebSearchProvidersSynthetic from "@oh-my-pi/pi-coding-agent/web/search/providers/synthetic";
970
973
  import * as bundledPiCodingAgentWebSearchProvidersTavily from "@oh-my-pi/pi-coding-agent/web/search/providers/tavily";
974
+ import * as bundledPiCodingAgentWebSearchProvidersTinyfish from "@oh-my-pi/pi-coding-agent/web/search/providers/tinyfish";
971
975
  import * as bundledPiCodingAgentWebSearchProvidersUtils from "@oh-my-pi/pi-coding-agent/web/search/providers/utils";
976
+ import * as bundledPiCodingAgentWebSearchProvidersXai from "@oh-my-pi/pi-coding-agent/web/search/providers/xai";
972
977
  import * as bundledPiCodingAgentWebSearchProvidersZai from "@oh-my-pi/pi-coding-agent/web/search/providers/zai";
973
978
  import * as bundledPiCodingAgentWebSearchRender from "@oh-my-pi/pi-coding-agent/web/search/render";
974
979
  import * as bundledPiCodingAgentWebSearchTypes from "@oh-my-pi/pi-coding-agent/web/search/types";
@@ -1181,6 +1186,7 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
1181
1186
  >,
1182
1187
  "@oh-my-pi/pi-ai/usage/kimi": bundledPiAiUsageKimi as unknown as Readonly<Record<string, unknown>>,
1183
1188
  "@oh-my-pi/pi-ai/usage/minimax-code": bundledPiAiUsageMinimaxCode as unknown as Readonly<Record<string, unknown>>,
1189
+ "@oh-my-pi/pi-ai/usage/ollama": bundledPiAiUsageOllama as unknown as Readonly<Record<string, unknown>>,
1184
1190
  "@oh-my-pi/pi-ai/usage/openai-codex-reset": bundledPiAiUsageOpenaiCodexReset as unknown as Readonly<
1185
1191
  Record<string, unknown>
1186
1192
  >,
@@ -1207,7 +1213,6 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
1207
1213
  Record<string, unknown>
1208
1214
  >,
1209
1215
  "@oh-my-pi/pi-ai/utils/idle-iterator": bundledPiAiUtilsIdleIterator as unknown as Readonly<Record<string, unknown>>,
1210
- "@oh-my-pi/pi-ai/utils/json-parse": bundledPiAiUtilsJsonParse as unknown as Readonly<Record<string, unknown>>,
1211
1216
  "@oh-my-pi/pi-ai/utils/openai-http": bundledPiAiUtilsOpenaiHttp as unknown as Readonly<Record<string, unknown>>,
1212
1217
  "@oh-my-pi/pi-ai/utils/openrouter-headers": bundledPiAiUtilsOpenrouterHeaders as unknown as Readonly<
1213
1218
  Record<string, unknown>
@@ -1784,6 +1789,8 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
1784
1789
  "@oh-my-pi/pi-coding-agent/config/file-lock": bundledPiCodingAgentConfigFileLock as unknown as Readonly<
1785
1790
  Record<string, unknown>
1786
1791
  >,
1792
+ "@oh-my-pi/pi-coding-agent/config/inline-tool-descriptors-mode":
1793
+ bundledPiCodingAgentConfigInlineToolDescriptorsMode as unknown as Readonly<Record<string, unknown>>,
1787
1794
  "@oh-my-pi/pi-coding-agent/config/keybindings": bundledPiCodingAgentConfigKeybindings as unknown as Readonly<
1788
1795
  Record<string, unknown>
1789
1796
  >,
@@ -2830,9 +2837,6 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
2830
2837
  "@oh-my-pi/pi-coding-agent/tools/file-recorder": bundledPiCodingAgentToolsFileRecorder as unknown as Readonly<
2831
2838
  Record<string, unknown>
2832
2839
  >,
2833
- "@oh-my-pi/pi-coding-agent/tools/find": bundledPiCodingAgentToolsFind as unknown as Readonly<
2834
- Record<string, unknown>
2835
- >,
2836
2840
  "@oh-my-pi/pi-coding-agent/tools/fs-cache-invalidation":
2837
2841
  bundledPiCodingAgentToolsFsCacheInvalidation as unknown as Readonly<Record<string, unknown>>,
2838
2842
  "@oh-my-pi/pi-coding-agent/tools/gh-cache-invalidation":
@@ -2847,6 +2851,12 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
2847
2851
  "@oh-my-pi/pi-coding-agent/tools/github-cache": bundledPiCodingAgentToolsGithubCache as unknown as Readonly<
2848
2852
  Record<string, unknown>
2849
2853
  >,
2854
+ "@oh-my-pi/pi-coding-agent/tools/glob": bundledPiCodingAgentToolsGlob as unknown as Readonly<
2855
+ Record<string, unknown>
2856
+ >,
2857
+ "@oh-my-pi/pi-coding-agent/tools/grep": bundledPiCodingAgentToolsGrep as unknown as Readonly<
2858
+ Record<string, unknown>
2859
+ >,
2850
2860
  "@oh-my-pi/pi-coding-agent/tools/grouped-file-output":
2851
2861
  bundledPiCodingAgentToolsGroupedFileOutput as unknown as Readonly<Record<string, unknown>>,
2852
2862
  "@oh-my-pi/pi-coding-agent/tools/image-gen": bundledPiCodingAgentToolsImageGen as unknown as Readonly<
@@ -2929,9 +2939,6 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
2929
2939
  "@oh-my-pi/pi-coding-agent/tools/search-tool-bm25": bundledPiCodingAgentToolsSearchToolBm25 as unknown as Readonly<
2930
2940
  Record<string, unknown>
2931
2941
  >,
2932
- "@oh-my-pi/pi-coding-agent/tools/search": bundledPiCodingAgentToolsSearch as unknown as Readonly<
2933
- Record<string, unknown>
2934
- >,
2935
2942
  "@oh-my-pi/pi-coding-agent/tools/sqlite-reader": bundledPiCodingAgentToolsSqliteReader as unknown as Readonly<
2936
2943
  Record<string, unknown>
2937
2944
  >,
@@ -3299,8 +3306,12 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
3299
3306
  bundledPiCodingAgentWebSearchProvidersBrave as unknown as Readonly<Record<string, unknown>>,
3300
3307
  "@oh-my-pi/pi-coding-agent/web/search/providers/codex":
3301
3308
  bundledPiCodingAgentWebSearchProvidersCodex as unknown as Readonly<Record<string, unknown>>,
3309
+ "@oh-my-pi/pi-coding-agent/web/search/providers/duckduckgo":
3310
+ bundledPiCodingAgentWebSearchProvidersDuckduckgo as unknown as Readonly<Record<string, unknown>>,
3302
3311
  "@oh-my-pi/pi-coding-agent/web/search/providers/exa":
3303
3312
  bundledPiCodingAgentWebSearchProvidersExa as unknown as Readonly<Record<string, unknown>>,
3313
+ "@oh-my-pi/pi-coding-agent/web/search/providers/firecrawl":
3314
+ bundledPiCodingAgentWebSearchProvidersFirecrawl as unknown as Readonly<Record<string, unknown>>,
3304
3315
  "@oh-my-pi/pi-coding-agent/web/search/providers/gemini":
3305
3316
  bundledPiCodingAgentWebSearchProvidersGemini as unknown as Readonly<Record<string, unknown>>,
3306
3317
  "@oh-my-pi/pi-coding-agent/web/search/providers/jina":
@@ -3321,8 +3332,12 @@ export const BUNDLED_PI_REGISTRY: Readonly<Record<string, Readonly<Record<string
3321
3332
  bundledPiCodingAgentWebSearchProvidersSynthetic as unknown as Readonly<Record<string, unknown>>,
3322
3333
  "@oh-my-pi/pi-coding-agent/web/search/providers/tavily":
3323
3334
  bundledPiCodingAgentWebSearchProvidersTavily as unknown as Readonly<Record<string, unknown>>,
3335
+ "@oh-my-pi/pi-coding-agent/web/search/providers/tinyfish":
3336
+ bundledPiCodingAgentWebSearchProvidersTinyfish as unknown as Readonly<Record<string, unknown>>,
3324
3337
  "@oh-my-pi/pi-coding-agent/web/search/providers/utils":
3325
3338
  bundledPiCodingAgentWebSearchProvidersUtils as unknown as Readonly<Record<string, unknown>>,
3339
+ "@oh-my-pi/pi-coding-agent/web/search/providers/xai":
3340
+ bundledPiCodingAgentWebSearchProvidersXai as unknown as Readonly<Record<string, unknown>>,
3326
3341
  "@oh-my-pi/pi-coding-agent/web/search/providers/zai":
3327
3342
  bundledPiCodingAgentWebSearchProvidersZai as unknown as Readonly<Record<string, unknown>>,
3328
3343
  "@oh-my-pi/pi-natives": bundledPiNatives as unknown as Readonly<Record<string, unknown>>,
@@ -303,6 +303,7 @@ export class MarketplaceManager {
303
303
  version = await this.#resolvePluginVersion(pluginEntry, sourcePath);
304
304
  cachePath = await cachePlugin(sourcePath, this.#opts.pluginsCacheDir, marketplace, name, version);
305
305
  await this.#writeEmbeddedLspConfig(pluginEntry, cachePath);
306
+ await this.#writeEmbeddedDapConfig(pluginEntry, cachePath);
306
307
  } finally {
307
308
  // Clean up temp clone dirs created by resolvePluginSource; leave user-supplied local dirs alone
308
309
  if (tempCloneRoot) {
@@ -383,6 +384,27 @@ export class MarketplaceManager {
383
384
  await Bun.write(targetPath, `${JSON.stringify({ servers: lspServers }, null, 2)}\n`);
384
385
  }
385
386
 
387
+ async #writeEmbeddedDapConfig(entry: MarketplacePluginEntry, cachePath: string): Promise<void> {
388
+ const dapAdapters = entry.dapAdapters;
389
+ if (!dapAdapters) return;
390
+
391
+ if (typeof dapAdapters === "string") {
392
+ const sourcePath = path.resolve(cachePath, dapAdapters);
393
+ if (!pathIsWithin(cachePath, sourcePath)) {
394
+ throw new Error(`Plugin "${entry.name}" dapAdapters path escapes the plugin directory`);
395
+ }
396
+ const extension = path.extname(sourcePath).toLowerCase();
397
+ const targetFilename = extension === ".yaml" || extension === ".yml" ? `.dap${extension}` : ".dap.json";
398
+ const targetPath = path.join(cachePath, targetFilename);
399
+ const content = await Bun.file(sourcePath).text();
400
+ await Bun.write(targetPath, content);
401
+ return;
402
+ }
403
+
404
+ const targetPath = path.join(cachePath, ".dap.json");
405
+ await Bun.write(targetPath, `${JSON.stringify({ adapters: dapAdapters }, null, 2)}\n`);
406
+ }
407
+
386
408
  /**
387
409
  * Resolve plugin version from multiple sources:
388
410
  * 1. Catalog entry version (if set)
@@ -92,6 +92,7 @@ export interface MarketplacePluginEntry {
92
92
  hooks?: string | Record<string, unknown>;
93
93
  mcpServers?: string | Record<string, unknown>;
94
94
  lspServers?: string | Record<string, unknown>;
95
+ dapAdapters?: string | Record<string, unknown>;
95
96
  }
96
97
 
97
98
  // ── Plugin source variants ───────────────────────────────────────────