attocode 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/LICENSE +21 -0
  3. package/README.md +164 -0
  4. package/dist/src/adapters.d.ts +83 -0
  5. package/dist/src/adapters.d.ts.map +1 -0
  6. package/dist/src/adapters.js +221 -0
  7. package/dist/src/adapters.js.map +1 -0
  8. package/dist/src/agent-tools/index.d.ts +7 -0
  9. package/dist/src/agent-tools/index.d.ts.map +1 -0
  10. package/dist/src/agent-tools/index.js +8 -0
  11. package/dist/src/agent-tools/index.js.map +1 -0
  12. package/dist/src/agent-tools/lsp-file-tools.d.ts +33 -0
  13. package/dist/src/agent-tools/lsp-file-tools.d.ts.map +1 -0
  14. package/dist/src/agent-tools/lsp-file-tools.js +200 -0
  15. package/dist/src/agent-tools/lsp-file-tools.js.map +1 -0
  16. package/dist/src/agent.d.ts +667 -0
  17. package/dist/src/agent.d.ts.map +1 -0
  18. package/dist/src/agent.js +2824 -0
  19. package/dist/src/agent.js.map +1 -0
  20. package/dist/src/cli.d.ts +36 -0
  21. package/dist/src/cli.d.ts.map +1 -0
  22. package/dist/src/cli.js +176 -0
  23. package/dist/src/cli.js.map +1 -0
  24. package/dist/src/commands/handler.d.ts +22 -0
  25. package/dist/src/commands/handler.d.ts.map +1 -0
  26. package/dist/src/commands/handler.js +1320 -0
  27. package/dist/src/commands/handler.js.map +1 -0
  28. package/dist/src/commands/init.d.ts +7 -0
  29. package/dist/src/commands/init.d.ts.map +1 -0
  30. package/dist/src/commands/init.js +153 -0
  31. package/dist/src/commands/init.js.map +1 -0
  32. package/dist/src/commands/types.d.ts +70 -0
  33. package/dist/src/commands/types.d.ts.map +1 -0
  34. package/dist/src/commands/types.js +8 -0
  35. package/dist/src/commands/types.js.map +1 -0
  36. package/dist/src/config.d.ts +22 -0
  37. package/dist/src/config.d.ts.map +1 -0
  38. package/dist/src/config.js +25 -0
  39. package/dist/src/config.js.map +1 -0
  40. package/dist/src/core/index.d.ts +32 -0
  41. package/dist/src/core/index.d.ts.map +1 -0
  42. package/dist/src/core/index.js +35 -0
  43. package/dist/src/core/index.js.map +1 -0
  44. package/dist/src/core/process-handlers.d.ts +43 -0
  45. package/dist/src/core/process-handlers.d.ts.map +1 -0
  46. package/dist/src/core/process-handlers.js +117 -0
  47. package/dist/src/core/process-handlers.js.map +1 -0
  48. package/dist/src/core/protocol/bridge.d.ts +117 -0
  49. package/dist/src/core/protocol/bridge.d.ts.map +1 -0
  50. package/dist/src/core/protocol/bridge.js +149 -0
  51. package/dist/src/core/protocol/bridge.js.map +1 -0
  52. package/dist/src/core/protocol/index.d.ts +8 -0
  53. package/dist/src/core/protocol/index.d.ts.map +1 -0
  54. package/dist/src/core/protocol/index.js +8 -0
  55. package/dist/src/core/protocol/index.js.map +1 -0
  56. package/dist/src/core/protocol/types.d.ts +539 -0
  57. package/dist/src/core/protocol/types.d.ts.map +1 -0
  58. package/dist/src/core/protocol/types.js +149 -0
  59. package/dist/src/core/protocol/types.js.map +1 -0
  60. package/dist/src/core/queues/atomic-counter.d.ts +36 -0
  61. package/dist/src/core/queues/atomic-counter.d.ts.map +1 -0
  62. package/dist/src/core/queues/atomic-counter.js +46 -0
  63. package/dist/src/core/queues/atomic-counter.js.map +1 -0
  64. package/dist/src/core/queues/event-queue.d.ts +126 -0
  65. package/dist/src/core/queues/event-queue.d.ts.map +1 -0
  66. package/dist/src/core/queues/event-queue.js +208 -0
  67. package/dist/src/core/queues/event-queue.js.map +1 -0
  68. package/dist/src/core/queues/index.d.ts +12 -0
  69. package/dist/src/core/queues/index.d.ts.map +1 -0
  70. package/dist/src/core/queues/index.js +15 -0
  71. package/dist/src/core/queues/index.js.map +1 -0
  72. package/dist/src/core/queues/submission-queue.d.ts +116 -0
  73. package/dist/src/core/queues/submission-queue.d.ts.map +1 -0
  74. package/dist/src/core/queues/submission-queue.js +236 -0
  75. package/dist/src/core/queues/submission-queue.js.map +1 -0
  76. package/dist/src/costs/index.d.ts +22 -0
  77. package/dist/src/costs/index.d.ts.map +1 -0
  78. package/dist/src/costs/index.js +22 -0
  79. package/dist/src/costs/index.js.map +1 -0
  80. package/dist/src/costs/model-registry.d.ts +80 -0
  81. package/dist/src/costs/model-registry.d.ts.map +1 -0
  82. package/dist/src/costs/model-registry.js +237 -0
  83. package/dist/src/costs/model-registry.js.map +1 -0
  84. package/dist/src/costs/types.d.ts +50 -0
  85. package/dist/src/costs/types.d.ts.map +1 -0
  86. package/dist/src/costs/types.js +2 -0
  87. package/dist/src/costs/types.js.map +1 -0
  88. package/dist/src/defaults.d.ts +114 -0
  89. package/dist/src/defaults.d.ts.map +1 -0
  90. package/dist/src/defaults.js +457 -0
  91. package/dist/src/defaults.js.map +1 -0
  92. package/dist/src/first-run.d.ts +35 -0
  93. package/dist/src/first-run.d.ts.map +1 -0
  94. package/dist/src/first-run.js +94 -0
  95. package/dist/src/first-run.js.map +1 -0
  96. package/dist/src/hello.d.ts +2 -0
  97. package/dist/src/hello.d.ts.map +1 -0
  98. package/dist/src/hello.js +4 -0
  99. package/dist/src/hello.js.map +1 -0
  100. package/dist/src/integrations/agent-registry.d.ts +160 -0
  101. package/dist/src/integrations/agent-registry.d.ts.map +1 -0
  102. package/dist/src/integrations/agent-registry.js +446 -0
  103. package/dist/src/integrations/agent-registry.js.map +1 -0
  104. package/dist/src/integrations/auto-compaction.d.ts +177 -0
  105. package/dist/src/integrations/auto-compaction.d.ts.map +1 -0
  106. package/dist/src/integrations/auto-compaction.js +428 -0
  107. package/dist/src/integrations/auto-compaction.js.map +1 -0
  108. package/dist/src/integrations/cancellation.d.ts +162 -0
  109. package/dist/src/integrations/cancellation.d.ts.map +1 -0
  110. package/dist/src/integrations/cancellation.js +339 -0
  111. package/dist/src/integrations/cancellation.js.map +1 -0
  112. package/dist/src/integrations/codebase-context.d.ts +319 -0
  113. package/dist/src/integrations/codebase-context.d.ts.map +1 -0
  114. package/dist/src/integrations/codebase-context.js +816 -0
  115. package/dist/src/integrations/codebase-context.js.map +1 -0
  116. package/dist/src/integrations/compaction.d.ts +192 -0
  117. package/dist/src/integrations/compaction.d.ts.map +1 -0
  118. package/dist/src/integrations/compaction.js +376 -0
  119. package/dist/src/integrations/compaction.js.map +1 -0
  120. package/dist/src/integrations/context-engineering.d.ts +246 -0
  121. package/dist/src/integrations/context-engineering.d.ts.map +1 -0
  122. package/dist/src/integrations/context-engineering.js +394 -0
  123. package/dist/src/integrations/context-engineering.js.map +1 -0
  124. package/dist/src/integrations/diff-utils.d.ts +105 -0
  125. package/dist/src/integrations/diff-utils.d.ts.map +1 -0
  126. package/dist/src/integrations/diff-utils.js +497 -0
  127. package/dist/src/integrations/diff-utils.js.map +1 -0
  128. package/dist/src/integrations/economics.d.ts +192 -0
  129. package/dist/src/integrations/economics.d.ts.map +1 -0
  130. package/dist/src/integrations/economics.js +431 -0
  131. package/dist/src/integrations/economics.js.map +1 -0
  132. package/dist/src/integrations/execution-policy.d.ts +189 -0
  133. package/dist/src/integrations/execution-policy.d.ts.map +1 -0
  134. package/dist/src/integrations/execution-policy.js +352 -0
  135. package/dist/src/integrations/execution-policy.js.map +1 -0
  136. package/dist/src/integrations/file-change-tracker.d.ts +161 -0
  137. package/dist/src/integrations/file-change-tracker.d.ts.map +1 -0
  138. package/dist/src/integrations/file-change-tracker.js +520 -0
  139. package/dist/src/integrations/file-change-tracker.js.map +1 -0
  140. package/dist/src/integrations/hierarchical-config.d.ts +212 -0
  141. package/dist/src/integrations/hierarchical-config.d.ts.map +1 -0
  142. package/dist/src/integrations/hierarchical-config.js +484 -0
  143. package/dist/src/integrations/hierarchical-config.js.map +1 -0
  144. package/dist/src/integrations/hooks.d.ts +114 -0
  145. package/dist/src/integrations/hooks.d.ts.map +1 -0
  146. package/dist/src/integrations/hooks.js +326 -0
  147. package/dist/src/integrations/hooks.js.map +1 -0
  148. package/dist/src/integrations/ignore.d.ts +143 -0
  149. package/dist/src/integrations/ignore.d.ts.map +1 -0
  150. package/dist/src/integrations/ignore.js +417 -0
  151. package/dist/src/integrations/ignore.js.map +1 -0
  152. package/dist/src/integrations/image-renderer.d.ts +119 -0
  153. package/dist/src/integrations/image-renderer.d.ts.map +1 -0
  154. package/dist/src/integrations/image-renderer.js +306 -0
  155. package/dist/src/integrations/image-renderer.js.map +1 -0
  156. package/dist/src/integrations/index.d.ts +42 -0
  157. package/dist/src/integrations/index.d.ts.map +1 -0
  158. package/dist/src/integrations/index.js +73 -0
  159. package/dist/src/integrations/index.js.map +1 -0
  160. package/dist/src/integrations/lsp.d.ts +196 -0
  161. package/dist/src/integrations/lsp.d.ts.map +1 -0
  162. package/dist/src/integrations/lsp.js +582 -0
  163. package/dist/src/integrations/lsp.js.map +1 -0
  164. package/dist/src/integrations/mcp-client.d.ts +270 -0
  165. package/dist/src/integrations/mcp-client.d.ts.map +1 -0
  166. package/dist/src/integrations/mcp-client.js +698 -0
  167. package/dist/src/integrations/mcp-client.js.map +1 -0
  168. package/dist/src/integrations/mcp-tool-search.d.ts +77 -0
  169. package/dist/src/integrations/mcp-tool-search.d.ts.map +1 -0
  170. package/dist/src/integrations/mcp-tool-search.js +220 -0
  171. package/dist/src/integrations/mcp-tool-search.js.map +1 -0
  172. package/dist/src/integrations/memory.d.ts +108 -0
  173. package/dist/src/integrations/memory.d.ts.map +1 -0
  174. package/dist/src/integrations/memory.js +288 -0
  175. package/dist/src/integrations/memory.js.map +1 -0
  176. package/dist/src/integrations/multi-agent.d.ts +150 -0
  177. package/dist/src/integrations/multi-agent.d.ts.map +1 -0
  178. package/dist/src/integrations/multi-agent.js +306 -0
  179. package/dist/src/integrations/multi-agent.js.map +1 -0
  180. package/dist/src/integrations/observability.d.ts +162 -0
  181. package/dist/src/integrations/observability.d.ts.map +1 -0
  182. package/dist/src/integrations/observability.js +406 -0
  183. package/dist/src/integrations/observability.js.map +1 -0
  184. package/dist/src/integrations/openrouter-pricing.d.ts +42 -0
  185. package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -0
  186. package/dist/src/integrations/openrouter-pricing.js +124 -0
  187. package/dist/src/integrations/openrouter-pricing.js.map +1 -0
  188. package/dist/src/integrations/pending-plan.d.ts +171 -0
  189. package/dist/src/integrations/pending-plan.d.ts.map +1 -0
  190. package/dist/src/integrations/pending-plan.js +244 -0
  191. package/dist/src/integrations/pending-plan.js.map +1 -0
  192. package/dist/src/integrations/persistence.d.ts +48 -0
  193. package/dist/src/integrations/persistence.d.ts.map +1 -0
  194. package/dist/src/integrations/persistence.js +196 -0
  195. package/dist/src/integrations/persistence.js.map +1 -0
  196. package/dist/src/integrations/planning.d.ts +96 -0
  197. package/dist/src/integrations/planning.d.ts.map +1 -0
  198. package/dist/src/integrations/planning.js +338 -0
  199. package/dist/src/integrations/planning.js.map +1 -0
  200. package/dist/src/integrations/pty-shell.d.ts +169 -0
  201. package/dist/src/integrations/pty-shell.d.ts.map +1 -0
  202. package/dist/src/integrations/pty-shell.js +367 -0
  203. package/dist/src/integrations/pty-shell.js.map +1 -0
  204. package/dist/src/integrations/react.d.ts +139 -0
  205. package/dist/src/integrations/react.d.ts.map +1 -0
  206. package/dist/src/integrations/react.js +273 -0
  207. package/dist/src/integrations/react.js.map +1 -0
  208. package/dist/src/integrations/resources.d.ts +177 -0
  209. package/dist/src/integrations/resources.d.ts.map +1 -0
  210. package/dist/src/integrations/resources.js +311 -0
  211. package/dist/src/integrations/resources.js.map +1 -0
  212. package/dist/src/integrations/result-synthesizer.d.ts +389 -0
  213. package/dist/src/integrations/result-synthesizer.d.ts.map +1 -0
  214. package/dist/src/integrations/result-synthesizer.js +951 -0
  215. package/dist/src/integrations/result-synthesizer.js.map +1 -0
  216. package/dist/src/integrations/routing.d.ts +117 -0
  217. package/dist/src/integrations/routing.d.ts.map +1 -0
  218. package/dist/src/integrations/routing.js +347 -0
  219. package/dist/src/integrations/routing.js.map +1 -0
  220. package/dist/src/integrations/rules.d.ts +131 -0
  221. package/dist/src/integrations/rules.d.ts.map +1 -0
  222. package/dist/src/integrations/rules.js +284 -0
  223. package/dist/src/integrations/rules.js.map +1 -0
  224. package/dist/src/integrations/safety.d.ts +142 -0
  225. package/dist/src/integrations/safety.d.ts.map +1 -0
  226. package/dist/src/integrations/safety.js +342 -0
  227. package/dist/src/integrations/safety.js.map +1 -0
  228. package/dist/src/integrations/sandbox/basic.d.ts +74 -0
  229. package/dist/src/integrations/sandbox/basic.d.ts.map +1 -0
  230. package/dist/src/integrations/sandbox/basic.js +310 -0
  231. package/dist/src/integrations/sandbox/basic.js.map +1 -0
  232. package/dist/src/integrations/sandbox/docker.d.ts +94 -0
  233. package/dist/src/integrations/sandbox/docker.d.ts.map +1 -0
  234. package/dist/src/integrations/sandbox/docker.js +293 -0
  235. package/dist/src/integrations/sandbox/docker.js.map +1 -0
  236. package/dist/src/integrations/sandbox/index.d.ts +182 -0
  237. package/dist/src/integrations/sandbox/index.d.ts.map +1 -0
  238. package/dist/src/integrations/sandbox/index.js +382 -0
  239. package/dist/src/integrations/sandbox/index.js.map +1 -0
  240. package/dist/src/integrations/sandbox/landlock.d.ts +59 -0
  241. package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -0
  242. package/dist/src/integrations/sandbox/landlock.js +326 -0
  243. package/dist/src/integrations/sandbox/landlock.js.map +1 -0
  244. package/dist/src/integrations/sandbox/seatbelt.d.ts +68 -0
  245. package/dist/src/integrations/sandbox/seatbelt.d.ts.map +1 -0
  246. package/dist/src/integrations/sandbox/seatbelt.js +298 -0
  247. package/dist/src/integrations/sandbox/seatbelt.js.map +1 -0
  248. package/dist/src/integrations/semantic-cache.d.ts +178 -0
  249. package/dist/src/integrations/semantic-cache.d.ts.map +1 -0
  250. package/dist/src/integrations/semantic-cache.js +372 -0
  251. package/dist/src/integrations/semantic-cache.js.map +1 -0
  252. package/dist/src/integrations/session-store.d.ts +183 -0
  253. package/dist/src/integrations/session-store.d.ts.map +1 -0
  254. package/dist/src/integrations/session-store.js +345 -0
  255. package/dist/src/integrations/session-store.js.map +1 -0
  256. package/dist/src/integrations/shared-blackboard.d.ts +403 -0
  257. package/dist/src/integrations/shared-blackboard.d.ts.map +1 -0
  258. package/dist/src/integrations/shared-blackboard.js +710 -0
  259. package/dist/src/integrations/shared-blackboard.js.map +1 -0
  260. package/dist/src/integrations/skills.d.ts +171 -0
  261. package/dist/src/integrations/skills.d.ts.map +1 -0
  262. package/dist/src/integrations/skills.js +403 -0
  263. package/dist/src/integrations/skills.js.map +1 -0
  264. package/dist/src/integrations/smart-decomposer.d.ts +322 -0
  265. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -0
  266. package/dist/src/integrations/smart-decomposer.js +856 -0
  267. package/dist/src/integrations/smart-decomposer.js.map +1 -0
  268. package/dist/src/integrations/sourcegraph.d.ts +169 -0
  269. package/dist/src/integrations/sourcegraph.d.ts.map +1 -0
  270. package/dist/src/integrations/sourcegraph.js +379 -0
  271. package/dist/src/integrations/sourcegraph.js.map +1 -0
  272. package/dist/src/integrations/sqlite-store.d.ts +518 -0
  273. package/dist/src/integrations/sqlite-store.d.ts.map +1 -0
  274. package/dist/src/integrations/sqlite-store.js +1423 -0
  275. package/dist/src/integrations/sqlite-store.js.map +1 -0
  276. package/dist/src/integrations/streaming.d.ts +102 -0
  277. package/dist/src/integrations/streaming.d.ts.map +1 -0
  278. package/dist/src/integrations/streaming.js +362 -0
  279. package/dist/src/integrations/streaming.js.map +1 -0
  280. package/dist/src/integrations/thread-manager.d.ts +199 -0
  281. package/dist/src/integrations/thread-manager.d.ts.map +1 -0
  282. package/dist/src/integrations/thread-manager.js +357 -0
  283. package/dist/src/integrations/thread-manager.js.map +1 -0
  284. package/dist/src/main.d.ts +26 -0
  285. package/dist/src/main.d.ts.map +1 -0
  286. package/dist/src/main.js +170 -0
  287. package/dist/src/main.js.map +1 -0
  288. package/dist/src/modes/index.d.ts +10 -0
  289. package/dist/src/modes/index.d.ts.map +1 -0
  290. package/dist/src/modes/index.js +10 -0
  291. package/dist/src/modes/index.js.map +1 -0
  292. package/dist/src/modes/repl.d.ts +19 -0
  293. package/dist/src/modes/repl.d.ts.map +1 -0
  294. package/dist/src/modes/repl.js +393 -0
  295. package/dist/src/modes/repl.js.map +1 -0
  296. package/dist/src/modes/tui.d.ts +29 -0
  297. package/dist/src/modes/tui.d.ts.map +1 -0
  298. package/dist/src/modes/tui.js +272 -0
  299. package/dist/src/modes/tui.js.map +1 -0
  300. package/dist/src/modes.d.ts +179 -0
  301. package/dist/src/modes.d.ts.map +1 -0
  302. package/dist/src/modes.js +385 -0
  303. package/dist/src/modes.js.map +1 -0
  304. package/dist/src/observability/tracer.d.ts +111 -0
  305. package/dist/src/observability/tracer.d.ts.map +1 -0
  306. package/dist/src/observability/tracer.js +300 -0
  307. package/dist/src/observability/tracer.js.map +1 -0
  308. package/dist/src/observability/types.d.ts +271 -0
  309. package/dist/src/observability/types.d.ts.map +1 -0
  310. package/dist/src/observability/types.js +24 -0
  311. package/dist/src/observability/types.js.map +1 -0
  312. package/dist/src/paths.d.ts +101 -0
  313. package/dist/src/paths.d.ts.map +1 -0
  314. package/dist/src/paths.js +148 -0
  315. package/dist/src/paths.js.map +1 -0
  316. package/dist/src/persistence/index.d.ts +38 -0
  317. package/dist/src/persistence/index.d.ts.map +1 -0
  318. package/dist/src/persistence/index.js +48 -0
  319. package/dist/src/persistence/index.js.map +1 -0
  320. package/dist/src/persistence/migrator.d.ts +135 -0
  321. package/dist/src/persistence/migrator.d.ts.map +1 -0
  322. package/dist/src/persistence/migrator.js +303 -0
  323. package/dist/src/persistence/migrator.js.map +1 -0
  324. package/dist/src/persistence/schema.d.ts +101 -0
  325. package/dist/src/persistence/schema.d.ts.map +1 -0
  326. package/dist/src/persistence/schema.js +395 -0
  327. package/dist/src/persistence/schema.js.map +1 -0
  328. package/dist/src/providers/adapters/anthropic.d.ts +20 -0
  329. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -0
  330. package/dist/src/providers/adapters/anthropic.js +124 -0
  331. package/dist/src/providers/adapters/anthropic.js.map +1 -0
  332. package/dist/src/providers/adapters/mock.d.ts +25 -0
  333. package/dist/src/providers/adapters/mock.d.ts.map +1 -0
  334. package/dist/src/providers/adapters/mock.js +133 -0
  335. package/dist/src/providers/adapters/mock.js.map +1 -0
  336. package/dist/src/providers/adapters/openai.d.ts +21 -0
  337. package/dist/src/providers/adapters/openai.d.ts.map +1 -0
  338. package/dist/src/providers/adapters/openai.js +126 -0
  339. package/dist/src/providers/adapters/openai.js.map +1 -0
  340. package/dist/src/providers/adapters/openrouter.d.ts +49 -0
  341. package/dist/src/providers/adapters/openrouter.d.ts.map +1 -0
  342. package/dist/src/providers/adapters/openrouter.js +363 -0
  343. package/dist/src/providers/adapters/openrouter.js.map +1 -0
  344. package/dist/src/providers/provider.d.ts +54 -0
  345. package/dist/src/providers/provider.d.ts.map +1 -0
  346. package/dist/src/providers/provider.js +111 -0
  347. package/dist/src/providers/provider.js.map +1 -0
  348. package/dist/src/providers/resilient-fetch.d.ts +99 -0
  349. package/dist/src/providers/resilient-fetch.d.ts.map +1 -0
  350. package/dist/src/providers/resilient-fetch.js +208 -0
  351. package/dist/src/providers/resilient-fetch.js.map +1 -0
  352. package/dist/src/providers/types.d.ts +227 -0
  353. package/dist/src/providers/types.d.ts.map +1 -0
  354. package/dist/src/providers/types.js +24 -0
  355. package/dist/src/providers/types.js.map +1 -0
  356. package/dist/src/session-picker.d.ts +28 -0
  357. package/dist/src/session-picker.d.ts.map +1 -0
  358. package/dist/src/session-picker.js +256 -0
  359. package/dist/src/session-picker.js.map +1 -0
  360. package/dist/src/test-sqlite.d.ts +2 -0
  361. package/dist/src/test-sqlite.d.ts.map +1 -0
  362. package/dist/src/test-sqlite.js +114 -0
  363. package/dist/src/test-sqlite.js.map +1 -0
  364. package/dist/src/tools/agent.d.ts +44 -0
  365. package/dist/src/tools/agent.d.ts.map +1 -0
  366. package/dist/src/tools/agent.js +110 -0
  367. package/dist/src/tools/agent.js.map +1 -0
  368. package/dist/src/tools/bash.d.ts +52 -0
  369. package/dist/src/tools/bash.d.ts.map +1 -0
  370. package/dist/src/tools/bash.js +141 -0
  371. package/dist/src/tools/bash.js.map +1 -0
  372. package/dist/src/tools/file.d.ts +47 -0
  373. package/dist/src/tools/file.d.ts.map +1 -0
  374. package/dist/src/tools/file.js +263 -0
  375. package/dist/src/tools/file.js.map +1 -0
  376. package/dist/src/tools/permission.d.ts +43 -0
  377. package/dist/src/tools/permission.d.ts.map +1 -0
  378. package/dist/src/tools/permission.js +216 -0
  379. package/dist/src/tools/permission.js.map +1 -0
  380. package/dist/src/tools/registry.d.ts +63 -0
  381. package/dist/src/tools/registry.d.ts.map +1 -0
  382. package/dist/src/tools/registry.js +250 -0
  383. package/dist/src/tools/registry.js.map +1 -0
  384. package/dist/src/tools/standard.d.ts +57 -0
  385. package/dist/src/tools/standard.d.ts.map +1 -0
  386. package/dist/src/tools/standard.js +113 -0
  387. package/dist/src/tools/standard.js.map +1 -0
  388. package/dist/src/tools/types.d.ts +146 -0
  389. package/dist/src/tools/types.d.ts.map +1 -0
  390. package/dist/src/tools/types.js +28 -0
  391. package/dist/src/tools/types.js.map +1 -0
  392. package/dist/src/tools/undo.d.ts +71 -0
  393. package/dist/src/tools/undo.d.ts.map +1 -0
  394. package/dist/src/tools/undo.js +123 -0
  395. package/dist/src/tools/undo.js.map +1 -0
  396. package/dist/src/tracing/cache-boundary-tracker.d.ts +189 -0
  397. package/dist/src/tracing/cache-boundary-tracker.d.ts.map +1 -0
  398. package/dist/src/tracing/cache-boundary-tracker.js +411 -0
  399. package/dist/src/tracing/cache-boundary-tracker.js.map +1 -0
  400. package/dist/src/tracing/trace-collector.d.ts +274 -0
  401. package/dist/src/tracing/trace-collector.d.ts.map +1 -0
  402. package/dist/src/tracing/trace-collector.js +727 -0
  403. package/dist/src/tracing/trace-collector.js.map +1 -0
  404. package/dist/src/tracing/types.d.ts +657 -0
  405. package/dist/src/tracing/types.d.ts.map +1 -0
  406. package/dist/src/tracing/types.js +39 -0
  407. package/dist/src/tracing/types.js.map +1 -0
  408. package/dist/src/tricks/failure-evidence.d.ts +268 -0
  409. package/dist/src/tricks/failure-evidence.d.ts.map +1 -0
  410. package/dist/src/tricks/failure-evidence.js +544 -0
  411. package/dist/src/tricks/failure-evidence.js.map +1 -0
  412. package/dist/src/tricks/json-utils.d.ts +77 -0
  413. package/dist/src/tricks/json-utils.d.ts.map +1 -0
  414. package/dist/src/tricks/json-utils.js +247 -0
  415. package/dist/src/tricks/json-utils.js.map +1 -0
  416. package/dist/src/tricks/kv-cache-context.d.ts +227 -0
  417. package/dist/src/tricks/kv-cache-context.d.ts.map +1 -0
  418. package/dist/src/tricks/kv-cache-context.js +377 -0
  419. package/dist/src/tricks/kv-cache-context.js.map +1 -0
  420. package/dist/src/tricks/recitation.d.ts +208 -0
  421. package/dist/src/tricks/recitation.d.ts.map +1 -0
  422. package/dist/src/tricks/recitation.js +374 -0
  423. package/dist/src/tricks/recitation.js.map +1 -0
  424. package/dist/src/tricks/reversible-compaction.d.ts +251 -0
  425. package/dist/src/tricks/reversible-compaction.d.ts.map +1 -0
  426. package/dist/src/tricks/reversible-compaction.js +555 -0
  427. package/dist/src/tricks/reversible-compaction.js.map +1 -0
  428. package/dist/src/tricks/serialization-diversity.d.ts +197 -0
  429. package/dist/src/tricks/serialization-diversity.d.ts.map +1 -0
  430. package/dist/src/tricks/serialization-diversity.js +460 -0
  431. package/dist/src/tricks/serialization-diversity.js.map +1 -0
  432. package/dist/src/tui/app.d.ts +42 -0
  433. package/dist/src/tui/app.d.ts.map +1 -0
  434. package/dist/src/tui/app.js +1076 -0
  435. package/dist/src/tui/app.js.map +1 -0
  436. package/dist/src/tui/components/ApprovalDialog.d.ts +28 -0
  437. package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -0
  438. package/dist/src/tui/components/ApprovalDialog.js +59 -0
  439. package/dist/src/tui/components/ApprovalDialog.js.map +1 -0
  440. package/dist/src/tui/components/InputArea.d.ts +35 -0
  441. package/dist/src/tui/components/InputArea.d.ts.map +1 -0
  442. package/dist/src/tui/components/InputArea.js +144 -0
  443. package/dist/src/tui/components/InputArea.js.map +1 -0
  444. package/dist/src/tui/components/MessageItem.d.ts +28 -0
  445. package/dist/src/tui/components/MessageItem.d.ts.map +1 -0
  446. package/dist/src/tui/components/MessageItem.js +27 -0
  447. package/dist/src/tui/components/MessageItem.js.map +1 -0
  448. package/dist/src/tui/components/ScrollableBox.d.ts +41 -0
  449. package/dist/src/tui/components/ScrollableBox.d.ts.map +1 -0
  450. package/dist/src/tui/components/ScrollableBox.js +101 -0
  451. package/dist/src/tui/components/ScrollableBox.js.map +1 -0
  452. package/dist/src/tui/components/ToolCallItem.d.ts +33 -0
  453. package/dist/src/tui/components/ToolCallItem.d.ts.map +1 -0
  454. package/dist/src/tui/components/ToolCallItem.js +91 -0
  455. package/dist/src/tui/components/ToolCallItem.js.map +1 -0
  456. package/dist/src/tui/components/index.d.ts +13 -0
  457. package/dist/src/tui/components/index.d.ts.map +1 -0
  458. package/dist/src/tui/components/index.js +15 -0
  459. package/dist/src/tui/components/index.js.map +1 -0
  460. package/dist/src/tui/event-display.d.ts +19 -0
  461. package/dist/src/tui/event-display.d.ts.map +1 -0
  462. package/dist/src/tui/event-display.js +178 -0
  463. package/dist/src/tui/event-display.js.map +1 -0
  464. package/dist/src/tui/index.d.ts +105 -0
  465. package/dist/src/tui/index.d.ts.map +1 -0
  466. package/dist/src/tui/index.js +214 -0
  467. package/dist/src/tui/index.js.map +1 -0
  468. package/dist/src/tui/input/CommandPalette.d.ts +55 -0
  469. package/dist/src/tui/input/CommandPalette.d.ts.map +1 -0
  470. package/dist/src/tui/input/CommandPalette.js +135 -0
  471. package/dist/src/tui/input/CommandPalette.js.map +1 -0
  472. package/dist/src/tui/input/index.d.ts +7 -0
  473. package/dist/src/tui/input/index.d.ts.map +1 -0
  474. package/dist/src/tui/input/index.js +7 -0
  475. package/dist/src/tui/input/index.js.map +1 -0
  476. package/dist/src/tui/theme/index.d.ts +45 -0
  477. package/dist/src/tui/theme/index.d.ts.map +1 -0
  478. package/dist/src/tui/theme/index.js +215 -0
  479. package/dist/src/tui/theme/index.js.map +1 -0
  480. package/dist/src/tui/types.d.ts +214 -0
  481. package/dist/src/tui/types.d.ts.map +1 -0
  482. package/dist/src/tui/types.js +27 -0
  483. package/dist/src/tui/types.js.map +1 -0
  484. package/dist/src/types.d.ts +905 -0
  485. package/dist/src/types.d.ts.map +1 -0
  486. package/dist/src/types.js +9 -0
  487. package/dist/src/types.js.map +1 -0
  488. package/package.json +89 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/tui/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * ApprovalDialog Component
3
+ *
4
+ * Displays permission requests for dangerous tool operations in TUI mode.
5
+ * Supports keyboard shortcuts: Y (approve), N (deny), D (deny with reason)
6
+ */
7
+ import type { ThemeColors } from '../types.js';
8
+ export interface ApprovalRequest {
9
+ id: string;
10
+ tool: string;
11
+ args: Record<string, unknown>;
12
+ risk: 'low' | 'moderate' | 'high' | 'critical';
13
+ context: string;
14
+ }
15
+ export interface ApprovalDialogProps {
16
+ visible: boolean;
17
+ request: ApprovalRequest | null;
18
+ onApprove: () => void;
19
+ onDeny: (reason?: string) => void;
20
+ colors: ThemeColors;
21
+ /** Whether in "deny with reason" mode (show input prompt) */
22
+ denyReasonMode?: boolean;
23
+ /** Current deny reason being typed */
24
+ denyReason?: string;
25
+ }
26
+ export declare const ApprovalDialog: import("react").NamedExoticComponent<ApprovalDialogProps>;
27
+ export default ApprovalDialog;
28
+ //# sourceMappingURL=ApprovalDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalDialog.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/ApprovalDialog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA4CD,eAAO,MAAM,cAAc,2DA2EzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * ApprovalDialog Component
4
+ *
5
+ * Displays permission requests for dangerous tool operations in TUI mode.
6
+ * Supports keyboard shortcuts: Y (approve), N (deny), D (deny with reason)
7
+ */
8
+ import { memo } from 'react';
9
+ import { Box, Text } from 'ink';
10
+ /**
11
+ * Format tool arguments for display (truncated)
12
+ */
13
+ function formatArgs(args, maxLength = 120) {
14
+ const entries = Object.entries(args);
15
+ if (entries.length === 0)
16
+ return '(no arguments)';
17
+ const parts = [];
18
+ for (const [key, value] of entries) {
19
+ let valStr;
20
+ if (typeof value === 'string') {
21
+ valStr = value.length > 50 ? `"${value.slice(0, 47)}..."` : `"${value}"`;
22
+ }
23
+ else if (value === null || value === undefined) {
24
+ valStr = String(value);
25
+ }
26
+ else {
27
+ const json = JSON.stringify(value);
28
+ valStr = json.length > 50 ? json.slice(0, 47) + '...' : json;
29
+ }
30
+ parts.push(`${key}: ${valStr}`);
31
+ }
32
+ const result = parts.join(', ');
33
+ return result.length > maxLength ? result.slice(0, maxLength - 3) + '...' : result;
34
+ }
35
+ /**
36
+ * Get risk level styling
37
+ */
38
+ function getRiskStyle(risk) {
39
+ switch (risk) {
40
+ case 'critical':
41
+ return { color: '#FF4444', icon: '!!' };
42
+ case 'high':
43
+ return { color: '#FF6B6B', icon: '!' };
44
+ case 'moderate':
45
+ return { color: '#FFD700', icon: '*' };
46
+ case 'low':
47
+ default:
48
+ return { color: '#87CEEB', icon: '-' };
49
+ }
50
+ }
51
+ export const ApprovalDialog = memo(function ApprovalDialog({ visible, request, colors, denyReasonMode = false, denyReason = '', }) {
52
+ if (!visible || !request)
53
+ return null;
54
+ const riskStyle = getRiskStyle(request.risk);
55
+ const argsDisplay = formatArgs(request.args);
56
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "double", borderColor: riskStyle.color, paddingX: 1, paddingY: 0, marginBottom: 1, children: [_jsxs(Box, { gap: 1, children: [_jsxs(Text, { color: riskStyle.color, bold: true, children: ["[", riskStyle.icon, "] APPROVAL REQUIRED"] }), _jsxs(Text, { color: colors.textMuted, dimColor: true, children: ["(", request.risk, " risk)"] })] }), _jsxs(Box, { marginTop: 1, gap: 1, children: [_jsx(Text, { color: colors.textMuted, children: "Tool:" }), _jsx(Text, { color: "#DDA0DD", bold: true, children: request.tool })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { color: colors.textMuted, children: "Args:" }), _jsx(Text, { color: colors.text, wrap: "truncate", children: argsDisplay })] }), request.context && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textMuted, dimColor: true, wrap: "wrap", children: request.context.length > 200 ? request.context.slice(0, 197) + '...' : request.context }) })), _jsx(Box, { marginTop: 1, gap: 2, children: denyReasonMode ? (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: colors.warning, children: "Deny reason:" }), _jsx(Text, { color: colors.text, children: denyReason }), _jsx(Text, { color: colors.textMuted, dimColor: true, children: "(Enter to confirm, Esc to cancel)" })] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { color: "#98FB98", bold: true, children: "[Y]" }), _jsx(Text, { color: colors.text, children: "Approve" }), _jsx(Text, { color: colors.textMuted, children: "|" }), _jsx(Text, { color: "#FF6B6B", bold: true, children: "[N]" }), _jsx(Text, { color: colors.text, children: "Deny" }), _jsx(Text, { color: colors.textMuted, children: "|" }), _jsx(Text, { color: "#FFD700", bold: true, children: "[D]" }), _jsx(Text, { color: colors.text, children: "Deny with reason" })] })) })] }));
57
+ });
58
+ export default ApprovalDialog;
59
+ //# sourceMappingURL=ApprovalDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalDialog.js","sourceRoot":"","sources":["../../../../src/tui/components/ApprovalDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * InputArea Component
3
+ *
4
+ * Memoized input area that manages own state to prevent parent re-renders.
5
+ * Also handles ALL keyboard input to prevent multiple useInput hooks.
6
+ */
7
+ import React from 'react';
8
+ export interface InputAreaProps {
9
+ onSubmit: (value: string) => void;
10
+ disabled: boolean;
11
+ borderColor: string;
12
+ textColor: string;
13
+ cursorColor: string;
14
+ onCtrlC?: () => void;
15
+ onCtrlL?: () => void;
16
+ onCtrlP?: () => void;
17
+ onEscape?: () => void;
18
+ onToggleToolExpand?: () => void;
19
+ onToggleThinking?: () => void;
20
+ onPageUp?: () => void;
21
+ onPageDown?: () => void;
22
+ onHome?: () => void;
23
+ onEnd?: () => void;
24
+ }
25
+ /**
26
+ * Memoized input area with centralized keyboard handling.
27
+ *
28
+ * Key patterns used:
29
+ * - Callbacks stored in refs to prevent useInput re-subscription
30
+ * - Custom memo comparator for controlled re-rendering
31
+ * - Single useInput hook for all keyboard handling
32
+ */
33
+ export declare const MemoizedInputArea: React.NamedExoticComponent<InputAreaProps>;
34
+ export default MemoizedInputArea;
35
+ //# sourceMappingURL=InputArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/InputArea.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiC,MAAM,OAAO,CAAC;AAGtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,4CA+J5B,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * InputArea Component
3
+ *
4
+ * Memoized input area that manages own state to prevent parent re-renders.
5
+ * Also handles ALL keyboard input to prevent multiple useInput hooks.
6
+ */
7
+ import React, { memo, useState, useRef } from 'react';
8
+ import { Box, Text, useInput } from 'ink';
9
+ /**
10
+ * Memoized input area with centralized keyboard handling.
11
+ *
12
+ * Key patterns used:
13
+ * - Callbacks stored in refs to prevent useInput re-subscription
14
+ * - Custom memo comparator for controlled re-rendering
15
+ * - Single useInput hook for all keyboard handling
16
+ */
17
+ export const MemoizedInputArea = memo(function MemoizedInputArea({ onSubmit, disabled, borderColor, textColor, cursorColor, onCtrlC, onCtrlL, onCtrlP, onEscape, onToggleToolExpand, onToggleThinking, onPageUp, onPageDown, onHome, onEnd, }) {
18
+ const [value, setValue] = useState('');
19
+ const [cursorPos, setCursorPos] = useState(0);
20
+ // Store callbacks in refs so useInput doesn't re-subscribe on prop changes
21
+ const callbacksRef = useRef({
22
+ onSubmit, onCtrlC, onCtrlL, onCtrlP, onEscape,
23
+ onToggleToolExpand, onToggleThinking,
24
+ onPageUp, onPageDown, onHome, onEnd
25
+ });
26
+ // Update refs on every render (but don't cause re-render)
27
+ callbacksRef.current = {
28
+ onSubmit, onCtrlC, onCtrlL, onCtrlP, onEscape,
29
+ onToggleToolExpand, onToggleThinking,
30
+ onPageUp, onPageDown, onHome, onEnd
31
+ };
32
+ const disabledRef = useRef(disabled);
33
+ disabledRef.current = disabled;
34
+ useInput((input, key) => {
35
+ const cb = callbacksRef.current;
36
+ // Global shortcuts (always active)
37
+ if (key.ctrl && input === 'c') {
38
+ cb.onCtrlC?.();
39
+ return;
40
+ }
41
+ if (key.ctrl && input === 'l') {
42
+ cb.onCtrlL?.();
43
+ return;
44
+ }
45
+ if (key.ctrl && input === 'p') {
46
+ cb.onCtrlP?.();
47
+ return;
48
+ }
49
+ if (key.escape) {
50
+ cb.onEscape?.();
51
+ return;
52
+ }
53
+ // Alt+T / Option+T (produces 'dagger' on macOS)
54
+ if (input === '\u2020' || (key.meta && input === 't')) {
55
+ cb.onToggleToolExpand?.();
56
+ return;
57
+ }
58
+ // Alt+O / Option+O (produces 'oslash' on macOS)
59
+ if (input === '\u00f8' || (key.meta && input === 'o')) {
60
+ cb.onToggleThinking?.();
61
+ return;
62
+ }
63
+ // Scroll navigation (always active)
64
+ if (key.pageUp) {
65
+ cb.onPageUp?.();
66
+ return;
67
+ }
68
+ if (key.pageDown) {
69
+ cb.onPageDown?.();
70
+ return;
71
+ }
72
+ // Ctrl+Home (go to first message) and Ctrl+End (go to last message)
73
+ if (key.ctrl && key.upArrow) {
74
+ cb.onHome?.();
75
+ return;
76
+ }
77
+ if (key.ctrl && key.downArrow) {
78
+ cb.onEnd?.();
79
+ return;
80
+ }
81
+ // Input handling (only when not disabled)
82
+ if (disabledRef.current)
83
+ return;
84
+ // Submit on Enter
85
+ if (key.return && value.trim()) {
86
+ cb.onSubmit(value);
87
+ setValue('');
88
+ setCursorPos(0);
89
+ return;
90
+ }
91
+ // Backspace
92
+ if (key.backspace || key.delete) {
93
+ if (cursorPos > 0) {
94
+ setValue(v => v.slice(0, cursorPos - 1) + v.slice(cursorPos));
95
+ setCursorPos(p => p - 1);
96
+ }
97
+ return;
98
+ }
99
+ // Arrow keys
100
+ if (key.leftArrow) {
101
+ setCursorPos(p => Math.max(0, p - 1));
102
+ return;
103
+ }
104
+ if (key.rightArrow) {
105
+ setCursorPos(p => Math.min(value.length, p + 1));
106
+ return;
107
+ }
108
+ // Ctrl+A: start of line
109
+ if (key.ctrl && input === 'a') {
110
+ setCursorPos(0);
111
+ return;
112
+ }
113
+ // Ctrl+E: end of line
114
+ if (key.ctrl && input === 'e') {
115
+ setCursorPos(value.length);
116
+ return;
117
+ }
118
+ // Ctrl+U: clear line
119
+ if (key.ctrl && input === 'u') {
120
+ setValue('');
121
+ setCursorPos(0);
122
+ return;
123
+ }
124
+ // Regular character input
125
+ if (input && !key.ctrl && !key.meta) {
126
+ setValue(v => v.slice(0, cursorPos) + input + v.slice(cursorPos));
127
+ setCursorPos(p => p + input.length);
128
+ }
129
+ });
130
+ return React.createElement(Box, {
131
+ borderStyle: 'round',
132
+ borderColor: disabledRef.current ? '#666' : borderColor,
133
+ paddingX: 1,
134
+ }, React.createElement(Text, { color: textColor, bold: true }, '> '), React.createElement(Text, {}, value.slice(0, cursorPos)), !disabled && React.createElement(Text, { backgroundColor: cursorColor, color: '#1a1a2e' }, value[cursorPos] ?? ' '), React.createElement(Text, {}, value.slice(cursorPos + 1)));
135
+ }, (prevProps, nextProps) => {
136
+ // Custom comparison: only re-render if visual props change
137
+ // Callbacks are stored in refs so we don't care if they change
138
+ return prevProps.disabled === nextProps.disabled &&
139
+ prevProps.borderColor === nextProps.borderColor &&
140
+ prevProps.textColor === nextProps.textColor &&
141
+ prevProps.cursorColor === nextProps.cursorColor;
142
+ });
143
+ export default MemoizedInputArea;
144
+ //# sourceMappingURL=InputArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputArea.js","sourceRoot":"","sources":["../../../../src/tui/components/InputArea.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAsB1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,EAC/D,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EACX,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,GACU;IACf,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE9C,2EAA2E;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC;QAC1B,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;QAC7C,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK;KACpC,CAAC,CAAC;IACH,0DAA0D;IAC1D,YAAY,CAAC,OAAO,GAAG;QACrB,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;QAC7C,kBAAkB,EAAE,gBAAgB;QACpC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK;KACpC,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;QAChC,mCAAmC;QACnC,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,gDAAgD;QAChD,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YACtD,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,gDAAgD;QAChD,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YACtD,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,oEAAoE;QACpE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9B,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,IAAI,WAAW,CAAC,OAAO;YAAE,OAAO;QAEhC,kBAAkB;QAClB,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnB,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,YAAY;QACZ,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC9D,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO;QACT,CAAC;QAED,aAAa;QACb,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAClE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;QAC9B,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;QACvD,QAAQ,EAAE,CAAC;KACZ,EACC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EACjE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EACxD,CAAC,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,EACvF,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CACxB,EACD,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;IAC1B,2DAA2D;IAC3D,+DAA+D;IAC/D,OAAO,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ;QACzC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW;QAC/C,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS;QAC3C,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * MessageItem Component
3
+ *
4
+ * Memoized message renderer that prevents re-renders when parent state changes.
5
+ * Uses Ink's Box and Text components for terminal rendering.
6
+ */
7
+ import React from 'react';
8
+ import type { ThemeColors } from '../types.js';
9
+ /**
10
+ * Message data structure for TUI display.
11
+ */
12
+ export interface TUIMessage {
13
+ id: string;
14
+ role: 'user' | 'assistant' | 'error' | 'system';
15
+ content: string;
16
+ ts: Date;
17
+ }
18
+ export interface MessageItemProps {
19
+ msg: TUIMessage;
20
+ colors: ThemeColors;
21
+ }
22
+ /**
23
+ * Memoized message item - prevents re-render when parent state changes.
24
+ * Used within Ink's <Static> component for flicker-free rendering.
25
+ */
26
+ export declare const MessageItem: React.NamedExoticComponent<MessageItemProps>;
27
+ export default MessageItem;
28
+ //# sourceMappingURL=MessageItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/MessageItem.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,IAAI,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,8CAsBtB,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * MessageItem Component
3
+ *
4
+ * Memoized message renderer that prevents re-renders when parent state changes.
5
+ * Uses Ink's Box and Text components for terminal rendering.
6
+ */
7
+ import React, { memo } from 'react';
8
+ import { Box, Text } from 'ink';
9
+ /**
10
+ * Memoized message item - prevents re-render when parent state changes.
11
+ * Used within Ink's <Static> component for flicker-free rendering.
12
+ */
13
+ export const MessageItem = memo(function MessageItem({ msg, colors }) {
14
+ const isUser = msg.role === 'user';
15
+ const isAssistant = msg.role === 'assistant';
16
+ const isError = msg.role === 'error';
17
+ const icon = isUser ? '>' : isAssistant ? '*' : isError ? 'x' : 'o';
18
+ const roleColor = isUser ? '#87CEEB' : isAssistant ? '#98FB98' : isError ? '#FF6B6B' : '#FFD700';
19
+ const label = isUser ? 'You' : isAssistant ? 'Assistant' : isError ? 'Error' : 'System';
20
+ return React.createElement(Box, { marginBottom: 1, flexDirection: 'column' },
21
+ // Role header
22
+ React.createElement(Box, { gap: 1 }, React.createElement(Text, { color: roleColor, bold: true }, icon), React.createElement(Text, { color: roleColor, bold: true }, label), React.createElement(Text, { color: colors.textMuted, dimColor: true }, ` ${msg.ts.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })}`)),
23
+ // Message content
24
+ React.createElement(Box, { marginLeft: 2 }, React.createElement(Text, { wrap: 'wrap', color: isError ? colors.error : colors.text }, msg.content)));
25
+ });
26
+ export default MessageItem;
27
+ //# sourceMappingURL=MessageItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageItem.js","sourceRoot":"","sources":["../../../../src/tui/components/MessageItem.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAkBhC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAoB;IACpF,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;IACnC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAExF,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE;IAC1E,cAAc;IACd,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EACjC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EACjE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAClE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EACnE,IAAI,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CACjF,CACF;IACD,kBAAkB;IAClB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EACxC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CACtG,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * ScrollableBox Component
3
+ *
4
+ * A virtualized scrollable container that supports keyboard navigation
5
+ * and renders only visible items for performance.
6
+ */
7
+ import { type ReactNode } from 'react';
8
+ import type { Theme } from '../theme/index.js';
9
+ export interface ScrollableBoxProps {
10
+ theme: Theme;
11
+ /** Total number of items in the list */
12
+ itemCount: number;
13
+ /** Height of each item in lines (default: 1) */
14
+ itemHeight?: number;
15
+ /** Maximum visible height in lines */
16
+ maxHeight: number;
17
+ /** Render function for each item */
18
+ renderItem: (index: number) => ReactNode;
19
+ /** Whether this component has focus */
20
+ focused?: boolean;
21
+ /** Callback when scroll position changes */
22
+ onScroll?: (scrollTop: number) => void;
23
+ /** Auto-scroll to bottom when content changes */
24
+ autoScrollToBottom?: boolean;
25
+ /** Show scroll indicators */
26
+ showScrollIndicators?: boolean;
27
+ /** Buffer of extra items to render above/below viewport */
28
+ overscan?: number;
29
+ }
30
+ /**
31
+ * ScrollableBox provides virtualized scrolling for large lists.
32
+ *
33
+ * Features:
34
+ * - Renders only visible items plus overscan buffer
35
+ * - Keyboard navigation: Page Up/Down, Arrow Up/Down, Home/End
36
+ * - Auto-scroll to bottom for chat-like interfaces
37
+ * - Visual scroll indicators showing position
38
+ */
39
+ export declare const ScrollableBox: import("react").NamedExoticComponent<ScrollableBoxProps>;
40
+ export default ScrollableBox;
41
+ //# sourceMappingURL=ScrollableBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollableBox.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/ScrollableBox.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACzC,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,0DAyJxB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * ScrollableBox Component
4
+ *
5
+ * A virtualized scrollable container that supports keyboard navigation
6
+ * and renders only visible items for performance.
7
+ */
8
+ import { useState, useCallback, useEffect, memo } from 'react';
9
+ import { Box, Text, useInput } from 'ink';
10
+ /**
11
+ * ScrollableBox provides virtualized scrolling for large lists.
12
+ *
13
+ * Features:
14
+ * - Renders only visible items plus overscan buffer
15
+ * - Keyboard navigation: Page Up/Down, Arrow Up/Down, Home/End
16
+ * - Auto-scroll to bottom for chat-like interfaces
17
+ * - Visual scroll indicators showing position
18
+ */
19
+ export const ScrollableBox = memo(function ScrollableBox({ theme, itemCount, itemHeight = 1, maxHeight, renderItem, focused = false, onScroll, autoScrollToBottom = true, showScrollIndicators = true, overscan = 2, }) {
20
+ const [scrollTop, setScrollTop] = useState(0);
21
+ const [userScrolled, setUserScrolled] = useState(false);
22
+ // Calculate visible range
23
+ const visibleItems = Math.floor(maxHeight / itemHeight);
24
+ const maxScrollTop = Math.max(0, itemCount - visibleItems);
25
+ // Calculate which items to render (with overscan)
26
+ const startIndex = Math.max(0, scrollTop - overscan);
27
+ const endIndex = Math.min(itemCount, scrollTop + visibleItems + overscan);
28
+ // Auto-scroll to bottom when new items are added (if user hasn't manually scrolled)
29
+ useEffect(() => {
30
+ if (autoScrollToBottom && !userScrolled) {
31
+ const newScrollTop = Math.max(0, itemCount - visibleItems);
32
+ setScrollTop(newScrollTop);
33
+ onScroll?.(newScrollTop);
34
+ }
35
+ }, [itemCount, autoScrollToBottom, userScrolled, visibleItems, onScroll]);
36
+ // Reset user scroll flag when scrolled to bottom
37
+ useEffect(() => {
38
+ if (scrollTop >= maxScrollTop) {
39
+ setUserScrolled(false);
40
+ }
41
+ }, [scrollTop, maxScrollTop]);
42
+ // Handle keyboard navigation
43
+ const handleScroll = useCallback((delta) => {
44
+ setUserScrolled(true);
45
+ setScrollTop(prev => {
46
+ const newValue = Math.max(0, Math.min(maxScrollTop, prev + delta));
47
+ onScroll?.(newValue);
48
+ return newValue;
49
+ });
50
+ }, [maxScrollTop, onScroll]);
51
+ useInput((input, key) => {
52
+ if (!focused)
53
+ return;
54
+ // Page Up/Down
55
+ if (key.pageUp) {
56
+ handleScroll(-visibleItems);
57
+ return;
58
+ }
59
+ if (key.pageDown) {
60
+ handleScroll(visibleItems);
61
+ return;
62
+ }
63
+ // Arrow Up/Down
64
+ if (key.upArrow) {
65
+ handleScroll(-1);
66
+ return;
67
+ }
68
+ if (key.downArrow) {
69
+ handleScroll(1);
70
+ return;
71
+ }
72
+ // Home (Ctrl+Home or 'g' for go-to-top like vim)
73
+ if ((key.ctrl && input === 'g') || input === 'g') {
74
+ setUserScrolled(true);
75
+ setScrollTop(0);
76
+ onScroll?.(0);
77
+ return;
78
+ }
79
+ // End (Ctrl+G or 'G' for go-to-bottom like vim)
80
+ if ((key.ctrl && input === 'G') || (key.shift && input === 'G')) {
81
+ setUserScrolled(false);
82
+ setScrollTop(maxScrollTop);
83
+ onScroll?.(maxScrollTop);
84
+ return;
85
+ }
86
+ }, { isActive: focused });
87
+ // Calculate scroll indicator position
88
+ const scrollPercentage = maxScrollTop > 0 ? scrollTop / maxScrollTop : 1;
89
+ const indicatorPosition = Math.round(scrollPercentage * (visibleItems - 1));
90
+ // Items hidden above/below
91
+ const hiddenAbove = scrollTop;
92
+ const hiddenBelow = Math.max(0, itemCount - scrollTop - visibleItems);
93
+ // Render items
94
+ const items = [];
95
+ for (let i = startIndex; i < endIndex; i++) {
96
+ items.push(_jsx(Box, { flexDirection: "column", children: renderItem(i) }, i));
97
+ }
98
+ return (_jsxs(Box, { flexDirection: "column", children: [showScrollIndicators && hiddenAbove > 0 && (_jsx(Box, { justifyContent: "center", marginBottom: 0, children: _jsxs(Text, { color: theme.colors.textMuted, children: ["--- ", hiddenAbove, " more above (Page Up to scroll) ---"] }) })), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { flexDirection: "column", flexGrow: 1, children: items.length === 0 ? (_jsx(Text, { color: theme.colors.textMuted, children: "No items" })) : (items) }), showScrollIndicators && itemCount > visibleItems && (_jsx(Box, { flexDirection: "column", marginLeft: 1, width: 1, children: Array.from({ length: visibleItems }).map((_, i) => (_jsx(Text, { color: i === indicatorPosition ? theme.colors.primary : theme.colors.border, children: i === indicatorPosition ? '█' : '│' }, i))) }))] }), showScrollIndicators && hiddenBelow > 0 && (_jsx(Box, { justifyContent: "center", marginTop: 0, children: _jsxs(Text, { color: theme.colors.textMuted, children: ["--- ", hiddenBelow, " more below (Page Down to scroll) ---"] }) }))] }));
99
+ });
100
+ export default ScrollableBox;
101
+ //# sourceMappingURL=ScrollableBox.js.map