@agentdeck/bridge 1.0.15 → 1.0.18
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.
- package/dist/auth.d.ts +30 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +162 -29
- package/dist/auth.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +99 -0
- package/dist/cli.js.map +1 -1
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +190 -27
- package/dist/daemon-server.js.map +1 -1
- package/dist/daemon.js +1 -1
- package/dist/esp32-serial.d.ts +23 -1
- package/dist/esp32-serial.d.ts.map +1 -1
- package/dist/esp32-serial.js +50 -1
- package/dist/esp32-serial.js.map +1 -1
- package/dist/http-auth-gate.d.ts +22 -5
- package/dist/http-auth-gate.d.ts.map +1 -1
- package/dist/http-auth-gate.js +14 -2
- package/dist/http-auth-gate.js.map +1 -1
- package/dist/pairing-window.d.ts +95 -0
- package/dist/pairing-window.d.ts.map +1 -0
- package/dist/pairing-window.js +268 -0
- package/dist/pairing-window.js.map +1 -0
- package/dist/passive-observer.d.ts +1 -0
- package/dist/passive-observer.d.ts.map +1 -1
- package/dist/passive-observer.js +13 -4
- package/dist/passive-observer.js.map +1 -1
- package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
- package/dist/pixoo/pixoo-renderer.js +17 -9
- package/dist/pixoo/pixoo-renderer.js.map +1 -1
- package/dist/pty-manager.d.ts.map +1 -1
- package/dist/pty-manager.js +7 -1
- package/dist/pty-manager.js.map +1 -1
- package/dist/session-registry.d.ts +1 -0
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/usage-event.d.ts.map +1 -1
- package/dist/usage-event.js +23 -4
- package/dist/usage-event.js.map +1 -1
- package/dist/ws-server.d.ts +36 -0
- package/dist/ws-server.d.ts.map +1 -1
- package/dist/ws-server.js +105 -2
- package/dist/ws-server.js.map +1 -1
- package/package.json +3 -3
- package/dist/d200h/hid-protocol.d.ts +0 -62
- package/dist/d200h/hid-protocol.d.ts.map +0 -1
- package/dist/d200h/hid-protocol.js +0 -124
- package/dist/d200h/hid-protocol.js.map +0 -1
- package/dist/d200h/image-renderer.d.ts +0 -24
- package/dist/d200h/image-renderer.d.ts.map +0 -1
- package/dist/d200h/image-renderer.js +0 -321
- package/dist/d200h/image-renderer.js.map +0 -1
- package/dist/hook-migration.d.ts +0 -2
- package/dist/hook-migration.d.ts.map +0 -1
- package/dist/hook-migration.js +0 -116
- package/dist/hook-migration.js.map +0 -1
- package/dist/modules/d200h-module.d.ts +0 -65
- package/dist/modules/d200h-module.d.ts.map +0 -1
- package/dist/modules/d200h-module.js +0 -495
- package/dist/modules/d200h-module.js.map +0 -1
- package/dist/modules/d200h-renderer.d.ts +0 -7
- package/dist/modules/d200h-renderer.d.ts.map +0 -1
- package/dist/modules/d200h-renderer.js +0 -321
- package/dist/modules/d200h-renderer.js.map +0 -1
- package/dist/modules/trmnl-module.d.ts +0 -38
- package/dist/modules/trmnl-module.d.ts.map +0 -1
- package/dist/modules/trmnl-module.js +0 -111
- package/dist/modules/trmnl-module.js.map +0 -1
- package/dist/trmnl/byos-server.d.ts +0 -39
- package/dist/trmnl/byos-server.d.ts.map +0 -1
- package/dist/trmnl/byos-server.js +0 -301
- package/dist/trmnl/byos-server.js.map +0 -1
- package/dist/trmnl/frame-cache.d.ts +0 -37
- package/dist/trmnl/frame-cache.d.ts.map +0 -1
- package/dist/trmnl/frame-cache.js +0 -157
- package/dist/trmnl/frame-cache.js.map +0 -1
- package/dist/trmnl/image-renderer.d.ts +0 -27
- package/dist/trmnl/image-renderer.d.ts.map +0 -1
- package/dist/trmnl/image-renderer.js +0 -235
- package/dist/trmnl/image-renderer.js.map +0 -1
- package/dist/trmnl/trmnl-settings.d.ts +0 -96
- package/dist/trmnl/trmnl-settings.d.ts.map +0 -1
- package/dist/trmnl/trmnl-settings.js +0 -177
- package/dist/trmnl/trmnl-settings.js.map +0 -1
- package/dist/trmnl/trmnl-telemetry.d.ts +0 -47
- package/dist/trmnl/trmnl-telemetry.d.ts.map +0 -1
- package/dist/trmnl/trmnl-telemetry.js +0 -56
- package/dist/trmnl/trmnl-telemetry.js.map +0 -1
- package/dist/whisper-server-manager.d.ts +0 -19
- package/dist/whisper-server-manager.d.ts.map +0 -1
- package/dist/whisper-server-manager.js +0 -171
- package/dist/whisper-server-manager.js.map +0 -1
package/dist/ws-server.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { WebSocketServer, WebSocket } from 'ws';
|
|
2
2
|
import { isLocalConnection, validateToken } from './auth.js';
|
|
3
|
-
import {
|
|
3
|
+
import { mayAdoptEsp32, noteEsp32Adopted } from './pairing-window.js';
|
|
4
|
+
import { debug, log } from './logger.js';
|
|
4
5
|
import { WS_PING_INTERVAL_MS } from '@agentdeck/shared';
|
|
5
6
|
export class WsServer {
|
|
6
7
|
wss;
|
|
@@ -12,6 +13,13 @@ export class WsServer {
|
|
|
12
13
|
onDisconnectCallback = null;
|
|
13
14
|
clientAlive = new Map();
|
|
14
15
|
esp32Clients = new Set();
|
|
16
|
+
// Unauthorized closes used to be debug-only, which made a fleet-wide
|
|
17
|
+
// credential mismatch invisible: every board reconnected every few seconds,
|
|
18
|
+
// got closed 4001, and the daemon log stayed empty — the diagnosis needed
|
|
19
|
+
// `netstat`. Report it at normal level, throttled per IP so a flapping board
|
|
20
|
+
// describes the problem instead of becoming one.
|
|
21
|
+
unauthorizedByIp = new Map();
|
|
22
|
+
static UNAUTHORIZED_LOG_INTERVAL_MS = 60_000;
|
|
15
23
|
// Per-IP connect timestamps for the flap guard (window: 30s, threshold: >6).
|
|
16
24
|
recentConnectsByIp = new Map();
|
|
17
25
|
flappingClients = new Set();
|
|
@@ -22,6 +30,13 @@ export class WsServer {
|
|
|
22
30
|
// connect board-class from byte one, so the ≤4096B invariant holds and a
|
|
23
31
|
// heap-tight board can't be killed by its own welcome payload.
|
|
24
32
|
knownBoardIps = new Set();
|
|
33
|
+
/**
|
|
34
|
+
* Supplies the credential for a cable-free ESP32 re-arm, or null when this
|
|
35
|
+
* server must not hand one out. Injected rather than imported so the WS layer
|
|
36
|
+
* never reaches for a token itself — a session bridge shares this class and
|
|
37
|
+
* has no business provisioning boards.
|
|
38
|
+
*/
|
|
39
|
+
esp32AdoptionProvider = null;
|
|
25
40
|
socketRemoteIp = new Map();
|
|
26
41
|
eventTransformer = null;
|
|
27
42
|
// Clients that registered as the Ulanzi Studio plugin. Their WebSocket
|
|
@@ -66,7 +81,45 @@ export class WsServer {
|
|
|
66
81
|
const url = new URL(req.url || '/', `http://${req.headers.host || 'localhost'}`);
|
|
67
82
|
const token = url.searchParams.get('token') || '';
|
|
68
83
|
if (!validateToken(token)) {
|
|
69
|
-
|
|
84
|
+
// Whatever the peer called itself, bounded and sanitized: it is a
|
|
85
|
+
// string from an unauthenticated peer heading for a terminal.
|
|
86
|
+
const claimed = url.searchParams.get('clientType')
|
|
87
|
+
?? (url.searchParams.get('esp32') === '1' ? 'esp32' : null);
|
|
88
|
+
const peerKind = claimed?.replace(/[^a-zA-Z0-9._-]/g, '').slice(0, 24)
|
|
89
|
+
|| (this.knownBoardIps.has(remoteIp) ? 'esp32' : undefined);
|
|
90
|
+
// Cable-free re-arm. A board cannot type a pairing code, so the
|
|
91
|
+
// operator names its address instead (`agentdeck pair --adopt <ip>`)
|
|
92
|
+
// and the daemon pushes the credential down the socket the board just
|
|
93
|
+
// opened. `auth_provision` reaches the same firmware handler over the
|
|
94
|
+
// WebSocket as over serial, and that handler persists to NVS — so this
|
|
95
|
+
// survives the board's next reboot, which is the whole point.
|
|
96
|
+
//
|
|
97
|
+
// The socket is still unauthenticated and stays that way: it is never
|
|
98
|
+
// registered as a client, never added to any roster, and receives this
|
|
99
|
+
// one frame and nothing else. The board reconnects holding the token.
|
|
100
|
+
if (peerKind === 'esp32' && this.esp32AdoptionProvider && mayAdoptEsp32(remoteIp)) {
|
|
101
|
+
const payload = this.esp32AdoptionProvider();
|
|
102
|
+
if (payload) {
|
|
103
|
+
const board = url.searchParams.get('board')?.replace(/[^a-zA-Z0-9._-]/g, '').slice(0, 24);
|
|
104
|
+
try {
|
|
105
|
+
ws.send(JSON.stringify({ type: 'auth_provision', ...payload }));
|
|
106
|
+
}
|
|
107
|
+
catch { /* peer vanished mid-handshake */ }
|
|
108
|
+
noteEsp32Adopted(remoteIp, board || undefined);
|
|
109
|
+
// Normal close, not 4001: the board should redial immediately with
|
|
110
|
+
// its new credential, not treat this endpoint as one that refused
|
|
111
|
+
// it. Delayed so the frame flushes first.
|
|
112
|
+
const bye = setTimeout(() => {
|
|
113
|
+
try {
|
|
114
|
+
ws.close(1000, 'Re-armed — reconnect with the new token');
|
|
115
|
+
}
|
|
116
|
+
catch { /* gone */ }
|
|
117
|
+
}, 500);
|
|
118
|
+
bye.unref?.();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
this.logUnauthorized(remoteIp, token.length > 0, peerKind);
|
|
70
123
|
ws.close(4001, 'Unauthorized');
|
|
71
124
|
return;
|
|
72
125
|
}
|
|
@@ -254,6 +307,15 @@ export class WsServer {
|
|
|
254
307
|
}
|
|
255
308
|
}
|
|
256
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Enable cable-free ESP32 re-arming on this server (daemon only).
|
|
312
|
+
*
|
|
313
|
+
* Whether any given board is re-armed is still decided by the operator's
|
|
314
|
+
* window (`mayAdoptEsp32`); this only grants the server the ability at all.
|
|
315
|
+
*/
|
|
316
|
+
setEsp32AdoptionProvider(provider) {
|
|
317
|
+
this.esp32AdoptionProvider = provider;
|
|
318
|
+
}
|
|
257
319
|
onClientConnect(callback) {
|
|
258
320
|
this.onConnectCallback = callback;
|
|
259
321
|
}
|
|
@@ -286,6 +348,47 @@ export class WsServer {
|
|
|
286
348
|
byId.set(info.id, info);
|
|
287
349
|
return [...byId.values()];
|
|
288
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Report a 4001 close once per IP per minute, naming the likely cause. The
|
|
353
|
+
* two cases read very differently to an operator: a peer that presented
|
|
354
|
+
* nothing is usually an unpaired client, while a peer that presented a token
|
|
355
|
+
* we do not accept is a provisioned device whose credential went stale —
|
|
356
|
+
* which USB serial can re-arm and nothing else can.
|
|
357
|
+
*
|
|
358
|
+
* `peerKind` exists because an IP alone is not an identity on a LAN with a
|
|
359
|
+
* DHCP pool and a dozen boards on it. A board hammering the daemon every ~10s
|
|
360
|
+
* for a day was diagnosed by hand — cross-referencing ARP against the WiFi
|
|
361
|
+
* registry, then reading `wifi_provision_ack` IPs out of the log to work out
|
|
362
|
+
* which serial port they came from — and the answer ("it is an ESP32, not a
|
|
363
|
+
* companion app") was in the rejected request's own query string the whole
|
|
364
|
+
* time. The firmware tags itself `?clientType=esp32`; log what it said.
|
|
365
|
+
*/
|
|
366
|
+
logUnauthorized(ip, presentedToken, peerKind) {
|
|
367
|
+
const now = Date.now();
|
|
368
|
+
const prev = this.unauthorizedByIp.get(ip);
|
|
369
|
+
if (prev && now - prev.loggedAt < WsServer.UNAUTHORIZED_LOG_INTERVAL_MS) {
|
|
370
|
+
prev.suppressed++;
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
// Bound the map: it is keyed by LAN peers, but a long-lived daemon on a
|
|
374
|
+
// busy network should not accumulate them forever.
|
|
375
|
+
if (this.unauthorizedByIp.size > 64)
|
|
376
|
+
this.unauthorizedByIp.clear();
|
|
377
|
+
const repeated = prev?.suppressed ? ` — plus ${prev.suppressed} more since the last line` : '';
|
|
378
|
+
this.unauthorizedByIp.set(ip, { loggedAt: now, suppressed: 0 });
|
|
379
|
+
const who = peerKind ? `${ip} (${peerKind})` : ip;
|
|
380
|
+
// The advice differs by peer: an ESP32 has a USB serial channel that works
|
|
381
|
+
// precisely when authentication is what is broken, and a companion app or
|
|
382
|
+
// reader does not — for those, an operator-opened pairing code is the path
|
|
383
|
+
// that needs no camera and no cable.
|
|
384
|
+
const howToFix = peerKind === 'esp32'
|
|
385
|
+
? 'Attach it over USB serial and the daemon re-arms its token automatically.'
|
|
386
|
+
: 'Pair it with "agentdeck pair" (code) or "agentdeck qr".';
|
|
387
|
+
log(presentedToken
|
|
388
|
+
? `[agentdeck] Rejected ${who}: pairing token not accepted${repeated}. `
|
|
389
|
+
+ `A provisioned device looping here needs its token re-armed over USB serial.`
|
|
390
|
+
: `[agentdeck] Rejected ${who}: no pairing token${repeated}. ${howToFix}`);
|
|
391
|
+
}
|
|
289
392
|
close() {
|
|
290
393
|
clearInterval(this.pingTimer);
|
|
291
394
|
this.clientAlive.clear();
|
package/dist/ws-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../src/ws-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../src/ws-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentdeck/bridge",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=22"
|
|
6
6
|
},
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"start": "node dist/cli.js claude"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@agentdeck/hooks": "1.0.
|
|
53
|
-
"@agentdeck/shared": "1.0.
|
|
52
|
+
"@agentdeck/hooks": "1.0.18",
|
|
53
|
+
"@agentdeck/shared": "1.0.18",
|
|
54
54
|
"@anthropic-ai/sdk": "^0.111.0",
|
|
55
55
|
"bonjour-service": "^1.3.0",
|
|
56
56
|
"commander": "^14.0.3",
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* D200H HID Protocol — D200-compatible 1024-byte packet protocol
|
|
3
|
-
*
|
|
4
|
-
* Packet structure:
|
|
5
|
-
* [0-1] Header: 0x7C 0x7C
|
|
6
|
-
* [2-3] Command: big-endian uint16
|
|
7
|
-
* [4-7] Length: little-endian uint32
|
|
8
|
-
* [8-1023] Payload (zero-padded)
|
|
9
|
-
*
|
|
10
|
-
* Image delivery: ZIP(manifest.json + icons/*.png) sent in chunked 1024-byte packets.
|
|
11
|
-
* ZIP quirk: bytes at offset 1016, 2040, 3064... must NOT be 0x00 or 0x7C.
|
|
12
|
-
*/
|
|
13
|
-
export declare const CMD: {
|
|
14
|
-
readonly SET_BUTTONS: 1;
|
|
15
|
-
readonly PARTIAL_UPDATE: 13;
|
|
16
|
-
readonly SET_SMALL_WINDOW: 6;
|
|
17
|
-
readonly SET_BRIGHTNESS: 10;
|
|
18
|
-
readonly SET_LABEL_STYLE: 11;
|
|
19
|
-
readonly IN_BUTTON: 257;
|
|
20
|
-
readonly IN_DEVICE_INFO: 771;
|
|
21
|
-
};
|
|
22
|
-
export declare function buildPacket(command: number, payload: Buffer, totalLength?: number): Buffer;
|
|
23
|
-
/**
|
|
24
|
-
* Build all packets for a ZIP file transfer (SET_BUTTONS or PARTIAL_UPDATE).
|
|
25
|
-
* First packet has the header; subsequent packets are raw 1024-byte chunks.
|
|
26
|
-
*/
|
|
27
|
-
export declare function buildZipPackets(zipData: Buffer, command?: number): Buffer[];
|
|
28
|
-
export declare function buildBrightnessPacket(brightness: number): Buffer;
|
|
29
|
-
export declare function buildSmallWindowPacket(mode: number, cpu: number, mem: number, time: string, gpu: number): Buffer;
|
|
30
|
-
export interface ButtonEvent {
|
|
31
|
-
index: number;
|
|
32
|
-
pressed: boolean;
|
|
33
|
-
state: number;
|
|
34
|
-
}
|
|
35
|
-
export interface DeviceInfo {
|
|
36
|
-
serialNumber: string;
|
|
37
|
-
firmwareVersion: string;
|
|
38
|
-
deviceType: string;
|
|
39
|
-
hardwareVersion: string;
|
|
40
|
-
}
|
|
41
|
-
export type IncomingEvent = {
|
|
42
|
-
type: 'button';
|
|
43
|
-
data: ButtonEvent;
|
|
44
|
-
} | {
|
|
45
|
-
type: 'device_info';
|
|
46
|
-
data: DeviceInfo;
|
|
47
|
-
} | {
|
|
48
|
-
type: 'unknown';
|
|
49
|
-
command: number;
|
|
50
|
-
raw: Buffer;
|
|
51
|
-
};
|
|
52
|
-
export declare function parseIncoming(data: Buffer): IncomingEvent | null;
|
|
53
|
-
/**
|
|
54
|
-
* Check if a ZIP has invalid bytes at 1024-byte chunk boundaries.
|
|
55
|
-
* At offset 1016, 2040, 3064... the byte must not be 0x00 or 0x7C.
|
|
56
|
-
*/
|
|
57
|
-
export declare function validateZipBoundaries(zipData: Buffer): boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Generate a random dummy string to pad the ZIP until boundaries are valid.
|
|
60
|
-
*/
|
|
61
|
-
export declare function generateDummyPadding(attempt: number): string;
|
|
62
|
-
//# sourceMappingURL=hid-protocol.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hid-protocol.d.ts","sourceRoot":"","sources":["../../src/d200h/hid-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,eAAO,MAAM,GAAG;;;;;;;;CAQN,CAAC;AAIX,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAY1F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAwB,GAAG,MAAM,EAAE,CAiB5F;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhH;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAoChE;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* D200H HID Protocol — D200-compatible 1024-byte packet protocol
|
|
3
|
-
*
|
|
4
|
-
* Packet structure:
|
|
5
|
-
* [0-1] Header: 0x7C 0x7C
|
|
6
|
-
* [2-3] Command: big-endian uint16
|
|
7
|
-
* [4-7] Length: little-endian uint32
|
|
8
|
-
* [8-1023] Payload (zero-padded)
|
|
9
|
-
*
|
|
10
|
-
* Image delivery: ZIP(manifest.json + icons/*.png) sent in chunked 1024-byte packets.
|
|
11
|
-
* ZIP quirk: bytes at offset 1016, 2040, 3064... must NOT be 0x00 or 0x7C.
|
|
12
|
-
*/
|
|
13
|
-
import { randomBytes } from 'crypto';
|
|
14
|
-
const TAG = 'd200h-hid';
|
|
15
|
-
const PACKET_SIZE = 1024;
|
|
16
|
-
const HEADER = Buffer.from([0x7c, 0x7c]);
|
|
17
|
-
const INVALID_BOUNDARY_BYTES = [0x00, 0x7c];
|
|
18
|
-
// --- Commands ---
|
|
19
|
-
export const CMD = {
|
|
20
|
-
SET_BUTTONS: 0x0001,
|
|
21
|
-
PARTIAL_UPDATE: 0x000d,
|
|
22
|
-
SET_SMALL_WINDOW: 0x0006,
|
|
23
|
-
SET_BRIGHTNESS: 0x000a,
|
|
24
|
-
SET_LABEL_STYLE: 0x000b,
|
|
25
|
-
IN_BUTTON: 0x0101,
|
|
26
|
-
IN_DEVICE_INFO: 0x0303,
|
|
27
|
-
};
|
|
28
|
-
// --- Packet building ---
|
|
29
|
-
export function buildPacket(command, payload, totalLength) {
|
|
30
|
-
const pkt = Buffer.alloc(PACKET_SIZE, 0);
|
|
31
|
-
// Header
|
|
32
|
-
pkt[0] = 0x7c;
|
|
33
|
-
pkt[1] = 0x7c;
|
|
34
|
-
// Command (big-endian uint16)
|
|
35
|
-
pkt.writeUInt16BE(command, 2);
|
|
36
|
-
// Length (little-endian uint32) — total file size for multi-packet, else payload length
|
|
37
|
-
pkt.writeUInt32LE(totalLength ?? payload.length, 4);
|
|
38
|
-
// Payload
|
|
39
|
-
payload.copy(pkt, 8, 0, Math.min(payload.length, PACKET_SIZE - 8));
|
|
40
|
-
return pkt;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Build all packets for a ZIP file transfer (SET_BUTTONS or PARTIAL_UPDATE).
|
|
44
|
-
* First packet has the header; subsequent packets are raw 1024-byte chunks.
|
|
45
|
-
*/
|
|
46
|
-
export function buildZipPackets(zipData, command = CMD.SET_BUTTONS) {
|
|
47
|
-
const packets = [];
|
|
48
|
-
const fileSize = zipData.length;
|
|
49
|
-
// First packet: header(8) + first chunk
|
|
50
|
-
const firstChunkSize = PACKET_SIZE - 8;
|
|
51
|
-
const firstChunk = zipData.subarray(0, firstChunkSize);
|
|
52
|
-
packets.push(buildPacket(command, firstChunk, fileSize));
|
|
53
|
-
// Remaining chunks (raw, no header)
|
|
54
|
-
for (let offset = firstChunkSize; offset < fileSize; offset += PACKET_SIZE) {
|
|
55
|
-
const chunk = Buffer.alloc(PACKET_SIZE, 0);
|
|
56
|
-
zipData.copy(chunk, 0, offset, Math.min(offset + PACKET_SIZE, fileSize));
|
|
57
|
-
packets.push(chunk);
|
|
58
|
-
}
|
|
59
|
-
return packets;
|
|
60
|
-
}
|
|
61
|
-
export function buildBrightnessPacket(brightness) {
|
|
62
|
-
const val = Math.max(0, Math.min(100, Math.round(brightness)));
|
|
63
|
-
return buildPacket(CMD.SET_BRIGHTNESS, Buffer.from(String(val), 'utf-8'));
|
|
64
|
-
}
|
|
65
|
-
export function buildSmallWindowPacket(mode, cpu, mem, time, gpu) {
|
|
66
|
-
const data = `${mode}|${cpu}|${mem}|${time}|${gpu}`;
|
|
67
|
-
return buildPacket(CMD.SET_SMALL_WINDOW, Buffer.from(data, 'utf-8'));
|
|
68
|
-
}
|
|
69
|
-
export function parseIncoming(data) {
|
|
70
|
-
if (data.length < 8)
|
|
71
|
-
return null;
|
|
72
|
-
if (data[0] !== 0x7c || data[1] !== 0x7c)
|
|
73
|
-
return null;
|
|
74
|
-
const command = data.readUInt16BE(2);
|
|
75
|
-
if (command === CMD.IN_BUTTON && data.length >= 12) {
|
|
76
|
-
return {
|
|
77
|
-
type: 'button',
|
|
78
|
-
data: {
|
|
79
|
-
state: data[8],
|
|
80
|
-
index: data[9],
|
|
81
|
-
pressed: data[11] === 0x01,
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
if (command === CMD.IN_DEVICE_INFO) {
|
|
86
|
-
try {
|
|
87
|
-
const jsonStr = data.subarray(8).toString('ascii').split('\0')[0];
|
|
88
|
-
const info = JSON.parse(jsonStr);
|
|
89
|
-
return {
|
|
90
|
-
type: 'device_info',
|
|
91
|
-
data: {
|
|
92
|
-
serialNumber: info.SerialNumber ?? '',
|
|
93
|
-
firmwareVersion: info.Dversion ?? '',
|
|
94
|
-
deviceType: info.DeviceType ?? '',
|
|
95
|
-
hardwareVersion: info.HardwareVersion ?? '',
|
|
96
|
-
},
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
return { type: 'unknown', command, raw: data };
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return { type: 'unknown', command, raw: data };
|
|
104
|
-
}
|
|
105
|
-
// --- ZIP validation (boundary byte workaround) ---
|
|
106
|
-
/**
|
|
107
|
-
* Check if a ZIP has invalid bytes at 1024-byte chunk boundaries.
|
|
108
|
-
* At offset 1016, 2040, 3064... the byte must not be 0x00 or 0x7C.
|
|
109
|
-
*/
|
|
110
|
-
export function validateZipBoundaries(zipData) {
|
|
111
|
-
for (let i = 1016; i < zipData.length; i += PACKET_SIZE) {
|
|
112
|
-
if (INVALID_BOUNDARY_BYTES.includes(zipData[i])) {
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return true;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Generate a random dummy string to pad the ZIP until boundaries are valid.
|
|
120
|
-
*/
|
|
121
|
-
export function generateDummyPadding(attempt) {
|
|
122
|
-
return 'AgentDeck ' + randomBytes(8 * (attempt + 1)).toString('hex');
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=hid-protocol.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hid-protocol.js","sourceRoot":"","sources":["../../src/d200h/hid-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|