@qduc/term2 0.7.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/dist/app.d.ts +3 -3
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +141 -79
  4. package/dist/app.js.map +1 -1
  5. package/dist/app.large-uncached-warning.test.js.map +1 -1
  6. package/dist/cli.integration.test.js +41 -1
  7. package/dist/cli.integration.test.js.map +1 -1
  8. package/dist/cli.js +28 -10
  9. package/dist/cli.js.map +1 -1
  10. package/dist/components/BottomArea.d.ts +5 -1
  11. package/dist/components/BottomArea.d.ts.map +1 -1
  12. package/dist/components/BottomArea.js +15 -6
  13. package/dist/components/BottomArea.js.map +1 -1
  14. package/dist/components/BottomArea.test.js +36 -4
  15. package/dist/components/BottomArea.test.js.map +1 -1
  16. package/dist/components/Common/MenuContainer.d.ts +1 -3
  17. package/dist/components/Common/MenuContainer.d.ts.map +1 -1
  18. package/dist/components/Common/MenuContainer.js +1 -13
  19. package/dist/components/Common/MenuContainer.js.map +1 -1
  20. package/dist/components/Input/input-width.d.ts +2 -1
  21. package/dist/components/Input/input-width.d.ts.map +1 -1
  22. package/dist/components/Input/input-width.js +6 -2
  23. package/dist/components/Input/input-width.js.map +1 -1
  24. package/dist/components/InputBox.d.ts +1 -0
  25. package/dist/components/InputBox.d.ts.map +1 -1
  26. package/dist/components/InputBox.js +20 -7
  27. package/dist/components/InputBox.js.map +1 -1
  28. package/dist/components/InputBox.test.js +44 -0
  29. package/dist/components/InputBox.test.js.map +1 -1
  30. package/dist/components/LargeUncachedConfirmationPrompt.d.ts +9 -0
  31. package/dist/components/LargeUncachedConfirmationPrompt.d.ts.map +1 -0
  32. package/dist/components/LargeUncachedConfirmationPrompt.js +44 -0
  33. package/dist/components/LargeUncachedConfirmationPrompt.js.map +1 -0
  34. package/dist/components/LargeUncachedConfirmationPrompt.test.d.ts +2 -0
  35. package/dist/components/LargeUncachedConfirmationPrompt.test.d.ts.map +1 -0
  36. package/dist/components/LargeUncachedConfirmationPrompt.test.js +47 -0
  37. package/dist/components/LargeUncachedConfirmationPrompt.test.js.map +1 -0
  38. package/dist/components/MessageList.d.ts +9 -0
  39. package/dist/components/MessageList.d.ts.map +1 -1
  40. package/dist/components/MessageList.js +29 -3
  41. package/dist/components/MessageList.js.map +1 -1
  42. package/dist/components/MessageList.test.js +28 -1
  43. package/dist/components/MessageList.test.js.map +1 -1
  44. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  45. package/dist/components/ModelSelectionMenu.debug.test.d.ts +2 -0
  46. package/dist/components/ModelSelectionMenu.debug.test.d.ts.map +1 -0
  47. package/dist/components/ModelSelectionMenu.debug.test.js.map +1 -0
  48. package/dist/components/ModelSelectionMenu.js +1 -4
  49. package/dist/components/ModelSelectionMenu.js.map +1 -1
  50. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  51. package/dist/components/PathSelectionMenu.js +1 -7
  52. package/dist/components/PathSelectionMenu.js.map +1 -1
  53. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  54. package/dist/components/SettingsSelectionMenu.js +1 -12
  55. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  56. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  57. package/dist/components/SettingsValueSelectionMenu.js +1 -8
  58. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  59. package/dist/components/StatusBar.d.ts.map +1 -1
  60. package/dist/components/StatusBar.js +19 -14
  61. package/dist/components/StatusBar.js.map +1 -1
  62. package/dist/components/StatusBar.test.js +12 -4
  63. package/dist/components/StatusBar.test.js.map +1 -1
  64. package/dist/components/UndoSelectionMenu.d.ts.map +1 -1
  65. package/dist/components/UndoSelectionMenu.js +1 -1
  66. package/dist/components/UndoSelectionMenu.js.map +1 -1
  67. package/dist/context/InputContext.d.ts +5 -0
  68. package/dist/context/InputContext.d.ts.map +1 -1
  69. package/dist/context/InputContext.images.test.d.ts +2 -0
  70. package/dist/context/InputContext.images.test.d.ts.map +1 -0
  71. package/dist/context/InputContext.images.test.js +56 -0
  72. package/dist/context/InputContext.images.test.js.map +1 -0
  73. package/dist/context/InputContext.js +3 -2
  74. package/dist/context/InputContext.js.map +1 -1
  75. package/dist/hooks/use-conversation.d.ts +8 -1
  76. package/dist/hooks/use-conversation.d.ts.map +1 -1
  77. package/dist/hooks/use-conversation.js +18 -3
  78. package/dist/hooks/use-conversation.js.map +1 -1
  79. package/dist/hooks/use-conversation.resume.test.js +26 -3
  80. package/dist/hooks/use-conversation.resume.test.js.map +1 -1
  81. package/dist/hooks/use-path-completion.test.d.ts +2 -0
  82. package/dist/hooks/use-path-completion.test.d.ts.map +1 -0
  83. package/dist/hooks/use-path-completion.test.js +54 -0
  84. package/dist/hooks/use-path-completion.test.js.map +1 -0
  85. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  86. package/dist/hooks/use-settings-completion.js +8 -1
  87. package/dist/hooks/use-settings-completion.js.map +1 -1
  88. package/dist/hooks/use-settings-completion.test.js +4 -0
  89. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  90. package/dist/hooks/use-terminal-width.d.ts +2 -1
  91. package/dist/hooks/use-terminal-width.d.ts.map +1 -1
  92. package/dist/hooks/use-terminal-width.js +2 -1
  93. package/dist/hooks/use-terminal-width.js.map +1 -1
  94. package/dist/inspect_zod.d.ts +2 -0
  95. package/dist/inspect_zod.d.ts.map +1 -0
  96. package/dist/inspect_zod.js +16 -0
  97. package/dist/inspect_zod.js.map +1 -0
  98. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  99. package/dist/lib/openai-agent-client.js +43 -23
  100. package/dist/lib/openai-agent-client.js.map +1 -1
  101. package/dist/lib/tool-execution-limiter.d.ts +16 -0
  102. package/dist/lib/tool-execution-limiter.d.ts.map +1 -0
  103. package/dist/lib/tool-execution-limiter.js +112 -0
  104. package/dist/lib/tool-execution-limiter.js.map +1 -0
  105. package/dist/lib/tool-execution-limiter.test.d.ts +2 -0
  106. package/dist/lib/tool-execution-limiter.test.d.ts.map +1 -0
  107. package/dist/lib/tool-execution-limiter.test.js +70 -0
  108. package/dist/lib/tool-execution-limiter.test.js.map +1 -0
  109. package/dist/lib/tool-invoke.test.js +8 -8
  110. package/dist/lib/tool-invoke.test.js.map +1 -1
  111. package/dist/prompts/gpt-5-modern.md +105 -91
  112. package/dist/prompts/gpt-5.5.md +106 -0
  113. package/dist/prompts/gpt-5.md +7 -4
  114. package/dist/prompts/orchestrator.md +2 -5
  115. package/dist/prompts/prompt-profiles.js +1 -1
  116. package/dist/prompts/prompt-profiles.js.map +1 -1
  117. package/dist/prompts/prompt-profiles.ts +1 -1
  118. package/dist/prompts/prompt-selector.test.js +1 -1
  119. package/dist/prompts/prompt-selector.test.js.map +1 -1
  120. package/dist/prompts/prompt-selector.test.ts +1 -1
  121. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +0 -2
  122. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  123. package/dist/providers/ai-sdk-openai-compatible.provider.js +4 -8
  124. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  125. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +1 -119
  126. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  127. package/dist/providers/codex-responses-model.d.ts +1 -0
  128. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  129. package/dist/providers/codex-responses-model.js +50 -4
  130. package/dist/providers/codex-responses-model.js.map +1 -1
  131. package/dist/providers/codex-responses-model.test.js +127 -0
  132. package/dist/providers/codex-responses-model.test.js.map +1 -1
  133. package/dist/providers/fallback-responses-model.d.ts.map +1 -1
  134. package/dist/providers/fallback-responses-model.js +9 -1
  135. package/dist/providers/fallback-responses-model.js.map +1 -1
  136. package/dist/providers/fallback-responses-model.test.js +29 -0
  137. package/dist/providers/fallback-responses-model.test.js.map +1 -1
  138. package/dist/providers/openai-compatible-behavior-gate.test.js +1 -42
  139. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
  140. package/dist/providers/openai-compatible-lazy.d.ts +4 -0
  141. package/dist/providers/openai-compatible-lazy.d.ts.map +1 -0
  142. package/dist/providers/openai-compatible-lazy.js +54 -0
  143. package/dist/providers/openai-compatible-lazy.js.map +1 -0
  144. package/dist/providers/openai-compatible.provider.test.js +31 -0
  145. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  146. package/dist/providers/openai.provider.test.d.ts +2 -0
  147. package/dist/providers/openai.provider.test.d.ts.map +1 -0
  148. package/dist/providers/openai.provider.test.js +22 -0
  149. package/dist/providers/openai.provider.test.js.map +1 -0
  150. package/dist/services/conversation-log-events.d.ts +3 -0
  151. package/dist/services/conversation-log-events.d.ts.map +1 -1
  152. package/dist/services/conversation-log-events.js.map +1 -1
  153. package/dist/services/conversation-log-writer.d.ts.map +1 -1
  154. package/dist/services/conversation-log-writer.js +1 -2
  155. package/dist/services/conversation-log-writer.js.map +1 -1
  156. package/dist/services/conversation-persistence.d.ts +1 -1
  157. package/dist/services/conversation-persistence.d.ts.map +1 -1
  158. package/dist/services/conversation-persistence.js +53 -4
  159. package/dist/services/conversation-persistence.js.map +1 -1
  160. package/dist/services/conversation-persistence.test.js +196 -1
  161. package/dist/services/conversation-persistence.test.js.map +1 -1
  162. package/dist/services/conversation-replay.d.ts.map +1 -1
  163. package/dist/services/conversation-replay.js +19 -4
  164. package/dist/services/conversation-replay.js.map +1 -1
  165. package/dist/services/conversation-replay.test.js +56 -0
  166. package/dist/services/conversation-replay.test.js.map +1 -1
  167. package/dist/services/conversation-session.d.ts +1 -0
  168. package/dist/services/conversation-session.d.ts.map +1 -1
  169. package/dist/services/conversation-session.js +20 -1
  170. package/dist/services/conversation-session.js.map +1 -1
  171. package/dist/services/conversation-store.merge-modes.test.d.ts.map +1 -1
  172. package/dist/services/conversation-store.merge-modes.test.js +160 -1
  173. package/dist/services/conversation-store.merge-modes.test.js.map +1 -1
  174. package/dist/services/large-uncached-input-guard.d.ts.map +1 -1
  175. package/dist/services/large-uncached-input-guard.js +4 -3
  176. package/dist/services/large-uncached-input-guard.js.map +1 -1
  177. package/dist/services/large-uncached-input-guard.test.js +22 -0
  178. package/dist/services/large-uncached-input-guard.test.js.map +1 -1
  179. package/dist/services/notification-service.d.ts +22 -0
  180. package/dist/services/notification-service.d.ts.map +1 -0
  181. package/dist/services/notification-service.js +68 -0
  182. package/dist/services/notification-service.js.map +1 -0
  183. package/dist/services/notification-service.test.d.ts +2 -0
  184. package/dist/services/notification-service.test.d.ts.map +1 -0
  185. package/dist/services/notification-service.test.js +78 -0
  186. package/dist/services/notification-service.test.js.map +1 -0
  187. package/dist/services/provider-traffic.d.ts.map +1 -1
  188. package/dist/services/provider-traffic.js +1 -0
  189. package/dist/services/provider-traffic.js.map +1 -1
  190. package/dist/services/provider-traffic.test.js +51 -0
  191. package/dist/services/provider-traffic.test.js.map +1 -1
  192. package/dist/services/settings-schema.d.ts +16 -1
  193. package/dist/services/settings-schema.d.ts.map +1 -1
  194. package/dist/services/settings-schema.js +42 -22
  195. package/dist/services/settings-schema.js.map +1 -1
  196. package/dist/services/settings-schema.test.js +10 -0
  197. package/dist/services/settings-schema.test.js.map +1 -1
  198. package/dist/services/settings-service.js +2 -2
  199. package/dist/services/settings-service.js.map +1 -1
  200. package/dist/services/settings-sources.d.ts.map +1 -1
  201. package/dist/services/settings-sources.js +1 -0
  202. package/dist/services/settings-sources.js.map +1 -1
  203. package/dist/services/settings-sources.test.js +2 -0
  204. package/dist/services/settings-sources.test.js.map +1 -1
  205. package/dist/tools/code-context.js +1 -1
  206. package/dist/tools/code-context.js.map +1 -1
  207. package/dist/tools/code-context.test.js +278 -0
  208. package/dist/tools/code-context.test.js.map +1 -1
  209. package/dist/tools/language-providers.d.ts.map +1 -1
  210. package/dist/tools/language-providers.js +379 -0
  211. package/dist/tools/language-providers.js.map +1 -1
  212. package/dist/tools/languages/cpp.d.ts +8 -0
  213. package/dist/tools/languages/cpp.d.ts.map +1 -0
  214. package/dist/tools/languages/cpp.js +306 -0
  215. package/dist/tools/languages/cpp.js.map +1 -0
  216. package/dist/tools/languages/csharp.d.ts +5 -0
  217. package/dist/tools/languages/csharp.d.ts.map +1 -0
  218. package/dist/tools/languages/csharp.js +225 -0
  219. package/dist/tools/languages/csharp.js.map +1 -0
  220. package/dist/tools/languages/go.d.ts +7 -0
  221. package/dist/tools/languages/go.d.ts.map +1 -0
  222. package/dist/tools/languages/go.js +223 -0
  223. package/dist/tools/languages/go.js.map +1 -0
  224. package/dist/tools/languages/index.d.ts +6 -0
  225. package/dist/tools/languages/index.d.ts.map +1 -0
  226. package/dist/tools/languages/index.js +32 -0
  227. package/dist/tools/languages/index.js.map +1 -0
  228. package/dist/tools/languages/java.d.ts +5 -0
  229. package/dist/tools/languages/java.d.ts.map +1 -0
  230. package/dist/tools/languages/java.js +183 -0
  231. package/dist/tools/languages/java.js.map +1 -0
  232. package/dist/tools/languages/json.d.ts +3 -0
  233. package/dist/tools/languages/json.d.ts.map +1 -0
  234. package/dist/tools/languages/json.js +40 -0
  235. package/dist/tools/languages/json.js.map +1 -0
  236. package/dist/tools/languages/php.d.ts +8 -0
  237. package/dist/tools/languages/php.d.ts.map +1 -0
  238. package/dist/tools/languages/php.js +139 -0
  239. package/dist/tools/languages/php.js.map +1 -0
  240. package/dist/tools/languages/python.d.ts +7 -0
  241. package/dist/tools/languages/python.d.ts.map +1 -0
  242. package/dist/tools/languages/python.js +189 -0
  243. package/dist/tools/languages/python.js.map +1 -0
  244. package/dist/tools/languages/ruby.d.ts +8 -0
  245. package/dist/tools/languages/ruby.d.ts.map +1 -0
  246. package/dist/tools/languages/ruby.js +94 -0
  247. package/dist/tools/languages/ruby.js.map +1 -0
  248. package/dist/tools/languages/rust.d.ts +7 -0
  249. package/dist/tools/languages/rust.d.ts.map +1 -0
  250. package/dist/tools/languages/rust.js +186 -0
  251. package/dist/tools/languages/rust.js.map +1 -0
  252. package/dist/tools/languages/types.d.ts +39 -0
  253. package/dist/tools/languages/types.d.ts.map +1 -0
  254. package/dist/tools/languages/types.js +2 -0
  255. package/dist/tools/languages/types.js.map +1 -0
  256. package/dist/tools/languages/typescript.d.ts +4 -0
  257. package/dist/tools/languages/typescript.d.ts.map +1 -0
  258. package/dist/tools/languages/typescript.js +94 -0
  259. package/dist/tools/languages/typescript.js.map +1 -0
  260. package/dist/tools/languages/utils.d.ts +14 -0
  261. package/dist/tools/languages/utils.d.ts.map +1 -0
  262. package/dist/tools/languages/utils.js +73 -0
  263. package/dist/tools/languages/utils.js.map +1 -0
  264. package/dist/tools/shell.d.ts.map +1 -1
  265. package/dist/tools/shell.js +13 -1
  266. package/dist/tools/shell.js.map +1 -1
  267. package/dist/tools/web-fetch.d.ts.map +1 -1
  268. package/dist/tools/web-fetch.js +1 -1
  269. package/dist/tools/web-fetch.js.map +1 -1
  270. package/dist/utils/clipboard.d.ts +2 -1
  271. package/dist/utils/clipboard.d.ts.map +1 -1
  272. package/dist/utils/clipboard.js +2 -35
  273. package/dist/utils/clipboard.js.map +1 -1
  274. package/dist/utils/project-tree.d.ts +14 -0
  275. package/dist/utils/project-tree.d.ts.map +1 -0
  276. package/dist/utils/project-tree.js +111 -0
  277. package/dist/utils/project-tree.js.map +1 -0
  278. package/dist/utils/project-tree.test.d.ts +2 -0
  279. package/dist/utils/project-tree.test.d.ts.map +1 -0
  280. package/dist/utils/project-tree.test.js +149 -0
  281. package/dist/utils/project-tree.test.js.map +1 -0
  282. package/dist/utils/settings-command.d.ts.map +1 -1
  283. package/dist/utils/settings-command.js +11 -0
  284. package/dist/utils/settings-command.js.map +1 -1
  285. package/dist/utils/terminal-clear.d.ts +7 -0
  286. package/dist/utils/terminal-clear.d.ts.map +1 -0
  287. package/dist/utils/terminal-clear.js +5 -0
  288. package/dist/utils/terminal-clear.js.map +1 -0
  289. package/dist/utils/terminal-clear.test.d.ts +2 -0
  290. package/dist/utils/terminal-clear.test.d.ts.map +1 -0
  291. package/dist/utils/terminal-clear.test.js +13 -0
  292. package/dist/utils/terminal-clear.test.js.map +1 -0
  293. package/dist/utils/token-usage.d.ts +3 -1
  294. package/dist/utils/token-usage.d.ts.map +1 -1
  295. package/dist/utils/token-usage.js +4 -2
  296. package/dist/utils/token-usage.js.map +1 -1
  297. package/dist/utils/tty-osc.d.ts +27 -0
  298. package/dist/utils/tty-osc.d.ts.map +1 -0
  299. package/dist/utils/tty-osc.js +66 -0
  300. package/dist/utils/tty-osc.js.map +1 -0
  301. package/dist/utils/tty-osc.test.d.ts +2 -0
  302. package/dist/utils/tty-osc.test.d.ts.map +1 -0
  303. package/dist/utils/tty-osc.test.js +130 -0
  304. package/dist/utils/tty-osc.test.js.map +1 -0
  305. package/package.json +2 -2
  306. package/readme.md +2 -2
  307. package/dist/agent.lite-mode.test.d.ts +0 -2
  308. package/dist/agent.lite-mode.test.d.ts.map +0 -1
  309. package/dist/agent.lite-mode.test.js +0 -39
  310. package/dist/agent.lite-mode.test.js.map +0 -1
  311. package/dist/app.large-uncached-warning.test.js +0 -15
  312. package/dist/components/ApprovalPrompt.test.d.ts +0 -2
  313. package/dist/components/ApprovalPrompt.test.d.ts.map +0 -1
  314. package/dist/components/ApprovalPrompt.test.js +0 -23
  315. package/dist/components/ApprovalPrompt.test.js.map +0 -1
  316. package/dist/components/LiveResponse.test.d.ts +0 -2
  317. package/dist/components/LiveResponse.test.d.ts.map +0 -1
  318. package/dist/components/LiveResponse.test.js +0 -13
  319. package/dist/components/LiveResponse.test.js.map +0 -1
  320. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
  321. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
  322. package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
  323. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
  324. package/dist/components/TextInput.d.ts +0 -42
  325. package/dist/components/TextInput.d.ts.map +0 -1
  326. package/dist/components/TextInput.js +0 -398
  327. package/dist/components/TextInput.js.map +0 -1
  328. package/dist/components/TextInput.test.d.ts +0 -2
  329. package/dist/components/TextInput.test.d.ts.map +0 -1
  330. package/dist/components/TextInput.test.js +0 -75
  331. package/dist/components/TextInput.test.js.map +0 -1
  332. package/dist/debug_ask_mentor.d.ts +0 -2
  333. package/dist/debug_ask_mentor.d.ts.map +0 -1
  334. package/dist/debug_ask_mentor.js +0 -73
  335. package/dist/debug_ask_mentor.js.map +0 -1
  336. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +0 -2
  337. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +0 -1
  338. package/dist/hooks/use-conversation.max-turns-undo.test.js +0 -118
  339. package/dist/hooks/use-conversation.max-turns-undo.test.js.map +0 -1
  340. package/dist/lib/shell.d.ts +0 -7
  341. package/dist/lib/shell.d.ts.map +0 -1
  342. package/dist/lib/shell.js +0 -56
  343. package/dist/lib/shell.js.map +0 -1
  344. package/dist/modes/companion/command-index.d.ts +0 -26
  345. package/dist/modes/companion/command-index.d.ts.map +0 -1
  346. package/dist/modes/companion/command-index.js +0 -50
  347. package/dist/modes/companion/command-index.js.map +0 -1
  348. package/dist/modes/companion/command-index.test.d.ts +0 -2
  349. package/dist/modes/companion/command-index.test.d.ts.map +0 -1
  350. package/dist/modes/companion/command-index.test.js +0 -86
  351. package/dist/modes/companion/command-index.test.js.map +0 -1
  352. package/dist/modes/companion/companion-app.d.ts +0 -12
  353. package/dist/modes/companion/companion-app.d.ts.map +0 -1
  354. package/dist/modes/companion/companion-app.js +0 -297
  355. package/dist/modes/companion/companion-app.js.map +0 -1
  356. package/dist/modes/companion/companion-session.d.ts +0 -63
  357. package/dist/modes/companion/companion-session.d.ts.map +0 -1
  358. package/dist/modes/companion/companion-session.js +0 -146
  359. package/dist/modes/companion/companion-session.js.map +0 -1
  360. package/dist/modes/companion/companion-session.test.d.ts +0 -2
  361. package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
  362. package/dist/modes/companion/companion-session.test.js +0 -28
  363. package/dist/modes/companion/companion-session.test.js.map +0 -1
  364. package/dist/modes/companion/components/status-bar.d.ts +0 -13
  365. package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
  366. package/dist/modes/companion/components/status-bar.js +0 -26
  367. package/dist/modes/companion/components/status-bar.js.map +0 -1
  368. package/dist/modes/companion/context-buffer.d.ts +0 -65
  369. package/dist/modes/companion/context-buffer.d.ts.map +0 -1
  370. package/dist/modes/companion/context-buffer.js +0 -156
  371. package/dist/modes/companion/context-buffer.js.map +0 -1
  372. package/dist/modes/companion/context-buffer.test.d.ts +0 -2
  373. package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
  374. package/dist/modes/companion/context-buffer.test.js +0 -154
  375. package/dist/modes/companion/context-buffer.test.js.map +0 -1
  376. package/dist/modes/companion/event-detector.d.ts +0 -46
  377. package/dist/modes/companion/event-detector.d.ts.map +0 -1
  378. package/dist/modes/companion/event-detector.js +0 -169
  379. package/dist/modes/companion/event-detector.js.map +0 -1
  380. package/dist/modes/companion/event-detector.test.d.ts +0 -2
  381. package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
  382. package/dist/modes/companion/event-detector.test.js +0 -121
  383. package/dist/modes/companion/event-detector.test.js.map +0 -1
  384. package/dist/modes/companion/index.d.ts +0 -33
  385. package/dist/modes/companion/index.d.ts.map +0 -1
  386. package/dist/modes/companion/index.js +0 -21
  387. package/dist/modes/companion/index.js.map +0 -1
  388. package/dist/modes/companion/input-key-mapper.d.ts +0 -3
  389. package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
  390. package/dist/modes/companion/input-key-mapper.js +0 -31
  391. package/dist/modes/companion/input-key-mapper.js.map +0 -1
  392. package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
  393. package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
  394. package/dist/modes/companion/input-key-mapper.test.js +0 -26
  395. package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
  396. package/dist/modes/companion/input-parser.d.ts +0 -53
  397. package/dist/modes/companion/input-parser.d.ts.map +0 -1
  398. package/dist/modes/companion/input-parser.js +0 -114
  399. package/dist/modes/companion/input-parser.js.map +0 -1
  400. package/dist/modes/companion/input-parser.test.d.ts +0 -2
  401. package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
  402. package/dist/modes/companion/input-parser.test.js +0 -123
  403. package/dist/modes/companion/input-parser.test.js.map +0 -1
  404. package/dist/modes/companion/mode-manager.d.ts +0 -41
  405. package/dist/modes/companion/mode-manager.d.ts.map +0 -1
  406. package/dist/modes/companion/mode-manager.js +0 -56
  407. package/dist/modes/companion/mode-manager.js.map +0 -1
  408. package/dist/modes/companion/mode-manager.test.d.ts +0 -2
  409. package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
  410. package/dist/modes/companion/mode-manager.test.js +0 -65
  411. package/dist/modes/companion/mode-manager.test.js.map +0 -1
  412. package/dist/modes/companion/output-classifier.d.ts +0 -15
  413. package/dist/modes/companion/output-classifier.d.ts.map +0 -1
  414. package/dist/modes/companion/output-classifier.js +0 -77
  415. package/dist/modes/companion/output-classifier.js.map +0 -1
  416. package/dist/modes/companion/output-classifier.test.d.ts +0 -2
  417. package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
  418. package/dist/modes/companion/output-classifier.test.js +0 -133
  419. package/dist/modes/companion/output-classifier.test.js.map +0 -1
  420. package/dist/modes/companion/pty-wrapper.d.ts +0 -46
  421. package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
  422. package/dist/modes/companion/pty-wrapper.js +0 -143
  423. package/dist/modes/companion/pty-wrapper.js.map +0 -1
  424. package/dist/modes/companion/safety-classifier.d.ts +0 -31
  425. package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
  426. package/dist/modes/companion/safety-classifier.js +0 -140
  427. package/dist/modes/companion/safety-classifier.js.map +0 -1
  428. package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
  429. package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
  430. package/dist/modes/companion/safety-classifier.test.js +0 -151
  431. package/dist/modes/companion/safety-classifier.test.js.map +0 -1
  432. package/dist/modes/companion/summarizer.d.ts +0 -24
  433. package/dist/modes/companion/summarizer.d.ts.map +0 -1
  434. package/dist/modes/companion/summarizer.js +0 -132
  435. package/dist/modes/companion/summarizer.js.map +0 -1
  436. package/dist/modes/companion/terminal-history.d.ts +0 -27
  437. package/dist/modes/companion/terminal-history.d.ts.map +0 -1
  438. package/dist/modes/companion/terminal-history.js +0 -142
  439. package/dist/modes/companion/terminal-history.js.map +0 -1
  440. package/dist/prompts/simple-mentor.md +0 -215
  441. package/dist/providers/ai-sdk-openai.provider.d.ts +0 -14
  442. package/dist/providers/ai-sdk-openai.provider.d.ts.map +0 -1
  443. package/dist/providers/ai-sdk-openai.provider.js +0 -18
  444. package/dist/providers/ai-sdk-openai.provider.js.map +0 -1
  445. package/dist/providers/github-copilot/converters.d.ts +0 -45
  446. package/dist/providers/github-copilot/converters.d.ts.map +0 -1
  447. package/dist/providers/github-copilot/converters.js +0 -118
  448. package/dist/providers/github-copilot/converters.js.map +0 -1
  449. package/dist/providers/github-copilot/converters.test.d.ts +0 -2
  450. package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
  451. package/dist/providers/github-copilot/converters.test.js +0 -162
  452. package/dist/providers/github-copilot/converters.test.js.map +0 -1
  453. package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
  454. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
  455. package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
  456. package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
  457. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
  458. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
  459. package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
  460. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
  461. package/dist/providers/github-copilot/index.d.ts +0 -4
  462. package/dist/providers/github-copilot/index.d.ts.map +0 -1
  463. package/dist/providers/github-copilot/index.js +0 -4
  464. package/dist/providers/github-copilot/index.js.map +0 -1
  465. package/dist/providers/github-copilot/model.d.ts +0 -24
  466. package/dist/providers/github-copilot/model.d.ts.map +0 -1
  467. package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
  468. package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
  469. package/dist/providers/github-copilot/model.delta.test.js +0 -15
  470. package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
  471. package/dist/providers/github-copilot/model.js +0 -498
  472. package/dist/providers/github-copilot/model.js.map +0 -1
  473. package/dist/providers/github-copilot/model.test.d.ts +0 -2
  474. package/dist/providers/github-copilot/model.test.d.ts.map +0 -1
  475. package/dist/providers/github-copilot/model.test.js +0 -63
  476. package/dist/providers/github-copilot/model.test.js.map +0 -1
  477. package/dist/providers/github-copilot/provider.d.ts +0 -15
  478. package/dist/providers/github-copilot/provider.d.ts.map +0 -1
  479. package/dist/providers/github-copilot/provider.js +0 -25
  480. package/dist/providers/github-copilot/provider.js.map +0 -1
  481. package/dist/providers/github-copilot/provider.test.d.ts +0 -2
  482. package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
  483. package/dist/providers/github-copilot/provider.test.js +0 -52
  484. package/dist/providers/github-copilot/provider.test.js.map +0 -1
  485. package/dist/providers/github-copilot/utils.d.ts +0 -20
  486. package/dist/providers/github-copilot/utils.d.ts.map +0 -1
  487. package/dist/providers/github-copilot/utils.js +0 -142
  488. package/dist/providers/github-copilot/utils.js.map +0 -1
  489. package/dist/providers/github-copilot/utils.test.d.ts +0 -2
  490. package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
  491. package/dist/providers/github-copilot/utils.test.js +0 -21
  492. package/dist/providers/github-copilot/utils.test.js.map +0 -1
  493. package/dist/providers/openai-compatible/api.d.ts +0 -17
  494. package/dist/providers/openai-compatible/api.d.ts.map +0 -1
  495. package/dist/providers/openai-compatible/api.js +0 -58
  496. package/dist/providers/openai-compatible/api.js.map +0 -1
  497. package/dist/providers/openai-compatible/model.d.ts +0 -17
  498. package/dist/providers/openai-compatible/model.d.ts.map +0 -1
  499. package/dist/providers/openai-compatible/model.js +0 -473
  500. package/dist/providers/openai-compatible/model.js.map +0 -1
  501. package/dist/providers/openai-compatible/provider.d.ts +0 -22
  502. package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
  503. package/dist/providers/openai-compatible/provider.js +0 -43
  504. package/dist/providers/openai-compatible/provider.js.map +0 -1
  505. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
  506. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
  507. package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
  508. package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
  509. package/dist/providers/openai-compatible/utils.d.ts +0 -3
  510. package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
  511. package/dist/providers/openai-compatible/utils.js +0 -11
  512. package/dist/providers/openai-compatible/utils.js.map +0 -1
  513. package/dist/providers/openrouter/api.d.ts +0 -39
  514. package/dist/providers/openrouter/api.d.ts.map +0 -1
  515. package/dist/providers/openrouter/api.js +0 -164
  516. package/dist/providers/openrouter/api.js.map +0 -1
  517. package/dist/providers/openrouter/converters.d.ts +0 -8
  518. package/dist/providers/openrouter/converters.d.ts.map +0 -1
  519. package/dist/providers/openrouter/converters.js +0 -391
  520. package/dist/providers/openrouter/converters.js.map +0 -1
  521. package/dist/providers/openrouter/converters.test.d.ts +0 -2
  522. package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
  523. package/dist/providers/openrouter/converters.test.js +0 -179
  524. package/dist/providers/openrouter/converters.test.js.map +0 -1
  525. package/dist/providers/openrouter/index.d.ts +0 -4
  526. package/dist/providers/openrouter/index.d.ts.map +0 -1
  527. package/dist/providers/openrouter/index.js +0 -4
  528. package/dist/providers/openrouter/index.js.map +0 -1
  529. package/dist/providers/openrouter/model.d.ts +0 -14
  530. package/dist/providers/openrouter/model.d.ts.map +0 -1
  531. package/dist/providers/openrouter/model.js +0 -457
  532. package/dist/providers/openrouter/model.js.map +0 -1
  533. package/dist/providers/openrouter/provider.d.ts +0 -15
  534. package/dist/providers/openrouter/provider.d.ts.map +0 -1
  535. package/dist/providers/openrouter/provider.js +0 -21
  536. package/dist/providers/openrouter/provider.js.map +0 -1
  537. package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
  538. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
  539. package/dist/providers/openrouter/reasoning-content.test.js +0 -122
  540. package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
  541. package/dist/providers/openrouter/utils.d.ts +0 -11
  542. package/dist/providers/openrouter/utils.d.ts.map +0 -1
  543. package/dist/providers/openrouter/utils.js +0 -29
  544. package/dist/providers/openrouter/utils.js.map +0 -1
  545. package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
  546. package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
  547. package/dist/providers/openrouter.api.retry.test.js +0 -148
  548. package/dist/providers/openrouter.api.retry.test.js.map +0 -1
  549. package/dist/providers/openrouter.test.d.ts +0 -2
  550. package/dist/providers/openrouter.test.d.ts.map +0 -1
  551. package/dist/providers/openrouter.test.js +0 -1449
  552. package/dist/providers/openrouter.test.js.map +0 -1
  553. package/dist/providers/protocol-client.d.ts +0 -17
  554. package/dist/providers/protocol-client.d.ts.map +0 -1
  555. package/dist/providers/protocol-client.js +0 -57
  556. package/dist/providers/protocol-client.js.map +0 -1
  557. package/dist/providers/protocol-client.test.d.ts +0 -2
  558. package/dist/providers/protocol-client.test.d.ts.map +0 -1
  559. package/dist/providers/protocol-client.test.js +0 -55
  560. package/dist/providers/protocol-client.test.js.map +0 -1
  561. package/dist/safety-checker.js +0 -57
  562. package/dist/services/check_mock.d.ts +0 -2
  563. package/dist/services/check_mock.d.ts.map +0 -1
  564. package/dist/services/check_mock.js +0 -22
  565. package/dist/services/check_mock.js.map +0 -1
  566. package/dist/services/conversation-service.test.d.ts +0 -2
  567. package/dist/services/conversation-service.test.d.ts.map +0 -1
  568. package/dist/services/conversation-service.test.js +0 -156
  569. package/dist/services/conversation-service.test.js.map +0 -1
  570. package/dist/services/conversation-store.merge-modes.removed.d.ts +0 -2
  571. package/dist/services/conversation-store.merge-modes.removed.d.ts.map +0 -1
  572. package/dist/services/conversation-store.merge-modes.removed.js +0 -2
  573. package/dist/services/conversation-store.merge-modes.removed.js.map +0 -1
  574. package/dist/services/repro-error.test.d.ts +0 -2
  575. package/dist/services/repro-error.test.d.ts.map +0 -1
  576. package/dist/services/repro-error.test.js +0 -38
  577. package/dist/services/repro-error.test.js.map +0 -1
  578. package/dist/services/subagents/reasoning-inheritance.test.d.ts +0 -2
  579. package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +0 -1
  580. package/dist/services/subagents/reasoning-inheritance.test.js +0 -73
  581. package/dist/services/subagents/reasoning-inheritance.test.js.map +0 -1
  582. package/dist/tools/bash.d.ts +0 -10
  583. package/dist/tools/bash.d.ts.map +0 -1
  584. package/dist/tools/bash.js +0 -55
  585. package/dist/tools/bash.js.map +0 -1
  586. package/dist/utils/command-safety.d.ts +0 -21
  587. package/dist/utils/command-safety.d.ts.map +0 -1
  588. package/dist/utils/command-safety.devnull.test.d.ts +0 -2
  589. package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
  590. package/dist/utils/command-safety.devnull.test.js +0 -13
  591. package/dist/utils/command-safety.devnull.test.js.map +0 -1
  592. package/dist/utils/command-safety.js +0 -348
  593. package/dist/utils/command-safety.js.map +0 -1
  594. package/dist/utils/extract-command-messages.test.d.ts +0 -2
  595. package/dist/utils/extract-command-messages.test.d.ts.map +0 -1
  596. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +0 -2
  597. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +0 -1
  598. package/dist/utils/provider-traffic-extractor.repro.test.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ export type TtyWriter = (data: string) => void;
2
+ /**
3
+ * Returns a function that writes a string to the terminal TTY.
4
+ * Prefers process.stdout when it is a TTY; falls back to opening /dev/tty
5
+ * directly so the sequence reaches the terminal even when stdout is redirected
6
+ * (e.g. through the synchronized-output patch or pipe).
7
+ */
8
+ export declare function getTtyWriter(): TtyWriter | null;
9
+ /**
10
+ * Wraps a raw OSC inner sequence for delivery through a terminal multiplexer
11
+ * (tmux or GNU screen). In a bare terminal the sequence is returned unchanged.
12
+ *
13
+ * - tmux: DCS passthrough — double every ESC in the inner sequence.
14
+ * - screen: DCS passthrough — chunk at 768 chars to stay within screen's
15
+ * internal buffer limit.
16
+ */
17
+ export declare function wrapForMultiplexer(inner: string, env: NodeJS.ProcessEnv): string;
18
+ export interface WriteOscOptions {
19
+ env?: NodeJS.ProcessEnv;
20
+ getTtyWriter?: () => TtyWriter | null;
21
+ }
22
+ /**
23
+ * Wraps an OSC inner sequence for the current multiplexer (if any) and writes
24
+ * it to the TTY. Silently does nothing if no TTY is available.
25
+ */
26
+ export declare function writeOscSequence(inner: string, opts?: WriteOscOptions): void;
27
+ //# sourceMappingURL=tty-osc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty-osc.d.ts","sourceRoot":"","sources":["../../source/utils/tty-osc.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAoB/C;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAkBhF;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,IAAI,CAMhF"}
@@ -0,0 +1,66 @@
1
+ import fs from 'fs';
2
+ /**
3
+ * Returns a function that writes a string to the terminal TTY.
4
+ * Prefers process.stdout when it is a TTY; falls back to opening /dev/tty
5
+ * directly so the sequence reaches the terminal even when stdout is redirected
6
+ * (e.g. through the synchronized-output patch or pipe).
7
+ */
8
+ export function getTtyWriter() {
9
+ if (process.stdout.isTTY) {
10
+ return (data) => void process.stdout.write(data);
11
+ }
12
+ try {
13
+ const fd = fs.openSync('/dev/tty', 'w');
14
+ fs.closeSync(fd);
15
+ return (data) => {
16
+ const writeFd = fs.openSync('/dev/tty', 'w');
17
+ try {
18
+ fs.writeSync(writeFd, data);
19
+ }
20
+ finally {
21
+ fs.closeSync(writeFd);
22
+ }
23
+ };
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ }
29
+ /**
30
+ * Wraps a raw OSC inner sequence for delivery through a terminal multiplexer
31
+ * (tmux or GNU screen). In a bare terminal the sequence is returned unchanged.
32
+ *
33
+ * - tmux: DCS passthrough — double every ESC in the inner sequence.
34
+ * - screen: DCS passthrough — chunk at 768 chars to stay within screen's
35
+ * internal buffer limit.
36
+ */
37
+ export function wrapForMultiplexer(inner, env) {
38
+ if (env.TMUX) {
39
+ // tmux DCS passthrough: double each ESC in the inner sequence
40
+ const escaped = inner.replace(/\x1b/g, '\x1b\x1b');
41
+ return `\x1bPtmux;\x1b${escaped}\x1b\\`;
42
+ }
43
+ if (env.TERM?.startsWith('screen')) {
44
+ // screen DCS passthrough: chunk at 768 chars to stay within screen's buffer limit
45
+ const CHUNK_SIZE = 768;
46
+ let result = '';
47
+ for (let i = 0; i < inner.length; i += CHUNK_SIZE) {
48
+ result += `\x1bP${inner.slice(i, i + CHUNK_SIZE)}\x1b\\`;
49
+ }
50
+ return result;
51
+ }
52
+ return inner;
53
+ }
54
+ /**
55
+ * Wraps an OSC inner sequence for the current multiplexer (if any) and writes
56
+ * it to the TTY. Silently does nothing if no TTY is available.
57
+ */
58
+ export function writeOscSequence(inner, opts = {}) {
59
+ const env = opts.env ?? process.env;
60
+ const getWriter = opts.getTtyWriter ?? getTtyWriter;
61
+ const writer = getWriter();
62
+ if (!writer)
63
+ return;
64
+ writer(wrapForMultiplexer(inner, env));
65
+ }
66
+ //# sourceMappingURL=tty-osc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty-osc.js","sourceRoot":"","sources":["../../source/utils/tty-osc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACxC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEjB,OAAO,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,GAAsB;IACtE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,8DAA8D;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,iBAAiB,OAAO,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,kFAAkF;QAClF,MAAM,UAAU,GAAG,GAAG,CAAC;QACvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YAClD,MAAM,IAAI,QAAQ,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC3D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAwB,EAAE;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC;IACpD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tty-osc.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty-osc.test.d.ts","sourceRoot":"","sources":["../../source/utils/tty-osc.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,130 @@
1
+ import test from 'ava';
2
+ import fs from 'fs';
3
+ import { wrapForMultiplexer, writeOscSequence, getTtyWriter } from './tty-osc.js';
4
+ // ── wrapForMultiplexer ──────────────────────────────────────────────────────
5
+ test('wrapForMultiplexer returns inner unchanged in a bare terminal', (t) => {
6
+ const inner = '\x1b]9;hello\x07';
7
+ t.is(wrapForMultiplexer(inner, {}), inner);
8
+ });
9
+ test('wrapForMultiplexer wraps in tmux DCS passthrough when TMUX is set', (t) => {
10
+ const inner = '\x1b]9;hello\x07';
11
+ const escaped = inner.replace(/\x1b/g, '\x1b\x1b');
12
+ const expected = `\x1bPtmux;\x1b${escaped}\x1b\\`;
13
+ t.is(wrapForMultiplexer(inner, { TMUX: '/tmp/tmux' }), expected);
14
+ });
15
+ test('wrapForMultiplexer wraps in screen DCS passthrough when TERM starts with screen', (t) => {
16
+ const inner = '\x1b]9;hi\x07';
17
+ const expected = `\x1bP${inner}\x1b\\`;
18
+ t.is(wrapForMultiplexer(inner, { TERM: 'screen-256color' }), expected);
19
+ });
20
+ test('wrapForMultiplexer chunks screen DCS passthrough at 768 characters', (t) => {
21
+ // Create an inner sequence longer than 768 chars
22
+ const longMsg = 'x'.repeat(800);
23
+ const inner = `\x1b]9;${longMsg}\x07`;
24
+ t.true(inner.length > 768, 'precondition: inner sequence must exceed 768 chars');
25
+ const result = wrapForMultiplexer(inner, { TERM: 'screen' });
26
+ const chunk1 = inner.slice(0, 768);
27
+ const chunk2 = inner.slice(768);
28
+ t.is(result, `\x1bP${chunk1}\x1b\\` + `\x1bP${chunk2}\x1b\\`);
29
+ });
30
+ // ── writeOscSequence ────────────────────────────────────────────────────────
31
+ test('writeOscSequence calls the injected writer with the bare sequence in a plain env', (t) => {
32
+ let written = '';
33
+ const inner = '\x1b]9;hello\x07';
34
+ writeOscSequence(inner, {
35
+ env: {},
36
+ getTtyWriter: () => (data) => {
37
+ written = data;
38
+ },
39
+ });
40
+ t.is(written, inner);
41
+ });
42
+ test('writeOscSequence does nothing when getTtyWriter returns null', (t) => {
43
+ t.notThrows(() => {
44
+ writeOscSequence('\x1b]9;test\x07', {
45
+ env: {},
46
+ getTtyWriter: () => null,
47
+ });
48
+ });
49
+ });
50
+ test('writeOscSequence applies tmux wrapping before writing', (t) => {
51
+ let written = '';
52
+ const inner = '\x1b]9;msg\x07';
53
+ const escaped = inner.replace(/\x1b/g, '\x1b\x1b');
54
+ const expected = `\x1bPtmux;\x1b${escaped}\x1b\\`;
55
+ writeOscSequence(inner, {
56
+ env: { TMUX: '/tmp/tmux' },
57
+ getTtyWriter: () => (data) => {
58
+ written = data;
59
+ },
60
+ });
61
+ t.is(written, expected);
62
+ });
63
+ test.serial('getTtyWriter returned writer opens and closes /dev/tty on each write', (t) => {
64
+ const isTty = process.stdout.isTTY;
65
+ Object.defineProperty(process.stdout, 'isTTY', {
66
+ value: false,
67
+ configurable: true,
68
+ });
69
+ const openedFds = [];
70
+ const closedFds = [];
71
+ const writtenData = [];
72
+ let nextFd = 100;
73
+ const originalOpen = fs.openSync;
74
+ const originalClose = fs.closeSync;
75
+ const originalWrite = fs.writeSync;
76
+ fs.openSync = ((path, flags) => {
77
+ if (path === '/dev/tty') {
78
+ const fd = nextFd++;
79
+ openedFds.push(fd);
80
+ return fd;
81
+ }
82
+ return originalOpen(path, flags);
83
+ });
84
+ fs.closeSync = ((fd) => {
85
+ if (fd >= 100) {
86
+ closedFds.push(fd);
87
+ return;
88
+ }
89
+ return originalClose(fd);
90
+ });
91
+ fs.writeSync = ((fd, data) => {
92
+ if (fd >= 100) {
93
+ writtenData.push({ fd, data: String(data) });
94
+ return data.length;
95
+ }
96
+ return originalWrite(fd, data);
97
+ });
98
+ try {
99
+ const writer = getTtyWriter();
100
+ t.truthy(writer);
101
+ // First verification open/close on getTtyWriter call:
102
+ t.is(openedFds.length, 1);
103
+ t.is(closedFds.length, 1);
104
+ t.is(openedFds[0], closedFds[0]);
105
+ // Perform two writes:
106
+ writer('hello');
107
+ writer('world');
108
+ // Should have opened and closed two more times
109
+ t.is(openedFds.length, 3);
110
+ t.is(closedFds.length, 3);
111
+ t.is(writtenData.length, 2);
112
+ t.is(writtenData[0].data, 'hello');
113
+ t.is(writtenData[1].data, 'world');
114
+ // Verify each write had its own fd opened and closed
115
+ t.is(writtenData[0].fd, openedFds[1]);
116
+ t.is(closedFds[1], openedFds[1]);
117
+ t.is(writtenData[1].fd, openedFds[2]);
118
+ t.is(closedFds[2], openedFds[2]);
119
+ }
120
+ finally {
121
+ fs.openSync = originalOpen;
122
+ fs.closeSync = originalClose;
123
+ fs.writeSync = originalWrite;
124
+ Object.defineProperty(process.stdout, 'isTTY', {
125
+ value: isTty,
126
+ configurable: true,
127
+ });
128
+ }
129
+ });
130
+ //# sourceMappingURL=tty-osc.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty-osc.test.js","sourceRoot":"","sources":["../../source/utils/tty-osc.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qduc/term2",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "A terminal-based AI assistant that can help you get things done on your computer",
5
5
  "license": "MIT",
6
6
  "author": "qduc",
@@ -61,7 +61,7 @@
61
61
  "fast-glob": "^3.3.2",
62
62
  "ignore": "^5.3.2",
63
63
  "ink": "^7.0.1",
64
- "ink-prompt": "^0.2.5",
64
+ "ink-prompt": "^0.3.1",
65
65
  "jsdom": "^27.4.0",
66
66
  "marked": "^17.0.1",
67
67
  "meow": "^11.0.0",
package/readme.md CHANGED
@@ -748,8 +748,8 @@ Subagent logs and outputs stream in real-time within the terminal, allowing you
748
748
  term2 automatically saves your conversation history, settings, and provider state at the end of each session. This allows you to resume any past chat exactly where you left off.
749
749
 
750
750
  - **Auto-save**: Every active chat session is saved on exit or interrupt to your system's log directory:
751
- - **Linux**: `~/.local/state/term2/log/conversations/`
752
- - **macOS**: `~/Library/Logs/term2/conversations/`
751
+ - **Linux**: `~/.local/state/term2-nodejs/log/conversations/`
752
+ - **macOS**: `~/Library/Logs/term2-nodejs/conversations/`
753
753
  - **Resume Last Session**: Run `term2 --resume` to reload the most recent conversation.
754
754
  - **Resume Specific Session**: Use `term2 --resume <session-uuid>` to load a specific conversation history.
755
755
  - **Listing Sessions**: You can inspect saved sessions and their UUIDs in the log or state files.
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=agent.lite-mode.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.lite-mode.test.d.ts","sourceRoot":"","sources":["../source/agent.lite-mode.test.ts"],"names":[],"mappings":""}
@@ -1,39 +0,0 @@
1
- import test from 'ava';
2
- import { getAgentDefinition } from './agent.js';
3
- const mockSettings = (lite) => ({
4
- get: (key) => {
5
- if (key === 'app.liteMode')
6
- return lite;
7
- if (key === 'agent.model')
8
- return 'gpt-4';
9
- return undefined;
10
- },
11
- set: () => { },
12
- on: () => { },
13
- off: () => { },
14
- getAll: () => ({}),
15
- });
16
- const mockLogging = {};
17
- test('getAgentDefinition in lite mode should include web_search tool', t => {
18
- const deps = {
19
- settingsService: mockSettings(true),
20
- loggingService: mockLogging,
21
- };
22
- const agent = getAgentDefinition(deps, 'gpt-4');
23
- const toolNames = agent.tools.map(tool => tool.name);
24
- t.true(toolNames.includes('shell'));
25
- t.true(toolNames.includes('read_file'));
26
- t.true(toolNames.includes('find_files'));
27
- t.true(toolNames.includes('grep'));
28
- t.true(toolNames.includes('web_search'), 'web_search should be included in lite mode');
29
- });
30
- test('getAgentDefinition in non-lite mode should include web_search tool', t => {
31
- const deps = {
32
- settingsService: mockSettings(false),
33
- loggingService: mockLogging,
34
- };
35
- const agent = getAgentDefinition(deps, 'gpt-4');
36
- const toolNames = agent.tools.map(tool => tool.name);
37
- t.true(toolNames.includes('web_search'), 'web_search should be included in full mode');
38
- });
39
- //# sourceMappingURL=agent.lite-mode.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.lite-mode.test.js","sourceRoot":"","sources":["../source/agent.lite-mode.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,YAAY,GAAG,CAAC,IAAa,EAAoB,EAAE,CAAC,CAAC;IACvD,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE;QACjB,IAAI,GAAG,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,GAAG,KAAK,aAAa;YAAE,OAAO,OAAO,CAAC;QAC1C,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;IACb,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC;IACZ,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;IACb,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACW,CAAA,CAAC;AAElC,MAAM,WAAW,GAAG,EAAgC,CAAC;AAErD,IAAI,CAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE;IACvE,MAAM,IAAI,GAAG;QACT,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;QACnC,cAAc,EAAE,WAAW;KAC9B,CAAC;IACF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,4CAA4C,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE;IAC3E,MAAM,IAAI,GAAG;QACT,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC;QACpC,cAAc,EAAE,WAAW;KAC9B,CAAC;IACF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,4CAA4C,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import test from 'ava';
2
- import { formatLargeUncachedInputWarning } from './app.js';
3
- test('formatLargeUncachedInputWarning describes estimate, reason, and confirmation action', (t) => {
4
- const text = formatLargeUncachedInputWarning({
5
- action: 'warn',
6
- warningKey: 'abc',
7
- reasons: ['idle_timeout'],
8
- estimatedTokens: 72_100,
9
- estimatedBytes: 288_400,
10
- });
11
- t.true(text.includes('~72k input tokens'));
12
- t.true(text.includes('idle for over 5m'));
13
- t.true(text.includes('Press Enter again'));
14
- });
15
- //# sourceMappingURL=app.large-uncached-warning.test.js.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ApprovalPrompt.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApprovalPrompt.test.d.ts","sourceRoot":"","sources":["../../source/components/ApprovalPrompt.test.tsx"],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- import test from 'ava';
2
- import React from 'react';
3
- import { render } from 'ink-testing-library';
4
- import ApprovalPrompt from './ApprovalPrompt.js';
5
- test('ApprovalPrompt renders approval question and llm advisory', (t) => {
6
- const { lastFrame } = render(React.createElement(ApprovalPrompt, { approval: {
7
- agentName: 'Agent',
8
- toolName: 'shell',
9
- argumentsText: '{"commands":"ls"}',
10
- rawInterruption: null,
11
- llmAdvisory: {
12
- source: 'llm',
13
- approved: false,
14
- model: 'gpt-5',
15
- reasoning: 'May modify files.',
16
- },
17
- }, onApprove: () => { }, onReject: () => { } }));
18
- const output = lastFrame() ?? '';
19
- t.true(output.includes('Allow this action?'));
20
- t.true(output.includes('AI Advisor: CAUTION'));
21
- t.true(output.includes('May modify files.'));
22
- });
23
- //# sourceMappingURL=ApprovalPrompt.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApprovalPrompt.test.js","sourceRoot":"","sources":["../../source/components/ApprovalPrompt.test.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,IAAI,CAAC,2DAA2D,EAAE,CAAC,CAAC,EAAE,EAAE;IACtE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,cAAc,IACb,QAAQ,EAAE;YACR,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,mBAAmB;YAClC,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE;gBACX,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,mBAAmB;aAC/B;SACF,EACD,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,EACnB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,GAClB,CACH,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LiveResponse.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveResponse.test.d.ts","sourceRoot":"","sources":["../../source/components/LiveResponse.test.tsx"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import test from 'ava';
3
- import { render } from 'ink-testing-library';
4
- import LiveResponse from './LiveResponse.js';
5
- test('LiveResponse renders streamed text with Markdown formatting', (t) => {
6
- const { lastFrame } = render(React.createElement(LiveResponse, { text: '# Heading\n\n- **Done**' }));
7
- const frame = lastFrame() || '';
8
- t.true(frame.includes('Heading'));
9
- t.true(frame.includes('Done'));
10
- t.false(frame.includes('# Heading'));
11
- t.false(frame.includes('**Done**'));
12
- });
13
- //# sourceMappingURL=LiveResponse.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveResponse.test.js","sourceRoot":"","sources":["../../source/components/LiveResponse.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,IAAI,CAAC,6DAA6D,EAAE,CAAC,CAAC,EAAE,EAAE;IACxE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,YAAY,IAAC,IAAI,EAAE,yBAAyB,GAAI,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ModelSelectionMenu.error-tabs.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelSelectionMenu.error-tabs.test.d.ts","sourceRoot":"","sources":["../../source/components/ModelSelectionMenu.error-tabs.test.tsx"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import test from 'ava';
2
- import React from 'react';
3
- import { render } from 'ink-testing-library';
4
- import ModelSelectionMenu from './ModelSelectionMenu.js';
5
- import { createMockSettingsService } from '../services/settings-service.mock.js';
6
- test('ModelSelectionMenu renders provider tabs even when error occurs', t => {
7
- // OpenAI is a default provider
8
- const settingsService = createMockSettingsService();
9
- const { lastFrame } = render(React.createElement(ModelSelectionMenu, { settingsService: settingsService, items: [], selectedIndex: 0, query: "", error: "Failed to fetch models", provider: "openai" }));
10
- const output = lastFrame();
11
- t.true(output?.includes('Unable to load models: Failed to fetch models'));
12
- // Should verify that provider tabs are still visible
13
- // "OpenAI" shows up as a label in the tabs
14
- t.true(output?.includes('OpenAI'));
15
- // And possibly the switch instruction
16
- t.true(output?.includes('Tab → switch provider'));
17
- });
18
- //# sourceMappingURL=ModelSelectionMenu.error-tabs.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelSelectionMenu.error-tabs.test.js","sourceRoot":"","sources":["../../source/components/ModelSelectionMenu.error-tabs.test.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAC,yBAAyB,EAAC,MAAM,sCAAsC,CAAC;AAE/E,IAAI,CAAC,iEAAiE,EAAE,CAAC,CAAC,EAAE;IACxE,+BAA+B;IAC/B,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IAEpD,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CACtB,oBAAC,kBAAkB,IACf,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,EAAE,EACT,aAAa,EAAE,CAAC,EAChB,KAAK,EAAC,EAAE,EACR,KAAK,EAAC,wBAAwB,EAC9B,QAAQ,EAAC,QAAQ,GACnB,CACL,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC1E,qDAAqD;IACrD,2CAA2C;IAC3C,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,sCAAsC;IACtC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
@@ -1,42 +0,0 @@
1
- import React from 'react';
2
- interface TextInputProps {
3
- /**
4
- * The value of the input.
5
- */
6
- value: string;
7
- /**
8
- * Handler called when value changes.
9
- */
10
- onChange: (value: string) => void;
11
- /**
12
- * Handler called when "Enter" is pressed.
13
- */
14
- onSubmit?: (value: string) => void;
15
- /**
16
- * Text to display when value is empty.
17
- */
18
- placeholder?: string;
19
- /**
20
- * Whether the input is currently focused and accepting input.
21
- */
22
- focus?: boolean;
23
- /**
24
- * Character to mask input with (e.g. '*' for passwords).
25
- */
26
- mask?: string;
27
- /**
28
- * Whether to allow multi-line input.
29
- */
30
- multiLine?: boolean;
31
- /**
32
- * Called whenever the cursor offset changes.
33
- */
34
- onCursorChange?: (offset: number) => void;
35
- /**
36
- * Optional external cursor override.
37
- */
38
- cursorOverride?: number;
39
- }
40
- export declare const TextInput: React.FC<TextInputProps>;
41
- export default TextInput;
42
- //# sourceMappingURL=TextInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../source/components/TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,UAAU,cAAc;IACpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoc9C,CAAC;AAEF,eAAe,SAAS,CAAC"}