@cjhyy/code-shell 0.1.0-alpha.0 → 0.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +8 -0
  3. package/dist/anthropic-P5VETAFI.cjs +10 -0
  4. package/dist/{anthropic-NENYS535.js → anthropic-W2GU3D76.js} +3 -2
  5. package/dist/arena/context/context-tools.d.ts +1 -1
  6. package/dist/arena/index.cjs +4 -4
  7. package/dist/arena/index.js +3 -3
  8. package/dist/arena/providers/index.d.ts +19 -3
  9. package/dist/arena/strategies/utils.d.ts +6 -1
  10. package/dist/arena/types.d.ts +10 -1
  11. package/dist/{arena-46QQ6BZQ.js → arena-ENHBHB2W.js} +5 -7
  12. package/dist/{arena-HZZZ2GJH.cjs → arena-HHDYYVHJ.cjs} +19 -21
  13. package/dist/{chunk-BE6IPRDM.js → chunk-2EUAE7AY.js} +1 -1
  14. package/dist/{chunk-WFQF3RT4.cjs → chunk-3CAZIWUA.cjs} +11 -8
  15. package/dist/{chunk-J5XW6UYL.js → chunk-5C5HIOML.js} +63 -4
  16. package/dist/chunk-75E4BBFC.js +224 -0
  17. package/dist/{chunk-ZJV3YSY3.cjs → chunk-BUJ5KYCI.cjs} +53 -11
  18. package/dist/{chunk-BMH65OVB.cjs → chunk-C7C7ZZY4.cjs} +8 -8
  19. package/dist/{chunk-KO2FPF7G.js → chunk-F5BS3GUC.js} +20 -2
  20. package/dist/chunk-FA5KD34T.js +54 -0
  21. package/dist/chunk-FV2ARONZ.cjs +224 -0
  22. package/dist/chunk-G76E5FOB.cjs +54 -0
  23. package/dist/{chunk-DICG4AB7.cjs → chunk-GZBD6QRS.cjs} +42 -3
  24. package/dist/{chunk-FVP7XJGS.cjs → chunk-HOXQLX5R.cjs} +406 -196
  25. package/dist/{chunk-4PKZPFCD.js → chunk-I57ZD5IQ.js} +47 -14
  26. package/dist/{chunk-7RMAR2Y3.js → chunk-ID6EJUHP.js} +1959 -473
  27. package/dist/chunk-JHNCK7JP.cjs +202 -0
  28. package/dist/{chunk-R32DJSJE.cjs → chunk-JHXNOB5G.cjs} +8 -5
  29. package/dist/{chunk-UK2SU23S.cjs → chunk-KOGV6PDQ.cjs} +20 -2
  30. package/dist/{chunk-VKGNCYRL.js → chunk-LMEKCQX4.js} +95 -13
  31. package/dist/{chunk-3EAEC566.cjs → chunk-M2QI5X3X.cjs} +51 -18
  32. package/dist/{chunk-YZ25SSWJ.js → chunk-M2SVOKC6.js} +46 -4
  33. package/dist/chunk-OMRGA6TI.js +4753 -0
  34. package/dist/{chunk-NG73UR3L.cjs → chunk-OP57WUWQ.cjs} +23 -1
  35. package/dist/{chunk-ZXYDDJEJ.js → chunk-OUC2DFA7.js} +2 -2
  36. package/dist/{chunk-6JOOLG6F.js → chunk-REFCCVDM.js} +5 -2
  37. package/dist/{chunk-O6F2EF2Z.js → chunk-SCDKLTN3.js} +41 -2
  38. package/dist/{chunk-BHGIJ2DJ.js → chunk-SW3L7HIM.js} +6 -3
  39. package/dist/chunk-TATCTZSB.cjs +4753 -0
  40. package/dist/{chunk-QHDYFC5U.cjs → chunk-VWFET3MG.cjs} +2132 -646
  41. package/dist/{chunk-3EUDE77E.cjs → chunk-X2DNIMPC.cjs} +19 -19
  42. package/dist/{chunk-SQZHPD3S.js → chunk-Y7TSCDF6.js} +297 -87
  43. package/dist/{chunk-WHRTARDJ.cjs → chunk-YAFCN7ZW.cjs} +112 -30
  44. package/dist/{chunk-LRAY5IYC.cjs → chunk-YD7XTI7T.cjs} +65 -6
  45. package/dist/{chunk-S74VVJBF.js → chunk-ZLPJJZUW.js} +23 -1
  46. package/dist/chunk-ZRVPCXI7.js +202 -0
  47. package/dist/cli/commands/builtin/advanced-commands.d.ts +1 -1
  48. package/dist/cli/commands/builtin/extra-commands.d.ts +2 -2
  49. package/dist/cli/commands/builtin/more-commands.d.ts +1 -3
  50. package/dist/cli/commands/registry.d.ts +8 -0
  51. package/dist/cli/cost-tracker.d.ts +6 -0
  52. package/dist/cli/main.cjs +3576 -2036
  53. package/dist/cli/main.js +3613 -2073
  54. package/dist/cli/onboarding.d.ts +67 -14
  55. package/dist/client-base-TOVE25FA.js +9 -0
  56. package/dist/client-base-VDDIADAC.cjs +9 -0
  57. package/dist/compaction-D3KV2NWY.cjs +31 -0
  58. package/dist/{compaction-CCHWA4G6.js → compaction-YNWCEF7B.js} +1 -2
  59. package/dist/context/manager.d.ts +9 -0
  60. package/dist/data/openrouter-models.d.ts +35 -0
  61. package/dist/data/openrouter-sync.d.ts +16 -0
  62. package/dist/{devtools-KIY3LWQJ.js → devtools-IRQQPIRY.js} +1 -1
  63. package/dist/{devtools-LRP47DDV.cjs → devtools-WTC3NFNE.cjs} +1 -1
  64. package/dist/engine/engine.d.ts +39 -4
  65. package/dist/engine/turn-loop.d.ts +13 -4
  66. package/dist/engine/turn-state.d.ts +6 -0
  67. package/dist/index.cjs +19 -28
  68. package/dist/index.d.ts +1 -1
  69. package/dist/index.js +28 -37
  70. package/dist/llm/client-base.d.ts +7 -0
  71. package/dist/llm/model-pool.d.ts +4 -0
  72. package/dist/logging/logger.d.ts +69 -8
  73. package/dist/manager-FWLOVEEK.cjs +7 -0
  74. package/dist/manager-GEXJLOIS.js +7 -0
  75. package/dist/{mcp-manager-OKXHHWYR.js → mcp-manager-37GQLFGX.js} +2 -2
  76. package/dist/mcp-manager-U77NEXBY.cjs +8 -0
  77. package/dist/memory-ADGOWADP.cjs +9 -0
  78. package/dist/memory-EPFDBPII.js +9 -0
  79. package/dist/native-ts/yoga-layout/index.d.ts +2 -2
  80. package/dist/{openai-5HQGBL4L.js → openai-RXU5URYI.js} +3 -2
  81. package/dist/openai-SQW4H2K4.cjs +10 -0
  82. package/dist/openrouter-models-OL725CL6.js +15 -0
  83. package/dist/openrouter-models-UM3AOGZ4.cjs +15 -0
  84. package/dist/openrouter-sync-CWD5VNW2.js +11 -0
  85. package/dist/openrouter-sync-HYZZC6RX.cjs +11 -0
  86. package/dist/product/index.cjs +12 -16
  87. package/dist/product/index.js +11 -15
  88. package/dist/product/types.d.ts +2 -7
  89. package/dist/protocol/types.d.ts +11 -3
  90. package/dist/{ink → render}/hooks/use-input.d.ts +1 -1
  91. package/dist/run/EngineRunner.d.ts +3 -1
  92. package/dist/run/RunManager.d.ts +6 -0
  93. package/dist/run/factory.d.ts +7 -1
  94. package/dist/run/index.cjs +12 -16
  95. package/dist/run/index.js +11 -15
  96. package/dist/session/memory.d.ts +23 -3
  97. package/dist/session/session-manager.d.ts +4 -1
  98. package/dist/{session-manager-UQKB564H.cjs → session-manager-HRSKENKB.cjs} +2 -2
  99. package/dist/{session-manager-JIIBCFTC.js → session-manager-NEKFEHF3.js} +1 -1
  100. package/dist/settings/manager.d.ts +9 -0
  101. package/dist/settings/schema.d.ts +48 -39
  102. package/dist/{tool-summary-J2ICNMWP.js → tool-summary-2RUFL5QK.js} +1 -1
  103. package/dist/{tool-summary-5P2GKRA4.cjs → tool-summary-RYNR4DDB.cjs} +2 -2
  104. package/dist/tool-system/builtin/agent-registry.d.ts +36 -0
  105. package/dist/tool-system/builtin/agent.d.ts +7 -26
  106. package/dist/tool-system/builtin/apply-patch/applier.d.ts +26 -0
  107. package/dist/tool-system/builtin/apply-patch/index.d.ts +19 -0
  108. package/dist/tool-system/builtin/apply-patch/parser.d.ts +17 -0
  109. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +18 -0
  110. package/dist/tool-system/builtin/apply-patch/types.d.ts +49 -0
  111. package/dist/tool-system/builtin/arena.d.ts +18 -5
  112. package/dist/tool-system/builtin/ask-user.d.ts +6 -6
  113. package/dist/tool-system/builtin/index.d.ts +11 -1
  114. package/dist/tool-system/builtin/tool-search.d.ts +2 -3
  115. package/dist/tool-system/context.d.ts +74 -0
  116. package/dist/tool-system/executor.d.ts +16 -0
  117. package/dist/tool-system/permission.d.ts +40 -5
  118. package/dist/tool-system/registry.d.ts +8 -0
  119. package/dist/types.d.ts +34 -1
  120. package/dist/ui/App.d.ts +1 -1
  121. package/dist/ui/components/AgentBlock.d.ts +1 -1
  122. package/dist/ui/components/AskUserPrompt.d.ts +7 -0
  123. package/dist/ui/components/MessageContent.d.ts +7 -3
  124. package/dist/ui/components/ModelManager.d.ts +35 -0
  125. package/dist/ui/components/ModelSelector.d.ts +10 -0
  126. package/dist/ui/components/OnboardingPrompt.d.ts +7 -0
  127. package/dist/ui/components/PermissionPrompt.d.ts +5 -2
  128. package/dist/ui/components/SessionPicker.d.ts +14 -0
  129. package/dist/ui/components/StatusLine.d.ts +4 -2
  130. package/dist/ui/components/ThemedBox.d.ts +1 -1
  131. package/dist/ui/components/ToolCall.d.ts +8 -1
  132. package/dist/ui/components/WelcomeTips.d.ts +5 -0
  133. package/dist/ui/onboarding-runner.d.ts +2 -0
  134. package/dist/ui/store.d.ts +1 -0
  135. package/dist/{updater-URVNPDPW.cjs → updater-M7L42ASZ.cjs} +4 -4
  136. package/dist/{updater-AVD4LKTQ.js → updater-ZRTONIR4.js} +4 -4
  137. package/dist/utils/debug.d.ts +17 -33
  138. package/package.json +4 -4
  139. package/dist/anthropic-XMTTVNSH.cjs +0 -9
  140. package/dist/bridge-4ZRXVWBN.js +0 -98
  141. package/dist/bridge-W476QDFH.cjs +0 -98
  142. package/dist/chunk-4RRUP4MM.js +0 -86
  143. package/dist/chunk-4SFPFHMG.js +0 -132
  144. package/dist/chunk-5LHVI777.cjs +0 -246
  145. package/dist/chunk-6ZIROYXX.js +0 -207
  146. package/dist/chunk-C7JBCO5V.js +0 -80
  147. package/dist/chunk-CSO5EOEP.cjs +0 -132
  148. package/dist/chunk-FGZGCFJX.cjs +0 -207
  149. package/dist/chunk-HD7MT5XU.cjs +0 -86
  150. package/dist/chunk-IMMTBZ33.cjs +0 -63
  151. package/dist/chunk-JT2WSQSR.cjs +0 -335
  152. package/dist/chunk-NZ4DQ72D.cjs +0 -664
  153. package/dist/chunk-OG4MIQJ6.js +0 -335
  154. package/dist/chunk-WRZJUQ5Z.js +0 -664
  155. package/dist/chunk-X4HAERTQ.js +0 -63
  156. package/dist/chunk-XHC2JMEC.cjs +0 -80
  157. package/dist/chunk-ZRSSGYA5.js +0 -246
  158. package/dist/compaction-44I55TLI.cjs +0 -32
  159. package/dist/coordinator-5HY7ALO2.js +0 -7
  160. package/dist/coordinator-INDLPVMF.cjs +0 -7
  161. package/dist/cost-tracker-IWYAUPXH.js +0 -9
  162. package/dist/cost-tracker-JXTJQQWE.cjs +0 -9
  163. package/dist/loader-DXFSUB4R.cjs +0 -91
  164. package/dist/loader-J5UID6CV.js +0 -91
  165. package/dist/manager-ETWDOCHN.cjs +0 -9
  166. package/dist/manager-HGMQNEJB.cjs +0 -11
  167. package/dist/manager-HUAQOORS.js +0 -9
  168. package/dist/manager-VJIZ2CQC.js +0 -11
  169. package/dist/mcp-manager-G4G2QASE.cjs +0 -8
  170. package/dist/memory-AP747G5H.js +0 -7
  171. package/dist/memory-BH3BYUN5.cjs +0 -7
  172. package/dist/onboarding-6WEPV7C2.js +0 -11
  173. package/dist/onboarding-QM5DY2TU.cjs +0 -11
  174. package/dist/openai-656VWUQW.cjs +0 -9
  175. package/dist/skills-63RBYQRX.js +0 -13
  176. package/dist/skills-V3BPLW3D.cjs +0 -13
  177. package/dist/token-counter-CHAXW5O7.cjs +0 -13
  178. package/dist/token-counter-DSOZGZ5Q.js +0 -13
  179. package/dist/utils/log.d.ts +0 -56
  180. package/dist/voice-KTZ7PAGO.js +0 -80
  181. package/dist/voice-KZE25GKB.cjs +0 -80
  182. /package/dist/{ink → render}/Ansi.d.ts +0 -0
  183. /package/dist/{ink → render}/bidi.d.ts +0 -0
  184. /package/dist/{ink → render}/clearTerminal.d.ts +0 -0
  185. /package/dist/{ink → render}/colorize.d.ts +0 -0
  186. /package/dist/{ink → render}/components/AlternateScreen.d.ts +0 -0
  187. /package/dist/{ink → render}/components/App.d.ts +0 -0
  188. /package/dist/{ink → render}/components/AppContext.d.ts +0 -0
  189. /package/dist/{ink → render}/components/Box.d.ts +0 -0
  190. /package/dist/{ink → render}/components/Button.d.ts +0 -0
  191. /package/dist/{ink → render}/components/ClockContext.d.ts +0 -0
  192. /package/dist/{ink → render}/components/CursorDeclarationContext.d.ts +0 -0
  193. /package/dist/{ink → render}/components/ErrorOverview.d.ts +0 -0
  194. /package/dist/{ink → render}/components/Link.d.ts +0 -0
  195. /package/dist/{ink → render}/components/Newline.d.ts +0 -0
  196. /package/dist/{ink → render}/components/NoSelect.d.ts +0 -0
  197. /package/dist/{ink → render}/components/RawAnsi.d.ts +0 -0
  198. /package/dist/{ink → render}/components/ScrollBox.d.ts +0 -0
  199. /package/dist/{ink → render}/components/Spacer.d.ts +0 -0
  200. /package/dist/{ink → render}/components/StdinContext.d.ts +0 -0
  201. /package/dist/{ink → render}/components/TerminalFocusContext.d.ts +0 -0
  202. /package/dist/{ink → render}/components/TerminalSizeContext.d.ts +0 -0
  203. /package/dist/{ink → render}/components/Text.d.ts +0 -0
  204. /package/dist/{ink → render}/constants.d.ts +0 -0
  205. /package/dist/{ink → render}/cursor.d.ts +0 -0
  206. /package/dist/{ink → render}/devtools.d.ts +0 -0
  207. /package/dist/{ink → render}/dom.d.ts +0 -0
  208. /package/dist/{ink → render}/events/click-event.d.ts +0 -0
  209. /package/dist/{ink → render}/events/dispatcher.d.ts +0 -0
  210. /package/dist/{ink → render}/events/emitter.d.ts +0 -0
  211. /package/dist/{ink → render}/events/event-handlers.d.ts +0 -0
  212. /package/dist/{ink → render}/events/event.d.ts +0 -0
  213. /package/dist/{ink → render}/events/focus-event.d.ts +0 -0
  214. /package/dist/{ink → render}/events/input-event.d.ts +0 -0
  215. /package/dist/{ink → render}/events/keyboard-event.d.ts +0 -0
  216. /package/dist/{ink → render}/events/paste-event.d.ts +0 -0
  217. /package/dist/{ink → render}/events/resize-event.d.ts +0 -0
  218. /package/dist/{ink → render}/events/terminal-event.d.ts +0 -0
  219. /package/dist/{ink → render}/events/terminal-focus-event.d.ts +0 -0
  220. /package/dist/{ink → render}/focus.d.ts +0 -0
  221. /package/dist/{ink → render}/frame.d.ts +0 -0
  222. /package/dist/{ink → render}/get-max-width.d.ts +0 -0
  223. /package/dist/{ink → render}/hit-test.d.ts +0 -0
  224. /package/dist/{ink → render}/hooks/use-animation-frame.d.ts +0 -0
  225. /package/dist/{ink → render}/hooks/use-app.d.ts +0 -0
  226. /package/dist/{ink → render}/hooks/use-declared-cursor.d.ts +0 -0
  227. /package/dist/{ink → render}/hooks/use-interval.d.ts +0 -0
  228. /package/dist/{ink → render}/hooks/use-search-highlight.d.ts +0 -0
  229. /package/dist/{ink → render}/hooks/use-selection.d.ts +0 -0
  230. /package/dist/{ink → render}/hooks/use-stdin.d.ts +0 -0
  231. /package/dist/{ink → render}/hooks/use-tab-status.d.ts +0 -0
  232. /package/dist/{ink → render}/hooks/use-terminal-focus.d.ts +0 -0
  233. /package/dist/{ink → render}/hooks/use-terminal-title.d.ts +0 -0
  234. /package/dist/{ink → render}/hooks/use-terminal-viewport.d.ts +0 -0
  235. /package/dist/{ink → render}/index.d.ts +0 -0
  236. /package/dist/{ink → render}/ink.d.ts +0 -0
  237. /package/dist/{ink → render}/instances.d.ts +0 -0
  238. /package/dist/{ink → render}/layout/engine.d.ts +0 -0
  239. /package/dist/{ink → render}/layout/geometry.d.ts +0 -0
  240. /package/dist/{ink → render}/layout/node.d.ts +0 -0
  241. /package/dist/{ink → render}/layout/yoga.d.ts +0 -0
  242. /package/dist/{ink → render}/line-width-cache.d.ts +0 -0
  243. /package/dist/{ink → render}/log-update.d.ts +0 -0
  244. /package/dist/{ink → render}/measure-element.d.ts +0 -0
  245. /package/dist/{ink → render}/measure-text.d.ts +0 -0
  246. /package/dist/{ink → render}/node-cache.d.ts +0 -0
  247. /package/dist/{ink → render}/optimizer.d.ts +0 -0
  248. /package/dist/{ink → render}/output.d.ts +0 -0
  249. /package/dist/{ink → render}/parse-keypress.d.ts +0 -0
  250. /package/dist/{ink → render}/reconciler.d.ts +0 -0
  251. /package/dist/{ink → render}/render-border.d.ts +0 -0
  252. /package/dist/{ink → render}/render-node-to-output.d.ts +0 -0
  253. /package/dist/{ink → render}/render-to-screen.d.ts +0 -0
  254. /package/dist/{ink → render}/renderer.d.ts +0 -0
  255. /package/dist/{ink → render}/root.d.ts +0 -0
  256. /package/dist/{ink → render}/screen.d.ts +0 -0
  257. /package/dist/{ink → render}/searchHighlight.d.ts +0 -0
  258. /package/dist/{ink → render}/selection.d.ts +0 -0
  259. /package/dist/{ink → render}/squash-text-nodes.d.ts +0 -0
  260. /package/dist/{ink → render}/stringWidth.d.ts +0 -0
  261. /package/dist/{ink → render}/styles.d.ts +0 -0
  262. /package/dist/{ink → render}/supports-hyperlinks.d.ts +0 -0
  263. /package/dist/{ink → render}/tabstops.d.ts +0 -0
  264. /package/dist/{ink → render}/terminal-focus-state.d.ts +0 -0
  265. /package/dist/{ink → render}/terminal-querier.d.ts +0 -0
  266. /package/dist/{ink → render}/terminal.d.ts +0 -0
  267. /package/dist/{ink → render}/termio/ansi.d.ts +0 -0
  268. /package/dist/{ink → render}/termio/csi.d.ts +0 -0
  269. /package/dist/{ink → render}/termio/dec.d.ts +0 -0
  270. /package/dist/{ink → render}/termio/esc.d.ts +0 -0
  271. /package/dist/{ink → render}/termio/osc.d.ts +0 -0
  272. /package/dist/{ink → render}/termio/parser.d.ts +0 -0
  273. /package/dist/{ink → render}/termio/sgr.d.ts +0 -0
  274. /package/dist/{ink → render}/termio/tokenize.d.ts +0 -0
  275. /package/dist/{ink → render}/termio/types.d.ts +0 -0
  276. /package/dist/{ink → render}/termio.d.ts +0 -0
  277. /package/dist/{ink → render}/useTerminalNotification.d.ts +0 -0
  278. /package/dist/{ink → render}/warn.d.ts +0 -0
  279. /package/dist/{ink → render}/widest-line.d.ts +0 -0
  280. /package/dist/{ink → render}/wrap-text.d.ts +0 -0
  281. /package/dist/{ink → render}/wrapAnsi.d.ts +0 -0
package/dist/run/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createRunManager
3
- } from "../chunk-BHGIJ2DJ.js";
3
+ } from "../chunk-SW3L7HIM.js";
4
4
  import {
5
5
  ArtifactTracker,
6
6
  CheckpointWriter,
@@ -15,22 +15,18 @@ import {
15
15
  RunQueue,
16
16
  VALID_TRANSITIONS,
17
17
  createRunAskUserFn
18
- } from "../chunk-7RMAR2Y3.js";
18
+ } from "../chunk-ID6EJUHP.js";
19
+ import "../chunk-F5BS3GUC.js";
20
+ import "../chunk-2EUAE7AY.js";
21
+ import "../chunk-5C5HIOML.js";
22
+ import "../chunk-I57ZD5IQ.js";
23
+ import "../chunk-ZLPJJZUW.js";
24
+ import "../chunk-75E4BBFC.js";
19
25
  import "../chunk-SK62UVS6.js";
20
- import "../chunk-KO2FPF7G.js";
21
- import "../chunk-6ZIROYXX.js";
22
- import "../chunk-OG4MIQJ6.js";
23
- import "../chunk-BE6IPRDM.js";
24
- import "../chunk-J5XW6UYL.js";
25
- import "../chunk-4RRUP4MM.js";
26
- import "../chunk-4PKZPFCD.js";
27
- import "../chunk-4SFPFHMG.js";
28
- import "../chunk-S74VVJBF.js";
29
- import "../chunk-ZXYDDJEJ.js";
30
- import "../chunk-SQZHPD3S.js";
31
- import "../chunk-X4HAERTQ.js";
26
+ import "../chunk-OUC2DFA7.js";
27
+ import "../chunk-Y7TSCDF6.js";
32
28
  import "../chunk-FUOKLKR2.js";
33
- import "../chunk-C7JBCO5V.js";
29
+ import "../chunk-ZRVPCXI7.js";
34
30
  import "../chunk-DI7RDLOS.js";
35
31
  export {
36
32
  ArtifactTracker,
@@ -1,7 +1,12 @@
1
1
  /**
2
2
  * Memory system — persistent cross-session memory.
3
3
  *
4
- * Stores structured memory entries in ~/.code-shell/memory/ as individual markdown files.
4
+ * Stores structured memory entries as individual markdown files under a base
5
+ * directory. Resolution order for the base directory:
6
+ * 1. explicit `baseDir` constructor arg
7
+ * 2. CODE_SHELL_HOME env var
8
+ * 3. ~/.code-shell
9
+ *
5
10
  * MEMORY.md is the index file.
6
11
  */
7
12
  export interface MemoryEntry {
@@ -11,10 +16,19 @@ export interface MemoryEntry {
11
16
  content: string;
12
17
  fileName: string;
13
18
  }
19
+ export interface MemoryManagerOptions {
20
+ /** Project root path; when set, memories are scoped under projects/<hash>/memory. */
21
+ projectDir?: string;
22
+ /** Override the base directory (~/.code-shell by default). Takes precedence over env. */
23
+ baseDir?: string;
24
+ }
25
+ export declare function resolveMemoryBaseDir(override?: string): string;
14
26
  export declare class MemoryManager {
27
+ private readonly baseDir;
15
28
  private readonly memoryDir;
16
29
  private readonly indexPath;
17
- constructor(projectDir?: string);
30
+ private indexCache;
31
+ constructor(options?: MemoryManagerOptions | string);
18
32
  getMemoryDir(): string;
19
33
  /**
20
34
  * Save a memory entry. Creates the file and updates the index.
@@ -40,6 +54,12 @@ export declare class MemoryManager {
40
54
  * Build a prompt-friendly summary of all memories.
41
55
  */
42
56
  buildMemoryContext(): string;
43
- private updateIndex;
57
+ /**
58
+ * Lazy-build the in-memory index from disk on first use, then
59
+ * keep it in sync incrementally via save/delete. Avoids the
60
+ * O(N²) re-read of every memory file on every save.
61
+ */
62
+ private ensureIndexCache;
63
+ private writeIndex;
44
64
  private slugify;
45
65
  }
@@ -19,5 +19,8 @@ export declare class SessionManager {
19
19
  * then diverges independently.
20
20
  */
21
21
  fork(sourceSessionId: string, forkAtTurn?: number): SessionBundle;
22
- list(limit?: number): SessionState[];
22
+ list(limit?: number): SessionListEntry[];
23
23
  }
24
+ export type SessionListEntry = SessionState & {
25
+ preview?: string;
26
+ };
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkNG73UR3Lcjs = require('./chunk-NG73UR3L.cjs');
3
+ var _chunkOP57WUWQcjs = require('./chunk-OP57WUWQ.cjs');
4
4
  require('./chunk-EL2RL5DG.cjs');
5
5
  require('./chunk-IJSHQGMP.cjs');
6
6
 
7
7
 
8
- exports.SessionManager = _chunkNG73UR3Lcjs.SessionManager;
8
+ exports.SessionManager = _chunkOP57WUWQcjs.SessionManager;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SessionManager
3
- } from "./chunk-S74VVJBF.js";
3
+ } from "./chunk-ZLPJJZUW.js";
4
4
  import "./chunk-FUOKLKR2.js";
5
5
  import "./chunk-DI7RDLOS.js";
6
6
  export {
@@ -22,6 +22,15 @@ export declare class SettingsManager {
22
22
  * Invalidate cached merge.
23
23
  */
24
24
  invalidate(): void;
25
+ /**
26
+ * Persist a single setting (dotted key path) to the user-level config file
27
+ * at ~/.code-shell/settings.json. Other sources (project / local /
28
+ * managed) are intentionally untouched: writing back to project/local
29
+ * would surprise version control, and managed is read-only.
30
+ *
31
+ * The merged cache is invalidated so the next get() picks up the change.
32
+ */
33
+ saveUserSetting(key: string, value: unknown): void;
25
34
  private loadJsonFile;
26
35
  private deepMerge;
27
36
  }
@@ -30,18 +30,18 @@ export declare const SettingsSchema: z.ZodObject<{
30
30
  temperature: z.ZodDefault<z.ZodNumber>;
31
31
  maxTokens: z.ZodDefault<z.ZodNumber>;
32
32
  }, "strip", z.ZodTypeAny, {
33
+ provider: string;
33
34
  name: string;
34
35
  maxTokens: number;
35
36
  baseUrl: string;
36
- provider: string;
37
37
  temperature: number;
38
38
  apiKey?: string | undefined;
39
39
  }, {
40
+ provider?: string | undefined;
40
41
  name?: string | undefined;
41
42
  maxTokens?: number | undefined;
42
- baseUrl?: string | undefined;
43
- provider?: string | undefined;
44
43
  apiKey?: string | undefined;
44
+ baseUrl?: string | undefined;
45
45
  temperature?: number | undefined;
46
46
  }>>;
47
47
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -52,22 +52,25 @@ export declare const SettingsSchema: z.ZodObject<{
52
52
  baseUrl: z.ZodOptional<z.ZodString>;
53
53
  apiKey: z.ZodOptional<z.ZodString>;
54
54
  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
55
+ maxContextTokens: z.ZodOptional<z.ZodNumber>;
55
56
  }, "strip", z.ZodTypeAny, {
57
+ provider: string;
56
58
  model: string;
57
59
  key: string;
58
- provider: string;
59
- baseUrl?: string | undefined;
60
60
  apiKey?: string | undefined;
61
+ baseUrl?: string | undefined;
61
62
  label?: string | undefined;
62
63
  maxOutputTokens?: number | undefined;
64
+ maxContextTokens?: number | undefined;
63
65
  }, {
66
+ provider: string;
64
67
  model: string;
65
68
  key: string;
66
- provider: string;
67
- baseUrl?: string | undefined;
68
69
  apiKey?: string | undefined;
70
+ baseUrl?: string | undefined;
69
71
  label?: string | undefined;
70
72
  maxOutputTokens?: number | undefined;
73
+ maxContextTokens?: number | undefined;
71
74
  }>, "many">>;
72
75
  permissions: z.ZodDefault<z.ZodObject<{
73
76
  defaultMode: z.ZodDefault<z.ZodEnum<["default", "acceptEdits", "dontAsk", "bypassPermissions", "auto", "plan"]>>;
@@ -178,31 +181,31 @@ export declare const SettingsSchema: z.ZodObject<{
178
181
  }, "strip", z.ZodTypeAny, {
179
182
  model: string;
180
183
  name: string;
181
- baseUrl?: string | undefined;
182
184
  provider?: string | undefined;
183
185
  apiKey?: string | undefined;
186
+ baseUrl?: string | undefined;
184
187
  }, {
185
188
  model: string;
186
189
  name: string;
187
- baseUrl?: string | undefined;
188
190
  provider?: string | undefined;
189
191
  apiKey?: string | undefined;
192
+ baseUrl?: string | undefined;
190
193
  }>]>, "many">>;
191
194
  }, "strip", z.ZodTypeAny, {
192
195
  participants: (string | {
193
196
  model: string;
194
197
  name: string;
195
- baseUrl?: string | undefined;
196
198
  provider?: string | undefined;
197
199
  apiKey?: string | undefined;
200
+ baseUrl?: string | undefined;
198
201
  })[];
199
202
  }, {
200
203
  participants?: (string | {
201
204
  model: string;
202
205
  name: string;
203
- baseUrl?: string | undefined;
204
206
  provider?: string | undefined;
205
207
  apiKey?: string | undefined;
208
+ baseUrl?: string | undefined;
206
209
  })[] | undefined;
207
210
  }>>;
208
211
  search: z.ZodDefault<z.ZodObject<{
@@ -211,12 +214,12 @@ export declare const SettingsSchema: z.ZodObject<{
211
214
  baseUrl: z.ZodOptional<z.ZodString>;
212
215
  }, "strip", z.ZodTypeAny, {
213
216
  provider: "serper" | "tavily" | "searxng";
214
- baseUrl?: string | undefined;
215
217
  apiKey?: string | undefined;
216
- }, {
217
218
  baseUrl?: string | undefined;
219
+ }, {
218
220
  provider?: "serper" | "tavily" | "searxng" | undefined;
219
221
  apiKey?: string | undefined;
222
+ baseUrl?: string | undefined;
220
223
  }>>;
221
224
  output: z.ZodDefault<z.ZodObject<{
222
225
  format: z.ZodDefault<z.ZodEnum<["text", "json", "jsonl", "stream-json"]>>;
@@ -253,18 +256,18 @@ export declare const SettingsSchema: z.ZodObject<{
253
256
  temperature: z.ZodDefault<z.ZodNumber>;
254
257
  maxTokens: z.ZodDefault<z.ZodNumber>;
255
258
  }, "strip", z.ZodTypeAny, {
259
+ provider: string;
256
260
  name: string;
257
261
  maxTokens: number;
258
262
  baseUrl: string;
259
- provider: string;
260
263
  temperature: number;
261
264
  apiKey?: string | undefined;
262
265
  }, {
266
+ provider?: string | undefined;
263
267
  name?: string | undefined;
264
268
  maxTokens?: number | undefined;
265
- baseUrl?: string | undefined;
266
- provider?: string | undefined;
267
269
  apiKey?: string | undefined;
270
+ baseUrl?: string | undefined;
268
271
  temperature?: number | undefined;
269
272
  }>>;
270
273
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -275,22 +278,25 @@ export declare const SettingsSchema: z.ZodObject<{
275
278
  baseUrl: z.ZodOptional<z.ZodString>;
276
279
  apiKey: z.ZodOptional<z.ZodString>;
277
280
  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
281
+ maxContextTokens: z.ZodOptional<z.ZodNumber>;
278
282
  }, "strip", z.ZodTypeAny, {
283
+ provider: string;
279
284
  model: string;
280
285
  key: string;
281
- provider: string;
282
- baseUrl?: string | undefined;
283
286
  apiKey?: string | undefined;
287
+ baseUrl?: string | undefined;
284
288
  label?: string | undefined;
285
289
  maxOutputTokens?: number | undefined;
290
+ maxContextTokens?: number | undefined;
286
291
  }, {
292
+ provider: string;
287
293
  model: string;
288
294
  key: string;
289
- provider: string;
290
- baseUrl?: string | undefined;
291
295
  apiKey?: string | undefined;
296
+ baseUrl?: string | undefined;
292
297
  label?: string | undefined;
293
298
  maxOutputTokens?: number | undefined;
299
+ maxContextTokens?: number | undefined;
294
300
  }>, "many">>;
295
301
  permissions: z.ZodDefault<z.ZodObject<{
296
302
  defaultMode: z.ZodDefault<z.ZodEnum<["default", "acceptEdits", "dontAsk", "bypassPermissions", "auto", "plan"]>>;
@@ -401,31 +407,31 @@ export declare const SettingsSchema: z.ZodObject<{
401
407
  }, "strip", z.ZodTypeAny, {
402
408
  model: string;
403
409
  name: string;
404
- baseUrl?: string | undefined;
405
410
  provider?: string | undefined;
406
411
  apiKey?: string | undefined;
412
+ baseUrl?: string | undefined;
407
413
  }, {
408
414
  model: string;
409
415
  name: string;
410
- baseUrl?: string | undefined;
411
416
  provider?: string | undefined;
412
417
  apiKey?: string | undefined;
418
+ baseUrl?: string | undefined;
413
419
  }>]>, "many">>;
414
420
  }, "strip", z.ZodTypeAny, {
415
421
  participants: (string | {
416
422
  model: string;
417
423
  name: string;
418
- baseUrl?: string | undefined;
419
424
  provider?: string | undefined;
420
425
  apiKey?: string | undefined;
426
+ baseUrl?: string | undefined;
421
427
  })[];
422
428
  }, {
423
429
  participants?: (string | {
424
430
  model: string;
425
431
  name: string;
426
- baseUrl?: string | undefined;
427
432
  provider?: string | undefined;
428
433
  apiKey?: string | undefined;
434
+ baseUrl?: string | undefined;
429
435
  })[] | undefined;
430
436
  }>>;
431
437
  search: z.ZodDefault<z.ZodObject<{
@@ -434,12 +440,12 @@ export declare const SettingsSchema: z.ZodObject<{
434
440
  baseUrl: z.ZodOptional<z.ZodString>;
435
441
  }, "strip", z.ZodTypeAny, {
436
442
  provider: "serper" | "tavily" | "searxng";
437
- baseUrl?: string | undefined;
438
443
  apiKey?: string | undefined;
439
- }, {
440
444
  baseUrl?: string | undefined;
445
+ }, {
441
446
  provider?: "serper" | "tavily" | "searxng" | undefined;
442
447
  apiKey?: string | undefined;
448
+ baseUrl?: string | undefined;
443
449
  }>>;
444
450
  output: z.ZodDefault<z.ZodObject<{
445
451
  format: z.ZodDefault<z.ZodEnum<["text", "json", "jsonl", "stream-json"]>>;
@@ -476,18 +482,18 @@ export declare const SettingsSchema: z.ZodObject<{
476
482
  temperature: z.ZodDefault<z.ZodNumber>;
477
483
  maxTokens: z.ZodDefault<z.ZodNumber>;
478
484
  }, "strip", z.ZodTypeAny, {
485
+ provider: string;
479
486
  name: string;
480
487
  maxTokens: number;
481
488
  baseUrl: string;
482
- provider: string;
483
489
  temperature: number;
484
490
  apiKey?: string | undefined;
485
491
  }, {
492
+ provider?: string | undefined;
486
493
  name?: string | undefined;
487
494
  maxTokens?: number | undefined;
488
- baseUrl?: string | undefined;
489
- provider?: string | undefined;
490
495
  apiKey?: string | undefined;
496
+ baseUrl?: string | undefined;
491
497
  temperature?: number | undefined;
492
498
  }>>;
493
499
  models: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -498,22 +504,25 @@ export declare const SettingsSchema: z.ZodObject<{
498
504
  baseUrl: z.ZodOptional<z.ZodString>;
499
505
  apiKey: z.ZodOptional<z.ZodString>;
500
506
  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
507
+ maxContextTokens: z.ZodOptional<z.ZodNumber>;
501
508
  }, "strip", z.ZodTypeAny, {
509
+ provider: string;
502
510
  model: string;
503
511
  key: string;
504
- provider: string;
505
- baseUrl?: string | undefined;
506
512
  apiKey?: string | undefined;
513
+ baseUrl?: string | undefined;
507
514
  label?: string | undefined;
508
515
  maxOutputTokens?: number | undefined;
516
+ maxContextTokens?: number | undefined;
509
517
  }, {
518
+ provider: string;
510
519
  model: string;
511
520
  key: string;
512
- provider: string;
513
- baseUrl?: string | undefined;
514
521
  apiKey?: string | undefined;
522
+ baseUrl?: string | undefined;
515
523
  label?: string | undefined;
516
524
  maxOutputTokens?: number | undefined;
525
+ maxContextTokens?: number | undefined;
517
526
  }>, "many">>;
518
527
  permissions: z.ZodDefault<z.ZodObject<{
519
528
  defaultMode: z.ZodDefault<z.ZodEnum<["default", "acceptEdits", "dontAsk", "bypassPermissions", "auto", "plan"]>>;
@@ -624,31 +633,31 @@ export declare const SettingsSchema: z.ZodObject<{
624
633
  }, "strip", z.ZodTypeAny, {
625
634
  model: string;
626
635
  name: string;
627
- baseUrl?: string | undefined;
628
636
  provider?: string | undefined;
629
637
  apiKey?: string | undefined;
638
+ baseUrl?: string | undefined;
630
639
  }, {
631
640
  model: string;
632
641
  name: string;
633
- baseUrl?: string | undefined;
634
642
  provider?: string | undefined;
635
643
  apiKey?: string | undefined;
644
+ baseUrl?: string | undefined;
636
645
  }>]>, "many">>;
637
646
  }, "strip", z.ZodTypeAny, {
638
647
  participants: (string | {
639
648
  model: string;
640
649
  name: string;
641
- baseUrl?: string | undefined;
642
650
  provider?: string | undefined;
643
651
  apiKey?: string | undefined;
652
+ baseUrl?: string | undefined;
644
653
  })[];
645
654
  }, {
646
655
  participants?: (string | {
647
656
  model: string;
648
657
  name: string;
649
- baseUrl?: string | undefined;
650
658
  provider?: string | undefined;
651
659
  apiKey?: string | undefined;
660
+ baseUrl?: string | undefined;
652
661
  })[] | undefined;
653
662
  }>>;
654
663
  search: z.ZodDefault<z.ZodObject<{
@@ -657,12 +666,12 @@ export declare const SettingsSchema: z.ZodObject<{
657
666
  baseUrl: z.ZodOptional<z.ZodString>;
658
667
  }, "strip", z.ZodTypeAny, {
659
668
  provider: "serper" | "tavily" | "searxng";
660
- baseUrl?: string | undefined;
661
669
  apiKey?: string | undefined;
662
- }, {
663
670
  baseUrl?: string | undefined;
671
+ }, {
664
672
  provider?: "serper" | "tavily" | "searxng" | undefined;
665
673
  apiKey?: string | undefined;
674
+ baseUrl?: string | undefined;
666
675
  }>>;
667
676
  output: z.ZodDefault<z.ZodObject<{
668
677
  format: z.ZodDefault<z.ZodEnum<["text", "json", "jsonl", "stream-json"]>>;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-X4HAERTQ.js";
3
+ } from "./chunk-ZRVPCXI7.js";
4
4
  import {
5
5
  init_esm_shims
6
6
  } from "./chunk-DI7RDLOS.js";
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkIMMTBZ33cjs = require('./chunk-IMMTBZ33.cjs');
3
+ var _chunkJHNCK7JPcjs = require('./chunk-JHNCK7JP.cjs');
4
4
 
5
5
 
6
6
  var _chunkIJSHQGMPcjs = require('./chunk-IJSHQGMP.cjs');
@@ -22,7 +22,7 @@ async function generateToolUseSummary(toolCalls, results, summarize) {
22
22
  const summary = await summarize(SUMMARY_SYSTEM_PROMPT, parts.join("\n"));
23
23
  return _optionalChain([summary, 'optionalAccess', _3 => _3.trim, 'call', _4 => _4()]) || null;
24
24
  } catch (err) {
25
- _chunkIMMTBZ33cjs.logger.warn("tool_summary.failed", { error: err.message });
25
+ _chunkJHNCK7JPcjs.logger.warn("tool_summary.failed", { error: err.message });
26
26
  return null;
27
27
  }
28
28
  }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * In-process async agent registry.
3
+ *
4
+ * When an Agent tool call uses run_in_background: true, the sub-agent
5
+ * runs detached from the current turn. We need somewhere to track
6
+ * agentId → status / result / cancel handle so the parent agent can
7
+ * later check on it (AgentStatus) or cancel it (AgentCancel).
8
+ *
9
+ * Lifetime: process-local. Crashing the process loses these — that's
10
+ * the same contract Claude Code's Agent.run_in_background gives, and
11
+ * the right boundary: long-running cross-process work belongs to
12
+ * RunManager, not here.
13
+ */
14
+ export type AsyncAgentStatus = "running" | "completed" | "failed" | "cancelled";
15
+ export interface AsyncAgentEntry {
16
+ agentId: string;
17
+ description: string;
18
+ status: AsyncAgentStatus;
19
+ startedAt: number;
20
+ finishedAt?: number;
21
+ result?: string;
22
+ error?: string;
23
+ abort: () => void;
24
+ }
25
+ declare class AsyncAgentRegistry {
26
+ private agents;
27
+ register(entry: AsyncAgentEntry): void;
28
+ get(agentId: string): AsyncAgentEntry | undefined;
29
+ list(): AsyncAgentEntry[];
30
+ markCompleted(agentId: string, result: string): void;
31
+ markFailed(agentId: string, error: string): void;
32
+ cancel(agentId: string): boolean;
33
+ reset(): void;
34
+ }
35
+ export declare const asyncAgentRegistry: AsyncAgentRegistry;
36
+ export {};
@@ -6,30 +6,11 @@
6
6
  * Supports AbortSignal for cascading cancellation.
7
7
  * Supports onStream for real-time output passthrough.
8
8
  */
9
- import type { ToolDefinition, StreamCallback } from "../../types.js";
10
- import type { AgentPresetName } from "../../preset/index.js";
9
+ import type { ToolDefinition } from "../../types.js";
10
+ import type { ToolContext } from "../context.js";
11
11
  export declare const agentToolDef: ToolDefinition;
12
- export interface SubAgentConfig {
13
- llm: import("../../types.js").LLMConfig;
14
- cwd: string;
15
- permissionMode: string;
16
- preset?: AgentPresetName;
17
- enabledBuiltinTools?: string[];
18
- disabledBuiltinTools?: string[];
19
- customSystemPrompt?: string;
20
- appendSystemPrompt?: string;
21
- maxContextTokens: number;
22
- sessionStorageDir?: string;
23
- onStream?: StreamCallback;
24
- createEngine: (config: Record<string, unknown>) => {
25
- run(task: string, options?: {
26
- signal?: AbortSignal;
27
- onStream?: StreamCallback;
28
- }): Promise<{
29
- text: string;
30
- reason: string;
31
- }>;
32
- };
33
- }
34
- export declare function setSubAgentConfig(config: SubAgentConfig | undefined): void;
35
- export declare function agentTool(args: Record<string, unknown>): Promise<string>;
12
+ export declare function agentTool(args: Record<string, unknown>, ctx?: ToolContext): Promise<string>;
13
+ export declare const agentStatusToolDef: ToolDefinition;
14
+ export declare function agentStatusTool(args: Record<string, unknown>): Promise<string>;
15
+ export declare const agentCancelToolDef: ToolDefinition;
16
+ export declare function agentCancelTool(args: Record<string, unknown>): Promise<string>;
@@ -0,0 +1,26 @@
1
+ import { Hunk } from "./types.js";
2
+ export interface ApplyPatchOptions {
3
+ /** Working directory for resolving relative paths in the patch. */
4
+ cwd: string;
5
+ /**
6
+ * If true, skip the snapshot/rollback safety net and apply each planned
7
+ * change one at a time, leaving partial work on disk if a later write
8
+ * fails. Mostly useful for codex-parity testing. Default: false.
9
+ */
10
+ allowPartialOnCommit?: boolean;
11
+ }
12
+ export interface ApplyPatchResult {
13
+ added: string[];
14
+ modified: string[];
15
+ deleted: string[];
16
+ }
17
+ /**
18
+ * Plan and commit the patch atomically.
19
+ *
20
+ * Phase 1 (plan): walk every hunk, compute the resulting file content in
21
+ * memory. Throws if any hunk cannot be applied; nothing is written.
22
+ *
23
+ * Phase 2 (commit): write all planned changes. If any write fails, restore
24
+ * from the in-memory snapshot captured in phase 1 and rethrow.
25
+ */
26
+ export declare function applyPatch(hunks: Hunk[], options: ApplyPatchOptions): Promise<ApplyPatchResult>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ApplyPatch tool — atomic, multi-file V4A patch application.
3
+ *
4
+ * Adapted from openai/codex codex-rs/apply-patch (Apache-2.0). See LICENSE-codex.
5
+ *
6
+ * Compared to Codex's reference implementation:
7
+ * - We dry-run all hunks first; nothing is written until every hunk
8
+ * successfully resolves.
9
+ * - On commit we snapshot every target file, so a write failure rolls back
10
+ * to the pre-patch state instead of leaving partial changes.
11
+ *
12
+ * Compared to CodeShell's existing Edit:
13
+ * - Multi-file in one call (cuts LLM round-trips for large changes).
14
+ * - Supports create / update / delete / rename in one transaction.
15
+ * - Context-anchor matching tolerates whitespace and Unicode quirks.
16
+ */
17
+ import type { ToolDefinition } from "../../../types.js";
18
+ export declare const applyPatchToolDef: ToolDefinition;
19
+ export declare function applyPatchTool(args: Record<string, unknown>): Promise<string>;
@@ -0,0 +1,17 @@
1
+ import { Hunk } from "./types.js";
2
+ export declare const BEGIN_PATCH_MARKER = "*** Begin Patch";
3
+ export declare const END_PATCH_MARKER = "*** End Patch";
4
+ export declare const ADD_FILE_MARKER = "*** Add File: ";
5
+ export declare const DELETE_FILE_MARKER = "*** Delete File: ";
6
+ export declare const UPDATE_FILE_MARKER = "*** Update File: ";
7
+ export declare const MOVE_TO_MARKER = "*** Move to: ";
8
+ export declare const EOF_MARKER = "*** End of File";
9
+ export declare const CHANGE_CONTEXT_MARKER = "@@ ";
10
+ export declare const EMPTY_CHANGE_CONTEXT_MARKER = "@@";
11
+ export interface ParsedPatch {
12
+ hunks: Hunk[];
13
+ /** The patch body with any heredoc wrapper stripped. */
14
+ patch: string;
15
+ }
16
+ export type ParseMode = "strict" | "lenient";
17
+ export declare function parsePatch(text: string, mode?: ParseMode): ParsedPatch;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Locate `pattern` within `lines` starting at or after `start`.
3
+ *
4
+ * Tries four passes with decreasing strictness:
5
+ * 1. exact equality
6
+ * 2. trailing whitespace ignored
7
+ * 3. leading + trailing whitespace ignored
8
+ * 4. Unicode punctuation normalized to ASCII (smart quotes, em-dashes, NBSP, …)
9
+ *
10
+ * When `eof` is true, search begins at the position that would let `pattern`
11
+ * end exactly at the end of `lines` — useful for chunks marked
12
+ * `*** End of File`. Falls back to `start` if that position is out of range.
13
+ *
14
+ * Defensive cases:
15
+ * - Empty pattern returns `start` (no-op match).
16
+ * - Pattern longer than input returns `null`.
17
+ */
18
+ export declare function seekSequence(lines: string[], pattern: string[], start: number, eof: boolean): number | null;