@cjhyy/code-shell 0.1.0-alpha.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 (441) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/LICENSE +21 -0
  3. package/README.md +177 -0
  4. package/dist/agent/coordinator.d.ts +49 -0
  5. package/dist/anthropic-NENYS535.js +9 -0
  6. package/dist/anthropic-XMTTVNSH.cjs +9 -0
  7. package/dist/arena/arena.d.ts +43 -0
  8. package/dist/arena/context/context-tools.d.ts +16 -0
  9. package/dist/arena/detect-mode.d.ts +20 -0
  10. package/dist/arena/digest-builder.d.ts +25 -0
  11. package/dist/arena/index.cjs +103 -0
  12. package/dist/arena/index.d.ts +29 -0
  13. package/dist/arena/index.js +103 -0
  14. package/dist/arena/iterate/convergence.d.ts +25 -0
  15. package/dist/arena/iterate/formats/index.d.ts +22 -0
  16. package/dist/arena/iterate/index.d.ts +11 -0
  17. package/dist/arena/iterate/iterative-arena.d.ts +23 -0
  18. package/dist/arena/iterate/parse.d.ts +42 -0
  19. package/dist/arena/iterate/phases/argue.d.ts +22 -0
  20. package/dist/arena/iterate/phases/revise.d.ts +16 -0
  21. package/dist/arena/iterate/phases/tournament.d.ts +34 -0
  22. package/dist/arena/iterate/tools/web-tools.d.ts +13 -0
  23. package/dist/arena/iterate/types.d.ts +152 -0
  24. package/dist/arena/ledger.d.ts +47 -0
  25. package/dist/arena/lenses/architecture.d.ts +5 -0
  26. package/dist/arena/lenses/engineering.d.ts +5 -0
  27. package/dist/arena/lenses/general.d.ts +5 -0
  28. package/dist/arena/lenses/index.d.ts +16 -0
  29. package/dist/arena/lenses/product.d.ts +5 -0
  30. package/dist/arena/model-presets.d.ts +14 -0
  31. package/dist/arena/phases/adjudication.d.ts +24 -0
  32. package/dist/arena/phases/build-consensus.d.ts +29 -0
  33. package/dist/arena/phases/claim-registry.d.ts +26 -0
  34. package/dist/arena/phases/cross-review.d.ts +45 -0
  35. package/dist/arena/phases/debate-rounds.d.ts +27 -0
  36. package/dist/arena/phases/participant-research.d.ts +38 -0
  37. package/dist/arena/phases/planning-detail-expansion.d.ts +38 -0
  38. package/dist/arena/planner.d.ts +27 -0
  39. package/dist/arena/providers/docs.d.ts +6 -0
  40. package/dist/arena/providers/git.d.ts +8 -0
  41. package/dist/arena/providers/index.d.ts +16 -0
  42. package/dist/arena/providers/none.d.ts +7 -0
  43. package/dist/arena/providers/repo.d.ts +6 -0
  44. package/dist/arena/render/session.d.ts +17 -0
  45. package/dist/arena/render/terminal.d.ts +33 -0
  46. package/dist/arena/strategies/discussion.d.ts +25 -0
  47. package/dist/arena/strategies/index.d.ts +15 -0
  48. package/dist/arena/strategies/language-wrapper.d.ts +17 -0
  49. package/dist/arena/strategies/lens-wrapper.d.ts +16 -0
  50. package/dist/arena/strategies/planning.d.ts +30 -0
  51. package/dist/arena/strategies/review.d.ts +26 -0
  52. package/dist/arena/strategies/utils.d.ts +34 -0
  53. package/dist/arena/tools/selector.d.ts +17 -0
  54. package/dist/arena/transitions.d.ts +48 -0
  55. package/dist/arena/types.d.ts +499 -0
  56. package/dist/arena-46QQ6BZQ.js +261 -0
  57. package/dist/arena-HZZZ2GJH.cjs +261 -0
  58. package/dist/bootstrap/setup.d.ts +14 -0
  59. package/dist/bootstrap/state.d.ts +160 -0
  60. package/dist/bridge-4ZRXVWBN.js +98 -0
  61. package/dist/bridge-W476QDFH.cjs +98 -0
  62. package/dist/chunk-3EAEC566.cjs +136 -0
  63. package/dist/chunk-3EUDE77E.cjs +1252 -0
  64. package/dist/chunk-3QR52LL5.cjs +105 -0
  65. package/dist/chunk-4PKZPFCD.js +136 -0
  66. package/dist/chunk-4RRUP4MM.js +86 -0
  67. package/dist/chunk-4SFPFHMG.js +132 -0
  68. package/dist/chunk-5LHVI777.cjs +246 -0
  69. package/dist/chunk-6JOOLG6F.js +104 -0
  70. package/dist/chunk-6ZIROYXX.js +207 -0
  71. package/dist/chunk-7RMAR2Y3.js +6511 -0
  72. package/dist/chunk-BE6IPRDM.js +224 -0
  73. package/dist/chunk-BHGIJ2DJ.js +41 -0
  74. package/dist/chunk-BMH65OVB.cjs +224 -0
  75. package/dist/chunk-C7JBCO5V.js +80 -0
  76. package/dist/chunk-CSO5EOEP.cjs +132 -0
  77. package/dist/chunk-DI7RDLOS.js +47 -0
  78. package/dist/chunk-DICG4AB7.cjs +73 -0
  79. package/dist/chunk-EL2RL5DG.cjs +101 -0
  80. package/dist/chunk-FGZGCFJX.cjs +207 -0
  81. package/dist/chunk-FUOKLKR2.js +101 -0
  82. package/dist/chunk-FVP7XJGS.cjs +4577 -0
  83. package/dist/chunk-HD7MT5XU.cjs +86 -0
  84. package/dist/chunk-IJSHQGMP.cjs +45 -0
  85. package/dist/chunk-IMMTBZ33.cjs +63 -0
  86. package/dist/chunk-J5XW6UYL.js +291 -0
  87. package/dist/chunk-JT2WSQSR.cjs +335 -0
  88. package/dist/chunk-KO2FPF7G.js +93 -0
  89. package/dist/chunk-LRAY5IYC.cjs +291 -0
  90. package/dist/chunk-NG73UR3L.cjs +285 -0
  91. package/dist/chunk-NZ4DQ72D.cjs +664 -0
  92. package/dist/chunk-O6F2EF2Z.js +73 -0
  93. package/dist/chunk-OG4MIQJ6.js +335 -0
  94. package/dist/chunk-QHDYFC5U.cjs +6511 -0
  95. package/dist/chunk-R32DJSJE.cjs +41 -0
  96. package/dist/chunk-S74VVJBF.js +285 -0
  97. package/dist/chunk-SK62UVS6.js +105 -0
  98. package/dist/chunk-SQZHPD3S.js +4577 -0
  99. package/dist/chunk-UK2SU23S.cjs +93 -0
  100. package/dist/chunk-VKGNCYRL.js +258 -0
  101. package/dist/chunk-WFQF3RT4.cjs +104 -0
  102. package/dist/chunk-WHRTARDJ.cjs +258 -0
  103. package/dist/chunk-WRZJUQ5Z.js +664 -0
  104. package/dist/chunk-X4HAERTQ.js +63 -0
  105. package/dist/chunk-XHC2JMEC.cjs +80 -0
  106. package/dist/chunk-YZ25SSWJ.js +222 -0
  107. package/dist/chunk-ZJV3YSY3.cjs +222 -0
  108. package/dist/chunk-ZRSSGYA5.js +246 -0
  109. package/dist/chunk-ZXYDDJEJ.js +1252 -0
  110. package/dist/cli/commands/arena.d.ts +29 -0
  111. package/dist/cli/commands/builtin/advanced-commands.d.ts +5 -0
  112. package/dist/cli/commands/builtin/core-commands.d.ts +5 -0
  113. package/dist/cli/commands/builtin/extra-commands.d.ts +6 -0
  114. package/dist/cli/commands/builtin/git-commands.d.ts +5 -0
  115. package/dist/cli/commands/builtin/more-commands.d.ts +7 -0
  116. package/dist/cli/commands/builtin/permissions-command.d.ts +5 -0
  117. package/dist/cli/commands/builtin/utility-commands.d.ts +5 -0
  118. package/dist/cli/commands/registry.d.ts +64 -0
  119. package/dist/cli/commands/repl.d.ts +21 -0
  120. package/dist/cli/commands/run.d.ts +21 -0
  121. package/dist/cli/commands/runs.d.ts +14 -0
  122. package/dist/cli/cost-tracker.d.ts +57 -0
  123. package/dist/cli/exit.d.ts +12 -0
  124. package/dist/cli/input/ndjson-reader.d.ts +31 -0
  125. package/dist/cli/input-compiler.d.ts +5 -0
  126. package/dist/cli/main.cjs +19674 -0
  127. package/dist/cli/main.d.ts +5 -0
  128. package/dist/cli/main.js +19674 -0
  129. package/dist/cli/onboarding.d.ts +26 -0
  130. package/dist/cli/output/renderer.d.ts +28 -0
  131. package/dist/cli/output/terminal-ui.d.ts +50 -0
  132. package/dist/cli/updater.d.ts +10 -0
  133. package/dist/compaction-44I55TLI.cjs +32 -0
  134. package/dist/compaction-CCHWA4G6.js +32 -0
  135. package/dist/context/compaction.d.ts +83 -0
  136. package/dist/context/manager.d.ts +99 -0
  137. package/dist/context/token-counter.d.ts +27 -0
  138. package/dist/coordinator-5HY7ALO2.js +7 -0
  139. package/dist/coordinator-INDLPVMF.cjs +7 -0
  140. package/dist/cost-tracker-IWYAUPXH.js +9 -0
  141. package/dist/cost-tracker-JXTJQQWE.cjs +9 -0
  142. package/dist/cron/scheduler.d.ts +34 -0
  143. package/dist/devtools-KIY3LWQJ.js +6 -0
  144. package/dist/devtools-LRP47DDV.cjs +6 -0
  145. package/dist/engine/cost-store.d.ts +22 -0
  146. package/dist/engine/engine.d.ts +101 -0
  147. package/dist/engine/model-facade.d.ts +24 -0
  148. package/dist/engine/query.d.ts +50 -0
  149. package/dist/engine/streaming-tool-queue.d.ts +34 -0
  150. package/dist/engine/token-budget.d.ts +22 -0
  151. package/dist/engine/tool-summary.d.ts +13 -0
  152. package/dist/engine/turn-loop.d.ts +62 -0
  153. package/dist/engine/turn-state.d.ts +14 -0
  154. package/dist/exceptions.d.ts +44 -0
  155. package/dist/file-history-HZWO2WQ5.js +7 -0
  156. package/dist/file-history-UQQILIY7.cjs +7 -0
  157. package/dist/git/utils.d.ts +35 -0
  158. package/dist/git/worktree.d.ts +36 -0
  159. package/dist/hooks/events.d.ts +35 -0
  160. package/dist/hooks/registry.d.ts +15 -0
  161. package/dist/index.cjs +336 -0
  162. package/dist/index.d.ts +64 -0
  163. package/dist/index.js +336 -0
  164. package/dist/ink/Ansi.d.ts +10 -0
  165. package/dist/ink/bidi.d.ts +15 -0
  166. package/dist/ink/clearTerminal.d.ts +13 -0
  167. package/dist/ink/colorize.d.ts +16 -0
  168. package/dist/ink/components/AlternateScreen.d.ts +21 -0
  169. package/dist/ink/components/App.d.ts +70 -0
  170. package/dist/ink/components/AppContext.d.ts +11 -0
  171. package/dist/ink/components/Box.d.ts +49 -0
  172. package/dist/ink/components/Button.d.ts +36 -0
  173. package/dist/ink/components/ClockContext.d.ts +9 -0
  174. package/dist/ink/components/CursorDeclarationContext.d.ts +22 -0
  175. package/dist/ink/components/ErrorOverview.d.ts +5 -0
  176. package/dist/ink/components/Link.d.ts +7 -0
  177. package/dist/ink/components/Newline.d.ts +12 -0
  178. package/dist/ink/components/NoSelect.d.ts +19 -0
  179. package/dist/ink/components/RawAnsi.d.ts +16 -0
  180. package/dist/ink/components/ScrollBox.d.ts +78 -0
  181. package/dist/ink/components/Spacer.d.ts +5 -0
  182. package/dist/ink/components/StdinContext.d.ts +27 -0
  183. package/dist/ink/components/TerminalFocusContext.d.ts +10 -0
  184. package/dist/ink/components/TerminalSizeContext.d.ts +5 -0
  185. package/dist/ink/components/Text.d.ts +55 -0
  186. package/dist/ink/constants.d.ts +1 -0
  187. package/dist/ink/cursor.d.ts +8 -0
  188. package/dist/ink/devtools.d.ts +5 -0
  189. package/dist/ink/dom.d.ts +76 -0
  190. package/dist/ink/events/click-event.d.ts +31 -0
  191. package/dist/ink/events/dispatcher.d.ts +40 -0
  192. package/dist/ink/events/emitter.d.ts +5 -0
  193. package/dist/ink/events/event-handlers.d.ts +46 -0
  194. package/dist/ink/events/event.d.ts +5 -0
  195. package/dist/ink/events/focus-event.d.ts +13 -0
  196. package/dist/ink/events/input-event.d.ts +30 -0
  197. package/dist/ink/events/keyboard-event.d.ts +19 -0
  198. package/dist/ink/events/paste-event.d.ts +8 -0
  199. package/dist/ink/events/resize-event.d.ts +9 -0
  200. package/dist/ink/events/terminal-event.d.ts +54 -0
  201. package/dist/ink/events/terminal-focus-event.d.ts +13 -0
  202. package/dist/ink/focus.d.ts +43 -0
  203. package/dist/ink/frame.d.ts +94 -0
  204. package/dist/ink/get-max-width.d.ts +17 -0
  205. package/dist/ink/hit-test.d.ts +33 -0
  206. package/dist/ink/hooks/use-animation-frame.d.ts +26 -0
  207. package/dist/ink/hooks/use-app.d.ts +5 -0
  208. package/dist/ink/hooks/use-declared-cursor.d.ts +26 -0
  209. package/dist/ink/hooks/use-input.d.ts +37 -0
  210. package/dist/ink/hooks/use-interval.d.ts +18 -0
  211. package/dist/ink/hooks/use-search-highlight.d.ts +30 -0
  212. package/dist/ink/hooks/use-selection.d.ts +39 -0
  213. package/dist/ink/hooks/use-stdin.d.ts +5 -0
  214. package/dist/ink/hooks/use-tab-status.d.ts +13 -0
  215. package/dist/ink/hooks/use-terminal-focus.d.ts +10 -0
  216. package/dist/ink/hooks/use-terminal-title.d.ts +12 -0
  217. package/dist/ink/hooks/use-terminal-viewport.d.ts +29 -0
  218. package/dist/ink/index.d.ts +20 -0
  219. package/dist/ink/ink.d.ts +369 -0
  220. package/dist/ink/instances.d.ts +3 -0
  221. package/dist/ink/layout/engine.d.ts +2 -0
  222. package/dist/ink/layout/geometry.d.ts +30 -0
  223. package/dist/ink/layout/node.d.ts +125 -0
  224. package/dist/ink/layout/yoga.d.ts +56 -0
  225. package/dist/ink/line-width-cache.d.ts +1 -0
  226. package/dist/ink/log-update.d.ts +17 -0
  227. package/dist/ink/measure-element.d.ts +16 -0
  228. package/dist/ink/measure-text.d.ts +6 -0
  229. package/dist/ink/node-cache.d.ts +20 -0
  230. package/dist/ink/optimizer.d.ts +15 -0
  231. package/dist/ink/output.d.ts +119 -0
  232. package/dist/ink/parse-keypress.d.ts +111 -0
  233. package/dist/ink/reconciler.d.ts +11 -0
  234. package/dist/ink/render-border.d.ts +24 -0
  235. package/dist/ink/render-node-to-output.d.ts +45 -0
  236. package/dist/ink/render-to-screen.d.ts +46 -0
  237. package/dist/ink/renderer.d.ts +14 -0
  238. package/dist/ink/root.d.ts +74 -0
  239. package/dist/ink/screen.d.ts +269 -0
  240. package/dist/ink/searchHighlight.d.ts +20 -0
  241. package/dist/ink/selection.d.ts +229 -0
  242. package/dist/ink/squash-text-nodes.d.ts +22 -0
  243. package/dist/ink/stringWidth.d.ts +1 -0
  244. package/dist/ink/styles.d.ts +306 -0
  245. package/dist/ink/supports-hyperlinks.d.ts +13 -0
  246. package/dist/ink/tabstops.d.ts +1 -0
  247. package/dist/ink/terminal-focus-state.d.ts +6 -0
  248. package/dist/ink/terminal-querier.d.ts +129 -0
  249. package/dist/ink/terminal.d.ts +46 -0
  250. package/dist/ink/termio/ansi.d.ts +65 -0
  251. package/dist/ink/termio/csi.d.ts +165 -0
  252. package/dist/ink/termio/dec.d.ts +37 -0
  253. package/dist/ink/termio/esc.d.ts +12 -0
  254. package/dist/ink/termio/osc.d.ts +173 -0
  255. package/dist/ink/termio/parser.d.ts +35 -0
  256. package/dist/ink/termio/sgr.d.ts +8 -0
  257. package/dist/ink/termio/tokenize.d.ts +45 -0
  258. package/dist/ink/termio/types.d.ts +190 -0
  259. package/dist/ink/termio.d.ts +24 -0
  260. package/dist/ink/useTerminalNotification.d.ts +28 -0
  261. package/dist/ink/warn.d.ts +1 -0
  262. package/dist/ink/widest-line.d.ts +1 -0
  263. package/dist/ink/wrap-text.d.ts +2 -0
  264. package/dist/ink/wrapAnsi.d.ts +7 -0
  265. package/dist/llm/client-base.d.ts +22 -0
  266. package/dist/llm/client-factory.d.ts +10 -0
  267. package/dist/llm/model-pool.d.ts +60 -0
  268. package/dist/llm/providers/anthropic.d.ts +19 -0
  269. package/dist/llm/providers/openai.d.ts +19 -0
  270. package/dist/llm/types.d.ts +21 -0
  271. package/dist/loader-DXFSUB4R.cjs +91 -0
  272. package/dist/loader-J5UID6CV.js +91 -0
  273. package/dist/logging/logger.d.ts +19 -0
  274. package/dist/lsp/client.d.ts +41 -0
  275. package/dist/lsp/manager.d.ts +40 -0
  276. package/dist/lsp/servers.d.ts +16 -0
  277. package/dist/manager-ETWDOCHN.cjs +9 -0
  278. package/dist/manager-HGMQNEJB.cjs +11 -0
  279. package/dist/manager-HUAQOORS.js +9 -0
  280. package/dist/manager-VJIZ2CQC.js +11 -0
  281. package/dist/mcp-manager-G4G2QASE.cjs +8 -0
  282. package/dist/mcp-manager-OKXHHWYR.js +8 -0
  283. package/dist/memory-AP747G5H.js +7 -0
  284. package/dist/memory-BH3BYUN5.cjs +7 -0
  285. package/dist/native-ts/yoga-layout/enums.d.ts +117 -0
  286. package/dist/native-ts/yoga-layout/index.d.ts +270 -0
  287. package/dist/onboarding-6WEPV7C2.js +11 -0
  288. package/dist/onboarding-QM5DY2TU.cjs +11 -0
  289. package/dist/openai-5HQGBL4L.js +9 -0
  290. package/dist/openai-656VWUQW.cjs +9 -0
  291. package/dist/plugins/loader.d.ts +72 -0
  292. package/dist/plugins/types.d.ts +4 -0
  293. package/dist/preset/index.d.ts +60 -0
  294. package/dist/product/define.d.ts +60 -0
  295. package/dist/product/index.cjs +23 -0
  296. package/dist/product/index.d.ts +5 -0
  297. package/dist/product/index.js +23 -0
  298. package/dist/product/types.d.ts +116 -0
  299. package/dist/prompt/composer.d.ts +42 -0
  300. package/dist/prompt/instruction-scanner.d.ts +54 -0
  301. package/dist/prompt/section-cache.d.ts +15 -0
  302. package/dist/prompt/section-loader.d.ts +26 -0
  303. package/dist/protocol/client.d.ts +64 -0
  304. package/dist/protocol/index.d.ts +4 -0
  305. package/dist/protocol/server.d.ts +49 -0
  306. package/dist/protocol/transport.d.ts +36 -0
  307. package/dist/protocol/types.d.ts +150 -0
  308. package/dist/react-compiler-runtime-shim.d.ts +1 -0
  309. package/dist/remote/bridge.d.ts +37 -0
  310. package/dist/run/ArtifactTracker.d.ts +38 -0
  311. package/dist/run/CheckpointWriter.d.ts +53 -0
  312. package/dist/run/EngineRunner.d.ts +70 -0
  313. package/dist/run/Evaluator.d.ts +56 -0
  314. package/dist/run/FileRunStore.d.ts +39 -0
  315. package/dist/run/Heartbeat.d.ts +54 -0
  316. package/dist/run/RunApprovalBackend.d.ts +53 -0
  317. package/dist/run/RunLock.d.ts +40 -0
  318. package/dist/run/RunManager.d.ts +76 -0
  319. package/dist/run/RunQueue.d.ts +27 -0
  320. package/dist/run/RunStore.d.ts +25 -0
  321. package/dist/run/factory.d.ts +57 -0
  322. package/dist/run/index.cjs +50 -0
  323. package/dist/run/index.d.ts +17 -0
  324. package/dist/run/index.js +50 -0
  325. package/dist/run/types.d.ts +136 -0
  326. package/dist/services/analytics.d.ts +29 -0
  327. package/dist/services/auto-dream.d.ts +35 -0
  328. package/dist/services/compact.d.ts +56 -0
  329. package/dist/services/diagnostics.d.ts +41 -0
  330. package/dist/services/extract-memories.d.ts +27 -0
  331. package/dist/services/index.d.ts +11 -0
  332. package/dist/services/notifier.d.ts +25 -0
  333. package/dist/services/oauth.d.ts +27 -0
  334. package/dist/services/session-memory.d.ts +37 -0
  335. package/dist/session/file-history.d.ts +41 -0
  336. package/dist/session/memory.d.ts +45 -0
  337. package/dist/session/session-manager.d.ts +23 -0
  338. package/dist/session/transcript.d.ts +39 -0
  339. package/dist/session-manager-JIIBCFTC.js +8 -0
  340. package/dist/session-manager-UQKB564H.cjs +8 -0
  341. package/dist/settings/manager.d.ts +27 -0
  342. package/dist/settings/schema.d.ts +676 -0
  343. package/dist/skills/index.d.ts +7 -0
  344. package/dist/skills/matcher.d.ts +21 -0
  345. package/dist/skills/scanner.d.ts +30 -0
  346. package/dist/skills-63RBYQRX.js +13 -0
  347. package/dist/skills-V3BPLW3D.cjs +13 -0
  348. package/dist/token-counter-CHAXW5O7.cjs +13 -0
  349. package/dist/token-counter-DSOZGZ5Q.js +13 -0
  350. package/dist/tool-summary-5P2GKRA4.cjs +31 -0
  351. package/dist/tool-summary-J2ICNMWP.js +31 -0
  352. package/dist/tool-system/builtin/agent.d.ts +35 -0
  353. package/dist/tool-system/builtin/arena.d.ts +18 -0
  354. package/dist/tool-system/builtin/ask-user.d.ts +12 -0
  355. package/dist/tool-system/builtin/bash.d.ts +6 -0
  356. package/dist/tool-system/builtin/brief.d.ts +6 -0
  357. package/dist/tool-system/builtin/config.d.ts +6 -0
  358. package/dist/tool-system/builtin/cron.d.ts +10 -0
  359. package/dist/tool-system/builtin/edit.d.ts +6 -0
  360. package/dist/tool-system/builtin/file-cache.d.ts +11 -0
  361. package/dist/tool-system/builtin/glob.d.ts +6 -0
  362. package/dist/tool-system/builtin/grep.d.ts +6 -0
  363. package/dist/tool-system/builtin/index.d.ts +10 -0
  364. package/dist/tool-system/builtin/lsp.d.ts +6 -0
  365. package/dist/tool-system/builtin/mcp-tools.d.ts +10 -0
  366. package/dist/tool-system/builtin/notebook-edit.d.ts +6 -0
  367. package/dist/tool-system/builtin/plan.d.ts +18 -0
  368. package/dist/tool-system/builtin/powershell.d.ts +6 -0
  369. package/dist/tool-system/builtin/read.d.ts +6 -0
  370. package/dist/tool-system/builtin/remote-trigger.d.ts +6 -0
  371. package/dist/tool-system/builtin/repl.d.ts +6 -0
  372. package/dist/tool-system/builtin/send-message.d.ts +6 -0
  373. package/dist/tool-system/builtin/skill.d.ts +6 -0
  374. package/dist/tool-system/builtin/sleep.d.ts +6 -0
  375. package/dist/tool-system/builtin/task.d.ts +51 -0
  376. package/dist/tool-system/builtin/tool-search.d.ts +12 -0
  377. package/dist/tool-system/builtin/web-fetch.d.ts +6 -0
  378. package/dist/tool-system/builtin/web-search.d.ts +6 -0
  379. package/dist/tool-system/builtin/worktree.d.ts +10 -0
  380. package/dist/tool-system/builtin/write.d.ts +6 -0
  381. package/dist/tool-system/executor.d.ts +25 -0
  382. package/dist/tool-system/mcp-manager.d.ts +50 -0
  383. package/dist/tool-system/permission.d.ts +69 -0
  384. package/dist/tool-system/registry.d.ts +24 -0
  385. package/dist/tool-system/validation.d.ts +5 -0
  386. package/dist/types.d.ts +260 -0
  387. package/dist/ui/App.d.ts +14 -0
  388. package/dist/ui/components/AgentBlock.d.ts +32 -0
  389. package/dist/ui/components/BabyHand.d.ts +1 -0
  390. package/dist/ui/components/Banner.d.ts +8 -0
  391. package/dist/ui/components/CodeBlock.d.ts +7 -0
  392. package/dist/ui/components/CommandInput.d.ts +13 -0
  393. package/dist/ui/components/ContextUsageBar.d.ts +7 -0
  394. package/dist/ui/components/DiffView.d.ts +6 -0
  395. package/dist/ui/components/DogLogo.d.ts +1 -0
  396. package/dist/ui/components/FullscreenLayout.d.ts +51 -0
  397. package/dist/ui/components/KunHead.d.ts +1 -0
  398. package/dist/ui/components/KunLogo.d.ts +1 -0
  399. package/dist/ui/components/MessageContent.d.ts +22 -0
  400. package/dist/ui/components/PermissionDialog.d.ts +8 -0
  401. package/dist/ui/components/PermissionPrompt.d.ts +8 -0
  402. package/dist/ui/components/ScrollView.d.ts +34 -0
  403. package/dist/ui/components/Spinner.d.ts +8 -0
  404. package/dist/ui/components/SpinnerWithVerb.d.ts +13 -0
  405. package/dist/ui/components/StatusLine.d.ts +22 -0
  406. package/dist/ui/components/StructuredDiff.d.ts +8 -0
  407. package/dist/ui/components/TaskList.d.ts +6 -0
  408. package/dist/ui/components/TextInput.d.ts +9 -0
  409. package/dist/ui/components/ThemedBox.d.ts +19 -0
  410. package/dist/ui/components/ThemedText.d.ts +26 -0
  411. package/dist/ui/components/ToolCall.d.ts +21 -0
  412. package/dist/ui/components/VirtualMessageList.d.ts +24 -0
  413. package/dist/ui/hooks/useCostSummary.d.ts +1 -0
  414. package/dist/ui/index.d.ts +12 -0
  415. package/dist/ui/input-history.d.ts +61 -0
  416. package/dist/ui/store.d.ts +82 -0
  417. package/dist/ui/terminal-renderer.d.ts +45 -0
  418. package/dist/ui/theme.d.ts +36 -0
  419. package/dist/ui/vim-mode.d.ts +25 -0
  420. package/dist/updater-AVD4LKTQ.js +183 -0
  421. package/dist/updater-URVNPDPW.cjs +183 -0
  422. package/dist/utils/debug.d.ts +57 -0
  423. package/dist/utils/earlyInput.d.ts +43 -0
  424. package/dist/utils/env.d.ts +24 -0
  425. package/dist/utils/envUtils.d.ts +51 -0
  426. package/dist/utils/execFileNoThrow.d.ts +39 -0
  427. package/dist/utils/format.d.ts +44 -0
  428. package/dist/utils/fullscreen.d.ts +47 -0
  429. package/dist/utils/intl.d.ts +22 -0
  430. package/dist/utils/lockfile.d.ts +15 -0
  431. package/dist/utils/log.d.ts +56 -0
  432. package/dist/utils/semver.d.ts +5 -0
  433. package/dist/utils/sliceAnsi.d.ts +12 -0
  434. package/dist/utils/systemTheme.d.ts +40 -0
  435. package/dist/utils/theme.d.ts +91 -0
  436. package/dist/utils/toolDisplay.d.ts +31 -0
  437. package/dist/utils/truncate.d.ts +40 -0
  438. package/dist/voice/index.d.ts +35 -0
  439. package/dist/voice-KTZ7PAGO.js +80 -0
  440. package/dist/voice-KZE25GKB.cjs +80 -0
  441. package/package.json +130 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * First-run onboarding — interactive API key setup with arrow-key navigation.
3
+ *
4
+ * Features:
5
+ * - Arrow-key (↑/↓) selection for providers and models
6
+ * - ESC to go back to previous step
7
+ * - Multi-provider configuration for Arena
8
+ * - API key validation before saving
9
+ */
10
+ interface OnboardingResult {
11
+ provider: string;
12
+ model: string;
13
+ apiKey: string;
14
+ baseUrl: string;
15
+ }
16
+ export declare function hasApiKey(): boolean;
17
+ /**
18
+ * Run the full onboarding wizard. Supports ESC to go back at every step.
19
+ */
20
+ export declare function runOnboarding(): Promise<OnboardingResult>;
21
+ /**
22
+ * Re-run onboarding from REPL (/login command).
23
+ * Clears existing config first.
24
+ */
25
+ export declare function reconfigure(): Promise<OnboardingResult>;
26
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Output renderers for different formats.
3
+ */
4
+ import type { StreamEvent, TerminalReason } from "../../types.js";
5
+ export type OutputFormat = "text" | "json" | "jsonl" | "stream-json";
6
+ export interface OutputRenderer {
7
+ onEvent(event: StreamEvent): void;
8
+ onComplete(text: string, reason: TerminalReason, meta: Record<string, unknown>): void;
9
+ }
10
+ export declare class TextRenderer implements OutputRenderer {
11
+ private activeAgents;
12
+ onEvent(event: StreamEvent): void;
13
+ onComplete(_text: string, reason: TerminalReason): void;
14
+ }
15
+ export declare class JsonRenderer implements OutputRenderer {
16
+ private text;
17
+ onEvent(event: StreamEvent): void;
18
+ onComplete(text: string, reason: TerminalReason, meta: Record<string, unknown>): void;
19
+ }
20
+ export declare class JsonlRenderer implements OutputRenderer {
21
+ onEvent(event: StreamEvent): void;
22
+ onComplete(text: string, reason: TerminalReason, meta: Record<string, unknown>): void;
23
+ }
24
+ export declare class StreamJsonRenderer implements OutputRenderer {
25
+ onEvent(event: StreamEvent): void;
26
+ onComplete(text: string, reason: TerminalReason, meta: Record<string, unknown>): void;
27
+ }
28
+ export declare function createRenderer(format: OutputFormat): OutputRenderer;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Terminal UI utilities — spinners, markdown rendering, styled output.
3
+ */
4
+ import { type Ora } from "ora";
5
+ /**
6
+ * Render markdown text to styled terminal output.
7
+ * Falls back to raw text if rendering fails.
8
+ */
9
+ export declare function renderMarkdown(text: string): string;
10
+ /**
11
+ * Highlight a code block with syntax coloring.
12
+ */
13
+ export declare function highlightCode(code: string, lang?: string): string;
14
+ export interface SpinnerHandle {
15
+ update(text: string): void;
16
+ succeed(text: string): void;
17
+ fail(text: string): void;
18
+ stop(): void;
19
+ instance: Ora;
20
+ }
21
+ /**
22
+ * Create a spinner for long-running operations.
23
+ */
24
+ export declare function createSpinner(text: string): SpinnerHandle;
25
+ /**
26
+ * Print a styled banner box.
27
+ */
28
+ export declare function printBanner(lines: {
29
+ label: string;
30
+ value: string;
31
+ }[]): void;
32
+ /**
33
+ * Format a tool call start line.
34
+ */
35
+ export declare function formatToolStart(toolName: string, args: Record<string, unknown>): string;
36
+ /**
37
+ * Format a tool result line.
38
+ */
39
+ export declare function formatToolResult(toolName: string, result?: string, error?: string): string;
40
+ export interface TaskDisplayInfo {
41
+ id: string;
42
+ subject: string;
43
+ activeForm?: string;
44
+ status: "pending" | "in_progress" | "completed" | "stopped";
45
+ }
46
+ /**
47
+ * Render the task list as a compact terminal block.
48
+ * Returns the formatted string (caller handles printing).
49
+ */
50
+ export declare function renderTaskList(tasks: TaskDisplayInfo[]): string;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Auto-update checker — non-blocking check for newer versions on npm.
3
+ */
4
+ /**
5
+ * Check if a newer version is available (non-blocking).
6
+ * Call this on startup and read the result later.
7
+ */
8
+ export declare function checkForUpdate(packageName?: string): void;
9
+ export declare function getUpdateAvailable(): string | undefined;
10
+ export declare function getCurrentVersion(): string;
@@ -0,0 +1,32 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+ var _chunkLRAY5IYCcjs = require('./chunk-LRAY5IYC.cjs');
16
+ require('./chunk-HD7MT5XU.cjs');
17
+ require('./chunk-IJSHQGMP.cjs');
18
+ _chunkLRAY5IYCcjs.init_compaction.call(void 0, );
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+ exports.adjustIndexToPreserveAPIInvariants = _chunkLRAY5IYCcjs.adjustIndexToPreserveAPIInvariants; exports.applySummaryCompaction = _chunkLRAY5IYCcjs.applySummaryCompaction; exports.applyToolResultBudget = _chunkLRAY5IYCcjs.applyToolResultBudget; exports.buildSummarizationPrompt = _chunkLRAY5IYCcjs.buildSummarizationPrompt; exports.dropOldestRounds = _chunkLRAY5IYCcjs.dropOldestRounds; exports.estimateTokens = _chunkLRAY5IYCcjs.estimateTokens; exports.extractReferencedFilePaths = _chunkLRAY5IYCcjs.extractReferencedFilePaths; exports.groupMessagesByApiRound = _chunkLRAY5IYCcjs.groupMessagesByApiRound; exports.microcompact = _chunkLRAY5IYCcjs.microcompact; exports.snipCompact = _chunkLRAY5IYCcjs.snipCompact; exports.truncateToolResult = _chunkLRAY5IYCcjs.truncateToolResult; exports.windowCompact = _chunkLRAY5IYCcjs.windowCompact;
@@ -0,0 +1,32 @@
1
+ import {
2
+ adjustIndexToPreserveAPIInvariants,
3
+ applySummaryCompaction,
4
+ applyToolResultBudget,
5
+ buildSummarizationPrompt,
6
+ dropOldestRounds,
7
+ estimateTokens,
8
+ extractReferencedFilePaths,
9
+ groupMessagesByApiRound,
10
+ init_compaction,
11
+ microcompact,
12
+ snipCompact,
13
+ truncateToolResult,
14
+ windowCompact
15
+ } from "./chunk-J5XW6UYL.js";
16
+ import "./chunk-4RRUP4MM.js";
17
+ import "./chunk-DI7RDLOS.js";
18
+ init_compaction();
19
+ export {
20
+ adjustIndexToPreserveAPIInvariants,
21
+ applySummaryCompaction,
22
+ applyToolResultBudget,
23
+ buildSummarizationPrompt,
24
+ dropOldestRounds,
25
+ estimateTokens,
26
+ extractReferencedFilePaths,
27
+ groupMessagesByApiRound,
28
+ microcompact,
29
+ snipCompact,
30
+ truncateToolResult,
31
+ windowCompact
32
+ };
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Context compaction strategies.
3
+ *
4
+ * Tier 0: truncateToolResult — truncate oversized individual results
5
+ * Tier 1: microcompact — zero-cost, clears old tool_result content
6
+ * Tier 2: LLM summary — generates summary via model call (async)
7
+ * Tier 3: window compact — keeps first + last N messages (sync fallback)
8
+ * Emergency: dropOldestRounds — progressive API-round-based truncation
9
+ *
10
+ * All slicing functions use adjustIndexToPreserveAPIInvariants()
11
+ * to prevent splitting tool_use / tool_result pairs.
12
+ */
13
+ import type { Message } from "../types.js";
14
+ /**
15
+ * Estimate token count from messages.
16
+ * Uses per-block-type estimation with 33% overhead padding.
17
+ */
18
+ export declare function estimateTokens(messages: Message[]): number;
19
+ /**
20
+ * Expand a slice start-index backwards so that every tool_result in the
21
+ * kept range has its corresponding tool_use in the kept range too.
22
+ *
23
+ * Without this, windowCompact / applySummaryCompaction can produce
24
+ * messages where tool_result references a tool_use_id that was
25
+ * compacted away, causing an API validation error.
26
+ */
27
+ export declare function adjustIndexToPreserveAPIInvariants(messages: Message[], startIndex: number): number;
28
+ /**
29
+ * Snip strategy: keep first N + last M messages, replace middle with a marker.
30
+ * Less aggressive than windowCompact — preserves initial context AND recent history.
31
+ * Uses adjustIndexToPreserveAPIInvariants on both boundaries.
32
+ */
33
+ export declare function snipCompact(messages: Message[], keepFirstN?: number, keepLastM?: number): Message[];
34
+ /**
35
+ * Window strategy: keep first message + last N messages.
36
+ * Uses adjustIndexToPreserveAPIInvariants to avoid splitting tool pairs.
37
+ */
38
+ export declare function windowCompact(messages: Message[], keepLastN: number): Message[];
39
+ /**
40
+ * Remove old tool_result content (microcompact).
41
+ * Replaces tool_result content with "[Old tool result cleared]" for messages
42
+ * older than keepRecentN tool rounds.
43
+ */
44
+ export declare function microcompact(messages: Message[], keepRecentN?: number): Message[];
45
+ /**
46
+ * Apply aggregate per-message tool result budget.
47
+ * When total tool_result content in a single message exceeds maxTotalChars,
48
+ * truncates the largest results first with a notice.
49
+ */
50
+ export declare function applyToolResultBudget(messages: Message[], maxTotalChars?: number): Message[];
51
+ /**
52
+ * Truncate a single tool result if it exceeds the character limit.
53
+ * Returns the truncated string with a notice.
54
+ */
55
+ export declare function truncateToolResult(result: string, maxChars?: number): string;
56
+ /**
57
+ * Build a structured summarization prompt from messages to be compacted.
58
+ * Produces a 9-section summary preserving key details.
59
+ */
60
+ export declare function buildSummarizationPrompt(messagesToSummarize: Message[]): string;
61
+ /**
62
+ * Apply LLM-generated summary compaction (hybrid mode).
63
+ *
64
+ * Instead of eagerly restoring file contents (wastes tokens), gives the
65
+ * model a summary + the transcript path so it can Read on demand.
66
+ * Also lists recently-referenced files so the model knows what to re-read.
67
+ */
68
+ export declare function applySummaryCompaction(messages: Message[], summary: string, keepRecentN: number, transcriptPath?: string): Message[];
69
+ /**
70
+ * Group messages by API round-trip boundaries.
71
+ * Each group represents one complete assistant response + its tool results.
72
+ */
73
+ export declare function groupMessagesByApiRound(messages: Message[]): Message[][];
74
+ /**
75
+ * Drop the oldest API rounds from messages, preserving tool pairs.
76
+ * Used for progressive prompt-too-long recovery.
77
+ */
78
+ export declare function dropOldestRounds(messages: Message[], roundsToDrop: number): Message[];
79
+ /**
80
+ * Extract file paths that were referenced (Read/Edit/Write) in compacted
81
+ * messages. Returns paths only — the model uses Read tool on demand.
82
+ */
83
+ export declare function extractReferencedFilePaths(messages: Message[]): string[];
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Context manager — three-tier context management.
3
+ *
4
+ * Tier 1: microcompact (sync, zero-cost) — clear old tool_result content
5
+ * Tier 2: LLM summary (async) — generate summary of older messages via model call
6
+ * Tier 3: window compact (sync, emergency) — aggressive truncation fallback
7
+ */
8
+ import type { Message } from "../types.js";
9
+ export interface ContextManagerConfig {
10
+ maxTokens: number;
11
+ compactAtRatio: number;
12
+ summarizeAtRatio: number;
13
+ maxToolResultChars: number;
14
+ }
15
+ /**
16
+ * Async function type for LLM summarization calls.
17
+ * Injected by the Engine so the ContextManager doesn't depend on LLM directly.
18
+ */
19
+ export type SummarizeFn = (prompt: string) => Promise<string>;
20
+ export declare class ContextManager {
21
+ private config;
22
+ private toolCallHashes;
23
+ private summarizeFn;
24
+ private consecutiveSummaryFailures;
25
+ private lastSummary;
26
+ /** Last known actual token count from API usage data. */
27
+ private lastActualTokens;
28
+ /** Message count at the time lastActualTokens was recorded. */
29
+ private lastActualAtMessageCount;
30
+ /** Path to session transcript — passed to summary compaction for on-demand access. */
31
+ private transcriptPath;
32
+ constructor(config?: Partial<ContextManagerConfig>);
33
+ /**
34
+ * Record actual token usage from API response.
35
+ * Used for hybrid estimation: actual + estimate for new messages.
36
+ */
37
+ recordActualUsage(inputTokens: number, messageCount: number): void;
38
+ /**
39
+ * Best-effort token estimate: uses actual API usage as base if available,
40
+ * plus estimation for messages added since the last API call.
41
+ */
42
+ private estimateTokensHybrid;
43
+ /**
44
+ * Set the summarize function (injected by Engine).
45
+ */
46
+ setSummarizeFn(fn: SummarizeFn): void;
47
+ /**
48
+ * Set the transcript path so compaction can reference it.
49
+ */
50
+ setTranscriptPath(path: string): void;
51
+ /**
52
+ * Apply progressive context management (sync path).
53
+ * For Tier 2 (LLM summary), call manageAsync instead.
54
+ */
55
+ manage(messages: Message[]): Message[];
56
+ /**
57
+ * Async context management — attempts LLM summarization before falling back.
58
+ * Call this when you have access to the LLM (between turns).
59
+ */
60
+ manageAsync(messages: Message[]): Promise<Message[]>;
61
+ /**
62
+ * Truncate oversized tool results in messages.
63
+ */
64
+ private truncateToolResults;
65
+ /**
66
+ * Reactive compaction check — call during streaming to detect if
67
+ * token usage is approaching the limit mid-turn.
68
+ * Returns true if emergency compaction should be triggered.
69
+ */
70
+ shouldReactiveCompact(messages: Message[], currentResponseTokens: number): boolean;
71
+ /**
72
+ * Check if context is approaching limits.
73
+ */
74
+ checkLimits(messages: Message[]): {
75
+ tokens: number;
76
+ ratio: number;
77
+ needsCompact: boolean;
78
+ needsEmergency: boolean;
79
+ };
80
+ /**
81
+ * Deduplicate tool calls by hashing arguments.
82
+ */
83
+ deduplicateToolCalls(calls: Array<{
84
+ toolName: string;
85
+ args: Record<string, unknown>;
86
+ }>): {
87
+ toExecute: typeof calls;
88
+ cached: Array<{
89
+ toolName: string;
90
+ args: Record<string, unknown>;
91
+ result: string;
92
+ }>;
93
+ };
94
+ /**
95
+ * Record a tool call result for dedup tracking.
96
+ */
97
+ recordToolResult(toolName: string, args: Record<string, unknown>, result: string): void;
98
+ private hashCall;
99
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Token counter — more accurate token estimation.
3
+ *
4
+ * Uses a character-based heuristic tuned per language/content type,
5
+ * with cache-aware accounting for prompt caching.
6
+ */
7
+ import type { Message } from "../types.js";
8
+ /**
9
+ * Estimate token count for a string, detecting content type.
10
+ */
11
+ export declare function estimateStringTokens(text: string): number;
12
+ /**
13
+ * Estimate token count for a message array.
14
+ */
15
+ export declare function estimateMessagesTokens(messages: Message[]): number;
16
+ /**
17
+ * Context window usage report.
18
+ */
19
+ export interface ContextUsage {
20
+ usedTokens: number;
21
+ maxTokens: number;
22
+ usagePercent: number;
23
+ systemPromptTokens: number;
24
+ messagesTokens: number;
25
+ headroom: number;
26
+ }
27
+ export declare function calculateContextUsage(messages: Message[], systemPrompt: string, maxTokens: number): ContextUsage;
@@ -0,0 +1,7 @@
1
+ import {
2
+ agentCoordinator
3
+ } from "./chunk-C7JBCO5V.js";
4
+ import "./chunk-DI7RDLOS.js";
5
+ export {
6
+ agentCoordinator
7
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkXHC2JMECcjs = require('./chunk-XHC2JMEC.cjs');
4
+ require('./chunk-IJSHQGMP.cjs');
5
+
6
+
7
+ exports.agentCoordinator = _chunkXHC2JMECcjs.agentCoordinator;
@@ -0,0 +1,9 @@
1
+ import {
2
+ CostTracker,
3
+ costTracker
4
+ } from "./chunk-ZRSSGYA5.js";
5
+ import "./chunk-DI7RDLOS.js";
6
+ export {
7
+ CostTracker,
8
+ costTracker
9
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunk5LHVI777cjs = require('./chunk-5LHVI777.cjs');
5
+ require('./chunk-IJSHQGMP.cjs');
6
+
7
+
8
+
9
+ exports.CostTracker = _chunk5LHVI777cjs.CostTracker; exports.costTracker = _chunk5LHVI777cjs.costTracker;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Cron scheduler — schedule and manage recurring agent tasks.
3
+ *
4
+ * Supports simple cron-like intervals. Each job runs the Engine
5
+ * with a predefined prompt on schedule.
6
+ */
7
+ export interface CronJob {
8
+ id: string;
9
+ name: string;
10
+ schedule: string;
11
+ prompt: string;
12
+ enabled: boolean;
13
+ lastRun?: number;
14
+ nextRun?: number;
15
+ runCount: number;
16
+ createdAt: number;
17
+ }
18
+ declare class CronScheduler {
19
+ private jobs;
20
+ private timers;
21
+ private nextId;
22
+ private onExecute?;
23
+ setExecutor(fn: (job: CronJob) => Promise<void>): void;
24
+ create(name: string, schedule: string, prompt: string): CronJob;
25
+ delete(id: string): boolean;
26
+ list(): CronJob[];
27
+ get(id: string): CronJob | undefined;
28
+ pause(id: string): boolean;
29
+ resume(id: string): boolean;
30
+ stopAll(): void;
31
+ private startTimer;
32
+ }
33
+ export declare const cronScheduler: CronScheduler;
34
+ export {};
@@ -0,0 +1,6 @@
1
+ import {
2
+ init_esm_shims
3
+ } from "./chunk-DI7RDLOS.js";
4
+
5
+ // src/ink/devtools.ts
6
+ init_esm_shims();
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var _chunkIJSHQGMPcjs = require('./chunk-IJSHQGMP.cjs');
4
+
5
+ // src/ink/devtools.ts
6
+ _chunkIJSHQGMPcjs.init_cjs_shims.call(void 0, );
@@ -0,0 +1,22 @@
1
+ /**
2
+ * CostStateStore — an opaque snapshot/restore hook that Engine uses to
3
+ * persist session-level cost state across `run({ sessionId })` calls.
4
+ *
5
+ * Engine itself doesn't compute prices or format summaries; it just hands
6
+ * the state blob to whatever store was injected. The CLI's `costTracker`
7
+ * is one concrete implementation; a SaaS backend might implement this
8
+ * against a database instead.
9
+ *
10
+ * Default: no store is injected, and cost state is not persisted. Engine
11
+ * continues to report per-run token usage via `EngineResult.usage` and
12
+ * `LLMClientBase.getUsage()` — this hook is only for the
13
+ * "resume-and-keep-counting" scenario.
14
+ */
15
+ /** Arbitrary serializable snapshot — opaque to Engine. */
16
+ export type CostStateSnapshot = unknown;
17
+ export interface CostStateStore {
18
+ /** Serialize current cost state for persistence. */
19
+ serialize(): CostStateSnapshot;
20
+ /** Restore previously-serialized cost state. */
21
+ restore(state: CostStateSnapshot): void;
22
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Engine — the main facade that wires all components together.
3
+ */
4
+ import type { LLMConfig, StreamCallback, TerminalReason, TokenUsage } from "../types.js";
5
+ import { ToolRegistry } from "../tool-system/registry.js";
6
+ import { type ApprovalBackend } from "../tool-system/permission.js";
7
+ import { HookRegistry } from "../hooks/registry.js";
8
+ import { SessionManager } from "../session/session-manager.js";
9
+ import type { CostStateStore } from "./cost-store.js";
10
+ import { type AskUserFn } from "../tool-system/builtin/ask-user.js";
11
+ import { type AgentPresetName } from "../preset/index.js";
12
+ import { ModelPool, type ModelEntry } from "../llm/model-pool.js";
13
+ export interface EngineConfig {
14
+ llm: LLMConfig;
15
+ cwd?: string;
16
+ maxTurns?: number;
17
+ maxToolCallsPerTurn?: number;
18
+ permissionMode?: "default" | "acceptEdits" | "dontAsk" | "bypassPermissions" | "auto" | "plan";
19
+ preset?: AgentPresetName;
20
+ enabledBuiltinTools?: string[];
21
+ disabledBuiltinTools?: string[];
22
+ customSystemPrompt?: string;
23
+ appendSystemPrompt?: string;
24
+ sessionStorageDir?: string;
25
+ maxContextTokens?: number;
26
+ approvalBackend?: ApprovalBackend;
27
+ askUser?: AskUserFn;
28
+ mcpServers?: Record<string, import("../types.js").MCPServerConfig>;
29
+ /**
30
+ * Optional opaque store for per-session cost/usage state. When provided,
31
+ * Engine calls `restore()` on session resume and `serialize()` at the end
32
+ * of each `run()` and stores the blob on the session. Without this the
33
+ * Engine doesn't persist cost state — it's a UI concern.
34
+ */
35
+ costStore?: CostStateStore;
36
+ }
37
+ export interface EngineResult {
38
+ text: string;
39
+ reason: TerminalReason;
40
+ sessionId: string;
41
+ turnCount: number;
42
+ usage: TokenUsage;
43
+ }
44
+ export declare class Engine {
45
+ private config;
46
+ private readonly preset;
47
+ private toolRegistry;
48
+ private hooks;
49
+ private sessionManager;
50
+ private mcpManager;
51
+ private modelPool;
52
+ constructor(config: EngineConfig);
53
+ /**
54
+ * Register a custom tool (from product adapter) into the tool registry.
55
+ * Must be called before run().
56
+ */
57
+ registerCustomTool(definition: import("../types.js").RegisteredTool, executor: (args: Record<string, unknown>) => Promise<string>): void;
58
+ /**
59
+ * Run a task from start to finish.
60
+ */
61
+ run(task: string, options?: {
62
+ onStream?: StreamCallback;
63
+ signal?: AbortSignal;
64
+ sessionId?: string;
65
+ }): Promise<EngineResult>;
66
+ getToolRegistry(): ToolRegistry;
67
+ /**
68
+ * Switch the active model by pool key. Takes effect on the next run() call.
69
+ * Returns the new model entry.
70
+ */
71
+ switchModel(key: string): ModelEntry;
72
+ /** Get the model pool. */
73
+ getModelPool(): ModelPool;
74
+ /** Get the current model name (full path). */
75
+ getCurrentModel(): string;
76
+ getHookRegistry(): HookRegistry;
77
+ getSessionManager(): SessionManager;
78
+ getConfig(): EngineConfig;
79
+ /**
80
+ * Inject context into a session's transcript without triggering a LLM turn.
81
+ * The injected content appears as an assistant message so the LLM can see it
82
+ * in subsequent conversations. The transcript auto-flushes to disk.
83
+ */
84
+ injectContext(sessionId: string, content: string): void;
85
+ /**
86
+ * Force context compaction on the current session.
87
+ * Returns token stats before/after.
88
+ */
89
+ forceCompact(): {
90
+ before: number;
91
+ after: number;
92
+ strategy: string;
93
+ };
94
+ /**
95
+ * Update a config setting at runtime.
96
+ */
97
+ updateConfig(key: string, value: unknown): void;
98
+ /** Track last context manager and messages for /compact support. */
99
+ private lastContextManager;
100
+ private lastMessages;
101
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Model call facade — wraps LLM client with transcript integration.
3
+ */
4
+ import type { LLMClientBase } from "../llm/client-base.js";
5
+ import type { Message, ToolDefinition, LLMResponse, StreamCallback } from "../types.js";
6
+ import { Transcript } from "../session/transcript.js";
7
+ export declare class ModelFacade {
8
+ private readonly client;
9
+ private readonly transcript;
10
+ constructor(client: LLMClientBase, transcript: Transcript);
11
+ call(systemPrompt: string, messages: Message[], tools: ToolDefinition[], onStream?: StreamCallback, signal?: AbortSignal): Promise<LLMResponse>;
12
+ /**
13
+ * Call without streaming — used as fallback when streaming fails.
14
+ */
15
+ callWithoutStreaming(systemPrompt: string, messages: Message[], tools: ToolDefinition[], signal?: AbortSignal): Promise<LLMResponse>;
16
+ /** Record API timing and token usage to bootstrap state. */
17
+ private recordUsage;
18
+ /** Optional summarize function for tool use summaries. */
19
+ summarize?: (systemPrompt: string, userMessage: string) => Promise<string>;
20
+ /** Get cumulative output tokens (for token budget). */
21
+ getOutputTokens?(): number;
22
+ private recordResponse;
23
+ getUsage(): import("../llm/types.js").LLMUsageTracker;
24
+ }