@nghyane/arcane 0.1.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 (738) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/README.md +12 -0
  3. package/examples/README.md +21 -0
  4. package/examples/custom-tools/README.md +109 -0
  5. package/examples/custom-tools/hello/index.ts +20 -0
  6. package/examples/custom-tools/todo/index.ts +206 -0
  7. package/examples/extensions/README.md +143 -0
  8. package/examples/extensions/api-demo.ts +89 -0
  9. package/examples/extensions/chalk-logger.ts +25 -0
  10. package/examples/extensions/hello.ts +32 -0
  11. package/examples/extensions/pirate.ts +43 -0
  12. package/examples/extensions/plan-mode.ts +550 -0
  13. package/examples/extensions/reload-runtime.ts +37 -0
  14. package/examples/extensions/todo.ts +296 -0
  15. package/examples/extensions/tools.ts +144 -0
  16. package/examples/extensions/with-deps/index.ts +35 -0
  17. package/examples/extensions/with-deps/package-lock.json +31 -0
  18. package/examples/extensions/with-deps/package.json +16 -0
  19. package/examples/hooks/README.md +56 -0
  20. package/examples/hooks/auto-commit-on-exit.ts +48 -0
  21. package/examples/hooks/confirm-destructive.ts +58 -0
  22. package/examples/hooks/custom-compaction.ts +116 -0
  23. package/examples/hooks/dirty-repo-guard.ts +51 -0
  24. package/examples/hooks/file-trigger.ts +40 -0
  25. package/examples/hooks/git-checkpoint.ts +52 -0
  26. package/examples/hooks/handoff.ts +150 -0
  27. package/examples/hooks/permission-gate.ts +33 -0
  28. package/examples/hooks/protected-paths.ts +29 -0
  29. package/examples/hooks/qna.ts +119 -0
  30. package/examples/hooks/status-line.ts +39 -0
  31. package/examples/sdk/01-minimal.ts +21 -0
  32. package/examples/sdk/02-custom-model.ts +49 -0
  33. package/examples/sdk/03-custom-prompt.ts +43 -0
  34. package/examples/sdk/04-skills.ts +43 -0
  35. package/examples/sdk/06-extensions.ts +80 -0
  36. package/examples/sdk/06-hooks.ts +61 -0
  37. package/examples/sdk/07-context-files.ts +35 -0
  38. package/examples/sdk/08-prompt-templates.ts +36 -0
  39. package/examples/sdk/08-slash-commands.ts +41 -0
  40. package/examples/sdk/09-api-keys-and-oauth.ts +54 -0
  41. package/examples/sdk/11-sessions.ts +47 -0
  42. package/examples/sdk/README.md +150 -0
  43. package/package.json +464 -0
  44. package/scripts/format-prompts.ts +184 -0
  45. package/scripts/generate-docs-index.ts +40 -0
  46. package/scripts/generate-template.ts +32 -0
  47. package/src/bun-imports.d.ts +22 -0
  48. package/src/capability/context-file.ts +39 -0
  49. package/src/capability/extension-module.ts +33 -0
  50. package/src/capability/extension.ts +47 -0
  51. package/src/capability/fs.ts +89 -0
  52. package/src/capability/hook.ts +39 -0
  53. package/src/capability/index.ts +432 -0
  54. package/src/capability/instruction.ts +36 -0
  55. package/src/capability/mcp.ts +60 -0
  56. package/src/capability/prompt.ts +34 -0
  57. package/src/capability/rule.ts +223 -0
  58. package/src/capability/settings.ts +34 -0
  59. package/src/capability/skill.ts +48 -0
  60. package/src/capability/slash-command.ts +39 -0
  61. package/src/capability/ssh.ts +41 -0
  62. package/src/capability/system-prompt.ts +34 -0
  63. package/src/capability/tool.ts +37 -0
  64. package/src/capability/types.ts +156 -0
  65. package/src/cli/args.ts +259 -0
  66. package/src/cli/config-cli.ts +357 -0
  67. package/src/cli/file-processor.ts +124 -0
  68. package/src/cli/grep-cli.ts +152 -0
  69. package/src/cli/jupyter-cli.ts +106 -0
  70. package/src/cli/list-models.ts +103 -0
  71. package/src/cli/plugin-cli.ts +661 -0
  72. package/src/cli/session-picker.ts +42 -0
  73. package/src/cli/setup-cli.ts +376 -0
  74. package/src/cli/shell-cli.ts +174 -0
  75. package/src/cli/ssh-cli.ts +179 -0
  76. package/src/cli/stats-cli.ts +197 -0
  77. package/src/cli/update-cli.ts +286 -0
  78. package/src/cli/web-search-cli.ts +143 -0
  79. package/src/cli.ts +65 -0
  80. package/src/commands/commit.ts +36 -0
  81. package/src/commands/config.ts +51 -0
  82. package/src/commands/grep.ts +41 -0
  83. package/src/commands/jupyter.ts +32 -0
  84. package/src/commands/launch.ts +139 -0
  85. package/src/commands/plugin.ts +70 -0
  86. package/src/commands/setup.ts +42 -0
  87. package/src/commands/shell.ts +29 -0
  88. package/src/commands/ssh.ts +60 -0
  89. package/src/commands/stats.ts +29 -0
  90. package/src/commands/update.ts +21 -0
  91. package/src/commands/web-search.ts +42 -0
  92. package/src/commit/agentic/agent.ts +311 -0
  93. package/src/commit/agentic/fallback.ts +96 -0
  94. package/src/commit/agentic/index.ts +359 -0
  95. package/src/commit/agentic/prompts/analyze-file.md +22 -0
  96. package/src/commit/agentic/prompts/session-user.md +25 -0
  97. package/src/commit/agentic/prompts/split-confirm.md +1 -0
  98. package/src/commit/agentic/prompts/system.md +38 -0
  99. package/src/commit/agentic/state.ts +69 -0
  100. package/src/commit/agentic/tools/analyze-file.ts +118 -0
  101. package/src/commit/agentic/tools/git-file-diff.ts +194 -0
  102. package/src/commit/agentic/tools/git-hunk.ts +50 -0
  103. package/src/commit/agentic/tools/git-overview.ts +84 -0
  104. package/src/commit/agentic/tools/index.ts +56 -0
  105. package/src/commit/agentic/tools/propose-changelog.ts +128 -0
  106. package/src/commit/agentic/tools/propose-commit.ts +154 -0
  107. package/src/commit/agentic/tools/recent-commits.ts +81 -0
  108. package/src/commit/agentic/tools/split-commit.ts +280 -0
  109. package/src/commit/agentic/topo-sort.ts +44 -0
  110. package/src/commit/agentic/trivial.ts +51 -0
  111. package/src/commit/agentic/validation.ts +200 -0
  112. package/src/commit/analysis/conventional.ts +165 -0
  113. package/src/commit/analysis/index.ts +4 -0
  114. package/src/commit/analysis/scope.ts +242 -0
  115. package/src/commit/analysis/summary.ts +112 -0
  116. package/src/commit/analysis/validation.ts +66 -0
  117. package/src/commit/changelog/detect.ts +37 -0
  118. package/src/commit/changelog/generate.ts +110 -0
  119. package/src/commit/changelog/index.ts +234 -0
  120. package/src/commit/changelog/parse.ts +44 -0
  121. package/src/commit/cli.ts +93 -0
  122. package/src/commit/git/diff.ts +148 -0
  123. package/src/commit/git/errors.ts +9 -0
  124. package/src/commit/git/index.ts +211 -0
  125. package/src/commit/git/operations.ts +54 -0
  126. package/src/commit/index.ts +5 -0
  127. package/src/commit/map-reduce/index.ts +64 -0
  128. package/src/commit/map-reduce/map-phase.ts +178 -0
  129. package/src/commit/map-reduce/reduce-phase.ts +145 -0
  130. package/src/commit/map-reduce/utils.ts +9 -0
  131. package/src/commit/message.ts +11 -0
  132. package/src/commit/model-selection.ts +69 -0
  133. package/src/commit/pipeline.ts +243 -0
  134. package/src/commit/prompts/analysis-system.md +148 -0
  135. package/src/commit/prompts/analysis-user.md +38 -0
  136. package/src/commit/prompts/changelog-system.md +50 -0
  137. package/src/commit/prompts/changelog-user.md +18 -0
  138. package/src/commit/prompts/file-observer-system.md +24 -0
  139. package/src/commit/prompts/file-observer-user.md +8 -0
  140. package/src/commit/prompts/reduce-system.md +50 -0
  141. package/src/commit/prompts/reduce-user.md +17 -0
  142. package/src/commit/prompts/summary-retry.md +3 -0
  143. package/src/commit/prompts/summary-system.md +38 -0
  144. package/src/commit/prompts/summary-user.md +13 -0
  145. package/src/commit/prompts/types-description.md +2 -0
  146. package/src/commit/types.ts +109 -0
  147. package/src/commit/utils/exclusions.ts +42 -0
  148. package/src/config/file-lock.ts +121 -0
  149. package/src/config/keybindings.ts +280 -0
  150. package/src/config/model-registry.ts +1140 -0
  151. package/src/config/model-resolver.ts +812 -0
  152. package/src/config/prompt-templates.ts +526 -0
  153. package/src/config/resolve-config-value.ts +92 -0
  154. package/src/config/settings-schema.ts +1236 -0
  155. package/src/config/settings.ts +706 -0
  156. package/src/config.ts +414 -0
  157. package/src/cursor.ts +239 -0
  158. package/src/debug/index.ts +431 -0
  159. package/src/debug/log-formatting.ts +60 -0
  160. package/src/debug/log-viewer.ts +903 -0
  161. package/src/debug/profiler.ts +158 -0
  162. package/src/debug/report-bundle.ts +366 -0
  163. package/src/debug/system-info.ts +112 -0
  164. package/src/discovery/agents-md.ts +68 -0
  165. package/src/discovery/agents.ts +199 -0
  166. package/src/discovery/builtin.ts +815 -0
  167. package/src/discovery/claude-plugins.ts +205 -0
  168. package/src/discovery/claude.ts +506 -0
  169. package/src/discovery/cline.ts +83 -0
  170. package/src/discovery/codex.ts +532 -0
  171. package/src/discovery/cursor.ts +218 -0
  172. package/src/discovery/gemini.ts +395 -0
  173. package/src/discovery/github.ts +117 -0
  174. package/src/discovery/helpers.ts +698 -0
  175. package/src/discovery/index.ts +89 -0
  176. package/src/discovery/mcp-json.ts +156 -0
  177. package/src/discovery/opencode.ts +394 -0
  178. package/src/discovery/ssh.ts +160 -0
  179. package/src/discovery/vscode.ts +103 -0
  180. package/src/discovery/windsurf.ts +145 -0
  181. package/src/exa/company.ts +57 -0
  182. package/src/exa/index.ts +62 -0
  183. package/src/exa/linkedin.ts +57 -0
  184. package/src/exa/mcp-client.ts +289 -0
  185. package/src/exa/render.ts +244 -0
  186. package/src/exa/researcher.ts +89 -0
  187. package/src/exa/search.ts +330 -0
  188. package/src/exa/types.ts +166 -0
  189. package/src/exa/websets.ts +247 -0
  190. package/src/exec/bash-executor.ts +184 -0
  191. package/src/exec/exec.ts +53 -0
  192. package/src/export/custom-share.ts +65 -0
  193. package/src/export/html/index.ts +162 -0
  194. package/src/export/html/template.css +889 -0
  195. package/src/export/html/template.generated.ts +2 -0
  196. package/src/export/html/template.html +45 -0
  197. package/src/export/html/template.js +1329 -0
  198. package/src/export/html/template.macro.ts +24 -0
  199. package/src/export/html/vendor/highlight.min.js +1213 -0
  200. package/src/export/html/vendor/marked.min.js +6 -0
  201. package/src/export/ttsr.ts +434 -0
  202. package/src/extensibility/custom-commands/bundled/review/index.ts +433 -0
  203. package/src/extensibility/custom-commands/index.ts +15 -0
  204. package/src/extensibility/custom-commands/loader.ts +231 -0
  205. package/src/extensibility/custom-commands/types.ts +111 -0
  206. package/src/extensibility/custom-tools/index.ts +22 -0
  207. package/src/extensibility/custom-tools/loader.ts +235 -0
  208. package/src/extensibility/custom-tools/types.ts +226 -0
  209. package/src/extensibility/custom-tools/wrapper.ts +45 -0
  210. package/src/extensibility/extensions/index.ts +136 -0
  211. package/src/extensibility/extensions/loader.ts +520 -0
  212. package/src/extensibility/extensions/runner.ts +774 -0
  213. package/src/extensibility/extensions/types.ts +1293 -0
  214. package/src/extensibility/extensions/wrapper.ts +188 -0
  215. package/src/extensibility/hooks/index.ts +16 -0
  216. package/src/extensibility/hooks/loader.ts +273 -0
  217. package/src/extensibility/hooks/runner.ts +441 -0
  218. package/src/extensibility/hooks/tool-wrapper.ts +106 -0
  219. package/src/extensibility/hooks/types.ts +817 -0
  220. package/src/extensibility/plugins/doctor.ts +65 -0
  221. package/src/extensibility/plugins/git-url.ts +281 -0
  222. package/src/extensibility/plugins/index.ts +33 -0
  223. package/src/extensibility/plugins/installer.ts +192 -0
  224. package/src/extensibility/plugins/loader.ts +338 -0
  225. package/src/extensibility/plugins/manager.ts +716 -0
  226. package/src/extensibility/plugins/parser.ts +105 -0
  227. package/src/extensibility/plugins/types.ts +190 -0
  228. package/src/extensibility/skills.ts +385 -0
  229. package/src/extensibility/slash-commands.ts +287 -0
  230. package/src/extensibility/tool-proxy.ts +25 -0
  231. package/src/index.ts +275 -0
  232. package/src/internal-urls/agent-protocol.ts +136 -0
  233. package/src/internal-urls/artifact-protocol.ts +97 -0
  234. package/src/internal-urls/docs-index.generated.ts +54 -0
  235. package/src/internal-urls/docs-protocol.ts +84 -0
  236. package/src/internal-urls/index.ts +31 -0
  237. package/src/internal-urls/json-query.ts +126 -0
  238. package/src/internal-urls/memory-protocol.ts +133 -0
  239. package/src/internal-urls/router.ts +70 -0
  240. package/src/internal-urls/rule-protocol.ts +55 -0
  241. package/src/internal-urls/skill-protocol.ts +111 -0
  242. package/src/internal-urls/types.ts +52 -0
  243. package/src/ipy/executor.ts +556 -0
  244. package/src/ipy/gateway-coordinator.ts +426 -0
  245. package/src/ipy/kernel.ts +892 -0
  246. package/src/ipy/modules.ts +109 -0
  247. package/src/ipy/prelude.py +831 -0
  248. package/src/ipy/prelude.ts +3 -0
  249. package/src/ipy/runtime.ts +222 -0
  250. package/src/lsp/client.ts +867 -0
  251. package/src/lsp/clients/biome-client.ts +202 -0
  252. package/src/lsp/clients/index.ts +50 -0
  253. package/src/lsp/clients/lsp-linter-client.ts +93 -0
  254. package/src/lsp/clients/swiftlint-client.ts +120 -0
  255. package/src/lsp/config.ts +397 -0
  256. package/src/lsp/defaults.json +464 -0
  257. package/src/lsp/edits.ts +109 -0
  258. package/src/lsp/index.ts +1268 -0
  259. package/src/lsp/lspmux.ts +250 -0
  260. package/src/lsp/render.ts +689 -0
  261. package/src/lsp/types.ts +414 -0
  262. package/src/lsp/utils.ts +549 -0
  263. package/src/main.ts +773 -0
  264. package/src/mcp/client.ts +239 -0
  265. package/src/mcp/config-writer.ts +215 -0
  266. package/src/mcp/config.ts +363 -0
  267. package/src/mcp/index.ts +55 -0
  268. package/src/mcp/json-rpc.ts +84 -0
  269. package/src/mcp/loader.ts +124 -0
  270. package/src/mcp/manager.ts +490 -0
  271. package/src/mcp/oauth-discovery.ts +274 -0
  272. package/src/mcp/oauth-flow.ts +229 -0
  273. package/src/mcp/render.ts +123 -0
  274. package/src/mcp/tool-bridge.ts +372 -0
  275. package/src/mcp/tool-cache.ts +121 -0
  276. package/src/mcp/transports/http.ts +332 -0
  277. package/src/mcp/transports/index.ts +6 -0
  278. package/src/mcp/transports/stdio.ts +281 -0
  279. package/src/mcp/types.ts +248 -0
  280. package/src/memories/index.ts +1099 -0
  281. package/src/memories/storage.ts +563 -0
  282. package/src/modes/components/agent-dashboard.ts +1130 -0
  283. package/src/modes/components/assistant-message.ts +144 -0
  284. package/src/modes/components/bash-execution.ts +218 -0
  285. package/src/modes/components/bordered-loader.ts +41 -0
  286. package/src/modes/components/branch-summary-message.ts +45 -0
  287. package/src/modes/components/codemode-group.ts +369 -0
  288. package/src/modes/components/compaction-summary-message.ts +51 -0
  289. package/src/modes/components/countdown-timer.ts +46 -0
  290. package/src/modes/components/custom-editor.ts +181 -0
  291. package/src/modes/components/custom-message.ts +91 -0
  292. package/src/modes/components/diff.ts +186 -0
  293. package/src/modes/components/dynamic-border.ts +25 -0
  294. package/src/modes/components/extensions/extension-dashboard.ts +325 -0
  295. package/src/modes/components/extensions/extension-list.ts +484 -0
  296. package/src/modes/components/extensions/index.ts +9 -0
  297. package/src/modes/components/extensions/inspector-panel.ts +321 -0
  298. package/src/modes/components/extensions/state-manager.ts +586 -0
  299. package/src/modes/components/extensions/types.ts +191 -0
  300. package/src/modes/components/footer.ts +315 -0
  301. package/src/modes/components/history-search.ts +157 -0
  302. package/src/modes/components/hook-editor.ts +101 -0
  303. package/src/modes/components/hook-input.ts +72 -0
  304. package/src/modes/components/hook-message.ts +100 -0
  305. package/src/modes/components/hook-selector.ts +155 -0
  306. package/src/modes/components/index.ts +41 -0
  307. package/src/modes/components/keybinding-hints.ts +65 -0
  308. package/src/modes/components/login-dialog.ts +164 -0
  309. package/src/modes/components/mcp-add-wizard.ts +1295 -0
  310. package/src/modes/components/model-selector.ts +625 -0
  311. package/src/modes/components/oauth-selector.ts +210 -0
  312. package/src/modes/components/plugin-settings.ts +477 -0
  313. package/src/modes/components/python-execution.ts +196 -0
  314. package/src/modes/components/queue-mode-selector.ts +56 -0
  315. package/src/modes/components/read-tool-group.ts +119 -0
  316. package/src/modes/components/session-selector.ts +242 -0
  317. package/src/modes/components/settings-defs.ts +340 -0
  318. package/src/modes/components/settings-selector.ts +529 -0
  319. package/src/modes/components/show-images-selector.ts +45 -0
  320. package/src/modes/components/skill-message.ts +90 -0
  321. package/src/modes/components/status-line/index.ts +4 -0
  322. package/src/modes/components/status-line/presets.ts +94 -0
  323. package/src/modes/components/status-line/segments.ts +352 -0
  324. package/src/modes/components/status-line/separators.ts +55 -0
  325. package/src/modes/components/status-line/types.ts +75 -0
  326. package/src/modes/components/status-line-segment-editor.ts +354 -0
  327. package/src/modes/components/status-line.ts +421 -0
  328. package/src/modes/components/theme-selector.ts +63 -0
  329. package/src/modes/components/thinking-selector.ts +64 -0
  330. package/src/modes/components/todo-display.ts +115 -0
  331. package/src/modes/components/todo-reminder.ts +40 -0
  332. package/src/modes/components/tool-execution.ts +703 -0
  333. package/src/modes/components/tree-selector.ts +904 -0
  334. package/src/modes/components/ttsr-notification.ts +80 -0
  335. package/src/modes/components/user-message-selector.ts +146 -0
  336. package/src/modes/components/user-message.ts +22 -0
  337. package/src/modes/components/visual-truncate.ts +63 -0
  338. package/src/modes/components/welcome.ts +247 -0
  339. package/src/modes/controllers/command-controller.ts +1120 -0
  340. package/src/modes/controllers/event-controller.ts +479 -0
  341. package/src/modes/controllers/extension-ui-controller.ts +778 -0
  342. package/src/modes/controllers/input-controller.ts +671 -0
  343. package/src/modes/controllers/mcp-command-controller.ts +1315 -0
  344. package/src/modes/controllers/selector-controller.ts +712 -0
  345. package/src/modes/controllers/ssh-command-controller.ts +452 -0
  346. package/src/modes/index.ts +15 -0
  347. package/src/modes/interactive-mode.ts +1027 -0
  348. package/src/modes/print-mode.ts +191 -0
  349. package/src/modes/rpc/rpc-client.ts +583 -0
  350. package/src/modes/rpc/rpc-mode.ts +700 -0
  351. package/src/modes/rpc/rpc-types.ts +236 -0
  352. package/src/modes/theme/dark.json +95 -0
  353. package/src/modes/theme/defaults/alabaster.json +93 -0
  354. package/src/modes/theme/defaults/amethyst.json +96 -0
  355. package/src/modes/theme/defaults/anthracite.json +93 -0
  356. package/src/modes/theme/defaults/basalt.json +91 -0
  357. package/src/modes/theme/defaults/birch.json +95 -0
  358. package/src/modes/theme/defaults/dark-abyss.json +91 -0
  359. package/src/modes/theme/defaults/dark-arctic.json +104 -0
  360. package/src/modes/theme/defaults/dark-aurora.json +95 -0
  361. package/src/modes/theme/defaults/dark-catppuccin.json +107 -0
  362. package/src/modes/theme/defaults/dark-cavern.json +91 -0
  363. package/src/modes/theme/defaults/dark-copper.json +95 -0
  364. package/src/modes/theme/defaults/dark-cosmos.json +90 -0
  365. package/src/modes/theme/defaults/dark-cyberpunk.json +102 -0
  366. package/src/modes/theme/defaults/dark-dracula.json +98 -0
  367. package/src/modes/theme/defaults/dark-eclipse.json +91 -0
  368. package/src/modes/theme/defaults/dark-ember.json +95 -0
  369. package/src/modes/theme/defaults/dark-equinox.json +90 -0
  370. package/src/modes/theme/defaults/dark-forest.json +96 -0
  371. package/src/modes/theme/defaults/dark-github.json +105 -0
  372. package/src/modes/theme/defaults/dark-gruvbox.json +112 -0
  373. package/src/modes/theme/defaults/dark-lavender.json +95 -0
  374. package/src/modes/theme/defaults/dark-lunar.json +89 -0
  375. package/src/modes/theme/defaults/dark-midnight.json +95 -0
  376. package/src/modes/theme/defaults/dark-monochrome.json +94 -0
  377. package/src/modes/theme/defaults/dark-monokai.json +98 -0
  378. package/src/modes/theme/defaults/dark-nebula.json +90 -0
  379. package/src/modes/theme/defaults/dark-nord.json +97 -0
  380. package/src/modes/theme/defaults/dark-ocean.json +101 -0
  381. package/src/modes/theme/defaults/dark-one.json +100 -0
  382. package/src/modes/theme/defaults/dark-rainforest.json +91 -0
  383. package/src/modes/theme/defaults/dark-reef.json +91 -0
  384. package/src/modes/theme/defaults/dark-retro.json +92 -0
  385. package/src/modes/theme/defaults/dark-rose-pine.json +96 -0
  386. package/src/modes/theme/defaults/dark-sakura.json +95 -0
  387. package/src/modes/theme/defaults/dark-slate.json +95 -0
  388. package/src/modes/theme/defaults/dark-solarized.json +97 -0
  389. package/src/modes/theme/defaults/dark-solstice.json +90 -0
  390. package/src/modes/theme/defaults/dark-starfall.json +91 -0
  391. package/src/modes/theme/defaults/dark-sunset.json +99 -0
  392. package/src/modes/theme/defaults/dark-swamp.json +90 -0
  393. package/src/modes/theme/defaults/dark-synthwave.json +103 -0
  394. package/src/modes/theme/defaults/dark-taiga.json +91 -0
  395. package/src/modes/theme/defaults/dark-terminal.json +95 -0
  396. package/src/modes/theme/defaults/dark-tokyo-night.json +101 -0
  397. package/src/modes/theme/defaults/dark-tundra.json +91 -0
  398. package/src/modes/theme/defaults/dark-twilight.json +91 -0
  399. package/src/modes/theme/defaults/dark-volcanic.json +91 -0
  400. package/src/modes/theme/defaults/graphite.json +92 -0
  401. package/src/modes/theme/defaults/index.ts +195 -0
  402. package/src/modes/theme/defaults/light-arctic.json +107 -0
  403. package/src/modes/theme/defaults/light-aurora-day.json +91 -0
  404. package/src/modes/theme/defaults/light-canyon.json +91 -0
  405. package/src/modes/theme/defaults/light-catppuccin.json +106 -0
  406. package/src/modes/theme/defaults/light-cirrus.json +90 -0
  407. package/src/modes/theme/defaults/light-coral.json +95 -0
  408. package/src/modes/theme/defaults/light-cyberpunk.json +96 -0
  409. package/src/modes/theme/defaults/light-dawn.json +90 -0
  410. package/src/modes/theme/defaults/light-dunes.json +91 -0
  411. package/src/modes/theme/defaults/light-eucalyptus.json +95 -0
  412. package/src/modes/theme/defaults/light-forest.json +100 -0
  413. package/src/modes/theme/defaults/light-frost.json +95 -0
  414. package/src/modes/theme/defaults/light-github.json +115 -0
  415. package/src/modes/theme/defaults/light-glacier.json +91 -0
  416. package/src/modes/theme/defaults/light-gruvbox.json +108 -0
  417. package/src/modes/theme/defaults/light-haze.json +90 -0
  418. package/src/modes/theme/defaults/light-honeycomb.json +95 -0
  419. package/src/modes/theme/defaults/light-lagoon.json +91 -0
  420. package/src/modes/theme/defaults/light-lavender.json +95 -0
  421. package/src/modes/theme/defaults/light-meadow.json +91 -0
  422. package/src/modes/theme/defaults/light-mint.json +95 -0
  423. package/src/modes/theme/defaults/light-monochrome.json +101 -0
  424. package/src/modes/theme/defaults/light-ocean.json +99 -0
  425. package/src/modes/theme/defaults/light-one.json +99 -0
  426. package/src/modes/theme/defaults/light-opal.json +91 -0
  427. package/src/modes/theme/defaults/light-orchard.json +91 -0
  428. package/src/modes/theme/defaults/light-paper.json +95 -0
  429. package/src/modes/theme/defaults/light-prism.json +90 -0
  430. package/src/modes/theme/defaults/light-retro.json +98 -0
  431. package/src/modes/theme/defaults/light-sand.json +95 -0
  432. package/src/modes/theme/defaults/light-savanna.json +91 -0
  433. package/src/modes/theme/defaults/light-solarized.json +102 -0
  434. package/src/modes/theme/defaults/light-soleil.json +90 -0
  435. package/src/modes/theme/defaults/light-sunset.json +99 -0
  436. package/src/modes/theme/defaults/light-synthwave.json +98 -0
  437. package/src/modes/theme/defaults/light-tokyo-night.json +111 -0
  438. package/src/modes/theme/defaults/light-wetland.json +91 -0
  439. package/src/modes/theme/defaults/light-zenith.json +89 -0
  440. package/src/modes/theme/defaults/limestone.json +94 -0
  441. package/src/modes/theme/defaults/mahogany.json +97 -0
  442. package/src/modes/theme/defaults/marble.json +93 -0
  443. package/src/modes/theme/defaults/obsidian.json +91 -0
  444. package/src/modes/theme/defaults/onyx.json +91 -0
  445. package/src/modes/theme/defaults/pearl.json +93 -0
  446. package/src/modes/theme/defaults/porcelain.json +91 -0
  447. package/src/modes/theme/defaults/quartz.json +96 -0
  448. package/src/modes/theme/defaults/sandstone.json +95 -0
  449. package/src/modes/theme/defaults/titanium.json +90 -0
  450. package/src/modes/theme/light.json +93 -0
  451. package/src/modes/theme/mermaid-cache.ts +111 -0
  452. package/src/modes/theme/theme-schema.json +429 -0
  453. package/src/modes/theme/theme.ts +2333 -0
  454. package/src/modes/types.ts +216 -0
  455. package/src/modes/utils/ui-helpers.ts +529 -0
  456. package/src/patch/applicator.ts +1482 -0
  457. package/src/patch/diff.ts +425 -0
  458. package/src/patch/fuzzy.ts +784 -0
  459. package/src/patch/hashline.ts +972 -0
  460. package/src/patch/index.ts +964 -0
  461. package/src/patch/normalize.ts +397 -0
  462. package/src/patch/normative.ts +72 -0
  463. package/src/patch/parser.ts +532 -0
  464. package/src/patch/shared.ts +400 -0
  465. package/src/patch/types.ts +292 -0
  466. package/src/priority.json +35 -0
  467. package/src/prompts/agents/explore.md +48 -0
  468. package/src/prompts/agents/frontmatter.md +9 -0
  469. package/src/prompts/agents/init.md +36 -0
  470. package/src/prompts/agents/librarian.md +53 -0
  471. package/src/prompts/agents/oracle.md +51 -0
  472. package/src/prompts/agents/reviewer.md +70 -0
  473. package/src/prompts/agents/task.md +14 -0
  474. package/src/prompts/compaction/branch-summary-context.md +5 -0
  475. package/src/prompts/compaction/branch-summary-preamble.md +2 -0
  476. package/src/prompts/compaction/branch-summary.md +30 -0
  477. package/src/prompts/compaction/compaction-short-summary.md +9 -0
  478. package/src/prompts/compaction/compaction-summary-context.md +5 -0
  479. package/src/prompts/compaction/compaction-summary.md +38 -0
  480. package/src/prompts/compaction/compaction-turn-prefix.md +17 -0
  481. package/src/prompts/compaction/compaction-update-summary.md +45 -0
  482. package/src/prompts/memories/consolidation.md +30 -0
  483. package/src/prompts/memories/read_path.md +11 -0
  484. package/src/prompts/memories/stage_one_input.md +6 -0
  485. package/src/prompts/memories/stage_one_system.md +21 -0
  486. package/src/prompts/review-request.md +64 -0
  487. package/src/prompts/system/agent-creation-architect.md +65 -0
  488. package/src/prompts/system/agent-creation-user.md +6 -0
  489. package/src/prompts/system/custom-system-prompt.md +68 -0
  490. package/src/prompts/system/file-operations.md +10 -0
  491. package/src/prompts/system/subagent-submit-reminder.md +11 -0
  492. package/src/prompts/system/subagent-system-prompt.md +31 -0
  493. package/src/prompts/system/subagent-user-prompt.md +8 -0
  494. package/src/prompts/system/summarization-system.md +3 -0
  495. package/src/prompts/system/system-prompt.md +300 -0
  496. package/src/prompts/system/title-system.md +2 -0
  497. package/src/prompts/system/ttsr-interrupt.md +7 -0
  498. package/src/prompts/system/web-search.md +28 -0
  499. package/src/prompts/tools/ask.md +44 -0
  500. package/src/prompts/tools/bash.md +24 -0
  501. package/src/prompts/tools/browser.md +33 -0
  502. package/src/prompts/tools/calculator.md +12 -0
  503. package/src/prompts/tools/explore.md +29 -0
  504. package/src/prompts/tools/fetch.md +16 -0
  505. package/src/prompts/tools/find.md +18 -0
  506. package/src/prompts/tools/gemini-image.md +23 -0
  507. package/src/prompts/tools/grep.md +28 -0
  508. package/src/prompts/tools/hashline.md +232 -0
  509. package/src/prompts/tools/librarian.md +24 -0
  510. package/src/prompts/tools/lsp.md +28 -0
  511. package/src/prompts/tools/oracle.md +26 -0
  512. package/src/prompts/tools/patch.md +74 -0
  513. package/src/prompts/tools/python.md +66 -0
  514. package/src/prompts/tools/read.md +36 -0
  515. package/src/prompts/tools/replace.md +38 -0
  516. package/src/prompts/tools/reviewer.md +41 -0
  517. package/src/prompts/tools/ssh.md +51 -0
  518. package/src/prompts/tools/task-summary.md +28 -0
  519. package/src/prompts/tools/task.md +275 -0
  520. package/src/prompts/tools/todo-write.md +65 -0
  521. package/src/prompts/tools/undo-edit.md +7 -0
  522. package/src/prompts/tools/web-search.md +19 -0
  523. package/src/prompts/tools/write.md +18 -0
  524. package/src/sdk.ts +1287 -0
  525. package/src/secrets/index.ts +116 -0
  526. package/src/secrets/obfuscator.ts +269 -0
  527. package/src/secrets/regex.ts +21 -0
  528. package/src/session/agent-session.ts +4669 -0
  529. package/src/session/agent-storage.ts +621 -0
  530. package/src/session/artifacts.ts +132 -0
  531. package/src/session/auth-storage.ts +1433 -0
  532. package/src/session/blob-store.ts +103 -0
  533. package/src/session/compaction/branch-summarization.ts +315 -0
  534. package/src/session/compaction/compaction.ts +864 -0
  535. package/src/session/compaction/index.ts +7 -0
  536. package/src/session/compaction/pruning.ts +91 -0
  537. package/src/session/compaction/utils.ts +171 -0
  538. package/src/session/history-storage.ts +170 -0
  539. package/src/session/messages.ts +317 -0
  540. package/src/session/session-manager.ts +2276 -0
  541. package/src/session/session-storage.ts +342 -0
  542. package/src/session/streaming-output.ts +565 -0
  543. package/src/slash-commands/builtin-registry.ts +439 -0
  544. package/src/ssh/config-writer.ts +183 -0
  545. package/src/ssh/connection-manager.ts +444 -0
  546. package/src/ssh/ssh-executor.ts +127 -0
  547. package/src/ssh/sshfs-mount.ts +135 -0
  548. package/src/stt/downloader.ts +71 -0
  549. package/src/stt/index.ts +3 -0
  550. package/src/stt/recorder.ts +351 -0
  551. package/src/stt/setup.ts +52 -0
  552. package/src/stt/stt-controller.ts +160 -0
  553. package/src/stt/transcribe.py +70 -0
  554. package/src/stt/transcriber.ts +91 -0
  555. package/src/system-prompt.ts +685 -0
  556. package/src/task/agents.ts +155 -0
  557. package/src/task/batch.ts +102 -0
  558. package/src/task/commands.ts +134 -0
  559. package/src/task/discovery.ts +126 -0
  560. package/src/task/executor.ts +908 -0
  561. package/src/task/index.ts +223 -0
  562. package/src/task/output-manager.ts +107 -0
  563. package/src/task/parallel.ts +84 -0
  564. package/src/task/render.ts +326 -0
  565. package/src/task/subprocess-tool-registry.ts +88 -0
  566. package/src/task/template.ts +32 -0
  567. package/src/task/types.ts +144 -0
  568. package/src/tools/ask.ts +523 -0
  569. package/src/tools/bash-interactive.ts +419 -0
  570. package/src/tools/bash-interceptor.ts +105 -0
  571. package/src/tools/bash-normalize.ts +107 -0
  572. package/src/tools/bash-skill-urls.ts +177 -0
  573. package/src/tools/bash.ts +347 -0
  574. package/src/tools/browser.ts +1374 -0
  575. package/src/tools/calculator.ts +537 -0
  576. package/src/tools/context.ts +39 -0
  577. package/src/tools/explore.ts +23 -0
  578. package/src/tools/fetch.ts +1091 -0
  579. package/src/tools/find.ts +540 -0
  580. package/src/tools/fs-cache-invalidation.ts +28 -0
  581. package/src/tools/gemini-image.ts +907 -0
  582. package/src/tools/grep.ts +489 -0
  583. package/src/tools/index.ts +337 -0
  584. package/src/tools/json-tree.ts +231 -0
  585. package/src/tools/jtd-to-json-schema.ts +247 -0
  586. package/src/tools/jtd-to-typescript.ts +198 -0
  587. package/src/tools/librarian.ts +33 -0
  588. package/src/tools/list-limit.ts +40 -0
  589. package/src/tools/notebook.ts +287 -0
  590. package/src/tools/oracle.ts +40 -0
  591. package/src/tools/output-meta.ts +459 -0
  592. package/src/tools/output-utils.ts +63 -0
  593. package/src/tools/path-utils.ts +116 -0
  594. package/src/tools/puppeteer/00_stealth_tampering.txt +63 -0
  595. package/src/tools/puppeteer/01_stealth_activity.txt +20 -0
  596. package/src/tools/puppeteer/02_stealth_hairline.txt +11 -0
  597. package/src/tools/puppeteer/03_stealth_botd.txt +384 -0
  598. package/src/tools/puppeteer/04_stealth_iframe.txt +81 -0
  599. package/src/tools/puppeteer/05_stealth_webgl.txt +75 -0
  600. package/src/tools/puppeteer/06_stealth_screen.txt +72 -0
  601. package/src/tools/puppeteer/07_stealth_fonts.txt +97 -0
  602. package/src/tools/puppeteer/08_stealth_audio.txt +51 -0
  603. package/src/tools/puppeteer/09_stealth_locale.txt +46 -0
  604. package/src/tools/puppeteer/10_stealth_plugins.txt +206 -0
  605. package/src/tools/puppeteer/11_stealth_hardware.txt +8 -0
  606. package/src/tools/puppeteer/12_stealth_codecs.txt +40 -0
  607. package/src/tools/puppeteer/13_stealth_worker.txt +74 -0
  608. package/src/tools/python.ts +1118 -0
  609. package/src/tools/read.ts +1193 -0
  610. package/src/tools/render-utils.ts +680 -0
  611. package/src/tools/renderers.ts +60 -0
  612. package/src/tools/reviewer-tool.ts +41 -0
  613. package/src/tools/ssh.ts +326 -0
  614. package/src/tools/subagent-tool.ts +169 -0
  615. package/src/tools/submit-result.ts +152 -0
  616. package/src/tools/todo-write.ts +255 -0
  617. package/src/tools/tool-errors.ts +92 -0
  618. package/src/tools/tool-result.ts +86 -0
  619. package/src/tools/undo-edit.ts +145 -0
  620. package/src/tools/undo-history.ts +22 -0
  621. package/src/tools/write.ts +274 -0
  622. package/src/tui/code-cell.ts +108 -0
  623. package/src/tui/file-list.ts +47 -0
  624. package/src/tui/index.ts +11 -0
  625. package/src/tui/output-block.ts +144 -0
  626. package/src/tui/status-line.ts +39 -0
  627. package/src/tui/tree-list.ts +53 -0
  628. package/src/tui/types.ts +16 -0
  629. package/src/tui/utils.ts +116 -0
  630. package/src/utils/changelog.ts +98 -0
  631. package/src/utils/event-bus.ts +33 -0
  632. package/src/utils/external-editor.ts +59 -0
  633. package/src/utils/file-display-mode.ts +36 -0
  634. package/src/utils/file-mentions.ts +384 -0
  635. package/src/utils/frontmatter.ts +101 -0
  636. package/src/utils/fuzzy.ts +108 -0
  637. package/src/utils/ignore-files.ts +119 -0
  638. package/src/utils/image-convert.ts +27 -0
  639. package/src/utils/image-resize.ts +236 -0
  640. package/src/utils/mime.ts +30 -0
  641. package/src/utils/open.ts +20 -0
  642. package/src/utils/shell-snapshot.ts +199 -0
  643. package/src/utils/timings.ts +26 -0
  644. package/src/utils/title-generator.ts +167 -0
  645. package/src/utils/tools-manager.ts +362 -0
  646. package/src/web/scrapers/artifacthub.ts +215 -0
  647. package/src/web/scrapers/arxiv.ts +88 -0
  648. package/src/web/scrapers/aur.ts +175 -0
  649. package/src/web/scrapers/biorxiv.ts +141 -0
  650. package/src/web/scrapers/bluesky.ts +284 -0
  651. package/src/web/scrapers/brew.ts +177 -0
  652. package/src/web/scrapers/cheatsh.ts +78 -0
  653. package/src/web/scrapers/chocolatey.ts +158 -0
  654. package/src/web/scrapers/choosealicense.ts +110 -0
  655. package/src/web/scrapers/cisa-kev.ts +100 -0
  656. package/src/web/scrapers/clojars.ts +180 -0
  657. package/src/web/scrapers/coingecko.ts +184 -0
  658. package/src/web/scrapers/crates-io.ts +128 -0
  659. package/src/web/scrapers/crossref.ts +149 -0
  660. package/src/web/scrapers/devto.ts +177 -0
  661. package/src/web/scrapers/discogs.ts +307 -0
  662. package/src/web/scrapers/discourse.ts +221 -0
  663. package/src/web/scrapers/dockerhub.ts +160 -0
  664. package/src/web/scrapers/fdroid.ts +158 -0
  665. package/src/web/scrapers/firefox-addons.ts +214 -0
  666. package/src/web/scrapers/flathub.ts +239 -0
  667. package/src/web/scrapers/github-gist.ts +68 -0
  668. package/src/web/scrapers/github.ts +490 -0
  669. package/src/web/scrapers/gitlab.ts +456 -0
  670. package/src/web/scrapers/go-pkg.ts +275 -0
  671. package/src/web/scrapers/hackage.ts +94 -0
  672. package/src/web/scrapers/hackernews.ts +208 -0
  673. package/src/web/scrapers/hex.ts +121 -0
  674. package/src/web/scrapers/huggingface.ts +385 -0
  675. package/src/web/scrapers/iacr.ts +86 -0
  676. package/src/web/scrapers/index.ts +249 -0
  677. package/src/web/scrapers/jetbrains-marketplace.ts +169 -0
  678. package/src/web/scrapers/lemmy.ts +220 -0
  679. package/src/web/scrapers/lobsters.ts +186 -0
  680. package/src/web/scrapers/mastodon.ts +310 -0
  681. package/src/web/scrapers/maven.ts +152 -0
  682. package/src/web/scrapers/mdn.ts +172 -0
  683. package/src/web/scrapers/metacpan.ts +253 -0
  684. package/src/web/scrapers/musicbrainz.ts +272 -0
  685. package/src/web/scrapers/npm.ts +114 -0
  686. package/src/web/scrapers/nuget.ts +205 -0
  687. package/src/web/scrapers/nvd.ts +243 -0
  688. package/src/web/scrapers/ollama.ts +265 -0
  689. package/src/web/scrapers/open-vsx.ts +119 -0
  690. package/src/web/scrapers/opencorporates.ts +275 -0
  691. package/src/web/scrapers/openlibrary.ts +319 -0
  692. package/src/web/scrapers/orcid.ts +298 -0
  693. package/src/web/scrapers/osv.ts +192 -0
  694. package/src/web/scrapers/packagist.ts +174 -0
  695. package/src/web/scrapers/pub-dev.ts +185 -0
  696. package/src/web/scrapers/pubmed.ts +177 -0
  697. package/src/web/scrapers/pypi.ts +129 -0
  698. package/src/web/scrapers/rawg.ts +124 -0
  699. package/src/web/scrapers/readthedocs.ts +125 -0
  700. package/src/web/scrapers/reddit.ts +104 -0
  701. package/src/web/scrapers/repology.ts +262 -0
  702. package/src/web/scrapers/rfc.ts +209 -0
  703. package/src/web/scrapers/rubygems.ts +117 -0
  704. package/src/web/scrapers/searchcode.ts +217 -0
  705. package/src/web/scrapers/sec-edgar.ts +274 -0
  706. package/src/web/scrapers/semantic-scholar.ts +190 -0
  707. package/src/web/scrapers/snapcraft.ts +200 -0
  708. package/src/web/scrapers/sourcegraph.ts +373 -0
  709. package/src/web/scrapers/spdx.ts +121 -0
  710. package/src/web/scrapers/spotify.ts +217 -0
  711. package/src/web/scrapers/stackoverflow.ts +124 -0
  712. package/src/web/scrapers/terraform.ts +304 -0
  713. package/src/web/scrapers/tldr.ts +51 -0
  714. package/src/web/scrapers/twitter.ts +97 -0
  715. package/src/web/scrapers/types.ts +200 -0
  716. package/src/web/scrapers/utils.ts +142 -0
  717. package/src/web/scrapers/vimeo.ts +152 -0
  718. package/src/web/scrapers/vscode-marketplace.ts +195 -0
  719. package/src/web/scrapers/w3c.ts +163 -0
  720. package/src/web/scrapers/wikidata.ts +357 -0
  721. package/src/web/scrapers/wikipedia.ts +95 -0
  722. package/src/web/scrapers/youtube.ts +312 -0
  723. package/src/web/search/auth.ts +178 -0
  724. package/src/web/search/index.ts +598 -0
  725. package/src/web/search/provider.ts +77 -0
  726. package/src/web/search/providers/anthropic.ts +284 -0
  727. package/src/web/search/providers/base.ts +22 -0
  728. package/src/web/search/providers/brave.ts +165 -0
  729. package/src/web/search/providers/codex.ts +377 -0
  730. package/src/web/search/providers/exa.ts +158 -0
  731. package/src/web/search/providers/gemini.ts +437 -0
  732. package/src/web/search/providers/jina.ts +99 -0
  733. package/src/web/search/providers/kimi.ts +196 -0
  734. package/src/web/search/providers/perplexity.ts +546 -0
  735. package/src/web/search/providers/synthetic.ts +136 -0
  736. package/src/web/search/providers/zai.ts +352 -0
  737. package/src/web/search/render.ts +299 -0
  738. package/src/web/search/types.ts +437 -0
@@ -0,0 +1,12 @@
1
+ # Calculator
2
+
3
+ Basic calculations.
4
+
5
+ <instruction>
6
+ - Supports +, -, *, /, %, ** and parentheses
7
+ - Supports decimal, hex (0x), binary (0b), and octal (0o) literals
8
+ </instruction>
9
+
10
+ <output>
11
+ Returns each calculation result with its prefix and suffix applied.
12
+ </output>
@@ -0,0 +1,29 @@
1
+ # Explore
2
+
3
+ Intelligently search the codebase using a specialized read-only subagent. Use for complex, multi-step search tasks where you need to find code based on functionality or concepts rather than exact matches.
4
+
5
+ ## When to use
6
+ - Locate code by behavior or concept (not exact string match)
7
+ - Chain multiple searches to correlate areas of the codebase
8
+ - Answer questions like "Where is JWT authentication implemented?"
9
+ - Understand architecture or data flow across files
10
+ - Map dependencies between modules
11
+
12
+ ## When NOT to use
13
+ - When you know the exact file path (use Read directly)
14
+ - When looking for a specific string/symbol (use Grep or Find)
15
+ - When you need to create/modify files (this is read-only)
16
+
17
+ ## Parameters
18
+
19
+ ### `query` (required)
20
+
21
+ The search query describing what you need to find. Be specific — include technical terms, file types, expected code patterns, or API names. State explicit success criteria.
22
+
23
+ ## Output
24
+
25
+ Returns structured JSON with:
26
+ - `files`: files examined with exact line ranges
27
+ - `code`: critical types/interfaces/functions extracted verbatim
28
+ - `architecture`: brief explanation of how pieces connect
29
+ - `start_here`: recommended entry point for you to continue from
@@ -0,0 +1,16 @@
1
+ # Fetch
2
+
3
+ Retrieves content from a URL and returns it in a clean, readable format.
4
+
5
+ <instruction>
6
+ - Extract information from web pages (documentation, articles, API references)
7
+ - Analyze GitHub issues, PRs, or repository content
8
+ - Retrieve from Stack Overflow, Wikipedia, Reddit, NPM, arXiv, technical blogs
9
+ - Access RSS/Atom feeds or JSON endpoints
10
+ - Read PDF or DOCX files hosted at a URL
11
+ - Use `raw: true` for untouched HTML or debugging
12
+ </instruction>
13
+
14
+ <output>
15
+ Returns processed, readable content extracted from the URL. HTML is transformed to remove navigation, ads, and boilerplate. PDF and DOCX files are converted to text. JSON endpoints return formatted JSON. With `raw: true`, returns untransformed HTML.
16
+ </output>
@@ -0,0 +1,18 @@
1
+ # Find
2
+
3
+ Fast file pattern matching that works with any codebase size.
4
+
5
+ <instruction>
6
+ - Pattern includes the search path: `src/**/*.ts`, `lib/*.json`, `**/*.md`
7
+ - Simple patterns like `*.ts` automatically search recursively from cwd
8
+ - Includes hidden files by default (use `hidden: false` to exclude)
9
+ - Speculatively perform multiple searches in parallel when potentially useful
10
+ </instruction>
11
+
12
+ <output>
13
+ Matching file paths sorted by modification time (most recent first). Results truncated at 1000 entries or 50KB (configurable via `limit`).
14
+ </output>
15
+
16
+ <avoid>
17
+ Open-ended searches requiring multiple rounds of globbing and grepping — use Task tool instead.
18
+ </avoid>
@@ -0,0 +1,23 @@
1
+ # Gemini Image
2
+
3
+ Generate or edit images using Gemini image models.
4
+
5
+ <instruction>
6
+ Provide structured parameters for best results. Tool assembles into optimized prompt.
7
+
8
+ When using multiple `input_images`, describe each image's role in `subject` or `scene` field:
9
+ - "Use Image 1 for the character's face and outfit, Image 2 for the pose, Image 3 for the background environment"
10
+ - "Match the color palette from Image 1, apply the lighting style from Image 2"
11
+ </instruction>
12
+
13
+ <output>
14
+ Returns generated image saved to disk. Response includes file path where image was written.
15
+ </output>
16
+
17
+ <caution>
18
+ - For photoreal: add "ultra-detailed, realistic, natural skin texture" to style
19
+ - For posters/cards: use 9:16 aspect ratio with negative space for text placement
20
+ - For iteration: use `changes` for targeted adjustments rather than regenerating from scratch
21
+ - For text: add "sharp, legible, correctly spelled" for important text; keep text short
22
+ - For diagrams: include "scientifically accurate" in style and provide facts explicitly
23
+ </caution>
@@ -0,0 +1,28 @@
1
+ # Grep
2
+
3
+ Powerful search tool built on ripgrep.
4
+
5
+ <instruction>
6
+ - Supports full regex syntax (e.g., `log.*Error`, `function\\s+\\w+`)
7
+ - Filter files with `glob` (e.g., `*.js`, `**/*.tsx`) or `type` (e.g., `js`, `py`, `rust`)
8
+ - Pattern syntax uses ripgrep—literal braces need escaping (`interface\\{\\}` to find `interface{}` in Go)
9
+ - For cross-line patterns like `struct \\{[\\s\\S]*?field`, set `multiline: true` if needed
10
+ - If the pattern contains a literal `\n`, multiline defaults to true
11
+ </instruction>
12
+
13
+ <output>
14
+ - Results are always content mode.
15
+ {{#if IS_HASHLINE_MODE}}
16
+ - Text output is CID prefixed: `LINE#ID:content`
17
+ {{else}}
18
+ {{#if IS_LINE_NUMBER_MODE}}
19
+ - Text output is line-number-prefixed
20
+ {{/if}}
21
+ {{/if}}
22
+ </output>
23
+
24
+ <critical>
25
+ - ALWAYS use Grep when searching for content.
26
+ - NEVER invoke `grep` or `rg` via Bash.
27
+ - If the search is open-ended, requiring multiple rounds, use Task tool with explore subagent instead
28
+ </critical>
@@ -0,0 +1,232 @@
1
+ # Edit
2
+
3
+ Apply precise file edits using `LINE#ID` tags, anchoring to the file content.
4
+
5
+ <workflow>
6
+ 1. `read` the target range to capture current `LINE#ID` tags.
7
+ 2. Pick the smallest operation per change site (line/range/insert/content-replace).
8
+ 3. Direction-lock every edit: exact current text → intended text.
9
+ 4. Submit one `edit` call per file containing all operations.
10
+ 5. If another edit is needed in that file, re-read first (hashes changed).
11
+ 6. Output tool calls only; no prose.
12
+ </workflow>
13
+
14
+ <operations>
15
+ - **Single line replace/delete**
16
+ - `{ op: "set", tag: "N#ID", content: […] }`
17
+ - `content: null` deletes the line; `content: [""]` keeps a blank line.
18
+ - **Range replace/delete**
19
+ - `{ op: "replace", first: "N#ID", last: "N#ID", content: […] }`
20
+ - Use for swaps, block rewrites, or deleting a full span (`content: null`).
21
+ - **Insert** (new content)
22
+ - `{ op: "prepend", before: "N#ID", content: […] }` or `{ op: "prepend", content: […] }` (no `before` = insert at beginning of file)
23
+ - `{ op: "append", after: "N#ID", content: […] }` or `{ op: "append", content: […] }` (no `after` = insert at end of file)
24
+ - `{ op: "insert", after: "N#ID", before: "N#ID", content: […] }` (between adjacent anchors; safest for blocks)
25
+ {{#if allowReplaceText}}
26
+ - **Content replace**
27
+ - `{ op: "replaceText", old_text: "…", new_text: "…", all?: boolean }`
28
+ {{/if}}
29
+ - **File-level controls**
30
+ - `{ delete: true, edits: [] }` deletes the file (cannot be combined with `rename`).
31
+ - `{ rename: "new/path.ts", edits: […] }` writes result to new path and removes old path.
32
+ **Atomicity:** all ops validate against the same pre-edit file snapshot; refs are interpreted against last `read`; applicator applies bottom-up.
33
+ </operations>
34
+
35
+ <rules>
36
+ 1. **Minimize scope:** one logical mutation site per operation.
37
+ 2. **Preserve formatting:** keep indentation, punctuation, line breaks, trailing commas, brace style.
38
+ 3. **Prefer insertion over neighbor rewrites:** anchor on structural boundaries (`}`, `]`, `},`) not interior property lines.
39
+ 4. **No no-ops:** replacement content must differ from current content.
40
+ 5. **Touch only requested code:** avoid incidental edits.
41
+ 6. **Use exact current tokens:** never rewrite approximately; mutate the token that exists now.
42
+ 7. **For swaps/moves:** prefer one range operation over multiple single-line operations.
43
+ </rules>
44
+
45
+ <op_choice>
46
+ - One wrong line → `set`
47
+ - Adjacent block changed → `insert`
48
+ - Missing line/block → insert with `append`/`prepend`
49
+ </op_choice>
50
+
51
+ <tag_choice>
52
+ - Copy tags exactly from the prefix of the `read` or error output.
53
+ - Never guess tags.
54
+ - For inserts, prefer `insert` > `append`/`prepend` when both boundaries are known.
55
+ - Re-read after each successful edit call before issuing another on same file.
56
+ </tag_choice>
57
+
58
+ <recovery>
59
+ **Tag mismatch (`>>>`)**
60
+ - Retry with the updated tags shown in error output.
61
+ - Re-read only if required tags are missing from error snippet.
62
+ - If mismatch repeats, stop and re-read the exact block.
63
+ </recovery>
64
+
65
+ <example name="fix a value or type">
66
+ ```ts
67
+ {{hlinefull 23 " const timeout: number = 5000;"}}
68
+ ```
69
+ ```
70
+ op: "set"
71
+ tag: "{{hlineref 23 " const timeout: number = 5000;"}}"
72
+ content: [" const timeout: number = 30_000;"]
73
+ ```
74
+ </example>
75
+
76
+ <example name="remove a line entirely">
77
+ ```ts
78
+ {{hlinefull 7 "// @ts-ignore"}}
79
+ {{hlinefull 8 "const data = fetchSync(url);"}}
80
+ ```
81
+ ```
82
+ op: "set"
83
+ tag: "{{hlineref 7 "// @ts-ignore"}}"
84
+ content: null
85
+ ```
86
+ </example>
87
+
88
+ <example name="clear content but keep the line break">
89
+ ```ts
90
+ {{hlinefull 14 " placeholder: \"DO NOT SHIP\","}}
91
+ ```
92
+ ```
93
+ op: "set"
94
+ tag: "{{hlineref 14 " placeholder: \"DO NOT SHIP\","}}"
95
+ content: [""]
96
+ ```
97
+ </example>
98
+
99
+ <example name="rewrite a block of logic">
100
+ ```ts
101
+ {{hlinefull 60 " } catch (err) {"}}
102
+ {{hlinefull 61 " console.error(err);"}}
103
+ {{hlinefull 62 " return null;"}}
104
+ {{hlinefull 63 " }"}}
105
+ ```
106
+ ```
107
+ op: "replace"
108
+ first: "{{hlineref 60 " } catch (err) {"}}"
109
+ last: "{{hlineref 63 " }"}}"
110
+ content: [" } catch (err) {", " if (isEnoent(err)) return null;", " throw err;", " }"]
111
+ ```
112
+ </example>
113
+
114
+ <example name="remove a full block">
115
+ ```ts
116
+ {{hlinefull 80 " // TODO: remove after migration"}}
117
+ {{hlinefull 81 " if (legacy) {"}}
118
+ {{hlinefull 82 " legacyHandler(req);"}}
119
+ {{hlinefull 83 " }"}}
120
+ ```
121
+ ```
122
+ op: "replace"
123
+ first: "{{hlineref 80 " // TODO: remove after migration"}}"
124
+ last: "{{hlineref 83 " }"}}"
125
+ content: null
126
+ ```
127
+ </example>
128
+
129
+ <example name="add an import above the first import">
130
+ ```ts
131
+ {{hlinefull 1 "import * as fs from \"node:fs/promises\";"}}
132
+ {{hlinefull 2 "import * as path from \"node:path\";"}}
133
+ ```
134
+ ```
135
+ op: "prepend"
136
+ before: "{{hlineref 1 "import * as fs from \"node:fs/promises\";"}}"
137
+ content: ["import * as os from \"node:os\";"]
138
+ ```
139
+ Use `before` for anchored insertion before a specific line. Omit `before` to prepend at BOF.
140
+ </example>
141
+
142
+ <example name="append at end of file">
143
+ ```ts
144
+ {{hlinefull 260 "export { serialize, deserialize };"}}
145
+ ```
146
+ ```
147
+ op: "append"
148
+ after: "{{hlineref 260 "export { serialize, deserialize };"}}"
149
+ content: ["export { validate };"]
150
+ ```
151
+ Use `after` for anchored insertion after a specific line. Omit `after` to append at EOF.
152
+ </example>
153
+
154
+ <example name="add an entry between known siblings">
155
+ ```ts
156
+ {{hlinefull 44 " \"build\": \"bun run compile\","}}
157
+ {{hlinefull 45 " \"test\": \"bun test\""}}
158
+ ```
159
+ ```
160
+ op: "insert"
161
+ after: "{{hlineref 44 " \"build\": \"bun run compile\","}}"
162
+ before: "{{hlineref 45 " \"test\": \"bun test\""}}"
163
+ content: [" \"lint\": \"biome check\","]
164
+ ```
165
+ Dual anchors pin the insert to exactly one gap, preventing drift from edits elsewhere in the file. **Always prefer dual anchors when both boundaries are content lines.**
166
+ </example>
167
+
168
+ <example name="insert a function before another function">
169
+ ```ts
170
+ {{hlinefull 100 " return buf.toString(\"hex\");"}}
171
+ {{hlinefull 101 "}"}}
172
+ {{hlinefull 102 ""}}
173
+ {{hlinefull 103 "export function serialize(data: unknown): string {"}}
174
+ ```
175
+ ```
176
+ op: "insert"
177
+ before: "{{hlineref 103 "export function serialize(data: unknown): string {"}}"
178
+ content: ["function validate(data: unknown): boolean {", " return data != null && typeof data === \"object\";", "}", ""]
179
+ ```
180
+ The trailing `""` in `content` preserves the blank-line separator. **Anchor to the structural line (`export function ...`), not the blank line above it** — blank lines are ambiguous and may be added or removed by other edits.
181
+ </example>
182
+
183
+ {{#if allowReplaceText}}
184
+ <example name="content replace (rare)">
185
+ ```
186
+ op: "replaceText"
187
+ old_text: "x = 42"
188
+ new_text: "x = 99"
189
+ ```
190
+
191
+ Use only when line anchors aren't available. `old_text` must match exactly one location in the file (or set `"all": true` for all occurrences).
192
+ </example>
193
+ {{/if}}
194
+
195
+ <example name="file delete">
196
+ ```
197
+ path: "src/deprecated/legacy.ts"
198
+ delete: true
199
+ ```
200
+ </example>
201
+
202
+ <example name="file rename with edits">
203
+ ```
204
+ path: "src/utils.ts"
205
+ rename: "src/helpers/utils.ts"
206
+ edits: […]
207
+ ```
208
+ </example>
209
+
210
+ <example name="anti-pattern: anchoring to whitespace">
211
+ Bad — tags to a blank line; fragile if blank lines shift:
212
+ ```
213
+ after: "{{hlineref 102 ""}}"
214
+ content: ["function validate() {", …, "}"]
215
+ ```
216
+
217
+ Good — anchors to the structural target:
218
+
219
+ ```
220
+ before: "{{hlineref 103 "export function serialize(data: unknown): string {"}}"
221
+ content: ["function validate() {", …, "}"]
222
+ ```
223
+ </example>
224
+
225
+ <critical>
226
+ Ensure:
227
+ - Payload shape is `{ "path": string, "edits": [operation, …], "delete"?: boolean, "rename"?: string }`
228
+ - Every edit matches exactly one variant
229
+ - Every tag has been copied EXACTLY from a tool result as `N#ID`
230
+ - Scope is minimal and formatting is preserved except targeted token changes
231
+ </critical>
232
+ **Final reminder:** tags are immutable references to the last read snapshot. Re-read when state changes, then edit.
@@ -0,0 +1,24 @@
1
+ # Librarian
2
+
3
+ Explore and understand codebases across repositories using a specialized agent.
4
+
5
+ ## When to use
6
+ - Understanding complex codebases and architecture
7
+ - Exploring relationships between repositories
8
+ - Finding implementations across codebases
9
+ - Understanding code evolution and commit history
10
+ - Getting comprehensive explanations of features
11
+ - Browsing remote GitHub repositories
12
+
13
+ ## When NOT to use
14
+ - Simple local file reading (use Read)
15
+ - Local codebase searches (use Explore or Grep)
16
+ - Code modifications (use other tools)
17
+
18
+ ## Parameters
19
+
20
+ ### `query` (required)
21
+ Your question about the codebase. Be specific about repositories and what you want to understand.
22
+
23
+ ### `context` (optional)
24
+ Background about what you're trying to achieve.
@@ -0,0 +1,28 @@
1
+ # LSP
2
+
3
+ Interact with Language Server Protocol servers for code intelligence.
4
+
5
+ <operations>
6
+ - `definition`: Go to symbol definition
7
+ - `references`: Find all references to symbol
8
+ - `hover`: Get type info and documentation
9
+ - `symbols`: List symbols in file, or search workspace (with query, no file)
10
+ - `rename`: Rename symbol across codebase
11
+ - `diagnostics`: Get errors/warnings for file, or check entire project (no file)
12
+ - `reload`: Restart the language server
13
+ </operations>
14
+
15
+ <output>
16
+ - `definition`: File path and position of definition
17
+ - `references`: List of locations (file + position) where symbol used
18
+ - `hover`: Type signature and documentation text
19
+ - `symbols`: List of symbol names, kinds, locations
20
+ - `rename`: Confirmation of changes made across files
21
+ - `diagnostics`: List of errors/warnings with file, line, severity, message
22
+ - `reload`: Confirmation of server restart
23
+ </output>
24
+
25
+ <caution>
26
+ - Requires running LSP server for target language
27
+ - Some operations require file to be saved to disk
28
+ </caution>
@@ -0,0 +1,26 @@
1
+ # Oracle
2
+
3
+ Consult a reasoning advisor for reviews, architecture, debugging, and planning.
4
+
5
+ ## When to use
6
+ - Code reviews and architecture feedback
7
+ - Finding bugs across multiple files
8
+ - Planning complex implementations or refactoring
9
+ - Analyzing code quality
10
+ - Complex technical questions requiring deep reasoning
11
+
12
+ ## When NOT to use
13
+ - Simple file reading or searching (use Read/Grep)
14
+ - Codebase exploration (use Explore)
15
+ - Basic code modifications (do it yourself or use Task)
16
+
17
+ ## Parameters
18
+
19
+ ### `task` (required)
20
+ Specific question or task. Be precise about what guidance you need.
21
+
22
+ ### `context` (optional)
23
+ Background: current situation, what you've tried, constraints.
24
+
25
+ ### `files` (optional)
26
+ File paths to examine. These are read and attached to the oracle's input.
@@ -0,0 +1,74 @@
1
+ # Edit (Patch)
2
+
3
+ Patch operations on file given diff. Primary tool for existing-file edits.
4
+
5
+ <instruction>
6
+ **Hunk Headers:**
7
+ - `@@` — bare header when context lines unique
8
+ - `@@ $ANCHOR` — anchor copied verbatim from file (full line or unique substring)
9
+ **Anchor Selection:**
10
+ 1. Otherwise choose highly specific anchor copied from file:
11
+ - full function signature
12
+ - class declaration
13
+ - unique string literal/error message
14
+ - config key with uncommon name
15
+ 2. On "Found multiple matches": add context lines, use multiple hunks with separate anchors, or use longer anchor substring
16
+ **Context Lines:**
17
+ Use enough ` `-prefixed lines to make match unique (usually 2–8)
18
+ When editing structured blocks (nested braces, tags, indented regions), include opening and closing lines so edit stays inside block
19
+ </instruction>
20
+
21
+ <parameters>
22
+ ```ts
23
+ type T =
24
+ // Diff is one or more hunks in the same file.
25
+ // - Each hunk begins with "@@" (anchor optional).
26
+ // - Each hunk body only has lines starting with ' ' | '+' | '-'.
27
+ // - Each hunk includes at least one change (+ or -).
28
+ | { path: string, op: "update", diff: string }
29
+ // Diff is full file content, no prefixes.
30
+ | { path: string, op: "create", diff: string }
31
+ // No diff for delete.
32
+ | { path: string, op: "delete" }
33
+ // New path for update+move.
34
+ | { path: string, op: "update", rename: string, diff: string }
35
+ ```
36
+ </parameters>
37
+
38
+ <output>
39
+ Returns success/failure; on failure, error message indicates:
40
+ - "Found multiple matches" — anchor/context not unique enough
41
+ - "No match found" — context lines don't exist in file (wrong content or stale read)
42
+ - Syntax errors in diff format
43
+ </output>
44
+
45
+ <critical>
46
+ - Always read target file before editing
47
+ - Copy anchors and context lines verbatim (including whitespace)
48
+ - Never use anchors as comments (no line numbers, location labels, placeholders like `@@ @@`)
49
+ - Do not place new lines outside intended block
50
+ - If edit fails or breaks structure, re-read file and produce new patch from current content—do not retry same diff
51
+ - **NEVER** use edit to fix indentation, whitespace, or reformat code. Formatting is a single command run once at the end (`bun fmt`, `cargo fmt`, `prettier --write`, etc.)—not N individual edits. If you see inconsistent indentation after an edit, leave it; the formatter will fix all of it in one pass.
52
+ </critical>
53
+
54
+ <example name="create">
55
+ edit {"path":"hello.txt","op":"create","diff":"Hello\n"}
56
+ </example>
57
+
58
+ <example name="update">
59
+ edit {"path":"src/app.py","op":"update","diff":"@@ def greet():\n def greet():\n-print('Hi')\n+print('Hello')\n"}
60
+ </example>
61
+
62
+ <example name="rename">
63
+ edit {"path":"src/app.py","op":"update","rename":"src/main.py","diff":"@@\n ...\n"}
64
+ </example>
65
+
66
+ <example name="delete">
67
+ edit {"path":"obsolete.txt","op":"delete"}
68
+ </example>
69
+
70
+ <avoid>
71
+ - Generic anchors: `import`, `export`, `describe`, `function`, `const`
72
+ - Repeating same addition in multiple hunks (duplicate blocks)
73
+ - Full-file overwrites for minor changes (acceptable for major restructures or short files)
74
+ </avoid>
@@ -0,0 +1,66 @@
1
+ # Python
2
+
3
+ Runs Python cells sequentially in persistent IPython kernel.
4
+
5
+ <instruction>
6
+ Kernel persists across calls and cells; **imports, variables, and functions survive—use this.**
7
+ **Work incrementally:**
8
+ - One logical step per cell (imports, define function, test it, use it)
9
+ - Pass multiple small cells in one call
10
+ - Define small functions you can reuse and debug individually
11
+ - Put explanations in assistant message or cell title, **not** in code
12
+ **When something fails:**
13
+ - Errors tell you which cell failed (e.g., "Cell 3 failed")
14
+ - Resubmit only fixed cell (or fixed cell + remaining cells)
15
+ </instruction>
16
+
17
+ <prelude>
18
+ All helpers auto-print results and return values for chaining.
19
+
20
+ {{#if categories.length}}
21
+ {{#each categories}}
22
+ ### {{name}}
23
+
24
+ ```
25
+ {{#each functions}}
26
+ {{name}}{{signature}}
27
+ {{docstring}}
28
+ {{/each}}
29
+ ```
30
+ {{/each}}
31
+ {{else}}
32
+ (Documentation unavailable — Python kernel failed to start)
33
+ {{/if}}
34
+ </prelude>
35
+
36
+ <output>
37
+ Streams in real time, truncated after 100KB; if truncated, full output stored under $ARTIFACTS and referenced as `artifact://<id>` in metadata.
38
+
39
+ User sees output like Jupyter notebook; rich displays render fully:
40
+ - `display(JSON(data))` → interactive JSON tree
41
+ - `display(HTML(...))` → rendered HTML
42
+ - `display(Markdown(...))` → formatted markdown
43
+ - `plt.show()` → inline figures
44
+ **You will see object repr** (e.g., `<IPython.core.display.JSON object>`). Trust `display()`; do not assume user sees only repr.
45
+ </output>
46
+
47
+ <caution>
48
+ - Per-call mode uses fresh kernel each call
49
+ - Use `reset: true` to clear state when session mode active
50
+ </caution>
51
+
52
+ <critical>
53
+ - Use `run()` for shell commands; never raw `subprocess`
54
+ </critical>
55
+
56
+ <example name="good">
57
+ ```python
58
+ # Multiple small cells
59
+ cells: [
60
+ {"title": "imports", "code": "import json\nfrom pathlib import Path"},
61
+ {"title": "parse helper", "code": "def parse_config(path):\n return json.loads(Path(path).read_text())"},
62
+ {"title": "test helper", "code": "parse_config('config.json')"},
63
+ {"title": "use helper", "code": "configs = [parse_config(p) for p in Path('.').glob('*.json')]"}
64
+ ]
65
+ ```
66
+ </example>
@@ -0,0 +1,36 @@
1
+ # Read
2
+
3
+ Reads files from local filesystem or internal URLs.
4
+
5
+ <instruction>
6
+ - Reads up to {{DEFAULT_MAX_LINES}} lines default
7
+ - Use `offset` and `limit` for large files
8
+ {{#if IS_HASHLINE_MODE}}
9
+ - Text output is CID prefixed: `LINE#ID:content`
10
+ {{else}}
11
+ {{#if IS_LINE_NUMBER_MODE}}
12
+ - Text output is line-number-prefixed
13
+ {{/if}}
14
+ {{/if}}
15
+ - Supports images (PNG, JPG) and PDFs
16
+ - For directories, returns formatted listing with modification times
17
+ - Parallelize reads when exploring related files
18
+ - Supports internal URLs:
19
+ - `skill://<name>` - read SKILL.md for a skill
20
+ - `skill://<name>/<path>` - read relative path within skill directory
21
+ - `rule://<name>` - read rule content
22
+ - `memory://root` - read memory summary (`memory_summary.md`)
23
+ - `memory://root/<path>` - read relative path within project memory root
24
+ - `agent://<id>` - read agent output artifact
25
+ - `agent://<id>/<path>` or `agent://<id>?q=<query>` - extract JSON from agent output
26
+ - `docs://` - list available pi documentation files
27
+ - `docs://<file>.md` - read a specific pi documentation file
28
+ </instruction>
29
+
30
+ <output>
31
+ - Returns file content as text
32
+ - Images: returns visual content for analysis
33
+ - PDFs: returns extracted text
34
+ - Missing files: returns closest filename matches for correction
35
+ - Internal URLs: returns resolved content with pagination support
36
+ </output>
@@ -0,0 +1,38 @@
1
+ # Edit (Replace)
2
+
3
+ String replacements in files with fuzzy whitespace matching.
4
+
5
+ <instruction>
6
+ - Use smallest edit that uniquely identifies change
7
+ - If `old_text` not unique, expand to include more context or use `all: true` to replace all occurrences
8
+ - Fuzzy matching handles minor whitespace/indentation differences automatically
9
+ - Prefer editing existing files over creating new ones
10
+ </instruction>
11
+
12
+ <output>
13
+ Returns success/failure status. On success, file modified in place with replacement applied. On failure (e.g., `old_text` not found or matches multiple locations without `all: true`), returns error describing issue.
14
+ </output>
15
+
16
+ <critical>
17
+ - Must read file at least once in conversation before editing. Tool errors if you attempt edit without reading file first.
18
+ </critical>
19
+
20
+ <bash*alternatives>
21
+ Replace for content-addressed changes—you identify \_what* to change by its text.
22
+
23
+ For position-addressed or pattern-addressed changes, bash more efficient:
24
+
25
+ |Operation|Command|
26
+ |---|---|
27
+ |Append to file|`cat >> file <<'EOF'`...`EOF`|
28
+ |Prepend to file|`{ cat - file; } <<'EOF' > tmp && mv tmp file`|
29
+ |Delete lines N-M|`sed -i 'N,Md' file`|
30
+ |Insert after line N|`sed -i 'Na\text' file`|
31
+ |Regex replace|`sd 'pattern' 'replacement' file`|
32
+ |Bulk replace across files|`sd 'pattern' 'replacement' **/*.ts`|
33
+ |Copy lines N-M to another file|`sed -n 'N,Mp' src >> dest`|
34
+ |Move lines N-M to another file|`sed -n 'N,Mp' src >> dest && sed -i 'N,Md' src`|
35
+
36
+ Use Replace when _content itself_ identifies location.
37
+ Use bash when _position_ or _pattern_ identifies what to change.
38
+ </bash_alternatives>