editormate 1.0.2 → 1.0.7

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 (385) hide show
  1. package/bin/cli.js +113 -12
  2. package/dist/adapters/ide/ide_adapters.js +147 -7
  3. package/dist/adapters/messaging/discord_adapter.js +606 -7
  4. package/dist/adapters/messaging/discord_menu.js +125 -7
  5. package/dist/adapters/messaging/matrix_adapter.js +98 -7
  6. package/dist/adapters/messaging/slack_adapter.js +420 -7
  7. package/dist/adapters/messaging/telegram_adapter.d.ts.map +1 -1
  8. package/dist/adapters/messaging/telegram_adapter.js +634 -7
  9. package/dist/adapters/messaging/telegram_adapter.js.map +1 -1
  10. package/dist/adapters/messaging/telegram_client.js +383 -7
  11. package/dist/adapters/messaging/telegram_keyboards.js +219 -7
  12. package/dist/adapters/messaging/whatsapp_adapter.js +153 -7
  13. package/dist/adapters/messaging/whatsapp_baileys.js +880 -7
  14. package/dist/core/blocking_prompt_bridge.js +255 -7
  15. package/dist/core/chat_switchboard.js +243 -7
  16. package/dist/core/companion_daemon.d.ts +4 -0
  17. package/dist/core/companion_daemon.d.ts.map +1 -1
  18. package/dist/core/companion_daemon.js +1191 -7
  19. package/dist/core/companion_daemon.js.map +1 -1
  20. package/dist/core/email_reporter.js +510 -7
  21. package/dist/core/licensing.d.ts.map +1 -1
  22. package/dist/core/licensing.js +335 -7
  23. package/dist/core/licensing.js.map +1 -1
  24. package/dist/core/media_handler.js +449 -7
  25. package/dist/core/os_keychain.js +155 -7
  26. package/dist/core/outbound_dispatcher.js +80 -7
  27. package/dist/core/pdf_generator.js +226 -7
  28. package/dist/core/process_checker.js +47 -7
  29. package/dist/core/prompt_sanitizer.js +93 -7
  30. package/dist/core/security.js +385 -7
  31. package/dist/core/session_manager.d.ts.map +1 -1
  32. package/dist/core/session_manager.js +1241 -7
  33. package/dist/core/session_manager.js.map +1 -1
  34. package/dist/core/standalone_dashboard/client_script.js +479 -7
  35. package/dist/core/standalone_dashboard/components/header.js +23 -7
  36. package/dist/core/standalone_dashboard/components/modals.js +11 -7
  37. package/dist/core/standalone_dashboard/components/remote_deck.js +228 -7
  38. package/dist/core/standalone_dashboard/components/settings_deck.js +205 -7
  39. package/dist/core/standalone_dashboard/index.js +49 -7
  40. package/dist/core/standalone_dashboard/styles.js +546 -7
  41. package/dist/core/standalone_dashboard.js +4 -7
  42. package/dist/core/telemetry.js +225 -7
  43. package/dist/core/transcript_watcher.d.ts.map +1 -1
  44. package/dist/core/transcript_watcher.js +257 -7
  45. package/dist/core/transcript_watcher.js.map +1 -1
  46. package/dist/core/transcription_refiner.js +203 -7
  47. package/dist/core/tui_dashboard.js +454 -7
  48. package/dist/index.js +13 -7
  49. package/dist/types.js +12 -7
  50. package/extension/editormate-1.0.7.vsix +0 -0
  51. package/extension/editormate-latest.vsix +0 -0
  52. package/package.json +4 -3
  53. package/extension/.vscodeignore +0 -4
  54. package/extension/LICENSE.md +0 -31
  55. package/extension/README.md +0 -55
  56. package/extension/assets/icon.png +0 -0
  57. package/extension/assets/icon.svg +0 -16
  58. package/extension/bin/cli.js +0 -264
  59. package/extension/bin/package.json +0 -3
  60. package/extension/daemon/adapters/ide/ide_adapters.d.ts +0 -45
  61. package/extension/daemon/adapters/ide/ide_adapters.d.ts.map +0 -1
  62. package/extension/daemon/adapters/ide/ide_adapters.js +0 -9
  63. package/extension/daemon/adapters/ide/ide_adapters.js.map +0 -1
  64. package/extension/daemon/adapters/messaging/discord_adapter.d.ts +0 -56
  65. package/extension/daemon/adapters/messaging/discord_adapter.d.ts.map +0 -1
  66. package/extension/daemon/adapters/messaging/discord_adapter.js +0 -9
  67. package/extension/daemon/adapters/messaging/discord_adapter.js.map +0 -1
  68. package/extension/daemon/adapters/messaging/discord_menu.d.ts +0 -15
  69. package/extension/daemon/adapters/messaging/discord_menu.d.ts.map +0 -1
  70. package/extension/daemon/adapters/messaging/discord_menu.js +0 -9
  71. package/extension/daemon/adapters/messaging/discord_menu.js.map +0 -1
  72. package/extension/daemon/adapters/messaging/matrix_adapter.d.ts +0 -39
  73. package/extension/daemon/adapters/messaging/matrix_adapter.d.ts.map +0 -1
  74. package/extension/daemon/adapters/messaging/matrix_adapter.js +0 -9
  75. package/extension/daemon/adapters/messaging/matrix_adapter.js.map +0 -1
  76. package/extension/daemon/adapters/messaging/slack_adapter.d.ts +0 -115
  77. package/extension/daemon/adapters/messaging/slack_adapter.d.ts.map +0 -1
  78. package/extension/daemon/adapters/messaging/slack_adapter.js +0 -9
  79. package/extension/daemon/adapters/messaging/slack_adapter.js.map +0 -1
  80. package/extension/daemon/adapters/messaging/telegram_adapter.d.ts +0 -90
  81. package/extension/daemon/adapters/messaging/telegram_adapter.d.ts.map +0 -1
  82. package/extension/daemon/adapters/messaging/telegram_adapter.js +0 -9
  83. package/extension/daemon/adapters/messaging/telegram_adapter.js.map +0 -1
  84. package/extension/daemon/adapters/messaging/telegram_client.d.ts +0 -75
  85. package/extension/daemon/adapters/messaging/telegram_client.d.ts.map +0 -1
  86. package/extension/daemon/adapters/messaging/telegram_client.js +0 -9
  87. package/extension/daemon/adapters/messaging/telegram_client.js.map +0 -1
  88. package/extension/daemon/adapters/messaging/telegram_keyboards.d.ts +0 -55
  89. package/extension/daemon/adapters/messaging/telegram_keyboards.d.ts.map +0 -1
  90. package/extension/daemon/adapters/messaging/telegram_keyboards.js +0 -9
  91. package/extension/daemon/adapters/messaging/telegram_keyboards.js.map +0 -1
  92. package/extension/daemon/adapters/messaging/whatsapp_adapter.d.ts +0 -30
  93. package/extension/daemon/adapters/messaging/whatsapp_adapter.d.ts.map +0 -1
  94. package/extension/daemon/adapters/messaging/whatsapp_adapter.js +0 -9
  95. package/extension/daemon/adapters/messaging/whatsapp_adapter.js.map +0 -1
  96. package/extension/daemon/adapters/messaging/whatsapp_baileys.d.ts +0 -84
  97. package/extension/daemon/adapters/messaging/whatsapp_baileys.d.ts.map +0 -1
  98. package/extension/daemon/adapters/messaging/whatsapp_baileys.js +0 -9
  99. package/extension/daemon/adapters/messaging/whatsapp_baileys.js.map +0 -1
  100. package/extension/daemon/core/blocking_prompt_bridge.d.ts +0 -99
  101. package/extension/daemon/core/blocking_prompt_bridge.d.ts.map +0 -1
  102. package/extension/daemon/core/blocking_prompt_bridge.js +0 -9
  103. package/extension/daemon/core/blocking_prompt_bridge.js.map +0 -1
  104. package/extension/daemon/core/chat_switchboard.d.ts +0 -35
  105. package/extension/daemon/core/chat_switchboard.d.ts.map +0 -1
  106. package/extension/daemon/core/chat_switchboard.js +0 -9
  107. package/extension/daemon/core/chat_switchboard.js.map +0 -1
  108. package/extension/daemon/core/companion_daemon.d.ts +0 -23
  109. package/extension/daemon/core/companion_daemon.d.ts.map +0 -1
  110. package/extension/daemon/core/companion_daemon.js +0 -9
  111. package/extension/daemon/core/companion_daemon.js.map +0 -1
  112. package/extension/daemon/core/email_reporter.d.ts +0 -109
  113. package/extension/daemon/core/email_reporter.d.ts.map +0 -1
  114. package/extension/daemon/core/email_reporter.js +0 -9
  115. package/extension/daemon/core/email_reporter.js.map +0 -1
  116. package/extension/daemon/core/licensing.d.ts +0 -44
  117. package/extension/daemon/core/licensing.d.ts.map +0 -1
  118. package/extension/daemon/core/licensing.js +0 -9
  119. package/extension/daemon/core/licensing.js.map +0 -1
  120. package/extension/daemon/core/media_handler.d.ts +0 -67
  121. package/extension/daemon/core/media_handler.d.ts.map +0 -1
  122. package/extension/daemon/core/media_handler.js +0 -9
  123. package/extension/daemon/core/media_handler.js.map +0 -1
  124. package/extension/daemon/core/os_keychain.d.ts +0 -41
  125. package/extension/daemon/core/os_keychain.d.ts.map +0 -1
  126. package/extension/daemon/core/os_keychain.js +0 -9
  127. package/extension/daemon/core/os_keychain.js.map +0 -1
  128. package/extension/daemon/core/outbound_dispatcher.d.ts +0 -33
  129. package/extension/daemon/core/outbound_dispatcher.d.ts.map +0 -1
  130. package/extension/daemon/core/outbound_dispatcher.js +0 -9
  131. package/extension/daemon/core/outbound_dispatcher.js.map +0 -1
  132. package/extension/daemon/core/pdf_generator.d.ts +0 -66
  133. package/extension/daemon/core/pdf_generator.d.ts.map +0 -1
  134. package/extension/daemon/core/pdf_generator.js +0 -9
  135. package/extension/daemon/core/pdf_generator.js.map +0 -1
  136. package/extension/daemon/core/process_checker.d.ts +0 -10
  137. package/extension/daemon/core/process_checker.d.ts.map +0 -1
  138. package/extension/daemon/core/process_checker.js +0 -9
  139. package/extension/daemon/core/process_checker.js.map +0 -1
  140. package/extension/daemon/core/prompt_sanitizer.d.ts +0 -15
  141. package/extension/daemon/core/prompt_sanitizer.d.ts.map +0 -1
  142. package/extension/daemon/core/prompt_sanitizer.js +0 -9
  143. package/extension/daemon/core/prompt_sanitizer.js.map +0 -1
  144. package/extension/daemon/core/security.d.ts +0 -75
  145. package/extension/daemon/core/security.d.ts.map +0 -1
  146. package/extension/daemon/core/security.js +0 -9
  147. package/extension/daemon/core/security.js.map +0 -1
  148. package/extension/daemon/core/session_manager.d.ts +0 -67
  149. package/extension/daemon/core/session_manager.d.ts.map +0 -1
  150. package/extension/daemon/core/session_manager.js +0 -9
  151. package/extension/daemon/core/session_manager.js.map +0 -1
  152. package/extension/daemon/core/standalone_dashboard/client_script.d.ts +0 -5
  153. package/extension/daemon/core/standalone_dashboard/client_script.d.ts.map +0 -1
  154. package/extension/daemon/core/standalone_dashboard/client_script.js +0 -9
  155. package/extension/daemon/core/standalone_dashboard/client_script.js.map +0 -1
  156. package/extension/daemon/core/standalone_dashboard/components/header.d.ts +0 -5
  157. package/extension/daemon/core/standalone_dashboard/components/header.d.ts.map +0 -1
  158. package/extension/daemon/core/standalone_dashboard/components/header.js +0 -9
  159. package/extension/daemon/core/standalone_dashboard/components/header.js.map +0 -1
  160. package/extension/daemon/core/standalone_dashboard/components/modals.d.ts +0 -5
  161. package/extension/daemon/core/standalone_dashboard/components/modals.d.ts.map +0 -1
  162. package/extension/daemon/core/standalone_dashboard/components/modals.js +0 -9
  163. package/extension/daemon/core/standalone_dashboard/components/modals.js.map +0 -1
  164. package/extension/daemon/core/standalone_dashboard/components/remote_deck.d.ts +0 -5
  165. package/extension/daemon/core/standalone_dashboard/components/remote_deck.d.ts.map +0 -1
  166. package/extension/daemon/core/standalone_dashboard/components/remote_deck.js +0 -9
  167. package/extension/daemon/core/standalone_dashboard/components/remote_deck.js.map +0 -1
  168. package/extension/daemon/core/standalone_dashboard/components/settings_deck.d.ts +0 -5
  169. package/extension/daemon/core/standalone_dashboard/components/settings_deck.d.ts.map +0 -1
  170. package/extension/daemon/core/standalone_dashboard/components/settings_deck.js +0 -9
  171. package/extension/daemon/core/standalone_dashboard/components/settings_deck.js.map +0 -1
  172. package/extension/daemon/core/standalone_dashboard/index.d.ts +0 -13
  173. package/extension/daemon/core/standalone_dashboard/index.d.ts.map +0 -1
  174. package/extension/daemon/core/standalone_dashboard/index.js +0 -9
  175. package/extension/daemon/core/standalone_dashboard/index.js.map +0 -1
  176. package/extension/daemon/core/standalone_dashboard/styles.d.ts +0 -6
  177. package/extension/daemon/core/standalone_dashboard/styles.d.ts.map +0 -1
  178. package/extension/daemon/core/standalone_dashboard/styles.js +0 -9
  179. package/extension/daemon/core/standalone_dashboard/styles.js.map +0 -1
  180. package/extension/daemon/core/standalone_dashboard.d.ts +0 -6
  181. package/extension/daemon/core/standalone_dashboard.d.ts.map +0 -1
  182. package/extension/daemon/core/standalone_dashboard.js +0 -9
  183. package/extension/daemon/core/standalone_dashboard.js.map +0 -1
  184. package/extension/daemon/core/telemetry.d.ts +0 -62
  185. package/extension/daemon/core/telemetry.d.ts.map +0 -1
  186. package/extension/daemon/core/telemetry.js +0 -9
  187. package/extension/daemon/core/telemetry.js.map +0 -1
  188. package/extension/daemon/core/transcript_watcher.d.ts +0 -23
  189. package/extension/daemon/core/transcript_watcher.d.ts.map +0 -1
  190. package/extension/daemon/core/transcript_watcher.js +0 -9
  191. package/extension/daemon/core/transcript_watcher.js.map +0 -1
  192. package/extension/daemon/core/transcription_refiner.d.ts +0 -34
  193. package/extension/daemon/core/transcription_refiner.d.ts.map +0 -1
  194. package/extension/daemon/core/transcription_refiner.js +0 -9
  195. package/extension/daemon/core/transcription_refiner.js.map +0 -1
  196. package/extension/daemon/core/tui_dashboard.d.ts +0 -8
  197. package/extension/daemon/core/tui_dashboard.d.ts.map +0 -1
  198. package/extension/daemon/core/tui_dashboard.js +0 -9
  199. package/extension/daemon/core/tui_dashboard.js.map +0 -1
  200. package/extension/daemon/index.d.ts +0 -15
  201. package/extension/daemon/index.d.ts.map +0 -1
  202. package/extension/daemon/index.js +0 -9
  203. package/extension/daemon/index.js.map +0 -1
  204. package/extension/daemon/types.d.ts +0 -159
  205. package/extension/daemon/types.d.ts.map +0 -1
  206. package/extension/daemon/types.js +0 -9
  207. package/extension/daemon/types.js.map +0 -1
  208. package/extension/dist/adapters/ide/ide_adapters.d.ts +0 -45
  209. package/extension/dist/adapters/ide/ide_adapters.d.ts.map +0 -1
  210. package/extension/dist/adapters/ide/ide_adapters.js +0 -9
  211. package/extension/dist/adapters/ide/ide_adapters.js.map +0 -1
  212. package/extension/dist/adapters/messaging/discord_adapter.d.ts +0 -56
  213. package/extension/dist/adapters/messaging/discord_adapter.d.ts.map +0 -1
  214. package/extension/dist/adapters/messaging/discord_adapter.js +0 -9
  215. package/extension/dist/adapters/messaging/discord_adapter.js.map +0 -1
  216. package/extension/dist/adapters/messaging/discord_menu.d.ts +0 -15
  217. package/extension/dist/adapters/messaging/discord_menu.d.ts.map +0 -1
  218. package/extension/dist/adapters/messaging/discord_menu.js +0 -9
  219. package/extension/dist/adapters/messaging/discord_menu.js.map +0 -1
  220. package/extension/dist/adapters/messaging/matrix_adapter.d.ts +0 -39
  221. package/extension/dist/adapters/messaging/matrix_adapter.d.ts.map +0 -1
  222. package/extension/dist/adapters/messaging/matrix_adapter.js +0 -9
  223. package/extension/dist/adapters/messaging/matrix_adapter.js.map +0 -1
  224. package/extension/dist/adapters/messaging/slack_adapter.d.ts +0 -115
  225. package/extension/dist/adapters/messaging/slack_adapter.d.ts.map +0 -1
  226. package/extension/dist/adapters/messaging/slack_adapter.js +0 -9
  227. package/extension/dist/adapters/messaging/slack_adapter.js.map +0 -1
  228. package/extension/dist/adapters/messaging/telegram_adapter.d.ts +0 -90
  229. package/extension/dist/adapters/messaging/telegram_adapter.d.ts.map +0 -1
  230. package/extension/dist/adapters/messaging/telegram_adapter.js +0 -9
  231. package/extension/dist/adapters/messaging/telegram_adapter.js.map +0 -1
  232. package/extension/dist/adapters/messaging/telegram_client.d.ts +0 -75
  233. package/extension/dist/adapters/messaging/telegram_client.d.ts.map +0 -1
  234. package/extension/dist/adapters/messaging/telegram_client.js +0 -9
  235. package/extension/dist/adapters/messaging/telegram_client.js.map +0 -1
  236. package/extension/dist/adapters/messaging/telegram_keyboards.d.ts +0 -55
  237. package/extension/dist/adapters/messaging/telegram_keyboards.d.ts.map +0 -1
  238. package/extension/dist/adapters/messaging/telegram_keyboards.js +0 -9
  239. package/extension/dist/adapters/messaging/telegram_keyboards.js.map +0 -1
  240. package/extension/dist/adapters/messaging/whatsapp_adapter.d.ts +0 -30
  241. package/extension/dist/adapters/messaging/whatsapp_adapter.d.ts.map +0 -1
  242. package/extension/dist/adapters/messaging/whatsapp_adapter.js +0 -9
  243. package/extension/dist/adapters/messaging/whatsapp_adapter.js.map +0 -1
  244. package/extension/dist/adapters/messaging/whatsapp_baileys.d.ts +0 -84
  245. package/extension/dist/adapters/messaging/whatsapp_baileys.d.ts.map +0 -1
  246. package/extension/dist/adapters/messaging/whatsapp_baileys.js +0 -9
  247. package/extension/dist/adapters/messaging/whatsapp_baileys.js.map +0 -1
  248. package/extension/dist/adapters/package.json +0 -3
  249. package/extension/dist/command_guard.js +0 -9
  250. package/extension/dist/commands_manager.js +0 -9
  251. package/extension/dist/core/blocking_prompt_bridge.d.ts +0 -99
  252. package/extension/dist/core/blocking_prompt_bridge.d.ts.map +0 -1
  253. package/extension/dist/core/blocking_prompt_bridge.js +0 -9
  254. package/extension/dist/core/blocking_prompt_bridge.js.map +0 -1
  255. package/extension/dist/core/chat_switchboard.d.ts +0 -35
  256. package/extension/dist/core/chat_switchboard.d.ts.map +0 -1
  257. package/extension/dist/core/chat_switchboard.js +0 -9
  258. package/extension/dist/core/chat_switchboard.js.map +0 -1
  259. package/extension/dist/core/companion_daemon.d.ts +0 -23
  260. package/extension/dist/core/companion_daemon.d.ts.map +0 -1
  261. package/extension/dist/core/companion_daemon.js +0 -9
  262. package/extension/dist/core/companion_daemon.js.map +0 -1
  263. package/extension/dist/core/email_reporter.d.ts +0 -109
  264. package/extension/dist/core/email_reporter.d.ts.map +0 -1
  265. package/extension/dist/core/email_reporter.js +0 -9
  266. package/extension/dist/core/email_reporter.js.map +0 -1
  267. package/extension/dist/core/licensing.d.ts +0 -44
  268. package/extension/dist/core/licensing.d.ts.map +0 -1
  269. package/extension/dist/core/licensing.js +0 -9
  270. package/extension/dist/core/licensing.js.map +0 -1
  271. package/extension/dist/core/media_handler.d.ts +0 -67
  272. package/extension/dist/core/media_handler.d.ts.map +0 -1
  273. package/extension/dist/core/media_handler.js +0 -9
  274. package/extension/dist/core/media_handler.js.map +0 -1
  275. package/extension/dist/core/os_keychain.d.ts +0 -41
  276. package/extension/dist/core/os_keychain.d.ts.map +0 -1
  277. package/extension/dist/core/os_keychain.js +0 -9
  278. package/extension/dist/core/os_keychain.js.map +0 -1
  279. package/extension/dist/core/outbound_dispatcher.d.ts +0 -33
  280. package/extension/dist/core/outbound_dispatcher.d.ts.map +0 -1
  281. package/extension/dist/core/outbound_dispatcher.js +0 -9
  282. package/extension/dist/core/outbound_dispatcher.js.map +0 -1
  283. package/extension/dist/core/package.json +0 -3
  284. package/extension/dist/core/pdf_generator.d.ts +0 -66
  285. package/extension/dist/core/pdf_generator.d.ts.map +0 -1
  286. package/extension/dist/core/pdf_generator.js +0 -9
  287. package/extension/dist/core/pdf_generator.js.map +0 -1
  288. package/extension/dist/core/process_checker.d.ts +0 -10
  289. package/extension/dist/core/process_checker.d.ts.map +0 -1
  290. package/extension/dist/core/process_checker.js +0 -9
  291. package/extension/dist/core/process_checker.js.map +0 -1
  292. package/extension/dist/core/prompt_sanitizer.d.ts +0 -15
  293. package/extension/dist/core/prompt_sanitizer.d.ts.map +0 -1
  294. package/extension/dist/core/prompt_sanitizer.js +0 -9
  295. package/extension/dist/core/prompt_sanitizer.js.map +0 -1
  296. package/extension/dist/core/security.d.ts +0 -75
  297. package/extension/dist/core/security.d.ts.map +0 -1
  298. package/extension/dist/core/security.js +0 -9
  299. package/extension/dist/core/security.js.map +0 -1
  300. package/extension/dist/core/session_manager.d.ts +0 -67
  301. package/extension/dist/core/session_manager.d.ts.map +0 -1
  302. package/extension/dist/core/session_manager.js +0 -9
  303. package/extension/dist/core/session_manager.js.map +0 -1
  304. package/extension/dist/core/standalone_dashboard/client_script.d.ts +0 -5
  305. package/extension/dist/core/standalone_dashboard/client_script.d.ts.map +0 -1
  306. package/extension/dist/core/standalone_dashboard/client_script.js +0 -9
  307. package/extension/dist/core/standalone_dashboard/client_script.js.map +0 -1
  308. package/extension/dist/core/standalone_dashboard/components/header.d.ts +0 -5
  309. package/extension/dist/core/standalone_dashboard/components/header.d.ts.map +0 -1
  310. package/extension/dist/core/standalone_dashboard/components/header.js +0 -9
  311. package/extension/dist/core/standalone_dashboard/components/header.js.map +0 -1
  312. package/extension/dist/core/standalone_dashboard/components/modals.d.ts +0 -5
  313. package/extension/dist/core/standalone_dashboard/components/modals.d.ts.map +0 -1
  314. package/extension/dist/core/standalone_dashboard/components/modals.js +0 -9
  315. package/extension/dist/core/standalone_dashboard/components/modals.js.map +0 -1
  316. package/extension/dist/core/standalone_dashboard/components/remote_deck.d.ts +0 -5
  317. package/extension/dist/core/standalone_dashboard/components/remote_deck.d.ts.map +0 -1
  318. package/extension/dist/core/standalone_dashboard/components/remote_deck.js +0 -9
  319. package/extension/dist/core/standalone_dashboard/components/remote_deck.js.map +0 -1
  320. package/extension/dist/core/standalone_dashboard/components/settings_deck.d.ts +0 -5
  321. package/extension/dist/core/standalone_dashboard/components/settings_deck.d.ts.map +0 -1
  322. package/extension/dist/core/standalone_dashboard/components/settings_deck.js +0 -9
  323. package/extension/dist/core/standalone_dashboard/components/settings_deck.js.map +0 -1
  324. package/extension/dist/core/standalone_dashboard/index.d.ts +0 -13
  325. package/extension/dist/core/standalone_dashboard/index.d.ts.map +0 -1
  326. package/extension/dist/core/standalone_dashboard/index.js +0 -9
  327. package/extension/dist/core/standalone_dashboard/index.js.map +0 -1
  328. package/extension/dist/core/standalone_dashboard/styles.d.ts +0 -6
  329. package/extension/dist/core/standalone_dashboard/styles.d.ts.map +0 -1
  330. package/extension/dist/core/standalone_dashboard/styles.js +0 -9
  331. package/extension/dist/core/standalone_dashboard/styles.js.map +0 -1
  332. package/extension/dist/core/standalone_dashboard.d.ts +0 -6
  333. package/extension/dist/core/standalone_dashboard.d.ts.map +0 -1
  334. package/extension/dist/core/standalone_dashboard.js +0 -9
  335. package/extension/dist/core/standalone_dashboard.js.map +0 -1
  336. package/extension/dist/core/telemetry.d.ts +0 -62
  337. package/extension/dist/core/telemetry.d.ts.map +0 -1
  338. package/extension/dist/core/telemetry.js +0 -9
  339. package/extension/dist/core/telemetry.js.map +0 -1
  340. package/extension/dist/core/transcript_watcher.d.ts +0 -23
  341. package/extension/dist/core/transcript_watcher.d.ts.map +0 -1
  342. package/extension/dist/core/transcript_watcher.js +0 -9
  343. package/extension/dist/core/transcript_watcher.js.map +0 -1
  344. package/extension/dist/core/transcription_refiner.d.ts +0 -34
  345. package/extension/dist/core/transcription_refiner.d.ts.map +0 -1
  346. package/extension/dist/core/transcription_refiner.js +0 -9
  347. package/extension/dist/core/transcription_refiner.js.map +0 -1
  348. package/extension/dist/core/tui_dashboard.d.ts +0 -8
  349. package/extension/dist/core/tui_dashboard.d.ts.map +0 -1
  350. package/extension/dist/core/tui_dashboard.js +0 -9
  351. package/extension/dist/core/tui_dashboard.js.map +0 -1
  352. package/extension/dist/extension.js +0 -9
  353. package/extension/dist/ide_detector.js +0 -9
  354. package/extension/dist/index.js +0 -9
  355. package/extension/dist/remote_actions.js +0 -9
  356. package/extension/dist/sidebar_provider.js +0 -9
  357. package/extension/dist/types.js +0 -9
  358. package/extension/dist/webview/webview_html.js +0 -830
  359. package/extension/dist/webview/webview_scripts.js +0 -701
  360. package/extension/dist/webview/webview_styles.js +0 -1075
  361. package/extension/dist/webview_template.js +0 -9
  362. package/extension/editormate-1.0.0.vsix +0 -0
  363. package/extension/editormate-1.0.1.vsix +0 -0
  364. package/extension/editormate-1.0.2.vsix +0 -0
  365. package/extension/editormate-companion-1.0.0.vsix +0 -0
  366. package/extension/node_modules/.package-lock.json +0 -15
  367. package/extension/node_modules/@types/vscode/LICENSE +0 -21
  368. package/extension/node_modules/@types/vscode/README.md +0 -15
  369. package/extension/node_modules/@types/vscode/index.d.ts +0 -21244
  370. package/extension/node_modules/@types/vscode/package.json +0 -26
  371. package/extension/package-lock.json +0 -25
  372. package/extension/package.json +0 -154
  373. package/extension/scripts/build_protected.js +0 -88
  374. package/extension/scripts/transcribe_audio.py +0 -42
  375. package/extension/src/command_guard.ts +0 -201
  376. package/extension/src/commands_manager.ts +0 -466
  377. package/extension/src/extension.ts +0 -458
  378. package/extension/src/ide_detector.ts +0 -60
  379. package/extension/src/remote_actions.ts +0 -284
  380. package/extension/src/sidebar_provider.ts +0 -471
  381. package/extension/src/webview/webview_html.ts +0 -895
  382. package/extension/src/webview/webview_scripts.ts +0 -698
  383. package/extension/src/webview/webview_styles.ts +0 -1073
  384. package/extension/src/webview_template.ts +0 -33
  385. package/extension/tsconfig.json +0 -16
@@ -1,698 +0,0 @@
1
- export function getWebviewClientScripts(channelDataJson: string, initialTab: string = 'dashboard', initialMessagesJson: string = '[]'): string {
2
- return `
3
- const vscode = acquireVsCodeApi();
4
- const channels = ${channelDataJson};
5
- let allRecentMessages = ${initialMessagesJson};
6
- const savedState = vscode.getState() || {};
7
- let currentMainTab = savedState.currentMainTab || '${initialTab}';
8
- let currentPlatform = savedState.currentPlatform || 'telegram';
9
- let isDiscordChannelOpen = false;
10
- let selectedSlotIndex = 1;
11
- let currentEditType = 'slot';
12
- let currentEditTargetCmd = '';
13
-
14
- // --- Tab Switching & Top Cog Persistence ---
15
- function switchMainTab(tabName) {
16
- currentMainTab = tabName;
17
- vscode.setState({ ...(vscode.getState() || {}), currentMainTab: tabName });
18
- vscode.postMessage({ command: 'setMainTab', tab: tabName });
19
-
20
- const dashboardTab = document.getElementById('tab-content-dashboard');
21
- const settingsTab = document.getElementById('tab-content-settings');
22
- const topCog = document.getElementById('top-cog-btn');
23
-
24
- if (tabName === 'settings') {
25
- if (dashboardTab) dashboardTab.classList.remove('active');
26
- if (settingsTab) settingsTab.classList.add('active');
27
- if (topCog) {
28
- topCog.classList.add('active');
29
- topCog.innerText = '✕';
30
- topCog.title = 'Close Settings (Back to Remote Deck)';
31
- }
32
- } else {
33
- if (settingsTab) settingsTab.classList.remove('active');
34
- if (dashboardTab) dashboardTab.classList.add('active');
35
- if (topCog) {
36
- topCog.classList.remove('active');
37
- topCog.innerText = '⚙️';
38
- topCog.title = 'Settings & Channels';
39
- }
40
- }
41
- }
42
-
43
- function toggleSettingsTab() {
44
- if (currentMainTab === 'settings') {
45
- switchMainTab('dashboard');
46
- } else {
47
- switchMainTab('settings');
48
- }
49
- }
50
-
51
- // --- Collapsible Cards (Device, Guard, Commands, Screen, Settings) ---
52
- function toggleCard(bodyId, arrowId) {
53
- const body = document.getElementById(bodyId);
54
- const arrow = document.getElementById(arrowId);
55
- if (!body) return;
56
- const isClosed = body.style.display === 'none';
57
- body.style.display = isClosed ? 'block' : 'none';
58
- if (arrow) {
59
- arrow.classList.toggle('open', isClosed);
60
- }
61
- const collapseBtn = document.getElementById('collapse-btn-' + bodyId);
62
- if (collapseBtn) {
63
- collapseBtn.innerText = isClosed ? '▴ Collapse' : '▾ Expand';
64
- }
65
- }
66
-
67
- // --- Dynamic Inline Alias Quick-Add & Chip Removal ---
68
- function toggleInlineAliasDrawer(cmdCleanId) {
69
- const drawer = document.getElementById('alias-drawer-' + cmdCleanId);
70
- if (!drawer) return;
71
- const isHidden = drawer.style.display === 'none' || !drawer.style.display;
72
- drawer.style.display = isHidden ? 'block' : 'none';
73
- if (isHidden) {
74
- const inp = document.getElementById('input-alias-' + cmdCleanId);
75
- if (inp) inp.focus();
76
- }
77
- }
78
-
79
- function saveInlineAlias(targetCommand, cmdCleanId) {
80
- const input = document.getElementById('input-alias-' + cmdCleanId);
81
- if (!input) return;
82
- const alias = input.value.trim().replace(/^\\//, '');
83
- if (!alias) {
84
- alert('Please specify an alias name (without slash)');
85
- return;
86
- }
87
- vscode.postMessage({
88
- command: 'addAlias',
89
- alias: alias,
90
- targetCommand: targetCommand
91
- });
92
- input.value = '';
93
- toggleInlineAliasDrawer(cmdCleanId);
94
- }
95
-
96
- function removeAlias(alias) {
97
- if (!alias) return;
98
- vscode.postMessage({
99
- command: 'deleteAlias',
100
- alias: alias
101
- });
102
- }
103
-
104
- let isEditMode = false;
105
- let draggedCard = null;
106
-
107
- // --- Edit Mode & Card Reordering ---
108
- function toggleEditMode() {
109
- isEditMode = !isEditMode;
110
- const container = document.getElementById('main-container') || document.querySelector('.container');
111
- const editBtn = document.getElementById('top-edit-btn');
112
- if (container) {
113
- container.classList.toggle('is-edit-mode', isEditMode);
114
- }
115
- if (editBtn) {
116
- editBtn.classList.toggle('active', isEditMode);
117
- editBtn.title = isEditMode ? 'Exit Edit Mode (Layout Locked)' : 'Edit Layout (Reorder Cards)';
118
- }
119
- updateDraggableCards();
120
- }
121
-
122
- function moveCardUp(cardId) {
123
- const card = document.getElementById(cardId) || document.querySelector('[data-card-id="' + cardId + '"]');
124
- if (!card || !card.parentElement) return;
125
- const prev = card.previousElementSibling;
126
- if (prev && prev.classList.contains('reorderable-card')) {
127
- card.parentElement.insertBefore(card, prev);
128
- saveCardOrder();
129
- }
130
- }
131
-
132
- function moveCardDown(cardId) {
133
- const card = document.getElementById(cardId) || document.querySelector('[data-card-id="' + cardId + '"]');
134
- if (!card || !card.parentElement) return;
135
- const next = card.nextElementSibling;
136
- if (next && next.classList.contains('reorderable-card')) {
137
- card.parentElement.insertBefore(card, next.nextSibling);
138
- saveCardOrder();
139
- }
140
- }
141
-
142
- function saveCardOrder() {
143
- const dashContainer = document.getElementById('tab-content-dashboard');
144
- const setContainer = document.getElementById('tab-content-settings');
145
- const dashCards = dashContainer ? Array.from(dashContainer.querySelectorAll('.reorderable-card')).map(c => c.getAttribute('data-card-id')).filter(Boolean) : [];
146
- const setCards = setContainer ? Array.from(setContainer.querySelectorAll('.reorderable-card')).map(c => c.getAttribute('data-card-id')).filter(Boolean) : [];
147
-
148
- const current = vscode.getState() || {};
149
- vscode.setState({
150
- ...current,
151
- dashboardCardOrder: dashCards,
152
- settingsCardOrder: setCards
153
- });
154
- }
155
-
156
- function restoreCardOrder() {
157
- const state = vscode.getState() || {};
158
- if (state.dashboardCardOrder && state.dashboardCardOrder.length > 0) {
159
- const dashContainer = document.getElementById('tab-content-dashboard');
160
- if (dashContainer) {
161
- state.dashboardCardOrder.forEach(id => {
162
- const card = dashContainer.querySelector('[data-card-id="' + id + '"]');
163
- if (card) dashContainer.appendChild(card);
164
- });
165
- }
166
- }
167
- if (state.settingsCardOrder && state.settingsCardOrder.length > 0) {
168
- const setContainer = document.getElementById('tab-content-settings');
169
- if (setContainer) {
170
- state.settingsCardOrder.forEach(id => {
171
- const card = setContainer.querySelector('[data-card-id="' + id + '"]');
172
- if (card) setContainer.appendChild(card);
173
- });
174
- }
175
- }
176
- }
177
-
178
- function updateDraggableCards() {
179
- const cards = document.querySelectorAll('.reorderable-card');
180
- cards.forEach(card => {
181
- card.setAttribute('draggable', isEditMode ? 'true' : 'false');
182
- });
183
- }
184
-
185
- function initCardDragAndDrop() {
186
- const cards = document.querySelectorAll('.reorderable-card');
187
- cards.forEach(card => {
188
- card.addEventListener('dragstart', (e) => {
189
- if (!isEditMode) {
190
- e.preventDefault();
191
- return;
192
- }
193
- draggedCard = card;
194
- e.dataTransfer.effectAllowed = 'move';
195
- card.style.opacity = '0.5';
196
- });
197
-
198
- card.addEventListener('dragend', () => {
199
- card.style.opacity = '1';
200
- draggedCard = null;
201
- saveCardOrder();
202
- });
203
-
204
- card.addEventListener('dragover', (e) => {
205
- if (!isEditMode || !draggedCard || draggedCard === card) return;
206
- if (draggedCard.parentElement !== card.parentElement) return;
207
- e.preventDefault();
208
- e.dataTransfer.dropEffect = 'move';
209
-
210
- const bounding = card.getBoundingClientRect();
211
- const offset = bounding.y + (bounding.height / 2);
212
- if (e.clientY - offset > 0) {
213
- card.parentElement.insertBefore(draggedCard, card.nextSibling);
214
- } else {
215
- card.parentElement.insertBefore(draggedCard, card);
216
- }
217
- });
218
- });
219
- }
220
-
221
- // --- Companion Device Make Active & Unlink ---
222
- function makeSelectedCompanionActive() {
223
- const select = document.getElementById('select-active-companion');
224
- const val = select ? select.value : '';
225
- vscode.postMessage({ command: 'setThisIdeActive' });
226
- if (val) {
227
- vscode.postMessage({ command: 'setActiveCompanion', companion: val });
228
- }
229
- }
230
-
231
- function unpairChannelDevice(platform) {
232
- const select = document.getElementById('select-linked-' + platform) || document.getElementById('select-linked-device-' + platform);
233
- const accountId = select ? select.value : '';
234
- if (!accountId) {
235
- return;
236
- }
237
- vscode.postMessage({
238
- command: 'unpairAccount',
239
- platform: platform,
240
- userId: accountId
241
- });
242
- }
243
-
244
- function onCompanionDeviceChange(val) {
245
- const cur = vscode.getState() || {};
246
- vscode.setState(Object.assign({}, cur, { selectedCompanion: val }));
247
- vscode.postMessage({ command: 'setSelectedCompanion', companion: val });
248
- renderChatStream();
249
- }
250
-
251
- // --- Mobile Prompt Routing Tooltip & Info ---
252
- function toggleRoutingTip() {
253
- const box = document.getElementById('routing-explainer-box');
254
- if (box) {
255
- const isHidden = box.style.display === 'none' || !box.style.display;
256
- box.style.display = isHidden ? 'block' : 'none';
257
- }
258
- }
259
-
260
- // --- Media Lightbox Modal (Audio, Video, Image) ---
261
- function openMediaModal(mediaUrl, mediaType) {
262
- enlargeMedia(mediaUrl, mediaType);
263
- }
264
-
265
- function enlargeMedia(mediaUrl, mediaType) {
266
- const modal = document.getElementById('media-modal');
267
- const container = document.getElementById('media-modal-container');
268
- if (!modal || !container) return;
269
-
270
- if (mediaType === 'audio') {
271
- container.innerHTML =
272
- '<div style="background: var(--card-bg); border: 1px solid var(--border); padding: 18px 24px; border-radius: 10px; width: 340px; text-align: center; box-shadow: 0 8px 32px rgba(0,0,0,0.6);">' +
273
- ' <div style="font-size: 28px; margin-bottom: 8px;">🎙️</div>' +
274
- ' <div style="font-size: 13px; font-weight: 700; color: var(--emerald); margin-bottom: 4px;">Companion Voice Note</div>' +
275
- ' <div style="font-size: 9.5px; color: var(--text-muted); margin-bottom: 14px;">High-Fidelity Audio Playback</div>' +
276
- ' <audio controls autoplay src="' + mediaUrl + '" style="width: 100%; outline: none; border-radius: 6px;"></audio>' +
277
- '</div>';
278
- } else if (mediaType === 'video') {
279
- container.innerHTML =
280
- '<div style="background: var(--card-bg); border: 1px solid var(--border); padding: 12px; border-radius: 10px; max-width: 90vw; text-align: center; box-shadow: 0 8px 32px rgba(0,0,0,0.6);">' +
281
- ' <div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;">' +
282
- ' <span style="font-size: 12px; font-weight: 700; color: var(--purple);">🎬 Companion Video Note</span>' +
283
- ' <span style="font-size: 9.5px; color: var(--text-muted);">Preview</span>' +
284
- ' </div>' +
285
- ' <video controls autoplay src="' + mediaUrl + '" style="max-width: 100%; max-height: 70vh; border-radius: 6px;"></video>' +
286
- '</div>';
287
- } else {
288
- container.innerHTML =
289
- '<div style="background: var(--card-bg); border: 1px solid var(--border); padding: 10px; border-radius: 10px; max-width: 90vw; text-align: center; box-shadow: 0 8px 32px rgba(0,0,0,0.6);">' +
290
- ' <img src="' + mediaUrl + '" alt="Attachment Lightbox" style="max-width: 100%; max-height: 75vh; border-radius: 6px; object-fit: contain;" />' +
291
- '</div>';
292
- }
293
- modal.style.display = 'flex';
294
- }
295
-
296
- function closeMediaModal() {
297
- const modal = document.getElementById('media-modal');
298
- const container = document.getElementById('media-modal-container');
299
- if (container) container.innerHTML = '';
300
- if (modal) modal.style.display = 'none';
301
- }
302
-
303
- window.addEventListener('keydown', (e) => {
304
- if (e.key === 'Escape') closeMediaModal();
305
- });
306
-
307
- // --- Processing & Capture Engine Preferences (Optimistic Update) ---
308
- function onUpdatePreference(key, value) {
309
- // Optimistically update Screenshot Scope buttons in DOM immediately
310
- if (key === 'screenshotScope') {
311
- const buttons = document.querySelectorAll('.scope-selector-grid .scope-btn');
312
- buttons.forEach(btn => {
313
- const onclickAttr = btn.getAttribute('onclick') || '';
314
- if (onclickAttr.includes("'" + value + "'")) {
315
- btn.classList.add('active');
316
- } else {
317
- btn.classList.remove('active');
318
- }
319
- });
320
- }
321
-
322
- vscode.postMessage({
323
- command: 'updatePreferences',
324
- preferences: { [key]: value }
325
- });
326
- }
327
-
328
- // --- Active Target IDE Selection (No Blasting Protocol) ---
329
- function setThisIdeActive() {
330
- vscode.postMessage({ command: 'setThisIdeActive' });
331
- }
332
-
333
- function onSelectActiveSession(sessionId) {
334
- if (sessionId) {
335
- vscode.postMessage({ command: 'setActiveSession', sessionId });
336
- }
337
- }
338
-
339
- // --- Command & Slot Inspector / Inline Form ---
340
- function selectItemForEdit(type, slotIndex, alias, command, desc) {
341
- currentEditType = type;
342
- currentEditTargetCmd = command || '';
343
- selectedSlotIndex = slotIndex || 1;
344
- const formTitle = document.getElementById('editor-form-title');
345
- const formType = document.getElementById('editor-form-type');
346
- const inputAlias = document.getElementById('input-alias');
347
- const inputCmd = document.getElementById('input-target-cmd');
348
- const btnSave = document.getElementById('btn-save-slot');
349
-
350
- if (inputAlias) inputAlias.value = alias || '';
351
- if (inputCmd) inputCmd.value = command || '';
352
-
353
- if (type === 'builtin') {
354
- if (formTitle) formTitle.innerText = '✏️ Assign / Edit Alias for ' + command;
355
- if (formType) formType.innerText = 'Built-in Command';
356
- if (btnSave) btnSave.innerText = '💾 Save Alias for ' + command;
357
- if (inputCmd) inputCmd.readOnly = true;
358
- } else {
359
- if (formTitle) formTitle.innerText = '✏️ Edit Custom Slot ' + selectedSlotIndex;
360
- if (formType) formType.innerText = 'Slot ' + selectedSlotIndex;
361
- if (btnSave) btnSave.innerText = '💾 Save & Update Slot ' + selectedSlotIndex;
362
- if (inputCmd) inputCmd.readOnly = false;
363
- }
364
-
365
- // Highlight selected row
366
- document.querySelectorAll('.cmd-row-clickable').forEach(r => r.classList.remove('selected'));
367
- if (window.event && window.event.currentTarget) {
368
- window.event.currentTarget.classList.add('selected');
369
- }
370
- }
371
-
372
- function saveSlotEdit() {
373
- const inputAlias = document.getElementById('input-alias');
374
- const inputCmd = document.getElementById('input-target-cmd');
375
- const alias = inputAlias ? inputAlias.value.trim().replace(/^\\//, '') : '';
376
- const command = inputCmd ? inputCmd.value.trim() : '';
377
-
378
- if (!alias) {
379
- alert('Please specify an alias name (without slash)');
380
- return;
381
- }
382
-
383
- if (currentEditType === 'builtin') {
384
- vscode.postMessage({
385
- command: 'addAlias',
386
- alias: alias,
387
- targetCommand: currentEditTargetCmd || command
388
- });
389
- } else {
390
- if (!command) {
391
- alert('Please specify target IDE command');
392
- return;
393
- }
394
- vscode.postMessage({
395
- command: 'updateSlot',
396
- slotIndex: selectedSlotIndex,
397
- alias: alias,
398
- targetCommand: command
399
- });
400
- }
401
- }
402
-
403
- function testRunActiveSlot() {
404
- const inputAlias = document.getElementById('input-alias');
405
- const inputCmd = document.getElementById('input-target-cmd');
406
- const cmd = inputCmd ? inputCmd.value.trim() : '';
407
- const alias = inputAlias ? inputAlias.value.trim() : '';
408
-
409
- if (cmd.startsWith('/')) {
410
- vscode.postMessage({ command: 'remoteCommand', cmd });
411
- } else if (alias) {
412
- vscode.postMessage({ command: 'runAlias', alias });
413
- }
414
- }
415
-
416
- function refreshScreenPreview() {
417
- const img = document.getElementById('screen-preview-img');
418
- if (img) {
419
- img.style.opacity = '0.5';
420
- }
421
- vscode.postMessage({ command: 'captureScreen' });
422
- }
423
-
424
- // --- Channel Switching & WhatsApp Dual-Number Setup ---
425
- function switchChannel(platform) {
426
- if (platform === 'slack') {
427
- return; // Slack in development / coming soon
428
- }
429
- currentPlatform = platform;
430
- vscode.setState({ ...(vscode.getState() || {}), currentPlatform: platform });
431
- document.querySelectorAll('.channel-btn').forEach(btn => {
432
- btn.classList.toggle('active', btn.dataset.platform === platform);
433
- });
434
-
435
- // Show the selected platform's linked devices wrapper and hide others
436
- ['telegram', 'discord', 'whatsapp', 'slack'].forEach(p => {
437
- const wrap = document.getElementById('wrapper-linked-' + p);
438
- if (wrap) {
439
- wrap.style.display = p === platform ? 'block' : 'none';
440
- }
441
- });
442
-
443
- const standardBox = document.getElementById('standard-qr-box');
444
- const whatsappBox = document.getElementById('whatsapp-qr-box');
445
- const badgePill = document.getElementById('channel-status-badge');
446
-
447
- if (platform === 'whatsapp') {
448
- if (standardBox) standardBox.style.display = 'none';
449
- if (whatsappBox) whatsappBox.style.display = 'block';
450
- if (badgePill) {
451
- badgePill.innerText = 'BAILEYS';
452
- badgePill.className = 'badge badge-live';
453
- }
454
- reloadWhatsAppFrame();
455
- } else {
456
- if (whatsappBox) whatsappBox.style.display = 'none';
457
- if (standardBox) standardBox.style.display = 'flex';
458
-
459
- const data = channels[platform] || {};
460
- const titleEl = document.getElementById('qr-title');
461
- const subEl = document.getElementById('qr-sub');
462
- const badgeEl = document.getElementById('qr-badge');
463
- const qrEl = document.getElementById('qr-image');
464
- const linkBtn = document.getElementById('btn-open-link');
465
-
466
- if (titleEl) titleEl.innerText = data.title || 'Connect';
467
- if (subEl) subEl.innerText = data.subtitle || '';
468
- if (badgeEl) {
469
- badgeEl.innerText = data.badge || 'READY';
470
- badgeEl.className = 'badge ' + (data.badgeClass || 'badge-live');
471
- }
472
- if (badgePill) {
473
- badgePill.innerText = data.badge || 'READY';
474
- badgePill.className = 'badge ' + (data.badgeClass || 'badge-live');
475
- }
476
- if (qrEl) qrEl.src = data.qrUrl || '';
477
- if (linkBtn) {
478
- linkBtn.onclick = () => {
479
- if (data.link) {
480
- vscode.postMessage({ command: 'openUrl', url: data.link });
481
- } else {
482
- vscode.postMessage({ command: 'pair', platform });
483
- }
484
- };
485
- }
486
- }
487
- }
488
-
489
- let isWaConnected = false;
490
-
491
- async function pollWhatsAppStatus() {
492
- try {
493
- const res = await fetch('http://127.0.0.1:4588/api/pair/status?platform=whatsapp', { cache: 'no-store' });
494
- if (!res.ok) return;
495
- const data = await res.json();
496
- const img = document.getElementById('whatsapp-qr-image');
497
- const badgePill = document.getElementById('badge-whatsapp') || document.getElementById('channel-badge');
498
-
499
- if (data.connected) {
500
- if (!isWaConnected) {
501
- isWaConnected = true;
502
- if (badgePill && currentPlatform === 'whatsapp') {
503
- badgePill.innerText = 'CONNECTED';
504
- badgePill.className = 'badge badge-live';
505
- }
506
- if (img) {
507
- img.src = 'http://127.0.0.1:4588/api/pair/qr?platform=whatsapp&t=' + Date.now();
508
- }
509
- }
510
- } else {
511
- if (isWaConnected) {
512
- isWaConnected = false;
513
- if (badgePill && currentPlatform === 'whatsapp') {
514
- badgePill.innerText = 'PAIRING';
515
- badgePill.className = 'badge badge-amber';
516
- }
517
- if (img) {
518
- img.src = 'http://127.0.0.1:4588/api/pair/qr?platform=whatsapp&t=' + Date.now();
519
- }
520
- }
521
- }
522
- } catch (e) {}
523
- }
524
-
525
- // Start background live polling so scanning automatically transitions without manual reload
526
- setInterval(pollWhatsAppStatus, 2000);
527
-
528
- function reloadWhatsAppFrame(reset = false) {
529
- const resetParam = reset ? '&reset=true' : '';
530
- const img = document.getElementById('whatsapp-qr-image');
531
- if (img) {
532
- img.src = 'http://127.0.0.1:4588/api/pair/qr?platform=whatsapp' + resetParam + '&t=' + Date.now();
533
- }
534
- const frame = document.getElementById('whatsapp-frame');
535
- if (frame) {
536
- frame.src = 'http://127.0.0.1:4588/api/whatsapp/qr?t=' + Date.now() + (reset ? '&reset=true' : '');
537
- }
538
- setTimeout(pollWhatsAppStatus, 500);
539
- }
540
-
541
- function refreshWhatsAppQr() {
542
- isWaConnected = false;
543
- reloadWhatsAppFrame(true);
544
- }
545
-
546
- function refreshCurrentQr() {
547
- if (currentPlatform === 'whatsapp') {
548
- reloadWhatsAppFrame();
549
- } else {
550
- const qrEl = document.getElementById('qr-image');
551
- const data = channels[currentPlatform] || {};
552
- if (qrEl && data.qrUrl) {
553
- qrEl.src = data.qrUrl.split('?')[0] + '?platform=' + currentPlatform + '&t=' + Date.now();
554
- }
555
- }
556
- }
557
-
558
- function saveWaTargetNumber() {
559
- const input = document.getElementById('input-wa-target-number');
560
- const phone = input ? input.value.trim() : '';
561
- vscode.postMessage({ command: 'setTargetWaNumber', phone });
562
- }
563
-
564
- // --- Collapsible Discord Community QR ---
565
- function toggleDiscordChannelQr() {
566
- isDiscordChannelOpen = !isDiscordChannelOpen;
567
- const content = document.getElementById('discord-collapsible-content');
568
- const arrow = document.getElementById('discord-arrow');
569
-
570
- if (content) {
571
- content.style.display = isDiscordChannelOpen ? 'block' : 'none';
572
- }
573
- if (arrow) {
574
- arrow.classList.toggle('open', isDiscordChannelOpen);
575
- }
576
- }
577
-
578
- // --- Licensing ---
579
- function submitLicenseKey() {
580
- const input = document.getElementById('input-license-key');
581
- const key = input ? input.value.trim() : '';
582
- if (!key) {
583
- alert('Please enter a license key');
584
- return;
585
- }
586
- vscode.postMessage({ command: 'enterLicense', licenseKey: key });
587
- }
588
-
589
- function deactivateLicense() {
590
- vscode.postMessage({ command: 'deactivateLicense' });
591
- }
592
-
593
- function changeRouting(val) {
594
- vscode.postMessage({ command: 'setChatRouting', routing: val });
595
- }
596
-
597
- function setGuardMode(mode) {
598
- vscode.postMessage({ command: 'setGuardMode', mode });
599
- }
600
-
601
- function resolvePending(action) {
602
- vscode.postMessage({ command: 'resolveExecution', action: action });
603
- }
604
-
605
- function getSelectedCompanionPlatform() {
606
- const compSelect = document.getElementById('select-active-companion');
607
- const val = compSelect ? compSelect.value : '';
608
- if (!val || val === 'all') return '';
609
- const colonIdx = val.indexOf(':');
610
- return (colonIdx !== -1 ? val.substring(0, colonIdx) : val).toLowerCase();
611
- }
612
-
613
- function renderChatStream() {
614
- const stream = document.getElementById('live-chat-stream');
615
- if (!stream) return;
616
- const platform = getSelectedCompanionPlatform();
617
- const badge = document.getElementById('live-feed-badge');
618
- if (badge) {
619
- badge.textContent = platform ? platform.toUpperCase() : 'ALL CHANNELS';
620
- }
621
- let msgs = allRecentMessages || [];
622
- if (platform) {
623
- msgs = msgs.filter(function(m) {
624
- const p = (m.platform || '').toLowerCase();
625
- const s = (m.sender || '').toLowerCase();
626
- return p === platform || (platform === 'whatsapp' && (p === 'whatsapp' || s.indexOf('whatsapp') !== -1));
627
- });
628
- }
629
- if (!msgs || msgs.length === 0) {
630
- stream.innerHTML = '<div style="color: var(--text-muted); font-size: 9.5px; text-align: center; padding: 8px 0;">' +
631
- (platform ? 'No messages yet for ' + platform.toUpperCase() + '.' : 'No recent messages yet. Speak or type to EditorMate!') +
632
- '</div>';
633
- return;
634
- }
635
- stream.innerHTML = msgs.slice(-6).map(function(m) {
636
- const isOut = m.sender === 'EditorMate';
637
- let mediaTag = '';
638
- if (m.mediaUrl) {
639
- if (m.mediaType === 'audio' || m.mediaUrl.endsWith('.ogg') || m.mediaUrl.endsWith('.wav') || m.mediaUrl.endsWith('.mp3')) {
640
- mediaTag = '<div style="margin-top: 4px; display: flex; flex-direction: column; gap: 4px;"><button class="media-preview-btn audio" onclick="openMediaModal(\\\'' + m.mediaUrl + '\\\', \\\'audio\\\')">🎙️ Play Audio Note ▶</button><audio src="' + m.mediaUrl + '" controls style="width: 100%; height: 26px; border-radius: 4px;"></audio></div>';
641
- } else if (m.mediaType === 'image' || m.mediaUrl.endsWith('.jpg') || m.mediaUrl.endsWith('.png') || m.mediaUrl.endsWith('.jpeg')) {
642
- mediaTag = '<div style="margin-top: 4px; display: flex; flex-direction: column; gap: 4px;"><button class="media-preview-btn" onclick="openMediaModal(\\\'' + m.mediaUrl + '\\\', \\\'image\\\')">🖼️ View Full Image 🔍</button><img src="' + m.mediaUrl + '" style="max-width: 100%; max-height: 120px; border-radius: 4px; cursor: pointer;" onclick="openMediaModal(\\\'' + m.mediaUrl + '\\\', \\\'image\\\')" /></div>';
643
- } else if (m.mediaType === 'video' || m.mediaUrl.endsWith('.mp4') || m.mediaUrl.endsWith('.webm')) {
644
- mediaTag = '<div style="margin-top: 4px; display: flex; flex-direction: column; gap: 4px;"><button class="media-preview-btn video" onclick="openMediaModal(\\\'' + m.mediaUrl + '\\\', \\\'video\\\')">🎬 Watch Video Note ▶</button><video src="' + m.mediaUrl + '" controls style="max-width: 100%; max-height: 120px; border-radius: 4px;"></video></div>';
645
- }
646
- }
647
- return (
648
- '<div class="chat-bubble ' + (isOut ? 'outbound' : 'inbound') + '">' +
649
- ' <div class="chat-meta"><span>' + (m.sender || (m.platform ? m.platform.toUpperCase() : 'Companion')) + '</span></div>' +
650
- ' <div style="word-break: break-word;">' + m.text + '</div>' +
651
- mediaTag +
652
- '</div>'
653
- );
654
- }).join('');
655
- }
656
-
657
- // Listen to messages from extension
658
- window.addEventListener('message', event => {
659
- const msg = event.data;
660
- if (msg.command === 'updateScreenFrame' && msg.dataUrl) {
661
- const frame = document.getElementById('screen-preview-img');
662
- if (frame) {
663
- frame.src = msg.dataUrl;
664
- frame.style.opacity = '1';
665
- }
666
- }
667
- if (msg.command === 'updateFeed' && msg.messages) {
668
- allRecentMessages = msg.messages;
669
- renderChatStream();
670
- }
671
- });
672
-
673
- function enableCompanionService() {
674
- vscode.postMessage({ command: 'enableCompanionService' });
675
- }
676
-
677
- // Default initialization (restore saved tab, platform, card layout & drag-and-drop immediately)
678
- restoreCardOrder();
679
- initCardDragAndDrop();
680
-
681
- const curState = vscode.getState() || {};
682
- if (curState.selectedCompanion) {
683
- const compSelect = document.getElementById('select-active-companion');
684
- if (compSelect && compSelect.querySelector('option[value="' + curState.selectedCompanion + '"]')) {
685
- compSelect.value = curState.selectedCompanion;
686
- }
687
- }
688
-
689
- if (currentMainTab === 'settings') {
690
- switchMainTab('settings');
691
- } else {
692
- switchMainTab('dashboard');
693
- }
694
- switchChannel(currentPlatform);
695
- renderChatStream();
696
- vscode.postMessage({ command: 'captureScreen' });
697
- `;
698
- }