@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,78 @@
1
+ import React, { type PropsWithChildren, type Ref } from 'react';
2
+ import type { Except } from 'type-fest';
3
+ import type { DOMElement } from '../dom.js';
4
+ import type { Styles } from '../styles.js';
5
+ import '../global.d.ts';
6
+ export type ScrollBoxHandle = {
7
+ scrollTo: (y: number) => void;
8
+ scrollBy: (dy: number) => void;
9
+ /**
10
+ * Scroll so `el`'s top is at the viewport top (plus `offset`). Unlike
11
+ * scrollTo which bakes a number that's stale by the time the throttled
12
+ * render fires, this defers the position read to render time —
13
+ * render-node-to-output reads `el.yogaNode.getComputedTop()` in the
14
+ * SAME Yoga pass that computes scrollHeight. Deterministic. One-shot.
15
+ */
16
+ scrollToElement: (el: DOMElement, offset?: number) => void;
17
+ scrollToBottom: () => void;
18
+ getScrollTop: () => number;
19
+ getPendingDelta: () => number;
20
+ getScrollHeight: () => number;
21
+ /**
22
+ * Like getScrollHeight, but reads Yoga directly instead of the cached
23
+ * value written by render-node-to-output (throttled, up to 16ms stale).
24
+ * Use when you need a fresh value in useLayoutEffect after a React commit
25
+ * that grew content. Slightly more expensive (native Yoga call).
26
+ */
27
+ getFreshScrollHeight: () => number;
28
+ getViewportHeight: () => number;
29
+ /**
30
+ * Absolute screen-buffer row of the first visible content line (inside
31
+ * padding). Used for drag-to-scroll edge detection.
32
+ */
33
+ getViewportTop: () => number;
34
+ /**
35
+ * True when scroll is pinned to the bottom. Set by scrollToBottom, the
36
+ * initial stickyScroll attribute, and by the renderer when positional
37
+ * follow fires (scrollTop at prevMax, content grows). Cleared by
38
+ * scrollTo/scrollBy. Stable signal for "at bottom" that doesn't depend on
39
+ * layout values (unlike scrollTop+viewportH >= scrollHeight).
40
+ */
41
+ isSticky: () => boolean;
42
+ /**
43
+ * Subscribe to imperative scroll changes (scrollTo/scrollBy/scrollToBottom).
44
+ * Does NOT fire for stickyScroll updates done by the Ink renderer — those
45
+ * happen during Ink's render phase after React has committed. Callers that
46
+ * care about the sticky case should treat "at bottom" as a fallback.
47
+ */
48
+ subscribe: (listener: () => void) => () => void;
49
+ /**
50
+ * Set the render-time scrollTop clamp to the currently-mounted children's
51
+ * coverage span. Called by useVirtualScroll after computing its range;
52
+ * render-node-to-output clamps scrollTop to [min, max] so burst scrollTo
53
+ * calls that race past React's async re-render show the edge of mounted
54
+ * content instead of blank spacer. Pass undefined to disable (sticky,
55
+ * cold start).
56
+ */
57
+ setClampBounds: (min: number | undefined, max: number | undefined) => void;
58
+ };
59
+ export type ScrollBoxProps = Except<Styles, 'textWrap' | 'overflow' | 'overflowX' | 'overflowY'> & {
60
+ ref?: Ref<ScrollBoxHandle>;
61
+ /**
62
+ * When true, automatically pins scroll position to the bottom when content
63
+ * grows. Unset manually via scrollTo/scrollBy to break the stickiness.
64
+ */
65
+ stickyScroll?: boolean;
66
+ };
67
+ /**
68
+ * A Box with `overflow: scroll` and an imperative scroll API.
69
+ *
70
+ * Children are laid out at their full Yoga-computed height inside a
71
+ * constrained container. At render time, only children intersecting the
72
+ * visible window (scrollTop..scrollTop+height) are rendered (viewport
73
+ * culling). Content is translated by -scrollTop and clipped to the box bounds.
74
+ *
75
+ * Works best inside a fullscreen (constrained-height root) Ink tree.
76
+ */
77
+ declare function ScrollBox({ children, ref, stickyScroll, ...style }: PropsWithChildren<ScrollBoxProps>): React.ReactNode;
78
+ export default ScrollBox;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * A flexible space that expands along the major axis of its containing layout.
3
+ * It's useful as a shortcut for filling all the available spaces between elements.
4
+ */
5
+ export default function Spacer(): any;
@@ -0,0 +1,27 @@
1
+ import { EventEmitter } from '../events/emitter.js';
2
+ import type { TerminalQuerier } from '../terminal-querier.js';
3
+ export type Props = {
4
+ /**
5
+ * Stdin stream passed to `render()` in `options.stdin` or `process.stdin` by default. Useful if your app needs to handle user input.
6
+ */
7
+ readonly stdin: NodeJS.ReadStream;
8
+ /**
9
+ * Ink exposes this function via own `<StdinContext>` to be able to handle Ctrl+C, that's why you should use Ink's `setRawMode` instead of `process.stdin.setRawMode`.
10
+ * If the `stdin` stream passed to Ink does not support setRawMode, this function does nothing.
11
+ */
12
+ readonly setRawMode: (value: boolean) => void;
13
+ /**
14
+ * A boolean flag determining if the current `stdin` supports `setRawMode`. A component using `setRawMode` might want to use `isRawModeSupported` to nicely fall back in environments where raw mode is not supported.
15
+ */
16
+ readonly isRawModeSupported: boolean;
17
+ readonly internal_exitOnCtrlC: boolean;
18
+ readonly internal_eventEmitter: EventEmitter;
19
+ /** Query the terminal and await responses (DECRQM, OSC 11, etc.).
20
+ * Null only in the never-reached default context value. */
21
+ readonly internal_querier: TerminalQuerier | null;
22
+ };
23
+ /**
24
+ * `StdinContext` is a React context, which exposes input stream.
25
+ */
26
+ declare const StdinContext: import("react").Context<Props>;
27
+ export default StdinContext;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { type TerminalFocusState } from '../terminal-focus-state.js';
3
+ export type { TerminalFocusState };
4
+ export type TerminalFocusContextProps = {
5
+ readonly isTerminalFocused: boolean;
6
+ readonly terminalFocusState: TerminalFocusState;
7
+ };
8
+ declare const TerminalFocusContext: React.Context<TerminalFocusContextProps>;
9
+ export declare function TerminalFocusProvider(t0: any): any;
10
+ export default TerminalFocusContext;
@@ -0,0 +1,5 @@
1
+ export type TerminalSize = {
2
+ columns: number;
3
+ rows: number;
4
+ };
5
+ export declare const TerminalSizeContext: import("react").Context<TerminalSize | null>;
@@ -0,0 +1,55 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { Color, Styles } from '../styles.js';
3
+ type BaseProps = {
4
+ /**
5
+ * Change text color. Accepts a raw color value (rgb, hex, ansi).
6
+ */
7
+ readonly color?: Color;
8
+ /**
9
+ * Same as `color`, but for background.
10
+ */
11
+ readonly backgroundColor?: Color;
12
+ /**
13
+ * Make the text italic.
14
+ */
15
+ readonly italic?: boolean;
16
+ /**
17
+ * Make the text underlined.
18
+ */
19
+ readonly underline?: boolean;
20
+ /**
21
+ * Make the text crossed with a line.
22
+ */
23
+ readonly strikethrough?: boolean;
24
+ /**
25
+ * Inverse background and foreground colors.
26
+ */
27
+ readonly inverse?: boolean;
28
+ /**
29
+ * This property tells Ink to wrap or truncate text if its width is larger than container.
30
+ * If `wrap` is passed (by default), Ink will wrap text and split it into multiple lines.
31
+ * If `truncate-*` is passed, Ink will truncate text instead, which will result in one line of text with the rest cut off.
32
+ */
33
+ readonly wrap?: Styles['textWrap'];
34
+ readonly children?: ReactNode;
35
+ };
36
+ /**
37
+ * Bold and dim are mutually exclusive in terminals.
38
+ * This type ensures you can use one or the other, but not both.
39
+ */
40
+ type WeightProps = {
41
+ bold?: never;
42
+ dim?: never;
43
+ } | {
44
+ bold: boolean;
45
+ dim?: never;
46
+ } | {
47
+ dim: boolean;
48
+ bold?: never;
49
+ };
50
+ export type Props = BaseProps & WeightProps;
51
+ /**
52
+ * This component can display text, and change its style to make it colorful, bold, underline, italic or strikethrough.
53
+ */
54
+ export default function Text(t0: any): any;
55
+ export {};
@@ -0,0 +1 @@
1
+ export declare const FRAME_INTERVAL_MS = 16;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Cursor type — represents terminal cursor position and visibility.
3
+ */
4
+ export type Cursor = {
5
+ x: number;
6
+ y: number;
7
+ visible: boolean;
8
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Devtools connection stub — conditionally imported by the reconciler
3
+ * when NODE_ENV === 'development'. No-op in production.
4
+ */
5
+ export {};
@@ -0,0 +1,76 @@
1
+ import type { FocusManager } from './focus.js';
2
+ import type { LayoutNode } from './layout/node.js';
3
+ import type { Styles, TextStyles } from './styles.js';
4
+ type InkNode = {
5
+ parentNode: DOMElement | undefined;
6
+ yogaNode?: LayoutNode;
7
+ style: Styles;
8
+ };
9
+ export type TextName = '#text';
10
+ export type ElementNames = 'ink-root' | 'ink-box' | 'ink-text' | 'ink-virtual-text' | 'ink-link' | 'ink-progress' | 'ink-raw-ansi';
11
+ export type NodeNames = ElementNames | TextName;
12
+ export type DOMElement = {
13
+ nodeName: ElementNames;
14
+ attributes: Record<string, DOMNodeAttribute>;
15
+ childNodes: DOMNode[];
16
+ textStyles?: TextStyles;
17
+ onComputeLayout?: () => void;
18
+ onRender?: () => void;
19
+ onImmediateRender?: () => void;
20
+ hasRenderedContent?: boolean;
21
+ dirty: boolean;
22
+ isHidden?: boolean;
23
+ _eventHandlers?: Record<string, unknown>;
24
+ scrollTop?: number;
25
+ pendingScrollDelta?: number;
26
+ scrollClampMin?: number;
27
+ scrollClampMax?: number;
28
+ scrollHeight?: number;
29
+ scrollViewportHeight?: number;
30
+ scrollViewportTop?: number;
31
+ stickyScroll?: boolean;
32
+ scrollAnchor?: {
33
+ el: DOMElement;
34
+ offset: number;
35
+ };
36
+ focusManager?: FocusManager;
37
+ debugOwnerChain?: string[];
38
+ } & InkNode;
39
+ export type TextNode = {
40
+ nodeName: TextName;
41
+ nodeValue: string;
42
+ } & InkNode;
43
+ export type DOMNode<T = {
44
+ nodeName: NodeNames;
45
+ }> = T extends {
46
+ nodeName: infer U;
47
+ } ? U extends '#text' ? TextNode : DOMElement : never;
48
+ export type DOMNodeAttribute = boolean | string | number;
49
+ export declare const createNode: (nodeName: ElementNames) => DOMElement;
50
+ export declare const appendChildNode: (node: DOMElement, childNode: DOMElement) => void;
51
+ export declare const insertBeforeNode: (node: DOMElement, newChildNode: DOMNode, beforeChildNode: DOMNode) => void;
52
+ export declare const removeChildNode: (node: DOMElement, removeNode: DOMNode) => void;
53
+ export declare const setAttribute: (node: DOMElement, key: string, value: DOMNodeAttribute) => void;
54
+ export declare const setStyle: (node: DOMNode, style: Styles) => void;
55
+ export declare const setTextStyles: (node: DOMElement, textStyles: TextStyles) => void;
56
+ export declare const createTextNode: (text: string) => TextNode;
57
+ /**
58
+ * Mark a node and all its ancestors as dirty for re-rendering.
59
+ * Also marks yoga dirty for text remeasurement if this is a text node.
60
+ */
61
+ export declare const markDirty: (node?: DOMNode) => void;
62
+ export declare const scheduleRenderFrom: (node?: DOMNode) => void;
63
+ export declare const setTextNodeValue: (node: TextNode, text: string) => void;
64
+ export declare const clearYogaNodeReferences: (node: DOMElement | TextNode) => void;
65
+ /**
66
+ * Find the React component stack responsible for content at screen row `y`.
67
+ *
68
+ * DFS the DOM tree accumulating yoga offsets. Returns the debugOwnerChain of
69
+ * the deepest node whose bounding box contains `y`. Called from ink.tsx when
70
+ * log-update triggers a full reset, to attribute the flicker to its source.
71
+ *
72
+ * Only useful when CLAUDE_CODE_DEBUG_REPAINTS is set (otherwise chains are
73
+ * undefined and this returns []).
74
+ */
75
+ export declare function findOwnerChainAtRow(root: DOMElement, y: number): string[];
76
+ export {};
@@ -0,0 +1,31 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * Mouse click event. Fired on left-button release without drag, only when
4
+ * mouse tracking is enabled (i.e. inside <AlternateScreen>).
5
+ *
6
+ * Bubbles from the deepest hit node up through parentNode. Call
7
+ * stopImmediatePropagation() to prevent ancestors' onClick from firing.
8
+ */
9
+ export declare class ClickEvent extends Event {
10
+ /** 0-indexed screen column of the click */
11
+ readonly col: number;
12
+ /** 0-indexed screen row of the click */
13
+ readonly row: number;
14
+ /**
15
+ * Click column relative to the current handler's Box (col - box.x).
16
+ * Recomputed by dispatchClick before each handler fires, so an onClick
17
+ * on a container sees coords relative to that container, not to any
18
+ * child the click landed on.
19
+ */
20
+ localCol: number;
21
+ /** Click row relative to the current handler's Box (row - box.y). */
22
+ localRow: number;
23
+ /**
24
+ * True if the clicked cell has no visible content (unwritten in the
25
+ * screen buffer — both packed words are 0). Handlers can check this to
26
+ * ignore clicks on blank space to the right of text, so accidental
27
+ * clicks on empty terminal space don't toggle state.
28
+ */
29
+ readonly cellIsBlank: boolean;
30
+ constructor(col: number, row: number, cellIsBlank: boolean);
31
+ }
@@ -0,0 +1,40 @@
1
+ import type { EventTarget, TerminalEvent } from './terminal-event.js';
2
+ type DiscreteUpdates = <A, B>(fn: (a: A, b: B) => boolean, a: A, b: B, c: undefined, d: undefined) => boolean;
3
+ /**
4
+ * Owns event dispatch state and the capture/bubble dispatch loop.
5
+ *
6
+ * The reconciler host config reads currentEvent and currentUpdatePriority
7
+ * to implement resolveUpdatePriority, resolveEventType, and
8
+ * resolveEventTimeStamp — mirroring how react-dom's host config reads
9
+ * ReactDOMSharedInternals and window.event.
10
+ *
11
+ * discreteUpdates is injected after construction (by InkReconciler)
12
+ * to break the import cycle.
13
+ */
14
+ export declare class Dispatcher {
15
+ currentEvent: TerminalEvent | null;
16
+ currentUpdatePriority: number;
17
+ discreteUpdates: DiscreteUpdates | null;
18
+ /**
19
+ * Infer event priority from the currently-dispatching event.
20
+ * Called by the reconciler host config's resolveUpdatePriority
21
+ * when no explicit priority has been set.
22
+ */
23
+ resolveEventPriority(): number;
24
+ /**
25
+ * Dispatch an event through capture and bubble phases.
26
+ * Returns true if preventDefault() was NOT called.
27
+ */
28
+ dispatch(target: EventTarget, event: TerminalEvent): boolean;
29
+ /**
30
+ * Dispatch with discrete (sync) priority.
31
+ * For user-initiated events: keyboard, click, focus, paste.
32
+ */
33
+ dispatchDiscrete(target: EventTarget, event: TerminalEvent): boolean;
34
+ /**
35
+ * Dispatch with continuous priority.
36
+ * For high-frequency events: resize, scroll, mouse move.
37
+ */
38
+ dispatchContinuous(target: EventTarget, event: TerminalEvent): boolean;
39
+ }
40
+ export {};
@@ -0,0 +1,5 @@
1
+ import { EventEmitter as NodeEventEmitter } from 'events';
2
+ export declare class EventEmitter extends NodeEventEmitter {
3
+ constructor();
4
+ emit(type: string | symbol, ...args: unknown[]): boolean;
5
+ }
@@ -0,0 +1,46 @@
1
+ import type { ClickEvent } from './click-event.js';
2
+ import type { FocusEvent } from './focus-event.js';
3
+ import type { KeyboardEvent } from './keyboard-event.js';
4
+ import type { PasteEvent } from './paste-event.js';
5
+ import type { ResizeEvent } from './resize-event.js';
6
+ type KeyboardEventHandler = (event: KeyboardEvent) => void;
7
+ type FocusEventHandler = (event: FocusEvent) => void;
8
+ type PasteEventHandler = (event: PasteEvent) => void;
9
+ type ResizeEventHandler = (event: ResizeEvent) => void;
10
+ type ClickEventHandler = (event: ClickEvent) => void;
11
+ type HoverEventHandler = () => void;
12
+ /**
13
+ * Props for event handlers on Box and other host components.
14
+ *
15
+ * Follows the React/DOM naming convention:
16
+ * - onEventName: handler for bubble phase
17
+ * - onEventNameCapture: handler for capture phase
18
+ */
19
+ export type EventHandlerProps = {
20
+ onKeyDown?: KeyboardEventHandler;
21
+ onKeyDownCapture?: KeyboardEventHandler;
22
+ onFocus?: FocusEventHandler;
23
+ onFocusCapture?: FocusEventHandler;
24
+ onBlur?: FocusEventHandler;
25
+ onBlurCapture?: FocusEventHandler;
26
+ onPaste?: PasteEventHandler;
27
+ onPasteCapture?: PasteEventHandler;
28
+ onResize?: ResizeEventHandler;
29
+ onClick?: ClickEventHandler;
30
+ onMouseEnter?: HoverEventHandler;
31
+ onMouseLeave?: HoverEventHandler;
32
+ };
33
+ /**
34
+ * Reverse lookup: event type string → handler prop names.
35
+ * Used by the dispatcher for O(1) handler lookup per node.
36
+ */
37
+ export declare const HANDLER_FOR_EVENT: Record<string, {
38
+ bubble?: keyof EventHandlerProps;
39
+ capture?: keyof EventHandlerProps;
40
+ }>;
41
+ /**
42
+ * Set of all event handler prop names, for the reconciler to detect
43
+ * event props and store them in _eventHandlers instead of attributes.
44
+ */
45
+ export declare const EVENT_HANDLER_PROPS: Set<string>;
46
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare class Event {
2
+ private _didStopImmediatePropagation;
3
+ didStopImmediatePropagation(): boolean;
4
+ stopImmediatePropagation(): void;
5
+ }
@@ -0,0 +1,13 @@
1
+ import { type EventTarget, TerminalEvent } from './terminal-event.js';
2
+ /**
3
+ * Focus event for component focus changes.
4
+ *
5
+ * Dispatched when focus moves between elements. 'focus' fires on the
6
+ * newly focused element, 'blur' fires on the previously focused one.
7
+ * Both bubble, matching react-dom's use of focusin/focusout semantics
8
+ * so parent components can observe descendant focus changes.
9
+ */
10
+ export declare class FocusEvent extends TerminalEvent {
11
+ readonly relatedTarget: EventTarget | null;
12
+ constructor(type: 'focus' | 'blur', relatedTarget?: EventTarget | null);
13
+ }
@@ -0,0 +1,30 @@
1
+ import { type ParsedKey } from '../parse-keypress.js';
2
+ import { Event } from './event.js';
3
+ export type Key = {
4
+ upArrow: boolean;
5
+ downArrow: boolean;
6
+ leftArrow: boolean;
7
+ rightArrow: boolean;
8
+ pageDown: boolean;
9
+ pageUp: boolean;
10
+ wheelUp: boolean;
11
+ wheelDown: boolean;
12
+ home: boolean;
13
+ end: boolean;
14
+ return: boolean;
15
+ escape: boolean;
16
+ ctrl: boolean;
17
+ shift: boolean;
18
+ fn: boolean;
19
+ tab: boolean;
20
+ backspace: boolean;
21
+ delete: boolean;
22
+ meta: boolean;
23
+ super: boolean;
24
+ };
25
+ export declare class InputEvent extends Event {
26
+ readonly keypress: ParsedKey;
27
+ readonly key: Key;
28
+ readonly input: string;
29
+ constructor(keypress: ParsedKey);
30
+ }
@@ -0,0 +1,19 @@
1
+ import type { ParsedKey } from '../parse-keypress.js';
2
+ import { TerminalEvent } from './terminal-event.js';
3
+ /**
4
+ * Keyboard event dispatched through the DOM tree via capture/bubble.
5
+ *
6
+ * Follows browser KeyboardEvent semantics: `key` is the literal character
7
+ * for printable keys ('a', '3', ' ', '/') and a multi-char name for
8
+ * special keys ('down', 'return', 'escape', 'f1'). The idiomatic
9
+ * printable-char check is `e.key.length === 1`.
10
+ */
11
+ export declare class KeyboardEvent extends TerminalEvent {
12
+ readonly key: string;
13
+ readonly ctrl: boolean;
14
+ readonly shift: boolean;
15
+ readonly meta: boolean;
16
+ readonly superKey: boolean;
17
+ readonly fn: boolean;
18
+ constructor(parsedKey: ParsedKey);
19
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * PasteEvent — fired when bracketed paste data arrives from the terminal.
3
+ */
4
+ import { TerminalEvent } from './terminal-event.js';
5
+ export declare class PasteEvent extends TerminalEvent {
6
+ readonly text: string;
7
+ constructor(text: string);
8
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * ResizeEvent — fired when the terminal is resized.
3
+ */
4
+ import { TerminalEvent } from './terminal-event.js';
5
+ export declare class ResizeEvent extends TerminalEvent {
6
+ readonly columns: number;
7
+ readonly rows: number;
8
+ constructor(columns: number, rows: number);
9
+ }
@@ -0,0 +1,54 @@
1
+ import { Event } from './event.js';
2
+ type EventPhase = 'none' | 'capturing' | 'at_target' | 'bubbling';
3
+ type TerminalEventInit = {
4
+ bubbles?: boolean;
5
+ cancelable?: boolean;
6
+ };
7
+ /**
8
+ * Base class for all terminal events with DOM-style propagation.
9
+ *
10
+ * Extends Event so existing event types (ClickEvent, InputEvent,
11
+ * TerminalFocusEvent) share a common ancestor and can migrate later.
12
+ *
13
+ * Mirrors the browser's Event API: target, currentTarget, eventPhase,
14
+ * stopPropagation(), preventDefault(), timeStamp.
15
+ */
16
+ export declare class TerminalEvent extends Event {
17
+ readonly type: string;
18
+ readonly timeStamp: number;
19
+ readonly bubbles: boolean;
20
+ readonly cancelable: boolean;
21
+ private _target;
22
+ private _currentTarget;
23
+ private _eventPhase;
24
+ private _propagationStopped;
25
+ private _defaultPrevented;
26
+ constructor(type: string, init?: TerminalEventInit);
27
+ get target(): EventTarget | null;
28
+ get currentTarget(): EventTarget | null;
29
+ get eventPhase(): EventPhase;
30
+ get defaultPrevented(): boolean;
31
+ stopPropagation(): void;
32
+ stopImmediatePropagation(): void;
33
+ preventDefault(): void;
34
+ /** @internal */
35
+ _setTarget(target: EventTarget): void;
36
+ /** @internal */
37
+ _setCurrentTarget(target: EventTarget | null): void;
38
+ /** @internal */
39
+ _setEventPhase(phase: EventPhase): void;
40
+ /** @internal */
41
+ _isPropagationStopped(): boolean;
42
+ /** @internal */
43
+ _isImmediatePropagationStopped(): boolean;
44
+ /**
45
+ * Hook for subclasses to do per-node setup before each handler fires.
46
+ * Default is a no-op.
47
+ */
48
+ _prepareForTarget(_target: EventTarget): void;
49
+ }
50
+ export type EventTarget = {
51
+ parentNode: EventTarget | undefined;
52
+ _eventHandlers?: Record<string, unknown>;
53
+ };
54
+ export {};
@@ -0,0 +1,13 @@
1
+ import { Event } from './event.js';
2
+ export type TerminalFocusEventType = 'terminalfocus' | 'terminalblur';
3
+ /**
4
+ * Event fired when the terminal window gains or loses focus.
5
+ *
6
+ * Uses DECSET 1004 focus reporting - the terminal sends:
7
+ * - CSI I (\x1b[I) when the terminal gains focus
8
+ * - CSI O (\x1b[O) when the terminal loses focus
9
+ */
10
+ export declare class TerminalFocusEvent extends Event {
11
+ readonly type: TerminalFocusEventType;
12
+ constructor(type: TerminalFocusEventType);
13
+ }
@@ -0,0 +1,43 @@
1
+ import type { DOMElement } from './dom.js';
2
+ import { FocusEvent } from './events/focus-event.js';
3
+ /**
4
+ * DOM-like focus manager for the Ink terminal UI.
5
+ *
6
+ * Pure state — tracks activeElement and a focus stack. Has no reference
7
+ * to the tree; callers pass the root when tree walks are needed.
8
+ *
9
+ * Stored on the root DOMElement so any node can reach it by walking
10
+ * parentNode (like browser's `node.ownerDocument`).
11
+ */
12
+ export declare class FocusManager {
13
+ activeElement: DOMElement | null;
14
+ private dispatchFocusEvent;
15
+ private enabled;
16
+ private focusStack;
17
+ constructor(dispatchFocusEvent: (target: DOMElement, event: FocusEvent) => boolean);
18
+ focus(node: DOMElement): void;
19
+ blur(): void;
20
+ /**
21
+ * Called by the reconciler when a node is removed from the tree.
22
+ * Handles both the exact node and any focused descendant within
23
+ * the removed subtree. Dispatches blur and restores focus from stack.
24
+ */
25
+ handleNodeRemoved(node: DOMElement, root: DOMElement): void;
26
+ handleAutoFocus(node: DOMElement): void;
27
+ handleClickFocus(node: DOMElement): void;
28
+ enable(): void;
29
+ disable(): void;
30
+ focusNext(root: DOMElement): void;
31
+ focusPrevious(root: DOMElement): void;
32
+ private moveFocus;
33
+ }
34
+ /**
35
+ * Walk up to root and return it. The root is the node that holds
36
+ * the FocusManager — like browser's `node.getRootNode()`.
37
+ */
38
+ export declare function getRootNode(node: DOMElement): DOMElement;
39
+ /**
40
+ * Walk up to root and return its FocusManager.
41
+ * Like browser's `node.ownerDocument` — focus belongs to the root.
42
+ */
43
+ export declare function getFocusManager(node: DOMElement): FocusManager;