@agentdeck/bridge 0.2.1 → 0.2.3

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 (383) hide show
  1. package/assets/fonts/IBMPlexSans-Bold.ttf +0 -0
  2. package/assets/fonts/IBMPlexSans-Regular.ttf +0 -0
  3. package/assets/fonts/JetBrainsMono-Bold.ttf +0 -0
  4. package/assets/fonts/JetBrainsMono-Regular.ttf +0 -0
  5. package/assets/fonts/LICENSES.md +22 -0
  6. package/dist/adapters/claude-code.d.ts +6 -0
  7. package/dist/adapters/claude-code.d.ts.map +1 -1
  8. package/dist/adapters/claude-code.js +8 -0
  9. package/dist/adapters/claude-code.js.map +1 -1
  10. package/dist/adapters/openclaw.d.ts +24 -0
  11. package/dist/adapters/openclaw.d.ts.map +1 -1
  12. package/dist/adapters/openclaw.js +291 -35
  13. package/dist/adapters/openclaw.js.map +1 -1
  14. package/dist/adapters/opencode-adapter.d.ts +59 -0
  15. package/dist/adapters/opencode-adapter.d.ts.map +1 -1
  16. package/dist/adapters/opencode-adapter.js +297 -35
  17. package/dist/adapters/opencode-adapter.js.map +1 -1
  18. package/dist/adb-reverse.d.ts +1 -1
  19. package/dist/adb-reverse.js +1 -1
  20. package/dist/antigravity-local.d.ts +1 -0
  21. package/dist/antigravity-local.d.ts.map +1 -1
  22. package/dist/antigravity-local.js +33 -0
  23. package/dist/antigravity-local.js.map +1 -1
  24. package/dist/apme/adapters/claude-hook.d.ts.map +1 -1
  25. package/dist/apme/adapters/claude-hook.js +5 -0
  26. package/dist/apme/adapters/claude-hook.js.map +1 -1
  27. package/dist/apme/adapters/codex-hook.d.ts +17 -0
  28. package/dist/apme/adapters/codex-hook.d.ts.map +1 -0
  29. package/dist/apme/adapters/codex-hook.js +95 -0
  30. package/dist/apme/adapters/codex-hook.js.map +1 -0
  31. package/dist/apme/adapters/codex-turn-manager.d.ts +86 -0
  32. package/dist/apme/adapters/codex-turn-manager.d.ts.map +1 -0
  33. package/dist/apme/adapters/codex-turn-manager.js +496 -0
  34. package/dist/apme/adapters/codex-turn-manager.js.map +1 -0
  35. package/dist/apme/adapters/openclaw-hook.d.ts +99 -0
  36. package/dist/apme/adapters/openclaw-hook.d.ts.map +1 -0
  37. package/dist/apme/adapters/openclaw-hook.js +234 -0
  38. package/dist/apme/adapters/openclaw-hook.js.map +1 -0
  39. package/dist/apme/adapters/opencode-hook.d.ts +56 -0
  40. package/dist/apme/adapters/opencode-hook.d.ts.map +1 -0
  41. package/dist/apme/adapters/opencode-hook.js +182 -0
  42. package/dist/apme/adapters/opencode-hook.js.map +1 -0
  43. package/dist/apme/adapters/timeline.d.ts.map +1 -1
  44. package/dist/apme/adapters/timeline.js +6 -1
  45. package/dist/apme/adapters/timeline.js.map +1 -1
  46. package/dist/apme/antigravity-transcript.d.ts +18 -0
  47. package/dist/apme/antigravity-transcript.d.ts.map +1 -0
  48. package/dist/apme/antigravity-transcript.js +94 -0
  49. package/dist/apme/antigravity-transcript.js.map +1 -0
  50. package/dist/apme/classify-turn.d.ts +13 -0
  51. package/dist/apme/classify-turn.d.ts.map +1 -0
  52. package/dist/apme/classify-turn.js +49 -0
  53. package/dist/apme/classify-turn.js.map +1 -0
  54. package/dist/apme/claude-transcript-reader.d.ts +10 -0
  55. package/dist/apme/claude-transcript-reader.d.ts.map +1 -1
  56. package/dist/apme/claude-transcript-reader.js +35 -0
  57. package/dist/apme/claude-transcript-reader.js.map +1 -1
  58. package/dist/apme/collector.d.ts +129 -6
  59. package/dist/apme/collector.d.ts.map +1 -1
  60. package/dist/apme/collector.js +470 -23
  61. package/dist/apme/collector.js.map +1 -1
  62. package/dist/apme/dashboard-html.d.ts.map +1 -1
  63. package/dist/apme/dashboard-html.js +87 -11
  64. package/dist/apme/dashboard-html.js.map +1 -1
  65. package/dist/apme/http.d.ts.map +1 -1
  66. package/dist/apme/http.js +43 -6
  67. package/dist/apme/http.js.map +1 -1
  68. package/dist/apme/index.d.ts +26 -5
  69. package/dist/apme/index.d.ts.map +1 -1
  70. package/dist/apme/index.js +135 -9
  71. package/dist/apme/index.js.map +1 -1
  72. package/dist/apme/pareto.d.ts +39 -0
  73. package/dist/apme/pareto.d.ts.map +1 -0
  74. package/dist/apme/pareto.js +59 -0
  75. package/dist/apme/pareto.js.map +1 -0
  76. package/dist/apme/recommend.d.ts +3 -0
  77. package/dist/apme/recommend.d.ts.map +1 -1
  78. package/dist/apme/recommend.js +43 -1
  79. package/dist/apme/recommend.js.map +1 -1
  80. package/dist/apme/runner.d.ts +92 -4
  81. package/dist/apme/runner.d.ts.map +1 -1
  82. package/dist/apme/runner.js +586 -70
  83. package/dist/apme/runner.js.map +1 -1
  84. package/dist/apme/sample-to-timeline.d.ts +26 -0
  85. package/dist/apme/sample-to-timeline.d.ts.map +1 -0
  86. package/dist/apme/sample-to-timeline.js +95 -0
  87. package/dist/apme/sample-to-timeline.js.map +1 -0
  88. package/dist/apme/scorers/index.d.ts +47 -0
  89. package/dist/apme/scorers/index.d.ts.map +1 -0
  90. package/dist/apme/scorers/index.js +96 -0
  91. package/dist/apme/scorers/index.js.map +1 -0
  92. package/dist/apme/settings.d.ts +14 -10
  93. package/dist/apme/settings.d.ts.map +1 -1
  94. package/dist/apme/settings.js +34 -8
  95. package/dist/apme/settings.js.map +1 -1
  96. package/dist/apme/store.d.ts +33 -1
  97. package/dist/apme/store.d.ts.map +1 -1
  98. package/dist/apme/store.js +334 -25
  99. package/dist/apme/store.js.map +1 -1
  100. package/dist/awaiting-overlay.d.ts +99 -0
  101. package/dist/awaiting-overlay.d.ts.map +1 -0
  102. package/dist/awaiting-overlay.js +148 -0
  103. package/dist/awaiting-overlay.js.map +1 -0
  104. package/dist/ble-sync-spawn.d.ts +63 -0
  105. package/dist/ble-sync-spawn.d.ts.map +1 -0
  106. package/dist/ble-sync-spawn.js +196 -0
  107. package/dist/ble-sync-spawn.js.map +1 -0
  108. package/dist/bridge-core.d.ts +24 -1
  109. package/dist/bridge-core.d.ts.map +1 -1
  110. package/dist/bridge-core.js +157 -24
  111. package/dist/bridge-core.js.map +1 -1
  112. package/dist/broadcast.d.ts +3 -0
  113. package/dist/broadcast.d.ts.map +1 -0
  114. package/dist/broadcast.js +122 -0
  115. package/dist/broadcast.js.map +1 -0
  116. package/dist/check-deps.d.ts.map +1 -1
  117. package/dist/check-deps.js +25 -9
  118. package/dist/check-deps.js.map +1 -1
  119. package/dist/cli.d.ts +15 -1
  120. package/dist/cli.d.ts.map +1 -1
  121. package/dist/cli.js +1025 -94
  122. package/dist/cli.js.map +1 -1
  123. package/dist/codex-auth.d.ts +21 -0
  124. package/dist/codex-auth.d.ts.map +1 -1
  125. package/dist/codex-auth.js +52 -1
  126. package/dist/codex-auth.js.map +1 -1
  127. package/dist/codex-output-parser.d.ts +8 -0
  128. package/dist/codex-output-parser.d.ts.map +1 -1
  129. package/dist/codex-output-parser.js +110 -25
  130. package/dist/codex-output-parser.js.map +1 -1
  131. package/dist/codex-rate-limits.d.ts +16 -0
  132. package/dist/codex-rate-limits.d.ts.map +1 -0
  133. package/dist/codex-rate-limits.js +197 -0
  134. package/dist/codex-rate-limits.js.map +1 -0
  135. package/dist/codex-rollout-response.d.ts +31 -0
  136. package/dist/codex-rollout-response.d.ts.map +1 -0
  137. package/dist/codex-rollout-response.js +135 -0
  138. package/dist/codex-rollout-response.js.map +1 -0
  139. package/dist/daemon-server.d.ts +85 -0
  140. package/dist/daemon-server.d.ts.map +1 -1
  141. package/dist/daemon-server.js +1627 -159
  142. package/dist/daemon-server.js.map +1 -1
  143. package/dist/daemon.js +15 -6
  144. package/dist/daemon.js.map +1 -1
  145. package/dist/display-dim.d.ts +9 -0
  146. package/dist/display-dim.d.ts.map +1 -0
  147. package/dist/display-dim.js +53 -0
  148. package/dist/display-dim.js.map +1 -0
  149. package/dist/display-monitor.d.ts +15 -2
  150. package/dist/display-monitor.d.ts.map +1 -1
  151. package/dist/display-monitor.js +104 -26
  152. package/dist/display-monitor.js.map +1 -1
  153. package/dist/esp32-serial.d.ts +160 -1
  154. package/dist/esp32-serial.d.ts.map +1 -1
  155. package/dist/esp32-serial.js +950 -153
  156. package/dist/esp32-serial.js.map +1 -1
  157. package/dist/fallback-task-timeline.d.ts +42 -0
  158. package/dist/fallback-task-timeline.d.ts.map +1 -0
  159. package/dist/fallback-task-timeline.js +112 -0
  160. package/dist/fallback-task-timeline.js.map +1 -0
  161. package/dist/foundation-models-helper.d.ts +11 -0
  162. package/dist/foundation-models-helper.d.ts.map +1 -0
  163. package/dist/foundation-models-helper.js +241 -0
  164. package/dist/foundation-models-helper.js.map +1 -0
  165. package/dist/hook-migration.js +1 -1
  166. package/dist/hook-migration.js.map +1 -1
  167. package/dist/hook-server.d.ts +2 -3
  168. package/dist/hook-server.d.ts.map +1 -1
  169. package/dist/hook-server.js +22 -10
  170. package/dist/hook-server.js.map +1 -1
  171. package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts +33 -0
  172. package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts.map +1 -0
  173. package/dist/idotmatrix/idotmatrix-daemon-sync.js +164 -0
  174. package/dist/idotmatrix/idotmatrix-daemon-sync.js.map +1 -0
  175. package/dist/idotmatrix/idotmatrix-discover.d.ts +18 -0
  176. package/dist/idotmatrix/idotmatrix-discover.d.ts.map +1 -0
  177. package/dist/idotmatrix/idotmatrix-discover.js +85 -0
  178. package/dist/idotmatrix/idotmatrix-discover.js.map +1 -0
  179. package/dist/idotmatrix/idotmatrix-settings.d.ts +20 -0
  180. package/dist/idotmatrix/idotmatrix-settings.d.ts.map +1 -0
  181. package/dist/idotmatrix/idotmatrix-settings.js +57 -0
  182. package/dist/idotmatrix/idotmatrix-settings.js.map +1 -0
  183. package/dist/index.d.ts.map +1 -1
  184. package/dist/index.js +215 -179
  185. package/dist/index.js.map +1 -1
  186. package/dist/log-stream.d.ts +15 -16
  187. package/dist/log-stream.d.ts.map +1 -1
  188. package/dist/log-stream.js +18 -96
  189. package/dist/log-stream.js.map +1 -1
  190. package/dist/logger.d.ts.map +1 -1
  191. package/dist/logger.js +12 -3
  192. package/dist/logger.js.map +1 -1
  193. package/dist/mdns.d.ts +17 -0
  194. package/dist/mdns.d.ts.map +1 -1
  195. package/dist/mdns.js +52 -18
  196. package/dist/mdns.js.map +1 -1
  197. package/dist/modules/adb-module.d.ts +1 -1
  198. package/dist/modules/adb-module.d.ts.map +1 -1
  199. package/dist/modules/adb-module.js +4 -3
  200. package/dist/modules/adb-module.js.map +1 -1
  201. package/dist/modules/broadcast-module.d.ts +17 -0
  202. package/dist/modules/broadcast-module.d.ts.map +1 -0
  203. package/dist/modules/broadcast-module.js +26 -0
  204. package/dist/modules/broadcast-module.js.map +1 -0
  205. package/dist/modules/idotmatrix-module.d.ts +9 -0
  206. package/dist/modules/idotmatrix-module.d.ts.map +1 -0
  207. package/dist/modules/idotmatrix-module.js +46 -0
  208. package/dist/modules/idotmatrix-module.js.map +1 -0
  209. package/dist/modules/index.d.ts +3 -1
  210. package/dist/modules/index.d.ts.map +1 -1
  211. package/dist/modules/index.js +9 -3
  212. package/dist/modules/index.js.map +1 -1
  213. package/dist/modules/pixoo-module.d.ts.map +1 -1
  214. package/dist/modules/pixoo-module.js +14 -4
  215. package/dist/modules/pixoo-module.js.map +1 -1
  216. package/dist/modules/serial-module.d.ts +4 -0
  217. package/dist/modules/serial-module.d.ts.map +1 -1
  218. package/dist/modules/serial-module.js +14 -12
  219. package/dist/modules/serial-module.js.map +1 -1
  220. package/dist/modules/timebox-module.d.ts +9 -0
  221. package/dist/modules/timebox-module.d.ts.map +1 -0
  222. package/dist/modules/timebox-module.js +46 -0
  223. package/dist/modules/timebox-module.js.map +1 -0
  224. package/dist/modules/types.d.ts +4 -2
  225. package/dist/modules/types.d.ts.map +1 -1
  226. package/dist/openclaw-session.d.ts +18 -0
  227. package/dist/openclaw-session.d.ts.map +1 -0
  228. package/dist/openclaw-session.js +34 -0
  229. package/dist/openclaw-session.js.map +1 -0
  230. package/dist/output-parser.d.ts +30 -0
  231. package/dist/output-parser.d.ts.map +1 -1
  232. package/dist/output-parser.js +125 -9
  233. package/dist/output-parser.js.map +1 -1
  234. package/dist/passive-observer.d.ts +26 -0
  235. package/dist/passive-observer.d.ts.map +1 -1
  236. package/dist/passive-observer.js +258 -49
  237. package/dist/passive-observer.js.map +1 -1
  238. package/dist/permission-resolver.d.ts +47 -0
  239. package/dist/permission-resolver.d.ts.map +1 -0
  240. package/dist/permission-resolver.js +103 -0
  241. package/dist/permission-resolver.js.map +1 -0
  242. package/dist/pixoo/micro-glyphs.d.ts +49 -0
  243. package/dist/pixoo/micro-glyphs.d.ts.map +1 -0
  244. package/dist/pixoo/micro-glyphs.js +276 -0
  245. package/dist/pixoo/micro-glyphs.js.map +1 -0
  246. package/dist/pixoo/pixoo-bridge.d.ts +2 -2
  247. package/dist/pixoo/pixoo-bridge.d.ts.map +1 -1
  248. package/dist/pixoo/pixoo-bridge.js +93 -25
  249. package/dist/pixoo/pixoo-bridge.js.map +1 -1
  250. package/dist/pixoo/pixoo-camera.d.ts +19 -3
  251. package/dist/pixoo/pixoo-camera.d.ts.map +1 -1
  252. package/dist/pixoo/pixoo-camera.js +62 -27
  253. package/dist/pixoo/pixoo-camera.js.map +1 -1
  254. package/dist/pixoo/pixoo-client.d.ts +13 -3
  255. package/dist/pixoo/pixoo-client.d.ts.map +1 -1
  256. package/dist/pixoo/pixoo-client.js +51 -22
  257. package/dist/pixoo/pixoo-client.js.map +1 -1
  258. package/dist/pixoo/pixoo-discover.d.ts +37 -0
  259. package/dist/pixoo/pixoo-discover.d.ts.map +1 -0
  260. package/dist/pixoo/pixoo-discover.js +105 -0
  261. package/dist/pixoo/pixoo-discover.js.map +1 -0
  262. package/dist/pixoo/pixoo-renderer.d.ts +8 -3
  263. package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
  264. package/dist/pixoo/pixoo-renderer.js +189 -60
  265. package/dist/pixoo/pixoo-renderer.js.map +1 -1
  266. package/dist/pixoo/pixoo-settings.d.ts +6 -0
  267. package/dist/pixoo/pixoo-settings.d.ts.map +1 -1
  268. package/dist/pixoo/pixoo-settings.js +9 -0
  269. package/dist/pixoo/pixoo-settings.js.map +1 -1
  270. package/dist/pixoo/pixoo-sprites.d.ts +60 -11
  271. package/dist/pixoo/pixoo-sprites.d.ts.map +1 -1
  272. package/dist/pixoo/pixoo-sprites.js +512 -209
  273. package/dist/pixoo/pixoo-sprites.js.map +1 -1
  274. package/dist/pty-manager.d.ts.map +1 -1
  275. package/dist/pty-manager.js +8 -2
  276. package/dist/pty-manager.js.map +1 -1
  277. package/dist/session-activity.d.ts +14 -0
  278. package/dist/session-activity.d.ts.map +1 -0
  279. package/dist/session-activity.js +160 -0
  280. package/dist/session-activity.js.map +1 -0
  281. package/dist/session-aggregator.d.ts +17 -0
  282. package/dist/session-aggregator.d.ts.map +1 -1
  283. package/dist/session-aggregator.js +48 -9
  284. package/dist/session-aggregator.js.map +1 -1
  285. package/dist/session-registry.d.ts +71 -3
  286. package/dist/session-registry.d.ts.map +1 -1
  287. package/dist/session-registry.js +137 -8
  288. package/dist/session-registry.js.map +1 -1
  289. package/dist/session-timeline-relay.d.ts.map +1 -1
  290. package/dist/session-timeline-relay.js +13 -4
  291. package/dist/session-timeline-relay.js.map +1 -1
  292. package/dist/session-transcript-timeline.d.ts +49 -0
  293. package/dist/session-transcript-timeline.d.ts.map +1 -0
  294. package/dist/session-transcript-timeline.js +276 -0
  295. package/dist/session-transcript-timeline.js.map +1 -0
  296. package/dist/state-machine.d.ts +6 -1
  297. package/dist/state-machine.d.ts.map +1 -1
  298. package/dist/state-machine.js +86 -28
  299. package/dist/state-machine.js.map +1 -1
  300. package/dist/timebox/timebox-daemon-sync.d.ts +19 -0
  301. package/dist/timebox/timebox-daemon-sync.d.ts.map +1 -0
  302. package/dist/timebox/timebox-daemon-sync.js +135 -0
  303. package/dist/timebox/timebox-daemon-sync.js.map +1 -0
  304. package/dist/timebox/timebox-discover.d.ts +19 -0
  305. package/dist/timebox/timebox-discover.d.ts.map +1 -0
  306. package/dist/timebox/timebox-discover.js +87 -0
  307. package/dist/timebox/timebox-discover.js.map +1 -0
  308. package/dist/timebox/timebox-settings.d.ts +32 -0
  309. package/dist/timebox/timebox-settings.d.ts.map +1 -0
  310. package/dist/timebox/timebox-settings.js +80 -0
  311. package/dist/timebox/timebox-settings.js.map +1 -0
  312. package/dist/timeline-store.d.ts +63 -3
  313. package/dist/timeline-store.d.ts.map +1 -1
  314. package/dist/timeline-store.js +292 -14
  315. package/dist/timeline-store.js.map +1 -1
  316. package/dist/timeline-summarizer.d.ts.map +1 -1
  317. package/dist/timeline-summarizer.js +29 -5
  318. package/dist/timeline-summarizer.js.map +1 -1
  319. package/dist/tui/ansi.d.ts +0 -4
  320. package/dist/tui/ansi.d.ts.map +1 -1
  321. package/dist/tui/ansi.js +14 -7
  322. package/dist/tui/ansi.js.map +1 -1
  323. package/dist/tui/dashboard.d.ts +1 -0
  324. package/dist/tui/dashboard.d.ts.map +1 -1
  325. package/dist/tui/dashboard.js +24 -7
  326. package/dist/tui/dashboard.js.map +1 -1
  327. package/dist/tui/renderer.d.ts +36 -0
  328. package/dist/tui/renderer.d.ts.map +1 -1
  329. package/dist/tui/renderer.js +303 -119
  330. package/dist/tui/renderer.js.map +1 -1
  331. package/dist/tui/terrarium.d.ts.map +1 -1
  332. package/dist/tui/terrarium.js +37 -49
  333. package/dist/tui/terrarium.js.map +1 -1
  334. package/dist/types.d.ts +2 -2
  335. package/dist/types.d.ts.map +1 -1
  336. package/dist/types.js +2 -2
  337. package/dist/types.js.map +1 -1
  338. package/dist/usage-api.d.ts.map +1 -1
  339. package/dist/usage-api.js +7 -1
  340. package/dist/usage-api.js.map +1 -1
  341. package/dist/usage-event.d.ts +10 -3
  342. package/dist/usage-event.d.ts.map +1 -1
  343. package/dist/usage-event.js +74 -12
  344. package/dist/usage-event.js.map +1 -1
  345. package/dist/utility-proxy.d.ts.map +1 -1
  346. package/dist/utility-proxy.js +8 -0
  347. package/dist/utility-proxy.js.map +1 -1
  348. package/dist/utils/project-name.d.ts +3 -0
  349. package/dist/utils/project-name.d.ts.map +1 -1
  350. package/dist/utils/project-name.js +44 -2
  351. package/dist/utils/project-name.js.map +1 -1
  352. package/dist/windows-service.d.ts +26 -0
  353. package/dist/windows-service.d.ts.map +1 -0
  354. package/dist/windows-service.js +145 -0
  355. package/dist/windows-service.js.map +1 -0
  356. package/dist/ws-server.d.ts +22 -1
  357. package/dist/ws-server.d.ts.map +1 -1
  358. package/dist/ws-server.js +89 -4
  359. package/dist/ws-server.js.map +1 -1
  360. package/fm-helper/AgentDeckFMHelper.swift +112 -0
  361. package/package.json +9 -3
  362. package/scripts/build-fm-helper.mjs +26 -0
  363. package/LICENSE +0 -21
  364. package/dist/apme/tuner.d.ts +0 -64
  365. package/dist/apme/tuner.d.ts.map +0 -1
  366. package/dist/apme/tuner.js +0 -297
  367. package/dist/apme/tuner.js.map +0 -1
  368. package/dist/d200h/hid-protocol.d.ts +0 -62
  369. package/dist/d200h/hid-protocol.d.ts.map +0 -1
  370. package/dist/d200h/hid-protocol.js +0 -124
  371. package/dist/d200h/hid-protocol.js.map +0 -1
  372. package/dist/d200h/image-renderer.d.ts +0 -36
  373. package/dist/d200h/image-renderer.d.ts.map +0 -1
  374. package/dist/d200h/image-renderer.js +0 -487
  375. package/dist/d200h/image-renderer.js.map +0 -1
  376. package/dist/modules/d200h-module.d.ts +0 -43
  377. package/dist/modules/d200h-module.d.ts.map +0 -1
  378. package/dist/modules/d200h-module.js +0 -360
  379. package/dist/modules/d200h-module.js.map +0 -1
  380. package/dist/modules/d200h-renderer.d.ts +0 -7
  381. package/dist/modules/d200h-renderer.d.ts.map +0 -1
  382. package/dist/modules/d200h-renderer.js +0 -321
  383. package/dist/modules/d200h-renderer.js.map +0 -1
@@ -8,8 +8,8 @@
8
8
  * - The device will smoothly overwrite its buffer without stalling.
9
9
  */
10
10
  import { DISPLAY_FORWARDED_EVENTS } from '@agentdeck/shared/protocol';
11
- import { pushFrame, setBrightness, clearText, getDeviceBackoffStatus, switchToCustomChannel, onDeviceStatusChange, stopProbeTimer } from './pixoo-client.js';
12
- import { renderFrame, renderDisconnectedFrame } from './pixoo-renderer.js';
11
+ import { pushFrame, pushFrames, setBrightness, clearText, getDeviceBackoffStatus, switchToCustomChannel, onDeviceStatusChange, stopProbeTimer } from './pixoo-client.js';
12
+ import { renderFrame, renderDisconnectedFrame, formatResetDetailed } from './pixoo-renderer.js';
13
13
  import { debug } from '../logger.js';
14
14
  const TAG = 'Pixoo';
15
15
  // ===== Internal State =====
@@ -17,17 +17,27 @@ let devices = [];
17
17
  let streamTimer = null;
18
18
  let lastPushTime = 0;
19
19
  let pushing = false; // guard against overlapping pushes
20
+ let lastStateHash = '';
21
+ let lastSequencePushTime = 0;
20
22
  // Cached latest events
21
23
  let lastStateEvent = null;
22
24
  let lastUsageEvent = null;
23
25
  let lastSessions = null;
24
26
  // Display sleep state — when Mac display is off, dim Pixoo and pause stream
25
27
  let displayDimmed = false;
28
+ let lastDisplayDimSignature = '';
26
29
  // Frame listeners for SSE streaming
27
30
  let frameListeners = [];
28
31
  let previewTimer = null;
29
32
  let previewFps = 10; // Adjustable 1–10 FPS for /pixoo live preview
30
- const HTTP_STREAM_INTERVAL_MS = 250; // 4 FPS hardware push (near hardware limit of Pixoo64)
33
+ // Push cadence. The Pixoo64 misbehaves (dropped/garbled frames) when pushed
34
+ // near its HTTP ceiling, so we cap at 2 FPS. STATE_CHECK_INTERVAL_MS is the
35
+ // stream timer period AND the effective max push rate (one frame per tick);
36
+ // MIN_PUSH_INTERVAL_MS is a hard floor so event-driven pushes (connection /
37
+ // display-wake) can't burst faster than 2 FPS between ticks.
38
+ const STATE_CHECK_INTERVAL_MS = 500; // 2 FPS push cadence
39
+ const MIN_PUSH_INTERVAL_MS = 500; // hard floor — never push faster than 2 FPS
40
+ const FORCE_REFRESH_INTERVAL_MS = 1500; // force single frame push every 1.5s as a heartbeat (0.67 FPS background rate)
31
41
  const CHANNEL_REASSERT_MS = 30_000; // Re-assert custom channel every 30s (fast recovery after reboots)
32
42
  const DEFAULT_BRIGHTNESS = 100;
33
43
  const FORWARDED_EVENTS = DISPLAY_FORWARDED_EVENTS;
@@ -69,11 +79,11 @@ export function startPixooBridge(pixooDevices) {
69
79
  }
70
80
  debug(TAG, online ? `${name} (${ip}) back online` : `${name} (${ip}) went offline`);
71
81
  });
72
- // Start continuous 3 FPS stream — no repeated channel switches
82
+ // Start state checking timer
73
83
  if (streamTimer)
74
84
  clearInterval(streamTimer);
75
- streamTimer = setInterval(doStreamPush, HTTP_STREAM_INTERVAL_MS);
76
- debug(TAG, 'Bridge started (Continuous 3 FPS stream)');
85
+ streamTimer = setInterval(doStateCheckAndPush, STATE_CHECK_INTERVAL_MS);
86
+ debug(TAG, 'Bridge started (2 FPS stream)');
77
87
  }
78
88
  export function broadcastPixoo(event) {
79
89
  if (!FORWARDED_EVENTS.has(event.type))
@@ -97,17 +107,39 @@ export function broadcastPixoo(event) {
97
107
  break;
98
108
  case 'display_state': {
99
109
  const displayOn = event.displayOn;
100
- if (!displayOn && !displayDimmed) {
110
+ const dim = event.dim;
111
+ const rawEnabled = dim?.enabled;
112
+ const dimEnabled = typeof rawEnabled === 'boolean' ? rawEnabled : true;
113
+ const dimMode = dim?.mode === 'min' ? 'min' : 'off';
114
+ const rawLevel = dim?.level;
115
+ const dimLevel = Math.max(1, Math.min(100, Math.round(typeof rawLevel === 'number' ? rawLevel : 10)));
116
+ const signature = `${dimEnabled}|${dimMode}|${dimLevel}`;
117
+ if (!displayOn && !dimEnabled) {
118
+ if (displayDimmed) {
119
+ displayDimmed = false;
120
+ for (const dev of devices) {
121
+ setBrightness(dev.ip, dev.brightness ?? DEFAULT_BRIGHTNESS).catch(() => { });
122
+ }
123
+ lastStateHash = '';
124
+ if (!streamTimer && devices.length > 0) {
125
+ streamTimer = setInterval(doStateCheckAndPush, STATE_CHECK_INTERVAL_MS);
126
+ doStateCheckAndPush();
127
+ }
128
+ }
129
+ debug(TAG, 'Display sleep — dim disabled, leaving Pixoo lit');
130
+ }
131
+ else if (!displayOn && (!displayDimmed || signature !== lastDisplayDimSignature)) {
101
132
  // Mac display off → dim Pixoo and pause stream
133
+ const target = dimMode === 'min' ? dimLevel : 0;
102
134
  displayDimmed = true;
103
135
  for (const dev of devices) {
104
- setBrightness(dev.ip, 0).catch(() => { });
136
+ setBrightness(dev.ip, target).catch(() => { });
105
137
  }
106
138
  if (streamTimer) {
107
139
  clearInterval(streamTimer);
108
140
  streamTimer = null;
109
141
  }
110
- debug(TAG, 'Display sleep — brightness 0, stream paused');
142
+ debug(TAG, `Display sleep — brightness ${target}, stream paused`);
111
143
  }
112
144
  else if (displayOn && displayDimmed) {
113
145
  // Mac display on → restore brightness and resume stream
@@ -118,19 +150,23 @@ export function broadcastPixoo(event) {
118
150
  // Resume stream after brief delay (let brightness restore first)
119
151
  setTimeout(() => {
120
152
  if (!displayDimmed && !streamTimer && devices.length > 0) {
121
- streamTimer = setInterval(doStreamPush, HTTP_STREAM_INTERVAL_MS);
122
- doStreamPush(); // Immediate first frame
153
+ streamTimer = setInterval(doStateCheckAndPush, STATE_CHECK_INTERVAL_MS);
154
+ lastStateHash = ''; // Force refresh
155
+ doStateCheckAndPush(); // Immediate first sequence
123
156
  }
124
157
  }, 100);
125
158
  debug(TAG, 'Display wake — brightness restored, stream resumed');
126
159
  }
160
+ lastDisplayDimSignature = signature;
127
161
  break;
128
162
  }
129
163
  }
130
164
  // Immediate push on major disconnections to feel snappy
131
165
  if (event.type === 'connection' && devices.length > 0) {
132
- if (!pushing)
133
- doStreamPush();
166
+ if (!pushing) {
167
+ lastStateHash = ''; // Force refresh
168
+ doStateCheckAndPush();
169
+ }
134
170
  }
135
171
  }
136
172
  export async function stopPixooBridge() {
@@ -156,6 +192,7 @@ export async function stopPixooBridge() {
156
192
  lastUsageEvent = null;
157
193
  lastSessions = null;
158
194
  displayDimmed = false;
195
+ lastDisplayDimSignature = '';
159
196
  broadcastFn = null;
160
197
  frameListeners = [];
161
198
  debug(TAG, 'Bridge stopped');
@@ -205,25 +242,56 @@ export function getPixooDeviceDetails() {
205
242
  }
206
243
  // ===== Internal =====
207
244
  /**
208
- * Main Continuous Stream tick: 3 FPS push to all hardware devices (333ms interval).
245
+ * Compute a hash string representing the variables influencing the visual state of the aquarium.
209
246
  */
210
- function doStreamPush() {
247
+ function calculateStateHash() {
248
+ const stateStr = lastStateEvent?.state ?? 'disconnected';
249
+ const gatewayConnected = lastStateEvent?.gatewayConnected ?? false;
250
+ const gatewayHasError = lastStateEvent?.gatewayHasError ?? false;
251
+ const r5 = lastUsageEvent ? formatResetDetailed(lastUsageEvent.fiveHourResetsAt) : '';
252
+ const r7 = lastUsageEvent ? formatResetDetailed(lastUsageEvent.sevenDayResetsAt) : '';
253
+ const u5 = lastUsageEvent?.fiveHourPercent != null ? Math.floor(lastUsageEvent.fiveHourPercent) : -1;
254
+ const u7 = lastUsageEvent?.sevenDayPercent != null ? Math.floor(lastUsageEvent.sevenDayPercent) : -1;
255
+ const uStale = lastUsageEvent?.usageStale ?? false;
256
+ const sessionInfo = lastSessions
257
+ ? lastSessions.map(s => `${s.id}:${s.agentType}:${s.state}`).join(',')
258
+ : '';
259
+ return `${stateStr}|${gatewayConnected}|${gatewayHasError}|${r5}|${r7}|${u5}|${u7}|${uStale}|${sessionInfo}|${displayDimmed}`;
260
+ }
261
+ /**
262
+ * State Check and Push tick: Checks for state changes, and pushes
263
+ * a single frame update to all hardware devices.
264
+ */
265
+ function doStateCheckAndPush() {
211
266
  if (devices.length === 0)
212
267
  return;
213
268
  if (pushing)
214
269
  return;
215
270
  if (displayDimmed)
216
271
  return;
217
- const elapsed = Date.now() - lastPushTime;
218
- if (elapsed < HTTP_STREAM_INTERVAL_MS * 0.8)
272
+ const currentHash = calculateStateHash();
273
+ const timeSinceLastPush = Date.now() - lastSequencePushTime;
274
+ const stateChanged = currentHash !== lastStateHash;
275
+ // Hard 2 FPS floor — event-driven calls (connection / display-wake) must not
276
+ // burst the device faster than the stream cadence, even on a state change.
277
+ if (timeSinceLastPush < MIN_PUSH_INTERVAL_MS) {
219
278
  return;
279
+ }
280
+ if (!stateChanged && timeSinceLastPush < FORCE_REFRESH_INTERVAL_MS) {
281
+ return; // No change and no force refresh due
282
+ }
220
283
  pushing = true;
221
- lastPushTime = Date.now();
284
+ lastSequencePushTime = Date.now();
285
+ lastStateHash = currentHash;
222
286
  try {
223
- const frame = renderFrame(lastStateEvent, lastUsageEvent, lastSessions);
287
+ const now = Date.now();
288
+ const framesCount = 1;
289
+ const frames = [];
290
+ // Render single frame
291
+ frames.push(renderFrame(lastStateEvent, lastUsageEvent, lastSessions, now));
224
292
  const ts = new Date().toISOString().slice(11, 19);
225
- debug('Pixoo', `${ts} pushing to ${devices.length} dev(s)`);
226
- const promises = devices.map(dev => pushFrame(dev.ip, frame).then(ok => {
293
+ debug('Pixoo', `${ts} pushing frame to ${devices.length} dev(s) (changed=${stateChanged})`);
294
+ const promises = devices.map(dev => pushFrames(dev.ip, frames, 1000).then(ok => {
227
295
  debug('Pixoo', `${ts} → ${dev.ip}: ${ok ? 'OK' : 'FAIL'}`);
228
296
  }).catch((err) => {
229
297
  debug('Pixoo', `${ts} → ${dev.ip}: ERROR ${err?.message}`);
@@ -239,14 +307,14 @@ function doStreamPush() {
239
307
  * Render a fresh frame using current cached state.
240
308
  * Used by the live preview endpoint when no Pixoo device is connected.
241
309
  */
242
- export function renderPreviewFrame() {
243
- return renderFrame(lastStateEvent, lastUsageEvent, lastSessions);
310
+ export function renderPreviewFrame(size, layout = 'standard') {
311
+ return renderFrame(lastStateEvent, lastUsageEvent, lastSessions, undefined, size, layout);
244
312
  }
245
313
  /**
246
314
  * Get the last calculated frame.
247
315
  */
248
- export function getLastFrame() {
249
- return renderFrame(lastStateEvent, lastUsageEvent, lastSessions);
316
+ export function getLastFrame(size, layout = 'standard') {
317
+ return renderFrame(lastStateEvent, lastUsageEvent, lastSessions, undefined, size, layout);
250
318
  }
251
319
  /** Notify all SSE frame listeners. */
252
320
  function notifyFrameListeners(frame) {
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-bridge.js","sourceRoot":"","sources":["../../src/pixoo/pixoo-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7J,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,GAAG,GAAG,OAAO,CAAC;AAUpB,6BAA6B;AAE7B,IAAI,OAAO,GAAkB,EAAE,CAAC;AAChC,IAAI,WAAW,GAA0C,IAAI,CAAC;AAC9D,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,mCAAmC;AAExD,uBAAuB;AACvB,IAAI,cAAc,GAA4B,IAAI,CAAC;AACnD,IAAI,cAAc,GAAsB,IAAI,CAAC;AAC7C,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,4EAA4E;AAC5E,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,oCAAoC;AACpC,IAAI,cAAc,GAAuC,EAAE,CAAC;AAC5D,IAAI,YAAY,GAA0C,IAAI,CAAC;AAC/D,IAAI,UAAU,GAAG,EAAE,CAAC,CAAC,8CAA8C;AAEnE,MAAM,uBAAuB,GAAG,GAAG,CAAC,CAAK,uDAAuD;AAChG,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAK,mEAAmE;AAC3G,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD,yEAAyE;AACzE,IAAI,WAAW,GAA0C,IAAI,CAAC;AAE9D,yBAAyB;AAEzB,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,EAAgC;IAChE,WAAW,GAAG,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,YAA4B;IAC3D,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,KAAK,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,OAAO,GAAG,YAAY,CAAC;IACvB,KAAK,CAAC,GAAG,EAAE,iBAAiB,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExG,6EAA6E;IAC7E,iFAAiF;IACjF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,8CAA8C;IAC9C,oBAAoB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,SAAS,CAAC;QACpC,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,OAAO;gBACf,IAAI;gBACJ,EAAE;gBACF,MAAM;gBACN,OAAO,EAAE,MAAM;oBACb,CAAC,CAAC,GAAG,IAAI,cAAc;oBACvB,CAAC,CAAC,GAAG,IAAI,sCAAsC;aAC3C,CAAC,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,+DAA+D;IAC/D,IAAI,WAAW;QAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,WAAW,GAAG,WAAW,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAEjE,KAAK,CAAC,GAAG,EAAE,0CAA0C,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO;IAE9C,mEAAmE;IACnE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,cAAc,GAAG,KAAyB,CAAC;YAC3C,MAAM;QACR,KAAK,cAAc;YACjB,cAAc,GAAG,KAAmB,CAAC;YACrC,MAAM;QACR,KAAK,eAAe;YAClB,YAAY,GAAI,KAA2B,CAAC,QAAQ,CAAC;YACrD,MAAM;QACR,KAAK,YAAY;YACf,IAAK,KAAa,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBAC7C,cAAc,GAAG,IAAI,CAAC;gBACtB,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,MAAM;QACR,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAI,KAAa,CAAC,SAAoB,CAAC;YACtD,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjC,+CAA+C;gBAC/C,aAAa,GAAG,IAAI,CAAC;gBACrB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,WAAW,EAAE,CAAC;oBAChB,aAAa,CAAC,WAAW,CAAC,CAAC;oBAC3B,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,KAAK,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;gBACtC,wDAAwD;gBACxD,aAAa,GAAG,KAAK,CAAC;gBACtB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,iEAAiE;gBACjE,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzD,WAAW,GAAG,WAAW,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;wBACjE,YAAY,EAAE,CAAC,CAAC,wBAAwB;oBAC1C,CAAC;gBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,KAAK,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;YACnE,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,YAAY,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,WAAW,EAAE,CAAC;QAChB,aAAa,CAAC,WAAW,CAAC,CAAC;QAC3B,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,cAAc,EAAE,CAAC;IAEjB,+DAA+D;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;QACxC,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB,EAAE,CAAC;IACnB,OAAO,GAAG,EAAE,CAAC;IACb,cAAc,GAAG,IAAI,CAAC;IACtB,cAAc,GAAG,IAAI,CAAC;IACtB,YAAY,GAAG,IAAI,CAAC;IACpB,aAAa,GAAG,KAAK,CAAC;IACtB,WAAW,GAAG,IAAI,CAAC;IACnB,cAAc,GAAG,EAAE,CAAC;IACpB,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAC/B,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,QAAqC;IACnE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,iBAAiB,EAAE,CAAC;AACtB,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,gBAAgB,CAAC,QAAqC;IACpE,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC5D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,gBAAgB,EAAE,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,gBAAgB,EAAE,CAAC;QACnB,iBAAiB,EAAE,CAAC;IACtB,CAAC;IACD,KAAK,CAAC,GAAG,EAAE,sBAAsB,UAAU,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,qBAAqB;IAQnC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uBAAuB;AAEvB;;GAEG;AACH,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,IAAI,OAAO;QAAE,OAAO;IACpB,IAAI,aAAa;QAAE,OAAO;IAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;IAC1C,IAAI,OAAO,GAAG,uBAAuB,GAAG,GAAG;QAAE,OAAO;IAEpD,OAAO,GAAG,IAAI,CAAC;IACf,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,eAAe,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACjC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACjC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YACpB,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,GAAG,KAAK,CAAC;QAChB,KAAK,CAAC,OAAO,EAAE,sBAAsB,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;AACnE,CAAC;AAED,sCAAsC;AACtC,SAAS,oBAAoB,CAAC,KAAiB;IAC7C,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC;YAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAS,iBAAiB;IACxB,IAAI,YAAY;QAAE,OAAO;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;IACjD,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,gBAAgB,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAChE,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACxE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,YAAY,EAAE,CAAC;QAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAAC,YAAY,GAAG,IAAI,CAAC;IAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"pixoo-bridge.js","sourceRoot":"","sources":["../../src/pixoo/pixoo-bridge.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,13 @@
10
10
  * 2. blitWithCamera() → 64×64 output buffer (crop + nearest-neighbor scale)
11
11
  * 3. Scaled creatures → output buffer (high-detail grid, camera-aware sizing)
12
12
  */
13
+ export declare const WORLD_SIZE = 96;
14
+ export declare const ACTIVE_SIZE = 64;
13
15
  export interface Camera {
14
16
  cx: number;
15
17
  cy: number;
16
18
  zoom: number;
19
+ width?: number;
17
20
  }
18
21
  export declare const CAMERA_WIDE: Camera;
19
22
  export interface CameraZone {
@@ -24,7 +27,7 @@ export interface CameraZone {
24
27
  duration: number;
25
28
  }
26
29
  export declare const ZONES: Record<string, CameraZone>;
27
- /** World (0~1) → screen pixel (0~63). */
30
+ /** World (0~1) → screen pixel (0~W-1). */
28
31
  export declare function worldToScreen(wx: number, wy: number, cam: Camera): [number, number];
29
32
  /** Screen pixel → world (0~1). */
30
33
  export declare function screenToWorld(sx: number, sy: number, cam: Camera): [number, number];
@@ -32,13 +35,26 @@ export declare function screenToWorld(sx: number, sy: number, cam: Camera): [num
32
35
  export declare function isVisible(wx: number, wy: number, cam: Camera, padding?: number): boolean;
33
36
  /** Clamp camera so the viewport stays within world bounds. */
34
37
  export declare function clampCamera(cam: Camera): Camera;
38
+ /**
39
+ * Snap the camera center to whole output pixels.
40
+ *
41
+ * worldToScreen maps a fixed world point to `(wx - cx) * w * zoom + w/2`. When
42
+ * `cx`/`cy` drift continuously (camera lerp) the sub-pixel remainder of that
43
+ * expression crosses .5 at arbitrary moments, so `Math.round`-based sampling
44
+ * (background blit) and the integer-snapped sprite origin shift their rounding
45
+ * *phase* frame-to-frame — a fixed sprite cell (a creature eye) appears to
46
+ * shimmer 1px even though the creature isn't really moving. Quantizing the
47
+ * center to the device-pixel grid (`cx * w * zoom` ∈ ℤ) freezes that phase, so
48
+ * the only motion left is the creature's own whole-pixel translation. At the
49
+ * ~1fps Pixoo/iDotMatrix push rate this is invisible for pan smoothness.
50
+ */
51
+ export declare function quantizeCameraPixels(cam: Camera): Camera;
35
52
  /** Linearly interpolate between two cameras. */
36
53
  export declare function lerpCamera(a: Camera, b: Camera, t: number): Camera;
37
54
  /** Smoothstep ease-in-out. */
38
55
  export declare function easeInOut(t: number): number;
39
56
  /**
40
- * Crop + nearest-neighbor scale from a 64×64 world buffer into a 64×64 output.
41
- * At zoom 1.0: 1:1 copy. At zoom 2.0: center 32×32 upscaled to fill output.
57
+ * Crop + nearest-neighbor scale from a 96×96 world buffer into a w×w output.
42
58
  */
43
59
  export declare function blitWithCamera(world: Uint8Array, output: Uint8Array, cam: Camera): void;
44
60
  /** Active creature descriptor for camera targeting. */
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-camera.d.ts","sourceRoot":"","sources":["../../src/pixoo/pixoo-camera.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,EAAE,MAAwC,CAAC;AAInE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAQ5C,CAAC;AAIF,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKnF;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKnF;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAGtF;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED,8BAA8B;AAC9B,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3C;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAqBvF;AAID,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,cAAc,EAAE,EACjC,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC5C,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,MAAM,CA6GR;AAYD,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgB9C;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAc7C;AAED,gDAAgD;AAChD,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C"}
1
+ {"version":3,"file":"pixoo-camera.d.ts","sourceRoot":"","sources":["../../src/pixoo/pixoo-camera.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAK9B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,MAAwC,CAAC;AAInE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAQ5C,CAAC;AAIF,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnF;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnF;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAGtF;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgB/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASxD;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED,8BAA8B;AAC9B,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3C;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAyBvF;AAID,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,cAAc,EAAE,EACjC,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC5C,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,MAAM,CA6GR;AAYD,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgB9C;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAc7C;AAED,gDAAgD;AAChD,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C"}
@@ -10,7 +10,9 @@
10
10
  * 2. blitWithCamera() → 64×64 output buffer (crop + nearest-neighbor scale)
11
11
  * 3. Scaled creatures → output buffer (high-detail grid, camera-aware sizing)
12
12
  */
13
- const W = 64;
13
+ export const WORLD_SIZE = 96;
14
+ export const ACTIVE_SIZE = 64;
15
+ const PAD = (WORLD_SIZE - ACTIVE_SIZE) / (2 * ACTIVE_SIZE); // 0.25
14
16
  export const CAMERA_WIDE = { cx: 0.5, cy: 0.5, zoom: 1.0 };
15
17
  export const ZONES = {
16
18
  wide: { name: 'wide', cx: 0.5, cy: 0.5, zoom: 1.0, duration: 10 },
@@ -22,18 +24,20 @@ export const ZONES = {
22
24
  'full-tank': { name: 'full-tank', cx: 0.5, cy: 0.5, zoom: 1.0, duration: 8 },
23
25
  };
24
26
  // ===== Coordinate Transforms =====
25
- /** World (0~1) → screen pixel (0~63). */
27
+ /** World (0~1) → screen pixel (0~W-1). */
26
28
  export function worldToScreen(wx, wy, cam) {
29
+ const w = cam.width ?? 64;
27
30
  return [
28
- (wx - cam.cx) * W * cam.zoom + W / 2,
29
- (wy - cam.cy) * W * cam.zoom + W / 2,
31
+ (wx - cam.cx) * w * cam.zoom + w / 2,
32
+ (wy - cam.cy) * w * cam.zoom + w / 2,
30
33
  ];
31
34
  }
32
35
  /** Screen pixel → world (0~1). */
33
36
  export function screenToWorld(sx, sy, cam) {
37
+ const w = cam.width ?? 64;
34
38
  return [
35
- (sx - W / 2) / (W * cam.zoom) + cam.cx,
36
- (sy - W / 2) / (W * cam.zoom) + cam.cy,
39
+ (sx - w / 2) / (w * cam.zoom) + cam.cx,
40
+ (sy - w / 2) / (w * cam.zoom) + cam.cy,
37
41
  ];
38
42
  }
39
43
  /** Check if a world-space point is within the camera viewport. */
@@ -44,10 +48,41 @@ export function isVisible(wx, wy, cam, padding = 0.05) {
44
48
  /** Clamp camera so the viewport stays within world bounds. */
45
49
  export function clampCamera(cam) {
46
50
  const halfView = 0.5 / cam.zoom;
51
+ const minVal = -PAD + halfView;
52
+ const maxVal = 1 + PAD - halfView;
53
+ const minX = Math.max(0, minVal);
54
+ const maxX = Math.min(1, maxVal);
55
+ const minY = Math.max(0, minVal);
56
+ const maxY = Math.min(1, maxVal);
47
57
  return {
48
- cx: Math.max(halfView, Math.min(1 - halfView, cam.cx)),
49
- cy: Math.max(halfView, Math.min(1 - halfView, cam.cy)),
58
+ cx: minX <= maxX ? Math.max(minX, Math.min(maxX, cam.cx)) : 0.5,
59
+ cy: minY <= maxY ? Math.max(minY, Math.min(maxY, cam.cy)) : 0.5,
50
60
  zoom: cam.zoom,
61
+ width: cam.width,
62
+ };
63
+ }
64
+ /**
65
+ * Snap the camera center to whole output pixels.
66
+ *
67
+ * worldToScreen maps a fixed world point to `(wx - cx) * w * zoom + w/2`. When
68
+ * `cx`/`cy` drift continuously (camera lerp) the sub-pixel remainder of that
69
+ * expression crosses .5 at arbitrary moments, so `Math.round`-based sampling
70
+ * (background blit) and the integer-snapped sprite origin shift their rounding
71
+ * *phase* frame-to-frame — a fixed sprite cell (a creature eye) appears to
72
+ * shimmer 1px even though the creature isn't really moving. Quantizing the
73
+ * center to the device-pixel grid (`cx * w * zoom` ∈ ℤ) freezes that phase, so
74
+ * the only motion left is the creature's own whole-pixel translation. At the
75
+ * ~1fps Pixoo/iDotMatrix push rate this is invisible for pan smoothness.
76
+ */
77
+ export function quantizeCameraPixels(cam) {
78
+ const w = cam.width ?? 64;
79
+ const s = w * cam.zoom; // output pixels per world unit
80
+ if (!(s > 0))
81
+ return cam;
82
+ return {
83
+ ...cam,
84
+ cx: Math.round(cam.cx * s) / s,
85
+ cy: Math.round(cam.cy * s) / s,
51
86
  };
52
87
  }
53
88
  /** Linearly interpolate between two cameras. */
@@ -57,6 +92,7 @@ export function lerpCamera(a, b, t) {
57
92
  cx: a.cx + (b.cx - a.cx) * s,
58
93
  cy: a.cy + (b.cy - a.cy) * s,
59
94
  zoom: a.zoom + (b.zoom - a.zoom) * s,
95
+ width: b.width ?? a.width,
60
96
  };
61
97
  }
62
98
  /** Smoothstep ease-in-out. */
@@ -66,27 +102,26 @@ export function easeInOut(t) {
66
102
  }
67
103
  // ===== Blit: world buffer → output with camera transform =====
68
104
  /**
69
- * Crop + nearest-neighbor scale from a 64×64 world buffer into a 64×64 output.
70
- * At zoom 1.0: 1:1 copy. At zoom 2.0: center 32×32 upscaled to fill output.
105
+ * Crop + nearest-neighbor scale from a 96×96 world buffer into a w×w output.
71
106
  */
72
107
  export function blitWithCamera(world, output, cam) {
73
- const cxPx = cam.cx * W;
74
- const cyPx = cam.cy * W;
75
- const viewSize = W / cam.zoom;
76
- const left = cxPx - viewSize / 2;
77
- const top = cyPx - viewSize / 2;
78
- for (let sy = 0; sy < W; sy++) {
79
- for (let sx = 0; sx < W; sx++) {
80
- const wx = Math.floor(left + sx / cam.zoom);
81
- const wy = Math.floor(top + sy / cam.zoom);
82
- const dstIdx = (sy * W + sx) * 3;
83
- if (wx >= 0 && wx < W && wy >= 0 && wy < W) {
84
- const srcIdx = (wy * W + wx) * 3;
85
- output[dstIdx] = world[srcIdx];
86
- output[dstIdx + 1] = world[srcIdx + 1];
87
- output[dstIdx + 2] = world[srcIdx + 2];
88
- }
89
- // out-of-bounds stays black (Uint8Array zero-init)
108
+ const w = cam.width ?? 64;
109
+ for (let sy = 0; sy < w; sy++) {
110
+ for (let sx = 0; sx < w; sx++) {
111
+ // Convert screen coordinate to normalized active region coordinate
112
+ const nx = (sx - w / 2) / (w * cam.zoom) + cam.cx;
113
+ const ny = (sy - w / 2) / (w * cam.zoom) + cam.cy;
114
+ // Convert normalized active region coordinate to world buffer index (centered)
115
+ const wx = Math.floor((WORLD_SIZE - ACTIVE_SIZE) / 2 + nx * ACTIVE_SIZE);
116
+ const wy = Math.floor((WORLD_SIZE - ACTIVE_SIZE) / 2 + ny * ACTIVE_SIZE);
117
+ const dstIdx = (sy * w + sx) * 3;
118
+ // Clamp coordinates to world boundaries (0..95) to prevent out-of-bounds access
119
+ const clampWx = Math.max(0, Math.min(WORLD_SIZE - 1, wx));
120
+ const clampWy = Math.max(0, Math.min(WORLD_SIZE - 1, wy));
121
+ const srcIdx = (clampWy * WORLD_SIZE + clampWx) * 3;
122
+ output[dstIdx] = world[srcIdx];
123
+ output[dstIdx + 1] = world[srcIdx + 1];
124
+ output[dstIdx + 2] = world[srcIdx + 2];
90
125
  }
91
126
  }
92
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-camera.js","sourceRoot":"","sources":["../../src/pixoo/pixoo-camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixoo-camera.js","sourceRoot":"","sources":["../../src/pixoo/pixoo-camera.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,16 @@ export declare function getDeviceBackoffStatus(ip: string): {
32
32
  * PicID increments per frame so the device renders each new image.
33
33
  * @param buffer - 12,288 bytes (64 * 64 * 3) raw RGB
34
34
  */
35
+ /**
36
+ * Push an animation sequence of 64x64 RGB frames to the device.
37
+ * @param buffers - Array of raw RGB buffers, each 12,288 bytes (64 * 64 * 3)
38
+ * @param speed - Playback speed in ms per frame (default 100ms)
39
+ */
40
+ export declare function pushFrames(ip: string, buffers: Uint8Array[], speed?: number): Promise<boolean>;
41
+ /**
42
+ * Push a single 64×64 RGB frame to the device.
43
+ * @param buffer - 12,288 bytes (64 * 64 * 3) raw RGB
44
+ */
35
45
  export declare function pushFrame(ip: string, buffer: Uint8Array): Promise<boolean>;
36
46
  /**
37
47
  * Send scrolling text overlay (device-native font, supports long text).
@@ -45,8 +55,8 @@ export declare function sendScrollText(ip: string, textId: number, text: string,
45
55
  export declare function clearText(ip: string): Promise<boolean>;
46
56
  /** Set display brightness (0-100). */
47
57
  export declare function setBrightness(ip: string, value: number): Promise<boolean>;
48
- /** Query the device's current PicID counter. Returns 0 on failure. */
49
- export declare function getHttpGifId(ip: string): Promise<number>;
58
+ /** Query the device's current PicID counter. Returns null on failure. */
59
+ export declare function getHttpGifId(ip: string): Promise<number | null>;
50
60
  /** Reset the PicID counter to prevent device lockup. */
51
61
  export declare function resetPicId(ip: string): Promise<boolean>;
52
62
  /** Switch device to the custom channel that shows SendHttpGif content. */
@@ -55,7 +65,7 @@ export declare function switchToCustomChannel(ip: string): Promise<boolean>;
55
65
  * Get device configuration (also serves as a connectivity test).
56
66
  * Returns null on failure.
57
67
  */
58
- export declare function getDeviceConfig(ip: string): Promise<Record<string, unknown> | null>;
68
+ export declare function getDeviceConfig(ip: string, timeoutMs?: number): Promise<Record<string, unknown> | null>;
59
69
  /**
60
70
  * Discover Pixoo devices via Divoom cloud API.
61
71
  * Falls back gracefully if cloud is unreachable.
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-client.d.ts","sourceRoot":"","sources":["../../src/pixoo/pixoo-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGjD;AAmBD,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAEpF;AAoED,8CAA8C;AAC9C,wBAAgB,cAAc,IAAI,IAAI,CAKrC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAUtC;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAUhH;AA8DD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CA0ChF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAClE,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED,+BAA+B;AAC/B,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AAED,sCAAsC;AACtC,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/E;AAED,sEAAsE;AACtE,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO9D;AAED,wDAAwD;AACxD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7D;AAED,0EAA0E;AAC1E,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAMzF;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAkBpF"}
1
+ {"version":3,"file":"pixoo-client.d.ts","sourceRoot":"","sources":["../../src/pixoo/pixoo-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGjD;AAmBD,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAEpF;AAoED,8CAA8C;AAC9C,wBAAgB,cAAc,IAAI,IAAI,CAKrC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAUtC;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAUhH;AA8DD;;;;GAIG;AACH;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyDjG;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAClE,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED,+BAA+B;AAC/B,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;AAED,sCAAsC;AACtC,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/E;AAED,yEAAyE;AACzE,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQrE;AAED,wDAAwD;AACxD,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7D;AAED,0EAA0E;AAC1E,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAM7G;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAkBpF"}