aicodeman 1.46.0 → 1.48.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 (291) hide show
  1. package/README.md +3 -0
  2. package/dist/cli-notify.d.ts +34 -0
  3. package/dist/cli-notify.d.ts.map +1 -0
  4. package/dist/cli-notify.js +100 -0
  5. package/dist/cli-notify.js.map +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +16 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config/cli-registry/patterns.d.ts +1 -1
  10. package/dist/config/cli-registry/patterns.d.ts.map +1 -1
  11. package/dist/config/cli-registry/patterns.js +4 -0
  12. package/dist/config/cli-registry/patterns.js.map +1 -1
  13. package/dist/config/cli-registry/schema.d.ts +6 -0
  14. package/dist/config/cli-registry/schema.d.ts.map +1 -1
  15. package/dist/config/cli-registry/schema.js +62 -2
  16. package/dist/config/cli-registry/schema.js.map +1 -1
  17. package/dist/config/cli-registry/stock.d.ts.map +1 -1
  18. package/dist/config/cli-registry/stock.js +43 -26
  19. package/dist/config/cli-registry/stock.js.map +1 -1
  20. package/dist/config/cli-registry/types.d.ts +47 -17
  21. package/dist/config/cli-registry/types.d.ts.map +1 -1
  22. package/dist/config/path-probe.d.ts +6 -0
  23. package/dist/config/path-probe.d.ts.map +1 -1
  24. package/dist/config/path-probe.js +6 -0
  25. package/dist/config/path-probe.js.map +1 -1
  26. package/dist/config-backup.d.ts +1 -1
  27. package/dist/config-backup.d.ts.map +1 -1
  28. package/dist/config-backup.js +2 -0
  29. package/dist/config-backup.js.map +1 -1
  30. package/dist/custom-model-hosts.d.ts +32 -8
  31. package/dist/custom-model-hosts.d.ts.map +1 -1
  32. package/dist/custom-model-hosts.js +10 -0
  33. package/dist/custom-model-hosts.js.map +1 -1
  34. package/dist/custom-model-injection-apply.d.ts +19 -5
  35. package/dist/custom-model-injection-apply.d.ts.map +1 -1
  36. package/dist/custom-model-injection-apply.js +88 -8
  37. package/dist/custom-model-injection-apply.js.map +1 -1
  38. package/dist/custom-model-injection.d.ts +6 -0
  39. package/dist/custom-model-injection.d.ts.map +1 -1
  40. package/dist/custom-model-injection.js +92 -10
  41. package/dist/custom-model-injection.js.map +1 -1
  42. package/dist/discord-bridge.d.ts +338 -0
  43. package/dist/discord-bridge.d.ts.map +1 -0
  44. package/dist/discord-bridge.js +1256 -0
  45. package/dist/discord-bridge.js.map +1 -0
  46. package/dist/edit-history-local-source.d.ts +83 -0
  47. package/dist/edit-history-local-source.d.ts.map +1 -0
  48. package/dist/edit-history-local-source.js +198 -0
  49. package/dist/edit-history-local-source.js.map +1 -0
  50. package/dist/edit-history-parse.d.ts +114 -0
  51. package/dist/edit-history-parse.d.ts.map +1 -0
  52. package/dist/edit-history-parse.js +312 -0
  53. package/dist/edit-history-parse.js.map +1 -0
  54. package/dist/edit-history-store.d.ts +209 -0
  55. package/dist/edit-history-store.d.ts.map +1 -0
  56. package/dist/edit-history-store.js +599 -0
  57. package/dist/edit-history-store.js.map +1 -0
  58. package/dist/git-clone.d.ts +6 -1
  59. package/dist/git-clone.d.ts.map +1 -1
  60. package/dist/git-clone.js +79 -14
  61. package/dist/git-clone.js.map +1 -1
  62. package/dist/image-watcher.js +4 -4
  63. package/dist/image-watcher.js.map +1 -1
  64. package/dist/mux-interface.d.ts +10 -1
  65. package/dist/mux-interface.d.ts.map +1 -1
  66. package/dist/ralph-fix-plan-watcher.d.ts +13 -1
  67. package/dist/ralph-fix-plan-watcher.d.ts.map +1 -1
  68. package/dist/ralph-fix-plan-watcher.js +21 -3
  69. package/dist/ralph-fix-plan-watcher.js.map +1 -1
  70. package/dist/ralph-tracker.d.ts +6 -0
  71. package/dist/ralph-tracker.d.ts.map +1 -1
  72. package/dist/ralph-tracker.js +8 -0
  73. package/dist/ralph-tracker.js.map +1 -1
  74. package/dist/session-cli-registry-bridge.d.ts.map +1 -1
  75. package/dist/session-cli-registry-bridge.js +4 -0
  76. package/dist/session-cli-registry-bridge.js.map +1 -1
  77. package/dist/session.d.ts +70 -3
  78. package/dist/session.d.ts.map +1 -1
  79. package/dist/session.js +147 -4
  80. package/dist/session.js.map +1 -1
  81. package/dist/tmux-manager.d.ts +40 -0
  82. package/dist/tmux-manager.d.ts.map +1 -1
  83. package/dist/tmux-manager.js +62 -0
  84. package/dist/tmux-manager.js.map +1 -1
  85. package/dist/types/discord.d.ts +55 -0
  86. package/dist/types/discord.d.ts.map +1 -0
  87. package/dist/types/discord.js +18 -0
  88. package/dist/types/discord.js.map +1 -0
  89. package/dist/types/index.d.ts +2 -0
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/types/index.js +2 -0
  92. package/dist/types/index.js.map +1 -1
  93. package/dist/types/session.d.ts +13 -0
  94. package/dist/types/session.d.ts.map +1 -1
  95. package/dist/types/session.js.map +1 -1
  96. package/dist/web/case-path.d.ts +2 -0
  97. package/dist/web/case-path.d.ts.map +1 -1
  98. package/dist/web/case-path.js +3 -3
  99. package/dist/web/case-path.js.map +1 -1
  100. package/dist/web/edit-history-sync.d.ts +158 -0
  101. package/dist/web/edit-history-sync.d.ts.map +1 -0
  102. package/dist/web/edit-history-sync.js +445 -0
  103. package/dist/web/edit-history-sync.js.map +1 -0
  104. package/dist/web/paste-image-gc.d.ts +6 -0
  105. package/dist/web/paste-image-gc.d.ts.map +1 -1
  106. package/dist/web/paste-image-gc.js +6 -0
  107. package/dist/web/paste-image-gc.js.map +1 -1
  108. package/dist/web/ports/session-port.d.ts +13 -0
  109. package/dist/web/ports/session-port.d.ts.map +1 -1
  110. package/dist/web/public/admin-ui.js.gz +0 -0
  111. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  112. package/dist/web/public/{app.3093527f.js → app.963b5ba8.js} +18 -18
  113. package/dist/web/public/app.963b5ba8.js.br +0 -0
  114. package/dist/web/public/app.963b5ba8.js.gz +0 -0
  115. package/dist/web/public/approvals-ui.js.gz +0 -0
  116. package/dist/web/public/{constants.affcdde6.js → constants.782170e1.js} +114 -25
  117. package/dist/web/public/constants.782170e1.js.br +0 -0
  118. package/dist/web/public/constants.782170e1.js.gz +0 -0
  119. package/dist/web/public/cron-ui.js.gz +0 -0
  120. package/dist/web/public/edit-history-ui.js +630 -0
  121. package/dist/web/public/edit-history-ui.js.br +0 -0
  122. package/dist/web/public/edit-history-ui.js.gz +0 -0
  123. package/dist/web/public/entrance-animations.js.gz +0 -0
  124. package/dist/web/public/git-status-ui.js.gz +0 -0
  125. package/dist/web/public/header-divider.eb2d2463.js.gz +0 -0
  126. package/dist/web/public/home-sessions.js.gz +0 -0
  127. package/dist/web/public/host-wake-ui.js.gz +0 -0
  128. package/dist/web/public/i18n.33f930d7.js +2 -0
  129. package/dist/web/public/i18n.33f930d7.js.br +0 -0
  130. package/dist/web/public/i18n.33f930d7.js.gz +0 -0
  131. package/dist/web/public/{image-input.941386e7.js → image-input.a5d0f8f3.js} +18 -9
  132. package/dist/web/public/image-input.a5d0f8f3.js.br +0 -0
  133. package/dist/web/public/image-input.a5d0f8f3.js.gz +0 -0
  134. package/dist/web/public/index.html +162 -16
  135. package/dist/web/public/index.html.br +0 -0
  136. package/dist/web/public/index.html.gz +0 -0
  137. package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
  138. package/dist/web/public/{keyboard-accessory.4e8b20ac.js → keyboard-accessory.d4ec5957.js} +77 -2
  139. package/dist/web/public/keyboard-accessory.d4ec5957.js.br +0 -0
  140. package/dist/web/public/keyboard-accessory.d4ec5957.js.gz +0 -0
  141. package/dist/web/public/mobile-handlers.f7c3f692.js.gz +0 -0
  142. package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
  143. package/dist/web/public/mobile-overview.js.gz +0 -0
  144. package/dist/web/public/mobile.5ef2ce85.css +1 -0
  145. package/dist/web/public/mobile.5ef2ce85.css.br +0 -0
  146. package/dist/web/public/mobile.5ef2ce85.css.gz +0 -0
  147. package/dist/web/public/notification-manager.feb82c04.js.gz +0 -0
  148. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  149. package/dist/web/public/{panels-ui.4a56ee63.js → panels-ui.b100727d.js} +2 -2
  150. package/dist/web/public/panels-ui.b100727d.js.br +0 -0
  151. package/dist/web/public/{panels-ui.4a56ee63.js.gz → panels-ui.b100727d.js.gz} +0 -0
  152. package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
  153. package/dist/web/public/ralph-wizard.b6c0dd19.js.gz +0 -0
  154. package/dist/web/public/readmymind-ui.js.gz +0 -0
  155. package/dist/web/public/reboot-restore-ui.js.gz +0 -0
  156. package/dist/web/public/{respawn-ui.d7adcf6a.js → respawn-ui.304ba0d4.js} +1 -1
  157. package/dist/web/public/respawn-ui.304ba0d4.js.br +0 -0
  158. package/dist/web/public/respawn-ui.304ba0d4.js.gz +0 -0
  159. package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
  160. package/dist/web/public/security-notices.json +1 -21
  161. package/dist/web/public/session-lineage.js.gz +0 -0
  162. package/dist/web/public/{session-ui.186f9419.js → session-ui.5ac82f2c.js} +30 -30
  163. package/dist/web/public/session-ui.5ac82f2c.js.br +0 -0
  164. package/dist/web/public/session-ui.5ac82f2c.js.gz +0 -0
  165. package/dist/web/public/settings-ui.d1d4fb99.js +106 -0
  166. package/dist/web/public/settings-ui.d1d4fb99.js.br +0 -0
  167. package/dist/web/public/settings-ui.d1d4fb99.js.gz +0 -0
  168. package/dist/web/public/spreadsheet-preview-worker.js.gz +0 -0
  169. package/dist/web/public/spreadsheet-preview.75c751de.js.gz +0 -0
  170. package/dist/web/public/spreadsheet-xlsx-core.js.gz +0 -0
  171. package/dist/web/public/styles.77dc538f.css +1 -0
  172. package/dist/web/public/styles.77dc538f.css.br +0 -0
  173. package/dist/web/public/styles.77dc538f.css.gz +0 -0
  174. package/dist/web/public/subagent-windows.07277a58.js.gz +0 -0
  175. package/dist/web/public/sw.js +2 -2
  176. package/dist/web/public/sw.js.br +0 -0
  177. package/dist/web/public/sw.js.gz +0 -0
  178. package/dist/web/public/tab-layout-browser.2d6189f7.js.gz +0 -0
  179. package/dist/web/public/tab-rail-resize.b5cdceaf.js.gz +0 -0
  180. package/dist/web/public/terminal-keycode229-recovery.98843069.js +1 -0
  181. package/dist/web/public/terminal-keycode229-recovery.98843069.js.br +0 -0
  182. package/dist/web/public/terminal-keycode229-recovery.98843069.js.gz +0 -0
  183. package/dist/web/public/terminal-split.js.gz +0 -0
  184. package/dist/web/public/terminal-tile.js +8 -6
  185. package/dist/web/public/terminal-tile.js.br +0 -0
  186. package/dist/web/public/terminal-tile.js.gz +0 -0
  187. package/dist/web/public/{terminal-ui.7e787829.js → terminal-ui.d7c75ce8.js} +3 -3
  188. package/dist/web/public/terminal-ui.d7c75ce8.js.br +0 -0
  189. package/dist/web/public/terminal-ui.d7c75ce8.js.gz +0 -0
  190. package/dist/web/public/tile-grid.js.gz +0 -0
  191. package/dist/web/public/ultracode-panel.js.gz +0 -0
  192. package/dist/web/public/ultracode-windows.js.gz +0 -0
  193. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  194. package/dist/web/public/vendor/exceljs.min.js.gz +0 -0
  195. package/dist/web/public/vendor/fflate.min.js.gz +0 -0
  196. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  197. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  198. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  199. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  200. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  201. package/dist/web/public/vendor/xterm-predictive-echo.276b11d9.js.gz +0 -0
  202. package/dist/web/public/vendor/xterm-zerolag-input.1be42307.js.gz +0 -0
  203. package/dist/web/public/vendor/xterm.css.gz +0 -0
  204. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  205. package/dist/web/public/voice-input.2342c37b.js.gz +0 -0
  206. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  207. package/dist/web/public/webview-tabs.js.gz +0 -0
  208. package/dist/web/public/whats-new.json +9 -9
  209. package/dist/web/request-body-parser.d.ts +23 -0
  210. package/dist/web/request-body-parser.d.ts.map +1 -0
  211. package/dist/web/request-body-parser.js +57 -0
  212. package/dist/web/request-body-parser.js.map +1 -0
  213. package/dist/web/routes/case-routes.d.ts.map +1 -1
  214. package/dist/web/routes/case-routes.js +104 -8
  215. package/dist/web/routes/case-routes.js.map +1 -1
  216. package/dist/web/routes/config-backup-routes.d.ts +5 -1
  217. package/dist/web/routes/config-backup-routes.d.ts.map +1 -1
  218. package/dist/web/routes/config-backup-routes.js +4 -1
  219. package/dist/web/routes/config-backup-routes.js.map +1 -1
  220. package/dist/web/routes/custom-model-routes.d.ts +7 -2
  221. package/dist/web/routes/custom-model-routes.d.ts.map +1 -1
  222. package/dist/web/routes/custom-model-routes.js +51 -6
  223. package/dist/web/routes/custom-model-routes.js.map +1 -1
  224. package/dist/web/routes/discord-routes.d.ts +25 -0
  225. package/dist/web/routes/discord-routes.d.ts.map +1 -0
  226. package/dist/web/routes/discord-routes.js +206 -0
  227. package/dist/web/routes/discord-routes.js.map +1 -0
  228. package/dist/web/routes/edit-history-routes.d.ts +43 -0
  229. package/dist/web/routes/edit-history-routes.d.ts.map +1 -0
  230. package/dist/web/routes/edit-history-routes.js +106 -0
  231. package/dist/web/routes/edit-history-routes.js.map +1 -0
  232. package/dist/web/routes/file-routes.d.ts +5 -0
  233. package/dist/web/routes/file-routes.d.ts.map +1 -1
  234. package/dist/web/routes/file-routes.js +67 -3
  235. package/dist/web/routes/file-routes.js.map +1 -1
  236. package/dist/web/routes/index.d.ts +2 -0
  237. package/dist/web/routes/index.d.ts.map +1 -1
  238. package/dist/web/routes/index.js +2 -0
  239. package/dist/web/routes/index.js.map +1 -1
  240. package/dist/web/routes/ralph-routes.d.ts.map +1 -1
  241. package/dist/web/routes/ralph-routes.js +45 -2
  242. package/dist/web/routes/ralph-routes.js.map +1 -1
  243. package/dist/web/routes/session-routes.d.ts +17 -0
  244. package/dist/web/routes/session-routes.d.ts.map +1 -1
  245. package/dist/web/routes/session-routes.js +92 -37
  246. package/dist/web/routes/session-routes.js.map +1 -1
  247. package/dist/web/routes/system-routes.d.ts.map +1 -1
  248. package/dist/web/routes/system-routes.js +4 -2
  249. package/dist/web/routes/system-routes.js.map +1 -1
  250. package/dist/web/schemas.d.ts +68 -1
  251. package/dist/web/schemas.d.ts.map +1 -1
  252. package/dist/web/schemas.js +77 -1
  253. package/dist/web/schemas.js.map +1 -1
  254. package/dist/web/sensitive-path.d.ts.map +1 -1
  255. package/dist/web/sensitive-path.js +15 -0
  256. package/dist/web/sensitive-path.js.map +1 -1
  257. package/dist/web/server.d.ts +43 -0
  258. package/dist/web/server.d.ts.map +1 -1
  259. package/dist/web/server.js +237 -15
  260. package/dist/web/server.js.map +1 -1
  261. package/package.json +1 -1
  262. package/dist/web/public/app.3093527f.js.br +0 -0
  263. package/dist/web/public/app.3093527f.js.gz +0 -0
  264. package/dist/web/public/constants.affcdde6.js.br +0 -0
  265. package/dist/web/public/constants.affcdde6.js.gz +0 -0
  266. package/dist/web/public/i18n.70265257.js +0 -2
  267. package/dist/web/public/i18n.70265257.js.br +0 -0
  268. package/dist/web/public/i18n.70265257.js.gz +0 -0
  269. package/dist/web/public/image-input.941386e7.js.br +0 -0
  270. package/dist/web/public/image-input.941386e7.js.gz +0 -0
  271. package/dist/web/public/keyboard-accessory.4e8b20ac.js.br +0 -0
  272. package/dist/web/public/keyboard-accessory.4e8b20ac.js.gz +0 -0
  273. package/dist/web/public/mobile.1bbd2d67.css +0 -1
  274. package/dist/web/public/mobile.1bbd2d67.css.br +0 -0
  275. package/dist/web/public/mobile.1bbd2d67.css.gz +0 -0
  276. package/dist/web/public/panels-ui.4a56ee63.js.br +0 -0
  277. package/dist/web/public/respawn-ui.d7adcf6a.js.br +0 -0
  278. package/dist/web/public/respawn-ui.d7adcf6a.js.gz +0 -0
  279. package/dist/web/public/session-ui.186f9419.js.br +0 -0
  280. package/dist/web/public/session-ui.186f9419.js.gz +0 -0
  281. package/dist/web/public/settings-ui.a191154e.js +0 -106
  282. package/dist/web/public/settings-ui.a191154e.js.br +0 -0
  283. package/dist/web/public/settings-ui.a191154e.js.gz +0 -0
  284. package/dist/web/public/styles.7238eae8.css +0 -1
  285. package/dist/web/public/styles.7238eae8.css.br +0 -0
  286. package/dist/web/public/styles.7238eae8.css.gz +0 -0
  287. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js +0 -1
  288. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.br +0 -0
  289. package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.gz +0 -0
  290. package/dist/web/public/terminal-ui.7e787829.js.br +0 -0
  291. package/dist/web/public/terminal-ui.7e787829.js.gz +0 -0
@@ -26,7 +26,7 @@
26
26
  // not the current one, so the old constant key meant that cleanup never deleted
27
27
  // anything — hashed assets from every release ever deployed accumulated in one
28
28
  // bucket until the origin hit its storage quota.
29
- const BUILD_ID = '86c261a69d9f';
29
+ const BUILD_ID = 'f4d45c0df138';
30
30
  const CACHE_NAME = `codeman-${BUILD_ID}`;
31
31
 
32
32
  // Reverse-proxy base path: the worker is served at `<base>/sw.js`, so its own
@@ -48,7 +48,7 @@ const B = (p) => (p && p[0] === '/' ? SW_BASE + p : p);
48
48
  // handler caches every successful GET at runtime, but the precache warmed
49
49
  // nothing while looking like it did. Deriving it from the same manifest that
50
50
  // renames the files is the only thing that keeps the two from drifting again.
51
- const HASHED_ASSETS = ["styles.7238eae8.css", "mobile.1bbd2d67.css", "constants.affcdde6.js", "i18n.70265257.js", "mobile-handlers.f7c3f692.js", "voice-input.2342c37b.js", "notification-manager.feb82c04.js", "keyboard-accessory.4e8b20ac.js", "input-cjk.8bc46081.js", "mobile-ime-preview.2dbaf262.js", "terminal-keycode229-recovery.af09f99a.js", "sanitize-html.e7147e76.js", "tab-layout-browser.2d6189f7.js", "app.3093527f.js", "tab-rail-resize.b5cdceaf.js", "header-divider.eb2d2463.js", "terminal-ui.7e787829.js", "respawn-ui.d7adcf6a.js", "ralph-panel.b350e2ef.js", "settings-ui.a191154e.js", "panels-ui.4a56ee63.js", "session-ui.186f9419.js", "ralph-wizard.b6c0dd19.js", "api-client.c9b1cddc.js", "subagent-windows.07277a58.js", "image-input.941386e7.js", "spreadsheet-preview.75c751de.js", "vendor/xterm-zerolag-input.1be42307.js", "vendor/xterm-predictive-echo.276b11d9.js"];
51
+ const HASHED_ASSETS = ["styles.77dc538f.css", "mobile.5ef2ce85.css", "constants.782170e1.js", "i18n.33f930d7.js", "mobile-handlers.f7c3f692.js", "voice-input.2342c37b.js", "notification-manager.feb82c04.js", "keyboard-accessory.d4ec5957.js", "input-cjk.8bc46081.js", "mobile-ime-preview.2dbaf262.js", "terminal-keycode229-recovery.98843069.js", "sanitize-html.e7147e76.js", "tab-layout-browser.2d6189f7.js", "app.963b5ba8.js", "tab-rail-resize.b5cdceaf.js", "header-divider.eb2d2463.js", "terminal-ui.d7c75ce8.js", "respawn-ui.304ba0d4.js", "ralph-panel.b350e2ef.js", "settings-ui.d1d4fb99.js", "panels-ui.b100727d.js", "session-ui.5ac82f2c.js", "ralph-wizard.b6c0dd19.js", "api-client.c9b1cddc.js", "subagent-windows.07277a58.js", "image-input.a5d0f8f3.js", "spreadsheet-preview.75c751de.js", "vendor/xterm-zerolag-input.1be42307.js", "vendor/xterm-predictive-echo.276b11d9.js"];
52
52
 
53
53
  // Core app shell -- cached on install for instant startup
54
54
  const APP_SHELL = [
Binary file
Binary file
@@ -0,0 +1 @@
1
+ "use strict";(function(c){"use strict";function T(o,t){const u=Array.from(o),d=Array.from(t);let r=0;const y=Math.min(u.length,d.length);for(;r<y&&u[r]===d[r];)r+=1;return{deleted:u.length-r,inserted:d.slice(r).join("")}}function D(){try{return/Android/i.test(c.navigator?.userAgent||"")?!0:c.matchMedia?.("(pointer: coarse)")?.matches===!0}catch{return!1}}function M(o){if(!D())return null;const t=o?.textarea,u=o?.emitRecovered;if(!t?.addEventListener||!t?.removeEventListener||typeof u!="function")return null;const d=o.isScreenReaderMode,r=o.setTimer||c.setTimeout.bind(c),y=o.clearTimer||c.clearTimeout.bind(c);let i=!1,p=0,x=0,v=!1;const m=[];let g=()=>{};function j(){for(const e of m.splice(0)){if(e.timer!==null){try{y(e.timer)}catch{}e.timer=null}S(e)}}function C(){for(const e of m.splice(0))if(e.active=!1,e.timer!==null){try{y(e.timer)}catch{}e.timer=null}}function S(e){const n=m.indexOf(e);if(n!==-1&&m.splice(n,1),e.timer=null,!(!e.active||i)&&(e.active=!1,!(p>e.snapshot)))try{u(e.data)}catch{}}function k(){p+=1}function K(e){i||e?.type!=="keydown"||(g(e),j(),x=p)}function w(e){if(i||v||e?.isComposing||e.inputType!=="insertText")return;const n=e.data;if(typeof n!="string"||n==="")return;try{if(d?.())return}catch{return}const a={data:n,snapshot:x??p,active:!0,timer:null};m.push(a);try{a.timer=r(()=>S(a),0)}catch{C()}}function O(){let e;try{e=o.getCompositionHelper?.()}catch{return null}const n=e?._handleAnyTextareaChanges,a=e?._coreService;if(typeof n!="function"||typeof a?.triggerDataEvent!="function")return null;let h=t.value;const f=new Set;function R(){if(i||e._isComposing)return;const l=t.value;if(l===h)return;const{deleted:s,inserted:E}=T(h,l);h=l;try{for(let z=0;z<s;z+=1)a.triggerDataEvent("\x7F",!0);E&&(e._dataAlreadySent=E,a.triggerDataEvent(E,!0))}catch{}}return e._handleAnyTextareaChanges=function(){if(i)return n.call(this);f.size===0&&h!==t.value&&(h=t.value);const s={id:null};f.add(s),s.id=r(()=>{f.delete(s),R()},0)},g=l=>{if(f.size!==0){for(const s of f)try{y(s.id)}catch{}f.clear(),!(e._isSendingComposition&&![229,20,16,17,18].includes(l?.keyCode))&&R()}},()=>{g=()=>{},e._handleAnyTextareaChanges!==n&&(e._handleAnyTextareaChanges=n)}}const P=O();function A(){i||(v=!0,C())}function L(){i||(v=!1)}function _(){if(!i){i=!0,C();try{P?.()}catch{}try{t.removeEventListener("input",w,!0),t.removeEventListener("compositionstart",A,!0),t.removeEventListener("compositionend",L,!0)}catch{}}}try{t.addEventListener("input",w,!0),t.addEventListener("compositionstart",A,!0),t.addEventListener("compositionend",L,!0)}catch{return _(),null}return Object.freeze({handleKeyEvent:K,notifyCanonicalData:k,destroy:_})}c.CodemanKeyCode229Recovery=Object.freeze({create:M,editBetween:T})})(typeof window<"u"?window:globalThis);
@@ -344,9 +344,10 @@
344
344
  if (global.app?.tileShortcutFor?.(ev)) return false;
345
345
  // Ctrl+V / Cmd+V: the primary pane's paste trap, aimed at THIS pane, so
346
346
  // a pasted image uploads to this pane's session and its path is typed
347
- // here, and pasted text goes into this xterm with its bracketed-paste
348
- // markers intact. Mirrors terminal-ui.js's own Ctrl+V gate; without it
349
- // xterm's default only ever pasted text.
347
+ // here. Plain text goes to this pane's session as a Codeman-built
348
+ // bracketed-paste frame; this terminal is only refocused and receives
349
+ // input(framed), which onData delivers. Mirrors terminal-ui.js's own
350
+ // Ctrl+V gate; without it xterm's default only ever pasted text.
350
351
  if ((ev.ctrlKey || ev.metaKey) && ev.key === 'v' && ev.type === 'keydown') {
351
352
  global.app?._handleImagePaste?.({ terminal: this.terminal, sessionId: this.sessionId });
352
353
  return false;
@@ -646,9 +647,10 @@
646
647
  // Recovered text goes straight to _onTerminalData(), never through xterm's
647
648
  // onData, so it is not counted as xterm's own (see connect()'s onData).
648
649
  // Created after terminal.open(): xterm's capture `input` listener on the
649
- // textarea is registered there, and must run before the controller's. No
650
- // device or mode gate, as in the primary pane: with a hardware keyboard it
651
- // costs one assignment per keydown. A failure leaves xterm's own handling.
650
+ // textarea is registered there, and must run before the controller's.
651
+ // create() returns null on a fine pointer (#716): the recovery is for soft
652
+ // keyboards, and on a desktop it delivers a dead-key character twice.
653
+ // A failure leaves xterm's own handling.
652
654
  _createKeyCode229Recovery() {
653
655
  this._destroyKeyCode229Recovery();
654
656
  if (!this.terminal) return;
Binary file
Binary file