@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
@@ -6,6 +6,8 @@ import {
6
6
  type TaAuthServer,
7
7
  type TaPackageServer,
8
8
  type TaRelayServer,
9
+ type TaRemoteEvent,
10
+ type TaRemoteServer,
9
11
  type TaServer,
10
12
  type TaSettingsServer,
11
13
  type TaTerminalServer,
@@ -83,6 +85,7 @@ export class TaWorkbenchImpl implements TaWorkbench {
83
85
  protected readonly terminalListeners = new Set<(terminalId: string, data: string, exitCode?: number) => void>();
84
86
  protected readonly extensionDataListeners = new Set<(name: string, keys: string[], cwd?: string) => void>();
85
87
  protected readonly authListeners = new Set<(loginId: string, event: TaAuthEvent) => void>();
88
+ protected readonly remoteListeners = new Set<(event: TaRemoteEvent) => void>();
86
89
 
87
90
  get state(): WorkbenchState {
88
91
  return this.current;
@@ -116,6 +119,10 @@ export class TaWorkbenchImpl implements TaWorkbench {
116
119
  return this.signedIn().relay;
117
120
  }
118
121
 
122
+ get remote(): TaRemoteServer {
123
+ return this.signedIn().remote;
124
+ }
125
+
119
126
  protected signedIn(): TaConnection {
120
127
  if (!this.connection) {
121
128
  throw new Error('Not signed in to ta serve.');
@@ -138,6 +145,11 @@ export class TaWorkbenchImpl implements TaWorkbench {
138
145
  return () => this.authListeners.delete(listener);
139
146
  }
140
147
 
148
+ onRemoteEvent(listener: (event: TaRemoteEvent) => void): () => void {
149
+ this.remoteListeners.add(listener);
150
+ return () => this.remoteListeners.delete(listener);
151
+ }
152
+
141
153
  async setWorkingDirectory(cwd: string): Promise<void> {
142
154
  this.update({ server: await this.server.setWorkingDirectory(cwd) });
143
155
  }
@@ -239,12 +251,15 @@ export class TaWorkbenchImpl implements TaWorkbench {
239
251
  listener(loginId, event);
240
252
  }
241
253
  });
254
+ connection.onRemoteEvent(event => this.emitRemote(event));
242
255
  connection.onClose(() => this.update({ status: 'offline' }));
243
256
  connection.onReconnecting(delayMs => this.update({ retryAt: Date.now() + delayMs }));
244
257
  connection.onOpen(() => {
245
258
  this.update({ status: 'online', retryAt: undefined });
246
259
  void this.refresh();
260
+ void this.watchRemote(connection);
247
261
  });
262
+ void this.watchRemote(connection);
248
263
  this.update({ status: 'online', error: undefined, retryAt: undefined, server: await connection.server.getServerInfo() });
249
264
  await this.refresh();
250
265
  }
@@ -280,6 +295,20 @@ export class TaWorkbenchImpl implements TaWorkbench {
280
295
  return new SessionStore(this.connection, sessionId, options);
281
296
  }
282
297
 
298
+ /** The prompts of ssh that wait for an answer, from now and those already there. */
299
+ protected async watchRemote(connection: TaConnection): Promise<void> {
300
+ const prompts = await connection.remote.watch().catch(() => []);
301
+ for (const prompt of prompts) {
302
+ this.emitRemote({ type: 'prompt', prompt });
303
+ }
304
+ }
305
+
306
+ protected emitRemote(event: TaRemoteEvent): void {
307
+ for (const listener of this.remoteListeners) {
308
+ listener(event);
309
+ }
310
+ }
311
+
283
312
  protected stopRetrying(): void {
284
313
  this.generation++;
285
314
  clearTimeout(this.retryTimer);