@celljs/ta-web 4.6.1 → 4.8.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 (361) hide show
  1. package/README.en.md +90 -0
  2. package/README.md +13 -7
  3. package/esm/browser/chat/chat-protocol.d.ts +4 -0
  4. package/esm/browser/chat/chat-view.js +4 -1
  5. package/esm/browser/chat/chat-view.js.map +1 -1
  6. package/esm/browser/chat/chat.d.ts +8 -1
  7. package/esm/browser/chat/chat.js +34 -15
  8. package/esm/browser/chat/chat.js.map +1 -1
  9. package/esm/browser/chat/draft-model.d.ts +15 -0
  10. package/esm/browser/chat/draft-model.js +53 -0
  11. package/esm/browser/chat/draft-model.js.map +1 -0
  12. package/esm/browser/components/account-menu.d.ts +3 -2
  13. package/esm/browser/components/account-menu.js +21 -16
  14. package/esm/browser/components/account-menu.js.map +1 -1
  15. package/esm/browser/components/app-view.js +13 -4
  16. package/esm/browser/components/app-view.js.map +1 -1
  17. package/esm/browser/components/chat-list.d.ts +3 -1
  18. package/esm/browser/components/chat-list.js +6 -1
  19. package/esm/browser/components/chat-list.js.map +1 -1
  20. package/esm/browser/components/composer-box.d.ts +6 -0
  21. package/esm/browser/components/composer-box.js +50 -13
  22. package/esm/browser/components/composer-box.js.map +1 -1
  23. package/esm/browser/components/composer.js +1 -1
  24. package/esm/browser/components/composer.js.map +1 -1
  25. package/esm/browser/components/dialog-view.d.ts +4 -1
  26. package/esm/browser/components/dialog-view.js +11 -7
  27. package/esm/browser/components/dialog-view.js.map +1 -1
  28. package/esm/browser/components/folder-picker.d.ts +37 -6
  29. package/esm/browser/components/folder-picker.js +155 -33
  30. package/esm/browser/components/folder-picker.js.map +1 -1
  31. package/esm/browser/components/notice-center.js +3 -1
  32. package/esm/browser/components/notice-center.js.map +1 -1
  33. package/esm/browser/components/remote-hosts.d.ts +7 -0
  34. package/esm/browser/components/remote-hosts.js +94 -0
  35. package/esm/browser/components/remote-hosts.js.map +1 -0
  36. package/esm/browser/components/remote-prompts.d.ts +7 -0
  37. package/esm/browser/components/remote-prompts.js +72 -0
  38. package/esm/browser/components/remote-prompts.js.map +1 -0
  39. package/esm/browser/components/session-view.js +48 -4
  40. package/esm/browser/components/session-view.js.map +1 -1
  41. package/esm/browser/components/settings-view.js +8 -1
  42. package/esm/browser/components/settings-view.js.map +1 -1
  43. package/esm/browser/components/terminal-art.d.ts +7 -0
  44. package/esm/browser/components/terminal-art.js +12 -0
  45. package/esm/browser/components/terminal-art.js.map +1 -0
  46. package/esm/browser/components/tool-view.js +1 -1
  47. package/esm/browser/components/tool-view.js.map +1 -1
  48. package/esm/browser/components/web-composer.d.ts +4 -1
  49. package/esm/browser/components/web-composer.js +2 -2
  50. package/esm/browser/components/web-composer.js.map +1 -1
  51. package/esm/browser/components/working-directory.js +1 -1
  52. package/esm/browser/components/working-directory.js.map +1 -1
  53. package/esm/browser/extension/icons.js +6 -1
  54. package/esm/browser/extension/icons.js.map +1 -1
  55. package/esm/browser/extension/web-extension-api.d.ts +120 -2
  56. package/esm/browser/extension/web-extensions.d.ts +3 -0
  57. package/esm/browser/extension/web-extensions.js +33 -1
  58. package/esm/browser/extension/web-extensions.js.map +1 -1
  59. package/esm/browser/i18n/locales.d.ts +44 -1
  60. package/esm/browser/i18n/messages.d.ts +43 -0
  61. package/esm/browser/i18n/messages.js +99 -13
  62. package/esm/browser/i18n/messages.js.map +1 -1
  63. package/esm/browser/notices/notices-protocol.d.ts +3 -0
  64. package/esm/browser/notices/notices.d.ts +3 -0
  65. package/esm/browser/notices/notices.js +15 -0
  66. package/esm/browser/notices/notices.js.map +1 -1
  67. package/esm/browser/style/base.d.ts +1 -1
  68. package/esm/browser/style/base.js +6 -1
  69. package/esm/browser/style/base.js.map +1 -1
  70. package/esm/browser/style/conversation.d.ts +1 -1
  71. package/esm/browser/style/conversation.js +16 -1
  72. package/esm/browser/style/conversation.js.map +1 -1
  73. package/esm/browser/style/layout.d.ts +1 -1
  74. package/esm/browser/style/layout.js +53 -15
  75. package/esm/browser/style/layout.js.map +1 -1
  76. package/esm/browser/style/shell.d.ts +1 -1
  77. package/esm/browser/style/shell.js +1 -0
  78. package/esm/browser/style/shell.js.map +1 -1
  79. package/esm/browser/terminal/canvas-font.d.ts +10 -0
  80. package/esm/browser/terminal/canvas-font.js +34 -0
  81. package/esm/browser/terminal/canvas-font.js.map +1 -0
  82. package/esm/browser/terminal/terminal-links.d.ts +18 -0
  83. package/esm/browser/terminal/terminal-links.js +72 -0
  84. package/esm/browser/terminal/terminal-links.js.map +1 -0
  85. package/esm/browser/terminal/terminal-theme.d.ts +8 -0
  86. package/esm/browser/terminal/terminal-theme.js +65 -0
  87. package/esm/browser/terminal/terminal-theme.js.map +1 -0
  88. package/esm/browser/terminal/web-terminal.d.ts +74 -0
  89. package/esm/browser/terminal/web-terminal.js +300 -0
  90. package/esm/browser/terminal/web-terminal.js.map +1 -0
  91. package/esm/browser/terminal/xterm.d.ts +5 -0
  92. package/esm/browser/terminal/xterm.js +9 -0
  93. package/esm/browser/terminal/xterm.js.map +1 -0
  94. package/esm/browser/util/desktop.d.ts +43 -0
  95. package/esm/browser/util/desktop.js +55 -0
  96. package/esm/browser/util/desktop.js.map +1 -0
  97. package/esm/browser/util/file-drag.d.ts +26 -0
  98. package/esm/browser/util/file-drag.js +73 -0
  99. package/esm/browser/util/file-drag.js.map +1 -0
  100. package/esm/browser/util/message.d.ts +1 -0
  101. package/esm/browser/util/message.js +7 -5
  102. package/esm/browser/util/message.js.map +1 -1
  103. package/esm/browser/util/terminal-text.d.ts +33 -0
  104. package/esm/browser/util/terminal-text.js +209 -0
  105. package/esm/browser/util/terminal-text.js.map +1 -0
  106. package/esm/browser/util/tool.js +16 -0
  107. package/esm/browser/util/tool.js.map +1 -1
  108. package/esm/browser/workbench-protocol.d.ts +7 -1
  109. package/esm/browser/workbench-protocol.js.map +1 -1
  110. package/esm/browser/workbench.d.ts +7 -1
  111. package/esm/browser/workbench.js +23 -0
  112. package/esm/browser/workbench.js.map +1 -1
  113. package/lib/browser/chat/chat-protocol.d.ts +4 -0
  114. package/lib/browser/chat/chat-protocol.d.ts.map +1 -1
  115. package/lib/browser/chat/chat-view.d.ts.map +1 -1
  116. package/lib/browser/chat/chat-view.js +4 -1
  117. package/lib/browser/chat/chat-view.js.map +1 -1
  118. package/lib/browser/chat/chat.d.ts +8 -1
  119. package/lib/browser/chat/chat.d.ts.map +1 -1
  120. package/lib/browser/chat/chat.js +34 -15
  121. package/lib/browser/chat/chat.js.map +1 -1
  122. package/lib/browser/chat/chat.spec.js +30 -0
  123. package/lib/browser/chat/chat.spec.js.map +1 -1
  124. package/lib/browser/chat/draft-model.d.ts +16 -0
  125. package/lib/browser/chat/draft-model.d.ts.map +1 -0
  126. package/lib/browser/chat/draft-model.js +90 -0
  127. package/lib/browser/chat/draft-model.js.map +1 -0
  128. package/lib/browser/chat/draft-model.spec.d.ts +2 -0
  129. package/lib/browser/chat/draft-model.spec.d.ts.map +1 -0
  130. package/lib/browser/chat/draft-model.spec.js +31 -0
  131. package/lib/browser/chat/draft-model.spec.js.map +1 -0
  132. package/lib/browser/components/account-menu.d.ts +3 -2
  133. package/lib/browser/components/account-menu.d.ts.map +1 -1
  134. package/lib/browser/components/account-menu.js +21 -16
  135. package/lib/browser/components/account-menu.js.map +1 -1
  136. package/lib/browser/components/app-view.d.ts.map +1 -1
  137. package/lib/browser/components/app-view.js +13 -4
  138. package/lib/browser/components/app-view.js.map +1 -1
  139. package/lib/browser/components/chat-list.d.ts +3 -1
  140. package/lib/browser/components/chat-list.d.ts.map +1 -1
  141. package/lib/browser/components/chat-list.js +6 -1
  142. package/lib/browser/components/chat-list.js.map +1 -1
  143. package/lib/browser/components/composer-box.d.ts +6 -0
  144. package/lib/browser/components/composer-box.d.ts.map +1 -1
  145. package/lib/browser/components/composer-box.js +51 -14
  146. package/lib/browser/components/composer-box.js.map +1 -1
  147. package/lib/browser/components/composer.d.ts.map +1 -1
  148. package/lib/browser/components/composer.js +1 -1
  149. package/lib/browser/components/composer.js.map +1 -1
  150. package/lib/browser/components/dialog-view.d.ts +4 -1
  151. package/lib/browser/components/dialog-view.d.ts.map +1 -1
  152. package/lib/browser/components/dialog-view.js +11 -7
  153. package/lib/browser/components/dialog-view.js.map +1 -1
  154. package/lib/browser/components/folder-picker.d.ts +37 -6
  155. package/lib/browser/components/folder-picker.d.ts.map +1 -1
  156. package/lib/browser/components/folder-picker.js +156 -33
  157. package/lib/browser/components/folder-picker.js.map +1 -1
  158. package/lib/browser/components/folder-picker.spec.js +15 -0
  159. package/lib/browser/components/folder-picker.spec.js.map +1 -1
  160. package/lib/browser/components/notice-center.d.ts.map +1 -1
  161. package/lib/browser/components/notice-center.js +3 -1
  162. package/lib/browser/components/notice-center.js.map +1 -1
  163. package/lib/browser/components/plus-menu.spec.d.ts +2 -0
  164. package/lib/browser/components/plus-menu.spec.d.ts.map +1 -0
  165. package/lib/browser/components/plus-menu.spec.js +18 -0
  166. package/lib/browser/components/plus-menu.spec.js.map +1 -0
  167. package/lib/browser/components/remote-hosts.d.ts +8 -0
  168. package/lib/browser/components/remote-hosts.d.ts.map +1 -0
  169. package/lib/browser/components/remote-hosts.js +130 -0
  170. package/lib/browser/components/remote-hosts.js.map +1 -0
  171. package/lib/browser/components/remote-prompts.d.ts +8 -0
  172. package/lib/browser/components/remote-prompts.d.ts.map +1 -0
  173. package/lib/browser/components/remote-prompts.js +108 -0
  174. package/lib/browser/components/remote-prompts.js.map +1 -0
  175. package/lib/browser/components/session-view.d.ts.map +1 -1
  176. package/lib/browser/components/session-view.js +48 -4
  177. package/lib/browser/components/session-view.js.map +1 -1
  178. package/lib/browser/components/settings-view.d.ts.map +1 -1
  179. package/lib/browser/components/settings-view.js +7 -0
  180. package/lib/browser/components/settings-view.js.map +1 -1
  181. package/lib/browser/components/terminal-art.d.ts +8 -0
  182. package/lib/browser/components/terminal-art.d.ts.map +1 -0
  183. package/lib/browser/components/terminal-art.js +48 -0
  184. package/lib/browser/components/terminal-art.js.map +1 -0
  185. package/lib/browser/components/tool-view.js +1 -1
  186. package/lib/browser/components/tool-view.js.map +1 -1
  187. package/lib/browser/components/web-composer.d.ts +4 -1
  188. package/lib/browser/components/web-composer.d.ts.map +1 -1
  189. package/lib/browser/components/web-composer.js +2 -2
  190. package/lib/browser/components/web-composer.js.map +1 -1
  191. package/lib/browser/components/working-directory.js +1 -1
  192. package/lib/browser/components/working-directory.js.map +1 -1
  193. package/lib/browser/extension/icons.d.ts.map +1 -1
  194. package/lib/browser/extension/icons.js +5 -0
  195. package/lib/browser/extension/icons.js.map +1 -1
  196. package/lib/browser/extension/web-extension-api.d.ts +120 -2
  197. package/lib/browser/extension/web-extension-api.d.ts.map +1 -1
  198. package/lib/browser/extension/web-extensions.d.ts +3 -0
  199. package/lib/browser/extension/web-extensions.d.ts.map +1 -1
  200. package/lib/browser/extension/web-extensions.js +33 -1
  201. package/lib/browser/extension/web-extensions.js.map +1 -1
  202. package/lib/browser/i18n/locales.d.ts +44 -1
  203. package/lib/browser/i18n/locales.d.ts.map +1 -1
  204. package/lib/browser/i18n/messages.d.ts +43 -0
  205. package/lib/browser/i18n/messages.d.ts.map +1 -1
  206. package/lib/browser/i18n/messages.js +99 -13
  207. package/lib/browser/i18n/messages.js.map +1 -1
  208. package/lib/browser/notices/notices-protocol.d.ts +3 -0
  209. package/lib/browser/notices/notices-protocol.d.ts.map +1 -1
  210. package/lib/browser/notices/notices.d.ts +3 -0
  211. package/lib/browser/notices/notices.d.ts.map +1 -1
  212. package/lib/browser/notices/notices.js +15 -0
  213. package/lib/browser/notices/notices.js.map +1 -1
  214. package/lib/browser/notices/notices.spec.js +8 -3
  215. package/lib/browser/notices/notices.spec.js.map +1 -1
  216. package/lib/browser/style/base.d.ts +1 -1
  217. package/lib/browser/style/base.d.ts.map +1 -1
  218. package/lib/browser/style/base.js +6 -1
  219. package/lib/browser/style/base.js.map +1 -1
  220. package/lib/browser/style/conversation.d.ts +1 -1
  221. package/lib/browser/style/conversation.d.ts.map +1 -1
  222. package/lib/browser/style/conversation.js +16 -1
  223. package/lib/browser/style/conversation.js.map +1 -1
  224. package/lib/browser/style/layout.d.ts +1 -1
  225. package/lib/browser/style/layout.d.ts.map +1 -1
  226. package/lib/browser/style/layout.js +53 -15
  227. package/lib/browser/style/layout.js.map +1 -1
  228. package/lib/browser/style/shell.d.ts +1 -1
  229. package/lib/browser/style/shell.d.ts.map +1 -1
  230. package/lib/browser/style/shell.js +1 -0
  231. package/lib/browser/style/shell.js.map +1 -1
  232. package/lib/browser/terminal/canvas-font.d.ts +11 -0
  233. package/lib/browser/terminal/canvas-font.d.ts.map +1 -0
  234. package/lib/browser/terminal/canvas-font.js +37 -0
  235. package/lib/browser/terminal/canvas-font.js.map +1 -0
  236. package/lib/browser/terminal/canvas-font.spec.d.ts +2 -0
  237. package/lib/browser/terminal/canvas-font.spec.d.ts.map +1 -0
  238. package/lib/browser/terminal/canvas-font.spec.js +32 -0
  239. package/lib/browser/terminal/canvas-font.spec.js.map +1 -0
  240. package/lib/browser/terminal/terminal-links.d.ts +19 -0
  241. package/lib/browser/terminal/terminal-links.d.ts.map +1 -0
  242. package/lib/browser/terminal/terminal-links.js +75 -0
  243. package/lib/browser/terminal/terminal-links.js.map +1 -0
  244. package/lib/browser/terminal/terminal-links.spec.d.ts +2 -0
  245. package/lib/browser/terminal/terminal-links.spec.d.ts.map +1 -0
  246. package/lib/browser/terminal/terminal-links.spec.js +30 -0
  247. package/lib/browser/terminal/terminal-links.spec.js.map +1 -0
  248. package/lib/browser/terminal/terminal-theme.d.ts +9 -0
  249. package/lib/browser/terminal/terminal-theme.d.ts.map +1 -0
  250. package/lib/browser/terminal/terminal-theme.js +68 -0
  251. package/lib/browser/terminal/terminal-theme.js.map +1 -0
  252. package/lib/browser/terminal/terminal-theme.spec.d.ts +2 -0
  253. package/lib/browser/terminal/terminal-theme.spec.d.ts.map +1 -0
  254. package/lib/browser/terminal/terminal-theme.spec.js +24 -0
  255. package/lib/browser/terminal/terminal-theme.spec.js.map +1 -0
  256. package/lib/browser/terminal/web-terminal.d.ts +75 -0
  257. package/lib/browser/terminal/web-terminal.d.ts.map +1 -0
  258. package/lib/browser/terminal/web-terminal.js +304 -0
  259. package/lib/browser/terminal/web-terminal.js.map +1 -0
  260. package/lib/browser/terminal/xterm.d.ts +6 -0
  261. package/lib/browser/terminal/xterm.d.ts.map +1 -0
  262. package/lib/browser/terminal/xterm.js +16 -0
  263. package/lib/browser/terminal/xterm.js.map +1 -0
  264. package/lib/browser/util/desktop.d.ts +44 -0
  265. package/lib/browser/util/desktop.d.ts.map +1 -0
  266. package/lib/browser/util/desktop.js +58 -0
  267. package/lib/browser/util/desktop.js.map +1 -0
  268. package/lib/browser/util/desktop.spec.d.ts +2 -0
  269. package/lib/browser/util/desktop.spec.d.ts.map +1 -0
  270. package/lib/browser/util/desktop.spec.js +67 -0
  271. package/lib/browser/util/desktop.spec.js.map +1 -0
  272. package/lib/browser/util/file-drag.d.ts +27 -0
  273. package/lib/browser/util/file-drag.d.ts.map +1 -0
  274. package/lib/browser/util/file-drag.js +76 -0
  275. package/lib/browser/util/file-drag.js.map +1 -0
  276. package/lib/browser/util/file-drag.spec.d.ts +2 -0
  277. package/lib/browser/util/file-drag.spec.d.ts.map +1 -0
  278. package/lib/browser/util/file-drag.spec.js +46 -0
  279. package/lib/browser/util/file-drag.spec.js.map +1 -0
  280. package/lib/browser/util/message.d.ts +1 -0
  281. package/lib/browser/util/message.d.ts.map +1 -1
  282. package/lib/browser/util/message.js +7 -5
  283. package/lib/browser/util/message.js.map +1 -1
  284. package/lib/browser/util/message.spec.js +2 -0
  285. package/lib/browser/util/message.spec.js.map +1 -1
  286. package/lib/browser/util/terminal-text.d.ts +34 -0
  287. package/lib/browser/util/terminal-text.d.ts.map +1 -0
  288. package/lib/browser/util/terminal-text.js +212 -0
  289. package/lib/browser/util/terminal-text.js.map +1 -0
  290. package/lib/browser/util/terminal-text.spec.d.ts +2 -0
  291. package/lib/browser/util/terminal-text.spec.d.ts.map +1 -0
  292. package/lib/browser/util/terminal-text.spec.js +54 -0
  293. package/lib/browser/util/terminal-text.spec.js.map +1 -0
  294. package/lib/browser/util/tool.d.ts.map +1 -1
  295. package/lib/browser/util/tool.js +16 -0
  296. package/lib/browser/util/tool.js.map +1 -1
  297. package/lib/browser/util/tool.spec.js +12 -0
  298. package/lib/browser/util/tool.spec.js.map +1 -1
  299. package/lib/browser/workbench-protocol.d.ts +7 -1
  300. package/lib/browser/workbench-protocol.d.ts.map +1 -1
  301. package/lib/browser/workbench-protocol.js.map +1 -1
  302. package/lib/browser/workbench.d.ts +7 -1
  303. package/lib/browser/workbench.d.ts.map +1 -1
  304. package/lib/browser/workbench.js +23 -0
  305. package/lib/browser/workbench.js.map +1 -1
  306. package/package.json +11 -7
  307. package/src/browser/chat/chat-protocol.ts +4 -0
  308. package/src/browser/chat/chat-view.tsx +5 -1
  309. package/src/browser/chat/chat.spec.ts +31 -0
  310. package/src/browser/chat/chat.ts +36 -14
  311. package/src/browser/chat/draft-model.spec.tsx +31 -0
  312. package/src/browser/chat/draft-model.tsx +63 -0
  313. package/src/browser/components/account-menu.tsx +23 -20
  314. package/src/browser/components/app-view.tsx +12 -3
  315. package/src/browser/components/chat-list.tsx +9 -2
  316. package/src/browser/components/composer-box.tsx +52 -6
  317. package/src/browser/components/composer.tsx +1 -0
  318. package/src/browser/components/dialog-view.tsx +16 -7
  319. package/src/browser/components/folder-picker.spec.ts +17 -0
  320. package/src/browser/components/folder-picker.tsx +221 -39
  321. package/src/browser/components/notice-center.tsx +7 -1
  322. package/src/browser/components/plus-menu.spec.ts +16 -0
  323. package/src/browser/components/remote-hosts.tsx +149 -0
  324. package/src/browser/components/remote-prompts.tsx +111 -0
  325. package/src/browser/components/session-view.tsx +65 -4
  326. package/src/browser/components/settings-view.tsx +8 -0
  327. package/src/browser/components/terminal-art.tsx +21 -0
  328. package/src/browser/components/tool-view.tsx +1 -1
  329. package/src/browser/components/web-composer.tsx +18 -3
  330. package/src/browser/components/working-directory.tsx +1 -1
  331. package/src/browser/extension/icons.ts +10 -0
  332. package/src/browser/extension/web-extension-api.ts +134 -2
  333. package/src/browser/extension/web-extensions.ts +47 -2
  334. package/src/browser/i18n/messages.ts +99 -13
  335. package/src/browser/notices/notices-protocol.ts +3 -0
  336. package/src/browser/notices/notices.spec.ts +9 -3
  337. package/src/browser/notices/notices.ts +17 -1
  338. package/src/browser/style/base.ts +6 -1
  339. package/src/browser/style/conversation.ts +16 -1
  340. package/src/browser/style/layout.ts +53 -15
  341. package/src/browser/style/shell.ts +1 -0
  342. package/src/browser/terminal/canvas-font.spec.ts +29 -0
  343. package/src/browser/terminal/canvas-font.ts +32 -0
  344. package/src/browser/terminal/terminal-links.spec.ts +32 -0
  345. package/src/browser/terminal/terminal-links.ts +75 -0
  346. package/src/browser/terminal/terminal-theme.spec.ts +23 -0
  347. package/src/browser/terminal/terminal-theme.ts +66 -0
  348. package/src/browser/terminal/web-terminal.ts +330 -0
  349. package/src/browser/terminal/xterm.ts +10 -0
  350. package/src/browser/util/desktop.spec.ts +68 -0
  351. package/src/browser/util/desktop.ts +96 -0
  352. package/src/browser/util/file-drag.spec.ts +48 -0
  353. package/src/browser/util/file-drag.ts +78 -0
  354. package/src/browser/util/message.spec.ts +2 -0
  355. package/src/browser/util/message.ts +7 -4
  356. package/src/browser/util/terminal-text.spec.ts +60 -0
  357. package/src/browser/util/terminal-text.ts +223 -0
  358. package/src/browser/util/tool.spec.ts +12 -0
  359. package/src/browser/util/tool.ts +17 -0
  360. package/src/browser/workbench-protocol.ts +8 -0
  361. package/src/browser/workbench.ts +29 -0
@@ -0,0 +1,34 @@
1
+ const INSTALLED = Symbol.for('ta.canvasFontTrim');
2
+ /**
3
+ * xterm.js's WebGL renderer sets the font of its canvases as `${italic} ${weight} ${size}px ${family}`,
4
+ * which starts with a space when the text is not italic. Chromium 156 (Electron 45, the desktop app)
5
+ * rejects a font with leading spaces and keeps `10px sans-serif`: the glyphs come out tiny in cells of
6
+ * the right size. Setting `font` without the leading spaces makes it the font xterm.js meant; a font
7
+ * that was valid is unchanged. Remove when @xterm/addon-webgl writes `normal` there.
8
+ */
9
+ export var CanvasFontFix;
10
+ (function (CanvasFontFix) {
11
+ function install(prototypes = defaults()) {
12
+ for (const prototype of prototypes) {
13
+ const target = prototype;
14
+ const font = target && Object.getOwnPropertyDescriptor(target, 'font');
15
+ if (!target || !(font === null || font === void 0 ? void 0 : font.set) || target[INSTALLED]) {
16
+ continue;
17
+ }
18
+ const set = font.set;
19
+ Object.defineProperty(target, 'font', {
20
+ ...font,
21
+ set(value) {
22
+ set.call(this, typeof value === 'string' ? value.trimStart() : value);
23
+ },
24
+ });
25
+ Object.defineProperty(target, INSTALLED, { value: true });
26
+ }
27
+ }
28
+ CanvasFontFix.install = install;
29
+ function defaults() {
30
+ var _a, _b;
31
+ return [(_a = globalThis.CanvasRenderingContext2D) === null || _a === void 0 ? void 0 : _a.prototype, (_b = globalThis.OffscreenCanvasRenderingContext2D) === null || _b === void 0 ? void 0 : _b.prototype];
32
+ }
33
+ })(CanvasFontFix || (CanvasFontFix = {}));
34
+ //# sourceMappingURL=canvas-font.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-font.js","sourceRoot":"","sources":["../../../src/browser/terminal/canvas-font.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,KAAW,aAAa,CAsB7B;AAtBD,WAAiB,aAAa;IAC1B,SAAgB,OAAO,CAAC,UAAU,GAAoC,QAAQ,EAAE;QAC5E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,SAAqD,CAAC;YACrE,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,IAAI,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAA,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,SAAS;YACb,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE;gBAClC,GAAG,IAAI;gBACP,GAAG,CAAe,KAAc;oBAC5B,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC1E,CAAC;aACJ,CAAC,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAhBe,cAAA,OAAO,UAgBtB,CAAA;IAED,SAAS,QAAQ;;QACb,OAAO,CAAC,MAAA,UAAU,CAAC,wBAAwB,0CAAE,SAAS,EAAE,MAAA,UAAU,CAAC,iCAAiC,0CAAE,SAAS,CAAC,CAAC;IACrH,CAAC;AACL,CAAC,EAtBgB,aAAa,KAAb,aAAa,QAsB7B"}
@@ -0,0 +1,18 @@
1
+ import { type LinkTarget } from '../util/link.js';
2
+ /** A link in a line of a terminal: `text.slice(start, end)`. */
3
+ export interface TerminalLink {
4
+ start: number;
5
+ end: number;
6
+ target: LinkTarget;
7
+ }
8
+ /**
9
+ * The links of a line of a terminal, as VS Code finds them: http(s) and file URLs, and paths of files
10
+ * (`src/a.ts:10:5`, `./b.md`, `/etc/hosts`, `docs/`) with the place a compiler or grep prints after
11
+ * them. A name alone is a file only with an extension files have (LinkUtil.codeReference); a path
12
+ * starting with `./`, `../` or two names under `/` is one with any name.
13
+ */
14
+ export declare namespace TerminalLinkUtil {
15
+ function find(text: string): TerminalLink[];
16
+ /** `file://host/path` of OSC 7, the directory a shell says it is in. */
17
+ function cwdOf(osc7: string): string | undefined;
18
+ }
@@ -0,0 +1,72 @@
1
+ import { LinkUtil } from '../util/link.js';
2
+ const URL_START = /\b(?:https?|file):\/\//gi;
3
+ /** What a path may be in: anything up to a space, a quote or a bracket. */
4
+ const WORD = /[^\s'"`<>()[\]{}|;,]+/g;
5
+ /** A path at the start of a word, with the line and column a compiler or grep prints after it (`:10`, `:10:5`). */
6
+ const PATH = /^(?:\.{1,2}\/|\/)?(?:[\w@+.-]+\/)*[\w@+.-]+\/?(?::\d+(?::\d+)?)?/;
7
+ /** A path no one mistakes for a word, with or without an extension: `./x`, `../x`, `/etc/hosts` (not `/help`). */
8
+ const EXPLICIT = /^(?:\.{1,2}\/[^/]|\/[^/]+\/[^/])/;
9
+ /** TypeScript's and MSBuild's `(10,5)` right after a path. */
10
+ const PARENS = /^\((\d+)(?:,(\d+))?\)/;
11
+ /**
12
+ * The links of a line of a terminal, as VS Code finds them: http(s) and file URLs, and paths of files
13
+ * (`src/a.ts:10:5`, `./b.md`, `/etc/hosts`, `docs/`) with the place a compiler or grep prints after
14
+ * them. A name alone is a file only with an extension files have (LinkUtil.codeReference); a path
15
+ * starting with `./`, `../` or two names under `/` is one with any name.
16
+ */
17
+ export var TerminalLinkUtil;
18
+ (function (TerminalLinkUtil) {
19
+ function find(text) {
20
+ var _a, _b;
21
+ var _c;
22
+ const links = [];
23
+ for (const found of text.matchAll(URL_START)) {
24
+ const start = found.index;
25
+ const url = /^file:/i.test(found[0]) ? (_a = /^file:\/\/[^\s'"`<>]+/i.exec(text.slice(start))) === null || _a === void 0 ? void 0 : _a[0] : LinkUtil.bareUrl(text.slice(start));
26
+ const target = url && LinkUtil.parse(url);
27
+ if (target) {
28
+ links.push({ start, end: start + url.length, target });
29
+ }
30
+ }
31
+ const inUrl = (index) => links.some(link => index >= link.start && index < link.end);
32
+ const urls = links.length;
33
+ for (const word of text.matchAll(WORD)) {
34
+ if (inUrl(word.index)) {
35
+ continue;
36
+ }
37
+ const path = (_b = PATH.exec(word[0])) === null || _b === void 0 ? void 0 : _b[0].replace(/[.:]+$/, '');
38
+ if (!path) {
39
+ continue;
40
+ }
41
+ const start = word.index;
42
+ let end = start + path.length;
43
+ let reference = path;
44
+ const parens = path.length === word[0].length ? PARENS.exec(text.slice(end)) : null;
45
+ if (parens && !/:\d+$/.test(path)) {
46
+ reference = `${path}:${parens[1]}${parens[2] ? `:${parens[2]}` : ''}`;
47
+ end += parens[0].length;
48
+ }
49
+ const target = (_c = LinkUtil.codeReference(reference)) !== null && _c !== void 0 ? _c : (EXPLICIT.test(reference) ? LinkUtil.parse(reference) : undefined);
50
+ if (target) {
51
+ links.push({ start, end, target });
52
+ }
53
+ }
54
+ return urls === links.length ? links : links.sort((a, b) => a.start - b.start);
55
+ }
56
+ TerminalLinkUtil.find = find;
57
+ /** `file://host/path` of OSC 7, the directory a shell says it is in. */
58
+ function cwdOf(osc7) {
59
+ const found = /^file:\/\/[^/]*(\/.*)$/i.exec(osc7.trim());
60
+ if (!found) {
61
+ return undefined;
62
+ }
63
+ try {
64
+ return decodeURIComponent(found[1]);
65
+ }
66
+ catch (_a) {
67
+ return undefined;
68
+ }
69
+ }
70
+ TerminalLinkUtil.cwdOf = cwdOf;
71
+ })(TerminalLinkUtil || (TerminalLinkUtil = {}));
72
+ //# sourceMappingURL=terminal-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-links.js","sourceRoot":"","sources":["../../../src/browser/terminal/terminal-links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,QAAQ,EAAE,MAAM,cAAc,CAAC;AASzD,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAC7C,2EAA2E;AAC3E,MAAM,IAAI,GAAG,wBAAwB,CAAC;AACtC,mHAAmH;AACnH,MAAM,IAAI,GAAG,kEAAkE,CAAC;AAChF,kHAAkH;AAClH,MAAM,QAAQ,GAAG,kCAAkC,CAAC;AACpD,8DAA8D;AAC9D,MAAM,MAAM,GAAG,uBAAuB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,KAAW,gBAAgB,CAiDhC;AAjDD,WAAiB,gBAAgB;IAC7B,SAAgB,IAAI,CAAC,IAAY;;;QAC7B,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,0CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACnI,MAAM,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,MAAM,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,SAAS;YACb,CAAC;YACD,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0CAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,SAAS;YACb,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,SAAS,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACtE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5B,CAAC;YACD,MAAM,MAAM,SAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,mCAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvH,IAAI,MAAM,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC;IAlCe,iBAAA,IAAI,OAkCnB,CAAA;IAED,wEAAwE;IACxE,SAAgB,KAAK,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC;YACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;mBAAO,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAVe,iBAAA,KAAK,QAUpB,CAAA;AACL,CAAC,EAjDgB,gBAAgB,KAAhB,gBAAgB,QAiDhC"}
@@ -0,0 +1,8 @@
1
+ import type { ITheme } from '@xterm/xterm';
2
+ import type { Theme } from '../settings/settings-protocol.js';
3
+ export declare namespace TerminalTheme {
4
+ /** The colours of a terminal on the page: its background and text are the page's (`--ta-*`), the rest VS Code's. */
5
+ function of(theme: Theme, variable: (name: string) => string): ITheme;
6
+ /** The font of the page's code: `--ta-mono`. */
7
+ function fontFamily(variable: (name: string) => string): string;
8
+ }
@@ -0,0 +1,65 @@
1
+ /** The sixteen colours of VS Code's terminal, for a dark and a light page. */
2
+ const ANSI = {
3
+ dark: {
4
+ black: '#000000',
5
+ red: '#cd3131',
6
+ green: '#0dbc79',
7
+ yellow: '#e5e510',
8
+ blue: '#2472c8',
9
+ magenta: '#bc3fbc',
10
+ cyan: '#11a8cd',
11
+ white: '#e5e5e5',
12
+ brightBlack: '#666666',
13
+ brightRed: '#f14c4c',
14
+ brightGreen: '#23d18b',
15
+ brightYellow: '#f5f543',
16
+ brightBlue: '#3b8eea',
17
+ brightMagenta: '#d670d6',
18
+ brightCyan: '#29b8db',
19
+ brightWhite: '#e5e5e5',
20
+ selectionBackground: '#264f78',
21
+ selectionInactiveBackground: '#3a3d41',
22
+ scrollbarSliderBackground: 'rgba(121, 121, 121, 0.4)',
23
+ scrollbarSliderHoverBackground: 'rgba(100, 100, 100, 0.7)',
24
+ scrollbarSliderActiveBackground: 'rgba(191, 191, 191, 0.4)',
25
+ },
26
+ light: {
27
+ black: '#000000',
28
+ red: '#cd3131',
29
+ green: '#00bc00',
30
+ yellow: '#949800',
31
+ blue: '#0451a5',
32
+ magenta: '#bc05bc',
33
+ cyan: '#0598bc',
34
+ white: '#555555',
35
+ brightBlack: '#666666',
36
+ brightRed: '#cd3131',
37
+ brightGreen: '#14ce14',
38
+ brightYellow: '#b5ba00',
39
+ brightBlue: '#0451a5',
40
+ brightMagenta: '#bc05bc',
41
+ brightCyan: '#0598bc',
42
+ brightWhite: '#a5a5a5',
43
+ selectionBackground: '#add6ff',
44
+ selectionInactiveBackground: '#e5ebf1',
45
+ scrollbarSliderBackground: 'rgba(100, 100, 100, 0.4)',
46
+ scrollbarSliderHoverBackground: 'rgba(100, 100, 100, 0.7)',
47
+ scrollbarSliderActiveBackground: 'rgba(0, 0, 0, 0.6)',
48
+ },
49
+ };
50
+ export var TerminalTheme;
51
+ (function (TerminalTheme) {
52
+ /** The colours of a terminal on the page: its background and text are the page's (`--ta-*`), the rest VS Code's. */
53
+ function of(theme, variable) {
54
+ const background = variable('--ta-code').trim() || (theme === 'dark' ? '#161618' : '#f7f8fa');
55
+ const foreground = variable('--ta-text').trim() || (theme === 'dark' ? '#e5e5e5' : '#1a1a1a');
56
+ return { ...ANSI[theme], background, foreground, cursor: foreground, cursorAccent: background };
57
+ }
58
+ TerminalTheme.of = of;
59
+ /** The font of the page's code: `--ta-mono`. */
60
+ function fontFamily(variable) {
61
+ return variable('--ta-mono').trim() || 'monospace';
62
+ }
63
+ TerminalTheme.fontFamily = fontFamily;
64
+ })(TerminalTheme || (TerminalTheme = {}));
65
+ //# sourceMappingURL=terminal-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-theme.js","sourceRoot":"","sources":["../../../src/browser/terminal/terminal-theme.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,MAAM,IAAI,GAA0B;IAChC,IAAI,EAAE;QACF,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,mBAAmB,EAAE,SAAS;QAC9B,2BAA2B,EAAE,SAAS;QACtC,yBAAyB,EAAE,0BAA0B;QACrD,8BAA8B,EAAE,0BAA0B;QAC1D,+BAA+B,EAAE,0BAA0B;KAC9D;IACD,KAAK,EAAE;QACH,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,mBAAmB,EAAE,SAAS;QAC9B,2BAA2B,EAAE,SAAS;QACtC,yBAAyB,EAAE,0BAA0B;QACrD,8BAA8B,EAAE,0BAA0B;QAC1D,+BAA+B,EAAE,oBAAoB;KACxD;CACJ,CAAC;AAEF,MAAM,KAAW,aAAa,CAY7B;AAZD,WAAiB,aAAa;IAC1B,oHAAoH;IACpH,SAAgB,EAAE,CAAC,KAAY,EAAE,QAAkC;QAC/D,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9F,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IACpG,CAAC;IAJe,cAAA,EAAE,KAIjB,CAAA;IAED,gDAAgD;IAChD,SAAgB,UAAU,CAAC,QAAkC;QACzD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;IACvD,CAAC;IAFe,cAAA,UAAU,aAEzB,CAAA;AACL,CAAC,EAZgB,aAAa,KAAb,aAAa,QAY7B"}
@@ -0,0 +1,74 @@
1
+ import type { FitAddon } from '@xterm/addon-fit';
2
+ import type { ILink, Terminal } from '@xterm/xterm';
3
+ import type { WebTerminal, WebTerminalOptions } from '../extension/web-extension-api.js';
4
+ import type { OpenLinkOptions } from '../links/links-protocol.js';
5
+ import type { TaSettings } from '../settings/settings-protocol.js';
6
+ import type { LinkTarget } from '../util/link.js';
7
+ type XtermModule = typeof import('./xterm.js');
8
+ /** Loads xterm.js the first time a terminal is made, not with the page. */
9
+ export declare namespace XtermLoader {
10
+ function load(): Promise<XtermModule>;
11
+ }
12
+ /** Opens what a link points to, as a link of a reply (TaLinks.open). */
13
+ export type TerminalLinkOpener = (target: LinkTarget, options: OpenLinkOptions) => void;
14
+ /**
15
+ * A terminal as VS Code's: xterm.js on the GPU (its WebGL renderer; the DOM one when the browser has
16
+ * no WebGL or loses it), in the theme of the page, which it follows. It opens in an element of its own
17
+ * that moves from view to view, so that it keeps its screen and scrollback while no view shows it.
18
+ * URLs and paths of files are links, opened with Cmd or Ctrl + click, from the directory the shell says
19
+ * it is in (OSC 7), else the one it started in.
20
+ */
21
+ export declare class DefaultWebTerminal implements WebTerminal {
22
+ protected readonly settings: TaSettings;
23
+ protected readonly openLink: TerminalLinkOpener;
24
+ cols: number;
25
+ rows: number;
26
+ /** Where paths of its links are read from. */
27
+ protected cwd?: string;
28
+ protected term?: Terminal;
29
+ protected fit?: FitAddon;
30
+ protected module?: XtermModule;
31
+ protected opened: boolean;
32
+ protected disposed: boolean;
33
+ /** Focus asked for before xterm.js opened: it takes it once it does. */
34
+ protected wantsFocus: boolean;
35
+ /** Output that came before xterm.js loaded. */
36
+ protected pending: string[];
37
+ protected readonly dataListeners: Set<(data: string) => void>;
38
+ protected readonly resizeListeners: Set<(size: {
39
+ cols: number;
40
+ rows: number;
41
+ }) => void>;
42
+ protected readonly host: HTMLDivElement;
43
+ protected parent?: HTMLElement;
44
+ protected observer?: ResizeObserver;
45
+ protected fitTimer?: ReturnType<typeof setTimeout>;
46
+ protected unsubscribe?: () => void;
47
+ constructor(settings: TaSettings, openLink: TerminalLinkOpener, options?: WebTerminalOptions);
48
+ write(data: string): void;
49
+ onData(listener: (data: string) => void): () => void;
50
+ onResize(listener: (size: {
51
+ cols: number;
52
+ rows: number;
53
+ }) => void): () => void;
54
+ attach(element: HTMLElement): () => void;
55
+ focus(): void;
56
+ dispose(): void;
57
+ protected start(module: XtermModule): void;
58
+ /**
59
+ * Opens xterm.js where it can measure its font: once, the first time it is in the page with a size
60
+ * (a hidden tab has none; ResizeObserver calls again when it shows).
61
+ */
62
+ protected open(): void;
63
+ /**
64
+ * Opens it the first time its view has a size, and fits it to the view after that, once the size
65
+ * settled; a hidden view (no size) keeps the size it had. Timers, not frames: a window in the
66
+ * background gets no frames, and the terminal would stay unopened there.
67
+ */
68
+ protected layout(): void;
69
+ /** The links of the line (with the rows it wraps onto) that crosses row `y` (from 1). */
70
+ protected linksAt(term: Terminal, y: number): ILink[] | undefined;
71
+ protected detach(): void;
72
+ protected emitData(data: string): void;
73
+ }
74
+ export {};
@@ -0,0 +1,300 @@
1
+ import { message } from '../i18n/messages.js';
2
+ import { ShortcutUtil } from '../settings/agent-settings.js';
3
+ import { TerminalLinkUtil } from './terminal-links.js';
4
+ import { TerminalTheme } from './terminal-theme.js';
5
+ /** Loads xterm.js the first time a terminal is made, not with the page. */
6
+ export var XtermLoader;
7
+ (function (XtermLoader) {
8
+ let loading;
9
+ function load() {
10
+ loading !== null && loading !== void 0 ? loading : (loading = import('./xterm.js').catch(error => {
11
+ loading = undefined;
12
+ throw error;
13
+ }));
14
+ return loading;
15
+ }
16
+ XtermLoader.load = load;
17
+ })(XtermLoader || (XtermLoader = {}));
18
+ const DEFAULT_COLS = 80;
19
+ const DEFAULT_ROWS = 24;
20
+ const SCROLLBACK = 5000;
21
+ /** Rows of one line that wraps, at most, read for its links. */
22
+ const MAX_WRAPPED_ROWS = 50;
23
+ /** A view being dragged to a new size fits once it stops. */
24
+ const FIT_MS = 50;
25
+ function cssVariable(name) {
26
+ return getComputedStyle(document.documentElement).getPropertyValue(name);
27
+ }
28
+ /**
29
+ * A terminal as VS Code's: xterm.js on the GPU (its WebGL renderer; the DOM one when the browser has
30
+ * no WebGL or loses it), in the theme of the page, which it follows. It opens in an element of its own
31
+ * that moves from view to view, so that it keeps its screen and scrollback while no view shows it.
32
+ * URLs and paths of files are links, opened with Cmd or Ctrl + click, from the directory the shell says
33
+ * it is in (OSC 7), else the one it started in.
34
+ */
35
+ export class DefaultWebTerminal {
36
+ constructor(settings, openLink, options = {}) {
37
+ var _a, _b;
38
+ this.settings = settings;
39
+ this.openLink = openLink;
40
+ this.opened = false;
41
+ this.disposed = false;
42
+ /** Focus asked for before xterm.js opened: it takes it once it does. */
43
+ this.wantsFocus = false;
44
+ /** Output that came before xterm.js loaded. */
45
+ this.pending = [];
46
+ this.dataListeners = new Set();
47
+ this.resizeListeners = new Set();
48
+ this.host = document.createElement('div');
49
+ this.cols = (_a = options.cols) !== null && _a !== void 0 ? _a : DEFAULT_COLS;
50
+ this.rows = (_b = options.rows) !== null && _b !== void 0 ? _b : DEFAULT_ROWS;
51
+ this.cwd = options.cwd;
52
+ this.host.className = 'ta-terminal';
53
+ XtermLoader.load().then(module => this.start(module), error => console.error('The terminal did not load:', error));
54
+ }
55
+ write(data) {
56
+ if (this.term) {
57
+ this.term.write(data);
58
+ }
59
+ else if (!this.disposed) {
60
+ this.pending.push(data);
61
+ }
62
+ }
63
+ onData(listener) {
64
+ this.dataListeners.add(listener);
65
+ return () => this.dataListeners.delete(listener);
66
+ }
67
+ onResize(listener) {
68
+ this.resizeListeners.add(listener);
69
+ return () => this.resizeListeners.delete(listener);
70
+ }
71
+ attach(element) {
72
+ this.detach();
73
+ this.parent = element;
74
+ element.appendChild(this.host);
75
+ this.observer = new ResizeObserver(() => this.layout());
76
+ this.observer.observe(element);
77
+ this.open();
78
+ this.layout();
79
+ return () => {
80
+ if (this.parent === element) {
81
+ this.detach();
82
+ }
83
+ };
84
+ }
85
+ focus() {
86
+ var _a;
87
+ if (this.opened) {
88
+ (_a = this.term) === null || _a === void 0 ? void 0 : _a.focus();
89
+ }
90
+ else {
91
+ this.wantsFocus = true;
92
+ }
93
+ }
94
+ dispose() {
95
+ var _a, _b;
96
+ this.disposed = true;
97
+ this.detach();
98
+ (_a = this.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(this);
99
+ (_b = this.term) === null || _b === void 0 ? void 0 : _b.dispose();
100
+ this.pending = [];
101
+ this.dataListeners.clear();
102
+ this.resizeListeners.clear();
103
+ }
104
+ start(module) {
105
+ if (this.disposed) {
106
+ return;
107
+ }
108
+ this.module = module;
109
+ const term = new module.Terminal({
110
+ cols: this.cols,
111
+ rows: this.rows,
112
+ // The Unicode 11 widths of emoji and CJK, as programs reckon them.
113
+ allowProposedApi: true,
114
+ fontFamily: TerminalTheme.fontFamily(cssVariable),
115
+ fontSize: 12,
116
+ lineHeight: 1.2,
117
+ scrollback: SCROLLBACK,
118
+ cursorBlink: true,
119
+ cursorInactiveStyle: 'outline',
120
+ minimumContrastRatio: 4.5,
121
+ drawBoldTextInBrightColors: true,
122
+ rescaleOverlappingGlyphs: true,
123
+ theme: TerminalTheme.of(this.settings.state.theme, cssVariable),
124
+ });
125
+ const unicode = new module.Unicode11Addon();
126
+ term.loadAddon(unicode);
127
+ term.unicode.activeVersion = '11';
128
+ this.fit = new module.FitAddon();
129
+ term.loadAddon(this.fit);
130
+ // Shift+Enter as the kitty keyboard protocol writes it: a new line in the editor of pi (ta), not a send.
131
+ term.attachCustomKeyEventHandler(event => {
132
+ if (event.key === 'Enter' && event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey) {
133
+ if (event.type === 'keydown') {
134
+ this.emitData('\x1b[13;2u');
135
+ }
136
+ return false;
137
+ }
138
+ return true;
139
+ });
140
+ term.onData(data => this.emitData(data));
141
+ // Mouse reports in the old encoding, bytes over 127: as characters, which the server sends as they are.
142
+ term.onBinary(data => this.emitData(data));
143
+ term.onResize(size => {
144
+ this.cols = size.cols;
145
+ this.rows = size.rows;
146
+ for (const listener of this.resizeListeners) {
147
+ listener(size);
148
+ }
149
+ });
150
+ term.parser.registerOscHandler(7, data => {
151
+ var _a;
152
+ this.cwd = (_a = TerminalLinkUtil.cwdOf(data)) !== null && _a !== void 0 ? _a : this.cwd;
153
+ return true;
154
+ });
155
+ term.registerLinkProvider({ provideLinks: (y, callback) => callback(this.linksAt(term, y)) });
156
+ for (const data of this.pending) {
157
+ term.write(data);
158
+ }
159
+ this.pending = [];
160
+ this.term = term;
161
+ this.unsubscribe = this.settings.subscribe(state => {
162
+ term.options.theme = TerminalTheme.of(state.theme, cssVariable);
163
+ });
164
+ this.open();
165
+ this.layout();
166
+ }
167
+ /**
168
+ * Opens xterm.js where it can measure its font: once, the first time it is in the page with a size
169
+ * (a hidden tab has none; ResizeObserver calls again when it shows).
170
+ */
171
+ open() {
172
+ var _a;
173
+ const { term, module, parent } = this;
174
+ if (!term || !module || this.opened || !(parent === null || parent === void 0 ? void 0 : parent.clientWidth) || !parent.clientHeight) {
175
+ return;
176
+ }
177
+ this.opened = true;
178
+ term.open(this.host);
179
+ const input = this.host.querySelector('.xterm-helper-textarea');
180
+ for (const name of ['autocomplete', 'autocorrect', 'autocapitalize']) {
181
+ input === null || input === void 0 ? void 0 : input.setAttribute(name, 'off');
182
+ }
183
+ input === null || input === void 0 ? void 0 : input.setAttribute('spellcheck', 'false');
184
+ try {
185
+ const webgl = new module.WebglAddon();
186
+ webgl.onContextLoss(() => webgl.dispose());
187
+ term.loadAddon(webgl);
188
+ }
189
+ catch (error) {
190
+ console.warn('No WebGL for the terminal; it draws with the DOM:', error);
191
+ }
192
+ // After the renderer: WebGL measures characters otherwise than the DOM, so the size it fits differs.
193
+ (_a = this.fit) === null || _a === void 0 ? void 0 : _a.fit();
194
+ if (this.wantsFocus) {
195
+ this.wantsFocus = false;
196
+ term.focus();
197
+ }
198
+ }
199
+ /**
200
+ * Opens it the first time its view has a size, and fits it to the view after that, once the size
201
+ * settled; a hidden view (no size) keeps the size it had. Timers, not frames: a window in the
202
+ * background gets no frames, and the terminal would stay unopened there.
203
+ */
204
+ layout() {
205
+ var _a;
206
+ if (!((_a = this.parent) === null || _a === void 0 ? void 0 : _a.clientWidth) || !this.parent.clientHeight) {
207
+ return;
208
+ }
209
+ if (!this.opened) {
210
+ this.open();
211
+ return;
212
+ }
213
+ clearTimeout(this.fitTimer);
214
+ this.fitTimer = setTimeout(() => {
215
+ var _a, _b, _c, _d, _e;
216
+ const size = ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.clientWidth) && this.parent.clientHeight ? (_b = this.fit) === null || _b === void 0 ? void 0 : _b.proposeDimensions() : undefined;
217
+ if (size && (size.cols !== ((_c = this.term) === null || _c === void 0 ? void 0 : _c.cols) || size.rows !== ((_d = this.term) === null || _d === void 0 ? void 0 : _d.rows))) {
218
+ (_e = this.fit) === null || _e === void 0 ? void 0 : _e.fit();
219
+ }
220
+ }, FIT_MS);
221
+ }
222
+ /** The links of the line (with the rows it wraps onto) that crosses row `y` (from 1). */
223
+ linksAt(term, y) {
224
+ var _a;
225
+ var _b;
226
+ const buffer = term.buffer.active;
227
+ let first = y - 1;
228
+ while (first > 0 && y - 1 - first < MAX_WRAPPED_ROWS && ((_a = buffer.getLine(first)) === null || _a === void 0 ? void 0 : _a.isWrapped)) {
229
+ first--;
230
+ }
231
+ // The text of the line, and where each of its characters (UTF-16 units) is on the screen.
232
+ let text = '';
233
+ const places = [];
234
+ for (let row = first; row - first < MAX_WRAPPED_ROWS; row++) {
235
+ const line = buffer.getLine(row);
236
+ if (!line || (row > first && !line.isWrapped)) {
237
+ break;
238
+ }
239
+ for (let x = 0; x < line.length; x++) {
240
+ const cell = line.getCell(x);
241
+ const width = (_b = cell === null || cell === void 0 ? void 0 : cell.getWidth()) !== null && _b !== void 0 ? _b : 1;
242
+ if (!cell || width === 0) {
243
+ // The second half of a wide character.
244
+ continue;
245
+ }
246
+ const chars = cell.getChars() || ' ';
247
+ for (let unit = 0; unit < chars.length; unit++) {
248
+ places.push({ x: x + 1, y: row + 1, width });
249
+ }
250
+ text += chars;
251
+ }
252
+ }
253
+ const links = TerminalLinkUtil.find(text).filter(link => places[link.start].y <= y && places[link.end - 1].y >= y);
254
+ if (!links.length) {
255
+ return undefined;
256
+ }
257
+ const mac = ShortcutUtil.isMac();
258
+ return links.map(link => {
259
+ const start = places[link.start];
260
+ const last = places[link.end - 1];
261
+ const hint = link.target.type === 'path'
262
+ ? mac
263
+ ? 'ta.terminal.openLinkMac'
264
+ : 'ta.terminal.openLink'
265
+ : mac
266
+ ? 'ta.terminal.openUrlMac'
267
+ : 'ta.terminal.openUrl';
268
+ return {
269
+ range: { start: { x: start.x, y: start.y }, end: { x: last.x + last.width - 1, y: last.y } },
270
+ text: text.slice(link.start, link.end),
271
+ decorations: { underline: true, pointerCursor: true },
272
+ activate: (event) => {
273
+ if (mac ? event.metaKey : event.ctrlKey) {
274
+ this.openLink(link.target, { cwd: this.cwd, external: event.shiftKey && link.target.type !== 'path' });
275
+ }
276
+ },
277
+ hover: () => {
278
+ this.host.title = message(this.settings.state.language, hint);
279
+ },
280
+ leave: () => {
281
+ this.host.title = '';
282
+ },
283
+ };
284
+ });
285
+ }
286
+ detach() {
287
+ var _a;
288
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
289
+ this.observer = undefined;
290
+ clearTimeout(this.fitTimer);
291
+ this.host.remove();
292
+ this.parent = undefined;
293
+ }
294
+ emitData(data) {
295
+ for (const listener of this.dataListeners) {
296
+ listener(data);
297
+ }
298
+ }
299
+ }
300
+ //# sourceMappingURL=web-terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-terminal.js","sourceRoot":"","sources":["../../../src/browser/terminal/web-terminal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import '@xterm/xterm/css/xterm.css';
2
+ export { FitAddon } from '@xterm/addon-fit';
3
+ export { Unicode11Addon } from '@xterm/addon-unicode11';
4
+ export { WebglAddon } from '@xterm/addon-webgl';
5
+ export { Terminal } from '@xterm/xterm';
@@ -0,0 +1,9 @@
1
+ // What a terminal loads the first time one is made: xterm.js, its WebGL renderer and its styles.
2
+ import '@xterm/xterm/css/xterm.css';
3
+ import { CanvasFontFix } from './canvas-font.js';
4
+ CanvasFontFix.install();
5
+ export { FitAddon } from '@xterm/addon-fit';
6
+ export { Unicode11Addon } from '@xterm/addon-unicode11';
7
+ export { WebglAddon } from '@xterm/addon-webgl';
8
+ export { Terminal } from '@xterm/xterm';
9
+ //# sourceMappingURL=xterm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xterm.js","sourceRoot":"","sources":["../../../src/browser/terminal/xterm.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,aAAa,CAAC,OAAO,EAAE,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}