@agentdeck/bridge 0.2.3 → 1.0.1

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 (188) hide show
  1. package/assets/fm-helper/agentdeck-fm-helper +0 -0
  2. package/dist/apme/antigravity-transcript.d.ts.map +1 -1
  3. package/dist/apme/antigravity-transcript.js +16 -3
  4. package/dist/apme/antigravity-transcript.js.map +1 -1
  5. package/dist/apme/collector.d.ts +4 -0
  6. package/dist/apme/collector.d.ts.map +1 -1
  7. package/dist/apme/collector.js +1 -0
  8. package/dist/apme/collector.js.map +1 -1
  9. package/dist/apme/dashboard-html.d.ts.map +1 -1
  10. package/dist/apme/dashboard-html.js +30 -0
  11. package/dist/apme/dashboard-html.js.map +1 -1
  12. package/dist/apme/http.d.ts.map +1 -1
  13. package/dist/apme/http.js +9 -0
  14. package/dist/apme/http.js.map +1 -1
  15. package/dist/apme/index.d.ts.map +1 -1
  16. package/dist/apme/index.js +14 -3
  17. package/dist/apme/index.js.map +1 -1
  18. package/dist/apme/judge-detect.d.ts +26 -0
  19. package/dist/apme/judge-detect.d.ts.map +1 -0
  20. package/dist/apme/judge-detect.js +69 -0
  21. package/dist/apme/judge-detect.js.map +1 -0
  22. package/dist/apme/runner.d.ts +7 -0
  23. package/dist/apme/runner.d.ts.map +1 -1
  24. package/dist/apme/runner.js +188 -33
  25. package/dist/apme/runner.js.map +1 -1
  26. package/dist/apme/settings.d.ts +10 -8
  27. package/dist/apme/settings.d.ts.map +1 -1
  28. package/dist/apme/settings.js +11 -16
  29. package/dist/apme/settings.js.map +1 -1
  30. package/dist/awaiting-overlay.d.ts +17 -4
  31. package/dist/awaiting-overlay.d.ts.map +1 -1
  32. package/dist/awaiting-overlay.js +39 -8
  33. package/dist/awaiting-overlay.js.map +1 -1
  34. package/dist/bridge-core.d.ts +10 -0
  35. package/dist/bridge-core.d.ts.map +1 -1
  36. package/dist/bridge-core.js +50 -0
  37. package/dist/bridge-core.js.map +1 -1
  38. package/dist/claude-permission-rules.d.ts +55 -0
  39. package/dist/claude-permission-rules.d.ts.map +1 -0
  40. package/dist/claude-permission-rules.js +197 -0
  41. package/dist/claude-permission-rules.js.map +1 -0
  42. package/dist/cli.d.ts.map +1 -1
  43. package/dist/cli.js +10 -1
  44. package/dist/cli.js.map +1 -1
  45. package/dist/d200h/hid-protocol.d.ts +62 -0
  46. package/dist/d200h/hid-protocol.d.ts.map +1 -0
  47. package/dist/d200h/hid-protocol.js +124 -0
  48. package/dist/d200h/hid-protocol.js.map +1 -0
  49. package/dist/d200h/image-renderer.d.ts +24 -0
  50. package/dist/d200h/image-renderer.d.ts.map +1 -0
  51. package/dist/d200h/image-renderer.js +321 -0
  52. package/dist/d200h/image-renderer.js.map +1 -0
  53. package/dist/daemon-server.d.ts.map +1 -1
  54. package/dist/daemon-server.js +374 -26
  55. package/dist/daemon-server.js.map +1 -1
  56. package/dist/daemon.js +1 -1
  57. package/dist/esp32-serial.d.ts +40 -0
  58. package/dist/esp32-serial.d.ts.map +1 -1
  59. package/dist/esp32-serial.js +203 -11
  60. package/dist/esp32-serial.js.map +1 -1
  61. package/dist/fallback-task-timeline.d.ts.map +1 -1
  62. package/dist/fallback-task-timeline.js +9 -2
  63. package/dist/fallback-task-timeline.js.map +1 -1
  64. package/dist/hook-server.d.ts.map +1 -1
  65. package/dist/hook-server.js +6 -5
  66. package/dist/hook-server.js.map +1 -1
  67. package/dist/idotmatrix/idotmatrix-daemon-sync.js +2 -2
  68. package/dist/idotmatrix/idotmatrix-daemon-sync.js.map +1 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +2 -0
  71. package/dist/index.js.map +1 -1
  72. package/dist/logger.d.ts +3 -1
  73. package/dist/logger.d.ts.map +1 -1
  74. package/dist/logger.js +6 -2
  75. package/dist/logger.js.map +1 -1
  76. package/dist/model-catalog.d.ts +1 -1
  77. package/dist/model-catalog.d.ts.map +1 -1
  78. package/dist/model-catalog.js +2 -4
  79. package/dist/model-catalog.js.map +1 -1
  80. package/dist/modules/d200h-module.d.ts +65 -0
  81. package/dist/modules/d200h-module.d.ts.map +1 -0
  82. package/dist/modules/d200h-module.js +495 -0
  83. package/dist/modules/d200h-module.js.map +1 -0
  84. package/dist/modules/d200h-renderer.d.ts +7 -0
  85. package/dist/modules/d200h-renderer.d.ts.map +1 -0
  86. package/dist/modules/d200h-renderer.js +321 -0
  87. package/dist/modules/d200h-renderer.js.map +1 -0
  88. package/dist/modules/trmnl-module.d.ts +38 -0
  89. package/dist/modules/trmnl-module.d.ts.map +1 -0
  90. package/dist/modules/trmnl-module.js +111 -0
  91. package/dist/modules/trmnl-module.js.map +1 -0
  92. package/dist/observed-steering.d.ts +93 -0
  93. package/dist/observed-steering.d.ts.map +1 -0
  94. package/dist/observed-steering.js +247 -0
  95. package/dist/observed-steering.js.map +1 -0
  96. package/dist/opencode-steering.d.ts +36 -0
  97. package/dist/opencode-steering.d.ts.map +1 -0
  98. package/dist/opencode-steering.js +84 -0
  99. package/dist/opencode-steering.js.map +1 -0
  100. package/dist/output-parser.d.ts.map +1 -1
  101. package/dist/output-parser.js +48 -10
  102. package/dist/output-parser.js.map +1 -1
  103. package/dist/passive-observer.d.ts +6 -0
  104. package/dist/passive-observer.d.ts.map +1 -1
  105. package/dist/passive-observer.js +31 -1
  106. package/dist/passive-observer.js.map +1 -1
  107. package/dist/permission-resolver.d.ts +13 -5
  108. package/dist/permission-resolver.d.ts.map +1 -1
  109. package/dist/permission-resolver.js +18 -9
  110. package/dist/permission-resolver.js.map +1 -1
  111. package/dist/pixoo/micro-glyphs.d.ts +10 -41
  112. package/dist/pixoo/micro-glyphs.d.ts.map +1 -1
  113. package/dist/pixoo/micro-glyphs.js +130 -263
  114. package/dist/pixoo/micro-glyphs.js.map +1 -1
  115. package/dist/pixoo/official-dot-glyphs.generated.d.ts +8 -0
  116. package/dist/pixoo/official-dot-glyphs.generated.d.ts.map +1 -0
  117. package/dist/pixoo/official-dot-glyphs.generated.js +247 -0
  118. package/dist/pixoo/official-dot-glyphs.generated.js.map +1 -0
  119. package/dist/pixoo/pixoo-bridge.d.ts +14 -6
  120. package/dist/pixoo/pixoo-bridge.d.ts.map +1 -1
  121. package/dist/pixoo/pixoo-bridge.js +63 -39
  122. package/dist/pixoo/pixoo-bridge.js.map +1 -1
  123. package/dist/pixoo/pixoo-renderer.d.ts +21 -2
  124. package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
  125. package/dist/pixoo/pixoo-renderer.js +401 -132
  126. package/dist/pixoo/pixoo-renderer.js.map +1 -1
  127. package/dist/pixoo/pixoo-sprites.d.ts +24 -0
  128. package/dist/pixoo/pixoo-sprites.d.ts.map +1 -1
  129. package/dist/pixoo/pixoo-sprites.js +108 -0
  130. package/dist/pixoo/pixoo-sprites.js.map +1 -1
  131. package/dist/review-runner.d.ts +113 -0
  132. package/dist/review-runner.d.ts.map +1 -0
  133. package/dist/review-runner.js +428 -0
  134. package/dist/review-runner.js.map +1 -0
  135. package/dist/session-aggregator.d.ts +8 -0
  136. package/dist/session-aggregator.d.ts.map +1 -1
  137. package/dist/session-aggregator.js.map +1 -1
  138. package/dist/session-focus-relay.d.ts.map +1 -1
  139. package/dist/session-focus-relay.js +7 -1
  140. package/dist/session-focus-relay.js.map +1 -1
  141. package/dist/session-registry.d.ts +3 -0
  142. package/dist/session-registry.d.ts.map +1 -1
  143. package/dist/session-registry.js +3 -0
  144. package/dist/session-registry.js.map +1 -1
  145. package/dist/timeline-store.d.ts +49 -0
  146. package/dist/timeline-store.d.ts.map +1 -1
  147. package/dist/timeline-store.js +175 -7
  148. package/dist/timeline-store.js.map +1 -1
  149. package/dist/trmnl/byos-server.d.ts +39 -0
  150. package/dist/trmnl/byos-server.d.ts.map +1 -0
  151. package/dist/trmnl/byos-server.js +301 -0
  152. package/dist/trmnl/byos-server.js.map +1 -0
  153. package/dist/trmnl/frame-cache.d.ts +37 -0
  154. package/dist/trmnl/frame-cache.d.ts.map +1 -0
  155. package/dist/trmnl/frame-cache.js +157 -0
  156. package/dist/trmnl/frame-cache.js.map +1 -0
  157. package/dist/trmnl/image-renderer.d.ts +27 -0
  158. package/dist/trmnl/image-renderer.d.ts.map +1 -0
  159. package/dist/trmnl/image-renderer.js +235 -0
  160. package/dist/trmnl/image-renderer.js.map +1 -0
  161. package/dist/trmnl/trmnl-settings.d.ts +96 -0
  162. package/dist/trmnl/trmnl-settings.d.ts.map +1 -0
  163. package/dist/trmnl/trmnl-settings.js +177 -0
  164. package/dist/trmnl/trmnl-settings.js.map +1 -0
  165. package/dist/trmnl/trmnl-telemetry.d.ts +47 -0
  166. package/dist/trmnl/trmnl-telemetry.d.ts.map +1 -0
  167. package/dist/trmnl/trmnl-telemetry.js +56 -0
  168. package/dist/trmnl/trmnl-telemetry.js.map +1 -0
  169. package/dist/tui/dashboard.d.ts.map +1 -1
  170. package/dist/tui/dashboard.js +14 -4
  171. package/dist/tui/dashboard.js.map +1 -1
  172. package/dist/tui/renderer.d.ts.map +1 -1
  173. package/dist/tui/renderer.js +63 -13
  174. package/dist/tui/renderer.js.map +1 -1
  175. package/dist/tui/terrarium.d.ts.map +1 -1
  176. package/dist/tui/terrarium.js +7 -2
  177. package/dist/tui/terrarium.js.map +1 -1
  178. package/dist/usage-event.d.ts.map +1 -1
  179. package/dist/usage-event.js +43 -2
  180. package/dist/usage-event.js.map +1 -1
  181. package/dist/version-check.d.ts.map +1 -1
  182. package/dist/version-check.js +1 -17
  183. package/dist/version-check.js.map +1 -1
  184. package/dist/ws-server.d.ts +0 -7
  185. package/dist/ws-server.d.ts.map +1 -1
  186. package/dist/ws-server.js +5 -20
  187. package/dist/ws-server.js.map +1 -1
  188. package/package.json +4 -4
@@ -0,0 +1,24 @@
1
+ /**
2
+ * D200H Image Renderer — Renders AgentDeck state as 196×196 PNG key icons
3
+ * using the shared SVG renderers (same visual output as Stream Deck plugin).
4
+ *
5
+ * Pipeline: state → shared SVG generators (144×144) → resvg rasterize (196×196 PNG) → ZIP
6
+ *
7
+ * Falls back to solid-color PNGs if resvg-js is not available.
8
+ */
9
+ import { parseState, buildButtonCommandMap } from '@agentdeck/shared';
10
+ export { parseState, buildButtonCommandMap };
11
+ export type { DashState, ButtonCommand, KeySlot } from '@agentdeck/shared';
12
+ /** Initialize the renderer (call once at module start). */
13
+ export declare function initRenderer(): Promise<void>;
14
+ export declare function isResvgLoaded(): boolean;
15
+ /**
16
+ * Render the full AgentDeck dashboard as a ZIP ready for SET_BUTTONS.
17
+ * Uses shared SVG renderers → resvg rasterization for SD+-quality output.
18
+ */
19
+ export declare function renderDashboardZip(stateEvt: any): Buffer;
20
+ /**
21
+ * Create a simple hash of the visual state for change detection.
22
+ */
23
+ export declare function stateHash(stateEvt: any): string;
24
+ //# sourceMappingURL=image-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-renderer.d.ts","sourceRoot":"","sources":["../../src/d200h/image-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EAEL,UAAU,EACV,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA2D3E,2DAA2D;AAC3D,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAElD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AA+LD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAmExD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAI/C"}
@@ -0,0 +1,321 @@
1
+ /**
2
+ * D200H Image Renderer — Renders AgentDeck state as 196×196 PNG key icons
3
+ * using the shared SVG renderers (same visual output as Stream Deck plugin).
4
+ *
5
+ * Pipeline: state → shared SVG generators (144×144) → resvg rasterize (196×196 PNG) → ZIP
6
+ *
7
+ * Falls back to solid-color PNGs if resvg-js is not available.
8
+ */
9
+ import { deflateSync } from 'zlib';
10
+ import { fileURLToPath } from 'node:url';
11
+ import { dirname, join } from 'node:path';
12
+ import { existsSync } from 'node:fs';
13
+ // Layout/command engine is shared with the Ulanzi Studio plugin (single source
14
+ // of truth for the reflowing 5×3 grid). Rasterization + ZIP packing stay here.
15
+ import { computeLayout, parseState, buildButtonCommandMap, renderUsageWideSlot, } from '@agentdeck/shared';
16
+ import { debug } from '../logger.js';
17
+ // Re-export the engine bits the D200H module + tests import from here.
18
+ export { parseState, buildButtonCommandMap };
19
+ import { validateZipBoundaries } from './hid-protocol.js';
20
+ const TAG = 'd200h-render';
21
+ const ICON_SIZE = 196;
22
+ // --- Font supply for resvg ---
23
+ // resvg drops every <text> element unless it has a font to shape glyphs with.
24
+ // We load a small set of bundled OFL fonts explicitly via `fontFiles` (NOT
25
+ // `loadSystemFonts`, which re-scans the whole OS font tree on every `new Resvg()`
26
+ // — i.e. 14× per frame — and is the reason the original code set it to `false`).
27
+ // `defaultFontFamily` makes unresolved families in the shared SVG renderers
28
+ // (e.g. `Inter`, `Arial`, `monospace`) fall back to a design-system face
29
+ // instead of rendering nothing. Computed once at module load.
30
+ const FONT_OPTS = (() => {
31
+ try {
32
+ // bridge/{src,dist}/d200h/image-renderer.{ts,js} → bridge/assets/fonts
33
+ const here = dirname(fileURLToPath(import.meta.url));
34
+ const fontsDir = join(here, '..', '..', 'assets', 'fonts');
35
+ const files = [
36
+ 'IBMPlexSans-Regular.ttf',
37
+ 'IBMPlexSans-Bold.ttf',
38
+ 'JetBrainsMono-Regular.ttf',
39
+ 'JetBrainsMono-Bold.ttf',
40
+ ]
41
+ .map((n) => join(fontsDir, n))
42
+ .filter((p) => existsSync(p));
43
+ if (files.length > 0) {
44
+ return { fontFiles: files, loadSystemFonts: false, defaultFontFamily: 'IBM Plex Sans' };
45
+ }
46
+ debug(TAG, `bundled fonts not found under ${fontsDir} — falling back to system fonts`);
47
+ }
48
+ catch (err) {
49
+ debug(TAG, `font path resolution failed (${err}) — falling back to system fonts`);
50
+ }
51
+ // Defense-in-depth: if bundled fonts are missing, still render text via the OS.
52
+ return { loadSystemFonts: true, defaultFontFamily: 'Helvetica Neue' };
53
+ })();
54
+ let Resvg = null;
55
+ let resvgLoaded = false;
56
+ async function loadResvg() {
57
+ if (resvgLoaded)
58
+ return Resvg;
59
+ resvgLoaded = true;
60
+ try {
61
+ const mod = await import('@resvg/resvg-js');
62
+ Resvg = mod.Resvg ?? mod.default?.Resvg;
63
+ debug(TAG, 'resvg-js loaded — SVG rendering enabled');
64
+ return Resvg;
65
+ }
66
+ catch {
67
+ debug(TAG, 'resvg-js not available — falling back to solid-color PNGs');
68
+ return null;
69
+ }
70
+ }
71
+ /** Initialize the renderer (call once at module start). */
72
+ export async function initRenderer() {
73
+ await loadResvg();
74
+ }
75
+ export function isResvgLoaded() {
76
+ return Resvg !== null;
77
+ }
78
+ // --- SVG → 196×196 PNG rasterization ---
79
+ function svgToPng(svg144) {
80
+ if (!Resvg)
81
+ return fallbackSolidPng(20, 20, 25); // dark fallback
82
+ // Wrap 144×144 SVG content into 196×196 viewport with auto-scaling
83
+ const inner = svg144.replace(/<\/?svg[^>]*>/g, '');
84
+ const wrapped = `<svg xmlns="http://www.w3.org/2000/svg" width="${ICON_SIZE}" height="${ICON_SIZE}" viewBox="0 0 144 144">${inner}</svg>`;
85
+ try {
86
+ const resvg = new Resvg(wrapped, {
87
+ fitTo: { mode: 'width', value: ICON_SIZE },
88
+ font: FONT_OPTS,
89
+ });
90
+ return Buffer.from(resvg.render().asPng());
91
+ }
92
+ catch (err) {
93
+ debug(TAG, `SVG rasterization failed: ${err}`);
94
+ return fallbackSolidPng(20, 20, 25);
95
+ }
96
+ }
97
+ /** Rasterize custom-sized SVG (e.g. 288×144 → 392×196 for merged slot). */
98
+ function svgToPngWide(svg, width, height) {
99
+ if (!Resvg)
100
+ return fallbackSolidPng(20, 20, 25);
101
+ try {
102
+ const resvg = new Resvg(svg, {
103
+ fitTo: { mode: 'width', value: width },
104
+ font: FONT_OPTS,
105
+ });
106
+ return Buffer.from(resvg.render().asPng());
107
+ }
108
+ catch (err) {
109
+ debug(TAG, `Wide SVG rasterization failed: ${err}`);
110
+ return fallbackSolidPng(20, 20, 25);
111
+ }
112
+ }
113
+ // --- ZIP creation (reused from original, with boundary validation) ---
114
+ function crc32(buf) {
115
+ let crc = 0xffffffff;
116
+ for (let i = 0; i < buf.length; i++) {
117
+ crc = crcTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8);
118
+ }
119
+ return (crc ^ 0xffffffff) >>> 0;
120
+ }
121
+ const crcTable = new Uint32Array(256);
122
+ for (let n = 0; n < 256; n++) {
123
+ let c = n;
124
+ for (let k = 0; k < 8; k++) {
125
+ c = (c & 1) ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1);
126
+ }
127
+ crcTable[n] = c;
128
+ }
129
+ function normalizeExtraLength(length) {
130
+ if (length <= 0)
131
+ return 0;
132
+ return Math.max(4, length);
133
+ }
134
+ function makeZipExtraField(length) {
135
+ const normalized = normalizeExtraLength(length);
136
+ if (normalized === 0)
137
+ return Buffer.alloc(0);
138
+ const extra = Buffer.alloc(normalized, 0x41);
139
+ extra.writeUInt16LE(0x4141, 0);
140
+ extra.writeUInt16LE(Math.max(0, normalized - 4), 2);
141
+ return extra;
142
+ }
143
+ function firstInvalidZipBoundaryOffset(zipData) {
144
+ for (let i = 1016; i < zipData.length; i += 1024) {
145
+ if (zipData[i] === 0x00 || zipData[i] === 0x7c)
146
+ return i;
147
+ }
148
+ return null;
149
+ }
150
+ function createZipInMemory(files, extraLengths = []) {
151
+ const centralDir = [];
152
+ const localParts = [];
153
+ const layouts = [];
154
+ let offset = 0;
155
+ let index = 0;
156
+ for (const [name, data] of files) {
157
+ const nameBytes = Buffer.from(name, 'utf-8');
158
+ const crc = crc32(data);
159
+ const extraLen = normalizeExtraLength(extraLengths[index] ?? 0);
160
+ const extra = makeZipExtraField(extraLen);
161
+ const localExtraOffset = offset + 30 + nameBytes.length;
162
+ const local = Buffer.alloc(30 + nameBytes.length + extra.length);
163
+ local.writeUInt32LE(0x04034b50, 0);
164
+ local.writeUInt16LE(20, 4);
165
+ local.writeUInt16LE(0, 6);
166
+ local.writeUInt16LE(0, 8);
167
+ local.writeUInt16LE(0, 10);
168
+ local.writeUInt16LE(0, 12);
169
+ local.writeUInt32LE(crc, 14);
170
+ local.writeUInt32LE(data.length, 18);
171
+ local.writeUInt32LE(data.length, 22);
172
+ local.writeUInt16LE(nameBytes.length, 26);
173
+ local.writeUInt16LE(extra.length, 28);
174
+ nameBytes.copy(local, 30);
175
+ extra.copy(local, 30 + nameBytes.length);
176
+ const central = Buffer.alloc(46 + nameBytes.length + extra.length);
177
+ central.writeUInt32LE(0x02014b50, 0);
178
+ central.writeUInt16LE(20, 4);
179
+ central.writeUInt16LE(20, 6);
180
+ central.writeUInt16LE(0, 8);
181
+ central.writeUInt16LE(0, 10);
182
+ central.writeUInt16LE(0, 12);
183
+ central.writeUInt16LE(0, 14);
184
+ central.writeUInt32LE(crc, 16);
185
+ central.writeUInt32LE(data.length, 20);
186
+ central.writeUInt32LE(data.length, 24);
187
+ central.writeUInt16LE(nameBytes.length, 28);
188
+ central.writeUInt16LE(extra.length, 30);
189
+ central.writeUInt16LE(0, 32);
190
+ central.writeUInt16LE(0, 34);
191
+ central.writeUInt16LE(0, 36);
192
+ central.writeUInt32LE(0, 38);
193
+ central.writeUInt32LE(offset, 42);
194
+ nameBytes.copy(central, 46);
195
+ extra.copy(central, 46 + nameBytes.length);
196
+ localParts.push(local, data);
197
+ centralDir.push(central);
198
+ layouts.push({ extraInsertOffset: localExtraOffset });
199
+ offset += local.length + data.length;
200
+ index += 1;
201
+ }
202
+ const centralDirData = Buffer.concat(centralDir);
203
+ const eocd = Buffer.alloc(22);
204
+ eocd.writeUInt32LE(0x06054b50, 0);
205
+ eocd.writeUInt16LE(0, 4);
206
+ eocd.writeUInt16LE(0, 6);
207
+ eocd.writeUInt16LE(files.size, 8);
208
+ eocd.writeUInt16LE(files.size, 10);
209
+ eocd.writeUInt32LE(centralDirData.length, 12);
210
+ eocd.writeUInt32LE(offset, 16);
211
+ eocd.writeUInt16LE(0, 20);
212
+ return { zip: Buffer.concat([...localParts, centralDirData, eocd]), layouts };
213
+ }
214
+ // --- Fallback solid-color PNG (when resvg-js unavailable) ---
215
+ function fallbackSolidPng(r, g, b) {
216
+ const w = ICON_SIZE, h = ICON_SIZE;
217
+ const ihdr = Buffer.alloc(13);
218
+ ihdr.writeUInt32BE(w, 0);
219
+ ihdr.writeUInt32BE(h, 4);
220
+ ihdr[8] = 8;
221
+ ihdr[9] = 2; // 8-bit RGB
222
+ const rowLen = 1 + w * 3;
223
+ const raw = Buffer.alloc(rowLen * h);
224
+ for (let y = 0; y < h; y++) {
225
+ const off = y * rowLen;
226
+ raw[off] = 0;
227
+ for (let x = 0; x < w; x++) {
228
+ const px = off + 1 + x * 3;
229
+ raw[px] = r;
230
+ raw[px + 1] = g;
231
+ raw[px + 2] = b;
232
+ }
233
+ }
234
+ const compressed = deflateSync(raw);
235
+ const sig = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]);
236
+ function pngChunk(type, data) {
237
+ const typeBytes = Buffer.from(type, 'ascii');
238
+ const len = Buffer.alloc(4);
239
+ len.writeUInt32BE(data.length, 0);
240
+ const crcData = Buffer.concat([typeBytes, data]);
241
+ const crc = Buffer.alloc(4);
242
+ crc.writeUInt32BE(crc32(crcData), 0);
243
+ return Buffer.concat([len, typeBytes, data, crc]);
244
+ }
245
+ return Buffer.concat([sig, pngChunk('IHDR', ihdr), pngChunk('IDAT', compressed), pngChunk('IEND', Buffer.alloc(0))]);
246
+ }
247
+ // --- Public API ---
248
+ /**
249
+ * Render the full AgentDeck dashboard as a ZIP ready for SET_BUTTONS.
250
+ * Uses shared SVG renderers → resvg rasterization for SD+-quality output.
251
+ */
252
+ export function renderDashboardZip(stateEvt) {
253
+ const state = parseState(stateEvt);
254
+ const layout = computeLayout(state);
255
+ const manifest = {};
256
+ const files = new Map();
257
+ for (let i = 0; i < layout.length; i++) {
258
+ const slot = layout[i];
259
+ const iconPath = `icons/btn${i}.png`;
260
+ const colRow = `${slot.col}_${slot.row}`;
261
+ const png = svgToPng(slot.svg);
262
+ files.set(iconPath, png);
263
+ manifest[colRow] = {
264
+ State: 0,
265
+ ViewParam: [{ Text: slot.label, Icon: iconPath }],
266
+ };
267
+ }
268
+ // Merged hardware slot (3_2) — 392×196 PNG with StreamDeck-style usage display
269
+ // No Action = device firmware clock overlay suppressed (solves clock overlap)
270
+ const wideUsageSvg = renderUsageWideSlot(state.fiveHourPercent, state.sevenDayPercent, state.usageKnown !== false);
271
+ const wideUsagePng = svgToPngWide(wideUsageSvg, 392, 196);
272
+ files.set('icons/usage-wide.png', wideUsagePng);
273
+ manifest['3_2'] = {
274
+ State: 0,
275
+ ViewParam: [{ Icon: 'icons/usage-wide.png', Text: '' }],
276
+ };
277
+ files.set('manifest.json', Buffer.from(JSON.stringify(manifest), 'utf-8'));
278
+ // Build ZIP with boundary validation
279
+ const orderedEntries = [...files.entries()];
280
+ const extraLengths = new Array(orderedEntries.length).fill(0);
281
+ for (let attempt = 0; attempt < 256; attempt++) {
282
+ const artifact = createZipInMemory(new Map(orderedEntries), extraLengths);
283
+ const invalidOffset = firstInvalidZipBoundaryOffset(artifact.zip);
284
+ if (invalidOffset == null)
285
+ return artifact.zip;
286
+ let targetIndex = -1;
287
+ for (let i = artifact.layouts.length - 1; i >= 0; i--) {
288
+ if (artifact.layouts[i].extraInsertOffset <= invalidOffset) {
289
+ targetIndex = i;
290
+ break;
291
+ }
292
+ }
293
+ if (targetIndex < 0)
294
+ return artifact.zip;
295
+ const currentExtra = extraLengths[targetIndex];
296
+ const extraInsertOffset = artifact.layouts[targetIndex].extraInsertOffset;
297
+ let shift = 1;
298
+ while (shift <= 512) {
299
+ if (invalidOffset < extraInsertOffset + currentExtra + shift)
300
+ break;
301
+ const candidate = artifact.zip[invalidOffset - shift];
302
+ if (candidate !== 0x00 && candidate !== 0x7c)
303
+ break;
304
+ shift += 1;
305
+ }
306
+ extraLengths[targetIndex] = normalizeExtraLength(extraLengths[targetIndex] + shift);
307
+ debug(TAG, `ZIP boundary invalid at ${invalidOffset}, shifting entry ${targetIndex} by ${shift} byte(s)`);
308
+ }
309
+ const fallback = createZipInMemory(new Map(orderedEntries), extraLengths).zip;
310
+ debug(TAG, `WARNING: ZIP boundary validation failed after search; stillValid=${validateZipBoundaries(fallback)}`);
311
+ return fallback;
312
+ }
313
+ /**
314
+ * Create a simple hash of the visual state for change detection.
315
+ */
316
+ export function stateHash(stateEvt) {
317
+ const s = parseState(stateEvt);
318
+ const sessIds = s.allSessions.map(sess => sess.id).join(',');
319
+ return `${s.state}|${s.mode}|${s.projectName}|${s.modelName}|${s.fiveHourPercent}|${s.sevenDayPercent}|${s.totalTokens}|${s.totalCost}|${s.options.map(o => o.label).join(',')}|${s.currentTool}|${sessIds}`;
320
+ }
321
+ //# sourceMappingURL=image-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-renderer.js","sourceRoot":"","sources":["../../src/d200h/image-renderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-server.d.ts","sourceRoot":"","sources":["../src/daemon-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAA8B,MAAM,kBAAkB,CAAC;AA4I1E;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC5C,YAAY,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAClD,OAAO,CAST;AAkBD,iBAAS,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CA4B1E;AAYD,iBAAS,yBAAyB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAStD;AAED,iBAAS,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAsBlE;AA6ED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKzH;AACD,gBAAgB;AAChB,wBAAgB,wBAAwB,IAAI,IAAI,CAS/C;AACD,gBAAgB;AAChB,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF,iBAAe,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8F3H;AAoID;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/F,KAAK,EAAE,CAAC,GACP,CAAC,CAMH;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAA;CAAE,CAU3F;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiHD,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA03DpE"}
1
+ {"version":3,"file":"daemon-server.d.ts","sourceRoot":"","sources":["../src/daemon-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAA8B,MAAM,kBAAkB,CAAC;AAiK1E;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC5C,YAAY,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAClD,OAAO,CAST;AAkBD,iBAAS,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CA4B1E;AAYD,iBAAS,yBAAyB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAStD;AAED,iBAAS,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAsBlE;AA6ED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKzH;AACD,gBAAgB;AAChB,wBAAgB,wBAAwB,IAAI,IAAI,CAS/C;AACD,gBAAgB;AAChB,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF,iBAAe,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8F3H;AAoID;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/F,KAAK,EAAE,CAAC,GACP,CAAC,CAMH;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAA;CAAE,CAU3F;AAID,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiHD,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqsEpE"}