@agentdeck/bridge 1.0.4 → 1.0.5
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/assets/fm-helper/agentdeck-fm-helper +0 -0
- package/dist/adapters/claude-code.d.ts.map +1 -1
- package/dist/adapters/claude-code.js +3 -0
- package/dist/adapters/claude-code.js.map +1 -1
- package/dist/adb-reverse.d.ts.map +1 -1
- package/dist/adb-reverse.js +4 -2
- package/dist/adb-reverse.js.map +1 -1
- package/dist/apme/collector.js +2 -2
- package/dist/apme/collector.js.map +1 -1
- package/dist/apme/outcome.js +2 -2
- package/dist/apme/outcome.js.map +1 -1
- package/dist/apme/runner.js +3 -3
- package/dist/apme/runner.js.map +1 -1
- package/dist/ble-sync-spawn.js +1 -1
- package/dist/ble-sync-spawn.js.map +1 -1
- package/dist/calendar.d.ts +82 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +324 -0
- package/dist/calendar.js.map +1 -0
- package/dist/card-feed.d.ts +63 -5
- package/dist/card-feed.d.ts.map +1 -1
- package/dist/card-feed.js +218 -14
- package/dist/card-feed.js.map +1 -1
- package/dist/card-modules.d.ts +4 -0
- package/dist/card-modules.d.ts.map +1 -1
- package/dist/card-modules.js +5 -3
- package/dist/card-modules.js.map +1 -1
- package/dist/check-deps.js +4 -4
- package/dist/check-deps.js.map +1 -1
- package/dist/cli.d.ts +35 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +269 -9
- package/dist/cli.js.map +1 -1
- package/dist/codex-otel.d.ts +89 -0
- package/dist/codex-otel.d.ts.map +1 -0
- package/dist/codex-otel.js +487 -0
- package/dist/codex-otel.js.map +1 -0
- package/dist/codex-rate-limits.d.ts.map +1 -1
- package/dist/codex-rate-limits.js +15 -3
- package/dist/codex-rate-limits.js.map +1 -1
- package/dist/daemon-server.d.ts +4 -0
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +797 -54
- package/dist/daemon-server.js.map +1 -1
- package/dist/daemon-ws-client.d.ts +108 -24
- package/dist/daemon-ws-client.d.ts.map +1 -1
- package/dist/daemon-ws-client.js +175 -39
- package/dist/daemon-ws-client.js.map +1 -1
- package/dist/daemon.js +1 -1
- package/dist/device-voice-reply.d.ts.map +1 -1
- package/dist/device-voice-reply.js +15 -3
- package/dist/device-voice-reply.js.map +1 -1
- package/dist/device-voice.d.ts +37 -0
- package/dist/device-voice.d.ts.map +1 -1
- package/dist/device-voice.js +130 -1
- package/dist/device-voice.js.map +1 -1
- package/dist/diag-analyzer.d.ts.map +1 -1
- package/dist/diag-analyzer.js +1 -0
- package/dist/diag-analyzer.js.map +1 -1
- package/dist/display-monitor.d.ts.map +1 -1
- package/dist/display-monitor.js +1 -0
- package/dist/display-monitor.js.map +1 -1
- package/dist/esp32-serial.d.ts +4 -0
- package/dist/esp32-serial.d.ts.map +1 -1
- package/dist/esp32-serial.js +6 -3
- package/dist/esp32-serial.js.map +1 -1
- package/dist/foundation-models-helper.d.ts +23 -0
- package/dist/foundation-models-helper.d.ts.map +1 -1
- package/dist/foundation-models-helper.js +32 -0
- package/dist/foundation-models-helper.js.map +1 -1
- package/dist/gateway-probe.js +1 -1
- package/dist/gateway-probe.js.map +1 -1
- package/dist/glance-frame.d.ts +64 -0
- package/dist/glance-frame.d.ts.map +1 -0
- package/dist/glance-frame.js +364 -0
- package/dist/glance-frame.js.map +1 -0
- package/dist/hook-codex-sessions.d.ts +40 -0
- package/dist/hook-codex-sessions.d.ts.map +1 -0
- package/dist/hook-codex-sessions.js +174 -0
- package/dist/hook-codex-sessions.js.map +1 -0
- package/dist/idotmatrix/idotmatrix-discover.d.ts.map +1 -1
- package/dist/idotmatrix/idotmatrix-discover.js +7 -4
- package/dist/idotmatrix/idotmatrix-discover.js.map +1 -1
- package/dist/idotmatrix/idotmatrix-settings.d.ts +15 -0
- package/dist/idotmatrix/idotmatrix-settings.d.ts.map +1 -1
- package/dist/idotmatrix/idotmatrix-settings.js +21 -0
- package/dist/idotmatrix/idotmatrix-settings.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -7
- package/dist/index.js.map +1 -1
- package/dist/linux-service.d.ts +52 -0
- package/dist/linux-service.d.ts.map +1 -0
- package/dist/linux-service.js +206 -0
- package/dist/linux-service.js.map +1 -0
- package/dist/logger.d.ts +6 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +15 -0
- package/dist/logger.js.map +1 -1
- package/dist/mdns-discover.d.ts +19 -0
- package/dist/mdns-discover.d.ts.map +1 -0
- package/dist/mdns-discover.js +109 -0
- package/dist/mdns-discover.js.map +1 -0
- package/dist/model-catalog.d.ts.map +1 -1
- package/dist/model-catalog.js +1 -0
- package/dist/model-catalog.js.map +1 -1
- package/dist/modules/adb-module.js +1 -1
- package/dist/modules/adb-module.js.map +1 -1
- package/dist/output-parser.d.ts +9 -0
- package/dist/output-parser.d.ts.map +1 -1
- package/dist/output-parser.js +67 -16
- package/dist/output-parser.js.map +1 -1
- package/dist/passive-observer.d.ts +57 -8
- package/dist/passive-observer.d.ts.map +1 -1
- package/dist/passive-observer.js +210 -74
- package/dist/passive-observer.js.map +1 -1
- package/dist/pixoo/pixoo-bridge.d.ts.map +1 -1
- package/dist/pixoo/pixoo-bridge.js +47 -6
- package/dist/pixoo/pixoo-bridge.js.map +1 -1
- package/dist/pixoo/pixoo-renderer.d.ts +2 -1
- package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
- package/dist/pixoo/pixoo-renderer.js +137 -8
- package/dist/pixoo/pixoo-renderer.js.map +1 -1
- package/dist/pocket-autonomy.d.ts +78 -0
- package/dist/pocket-autonomy.d.ts.map +1 -0
- package/dist/pocket-autonomy.js +529 -0
- package/dist/pocket-autonomy.js.map +1 -0
- package/dist/pty-manager.d.ts.map +1 -1
- package/dist/pty-manager.js +3 -2
- package/dist/pty-manager.js.map +1 -1
- package/dist/python-ble-runtime.d.ts +2 -0
- package/dist/python-ble-runtime.d.ts.map +1 -1
- package/dist/python-ble-runtime.js +2 -1
- package/dist/python-ble-runtime.js.map +1 -1
- package/dist/remote-sessions.d.ts +64 -0
- package/dist/remote-sessions.d.ts.map +1 -0
- package/dist/remote-sessions.js +81 -0
- package/dist/remote-sessions.js.map +1 -0
- package/dist/review-runner.js +2 -2
- package/dist/review-runner.js.map +1 -1
- package/dist/session-aggregator.d.ts +2 -0
- package/dist/session-aggregator.d.ts.map +1 -1
- package/dist/session-aggregator.js +6 -1
- package/dist/session-aggregator.js.map +1 -1
- package/dist/session-focus-relay.d.ts +47 -1
- package/dist/session-focus-relay.d.ts.map +1 -1
- package/dist/session-focus-relay.js +130 -15
- package/dist/session-focus-relay.js.map +1 -1
- package/dist/session-push-channel.d.ts +31 -0
- package/dist/session-push-channel.d.ts.map +1 -0
- package/dist/session-push-channel.js +94 -0
- package/dist/session-push-channel.js.map +1 -0
- package/dist/session-registry.d.ts +126 -0
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/session-registry.js +180 -3
- package/dist/session-registry.js.map +1 -1
- package/dist/subagent-timeline.d.ts +34 -0
- package/dist/subagent-timeline.d.ts.map +1 -0
- package/dist/subagent-timeline.js +156 -0
- package/dist/subagent-timeline.js.map +1 -0
- package/dist/timebox/timebox-discover.js +1 -1
- package/dist/timebox/timebox-discover.js.map +1 -1
- package/dist/tui/gauge.d.ts +4 -2
- package/dist/tui/gauge.d.ts.map +1 -1
- package/dist/tui/gauge.js +8 -4
- package/dist/tui/gauge.js.map +1 -1
- package/dist/tui/renderer.d.ts.map +1 -1
- package/dist/tui/renderer.js +28 -0
- package/dist/tui/renderer.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/usage-api.d.ts +43 -0
- package/dist/usage-api.d.ts.map +1 -1
- package/dist/usage-api.js +114 -9
- package/dist/usage-api.js.map +1 -1
- package/dist/usage-event.d.ts +19 -0
- package/dist/usage-event.d.ts.map +1 -1
- package/dist/usage-event.js +35 -0
- package/dist/usage-event.js.map +1 -1
- package/dist/utils/project-name.d.ts.map +1 -1
- package/dist/utils/project-name.js +1 -0
- package/dist/utils/project-name.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +3 -2
- package/dist/version-check.js.map +1 -1
- package/dist/voice-assistant.d.ts.map +1 -1
- package/dist/voice-assistant.js +2 -1
- package/dist/voice-assistant.js.map +1 -1
- package/dist/voice.d.ts.map +1 -1
- package/dist/voice.js +1 -0
- package/dist/voice.js.map +1 -1
- package/dist/weather.d.ts +72 -0
- package/dist/weather.d.ts.map +1 -0
- package/dist/weather.js +206 -0
- package/dist/weather.js.map +1 -0
- package/dist/windows-service.js +5 -5
- package/dist/windows-service.js.map +1 -1
- package/fm-helper/AgentDeckFMHelper.swift +200 -0
- package/package.json +15 -13
- package/src/idotmatrix/identity_generated.py +50 -0
- package/src/idotmatrix/scan.py +33 -13
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* State latency is controlled separately from the motion cadence.
|
|
8
8
|
*/
|
|
9
9
|
import { DISPLAY_FORWARDED_EVENTS } from '@agentdeck/shared/protocol';
|
|
10
|
+
import { deriveSubagentActivity, } from '@agentdeck/shared';
|
|
10
11
|
import { pushFrame, pushFrames, setBrightness, clearText, getDeviceBackoffStatus, switchToCustomChannel, onDeviceStatusChange, stopProbeTimer } from './pixoo-client.js';
|
|
11
12
|
import { renderFrame, renderDisconnectedFrame, formatResetDetailed } from './pixoo-renderer.js';
|
|
12
13
|
import { debug } from '../logger.js';
|
|
@@ -22,6 +23,7 @@ const deviceLastPushTime = new Map();
|
|
|
22
23
|
let lastStateEvent = null;
|
|
23
24
|
let lastUsageEvent = null;
|
|
24
25
|
let lastSessions = null;
|
|
26
|
+
let lastTimelineEntries = [];
|
|
25
27
|
// Display sleep state — when Mac display is off, dim Pixoo and pause stream
|
|
26
28
|
let displayDimmed = false;
|
|
27
29
|
let lastDisplayDimSignature = '';
|
|
@@ -47,7 +49,11 @@ export function pixooPushIntervalMs(stateChanged, mode) {
|
|
|
47
49
|
}
|
|
48
50
|
const CHANNEL_REASSERT_MS = 30_000; // Re-assert custom channel every 30s (fast recovery after reboots)
|
|
49
51
|
const DEFAULT_BRIGHTNESS = 100;
|
|
50
|
-
const FORWARDED_EVENTS =
|
|
52
|
+
const FORWARDED_EVENTS = new Set([
|
|
53
|
+
...DISPLAY_FORWARDED_EVENTS,
|
|
54
|
+
'timeline_event',
|
|
55
|
+
'timeline_history',
|
|
56
|
+
]);
|
|
51
57
|
// Broadcast function injected by module for sending status notifications
|
|
52
58
|
let broadcastFn = null;
|
|
53
59
|
// ===== Public API =====
|
|
@@ -106,10 +112,34 @@ export function broadcastPixoo(event) {
|
|
|
106
112
|
case 'sessions_list':
|
|
107
113
|
lastSessions = event.sessions;
|
|
108
114
|
break;
|
|
115
|
+
case 'timeline_event': {
|
|
116
|
+
const entry = event.entry;
|
|
117
|
+
if (entry) {
|
|
118
|
+
const upsert = event.upsert === true;
|
|
119
|
+
const index = upsert
|
|
120
|
+
? lastTimelineEntries.findIndex((item) => item.ts === entry.ts && item.type === entry.type)
|
|
121
|
+
: -1;
|
|
122
|
+
if (index >= 0)
|
|
123
|
+
lastTimelineEntries[index] = entry;
|
|
124
|
+
else
|
|
125
|
+
lastTimelineEntries.push(entry);
|
|
126
|
+
lastTimelineEntries.sort((a, b) => a.ts - b.ts);
|
|
127
|
+
if (lastTimelineEntries.length > 96) {
|
|
128
|
+
lastTimelineEntries.splice(0, lastTimelineEntries.length - 96);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case 'timeline_history':
|
|
134
|
+
lastTimelineEntries = [
|
|
135
|
+
...(event.entries ?? []),
|
|
136
|
+
].sort((a, b) => a.ts - b.ts).slice(-96);
|
|
137
|
+
break;
|
|
109
138
|
case 'connection':
|
|
110
139
|
if (event.status === 'disconnected') {
|
|
111
140
|
lastStateEvent = null;
|
|
112
141
|
lastUsageEvent = null;
|
|
142
|
+
lastTimelineEntries = [];
|
|
113
143
|
}
|
|
114
144
|
break;
|
|
115
145
|
case 'display_state': {
|
|
@@ -198,6 +228,7 @@ export async function stopPixooBridge() {
|
|
|
198
228
|
lastStateEvent = null;
|
|
199
229
|
lastUsageEvent = null;
|
|
200
230
|
lastSessions = null;
|
|
231
|
+
lastTimelineEntries = [];
|
|
201
232
|
displayDimmed = false;
|
|
202
233
|
lastDisplayDimSignature = '';
|
|
203
234
|
broadcastFn = null;
|
|
@@ -270,14 +301,24 @@ function calculateStateHash() {
|
|
|
270
301
|
const sessionInfo = lastSessions
|
|
271
302
|
? lastSessions.map(s => `${s.id}:${s.agentType}:${s.state}`).join(',')
|
|
272
303
|
: '';
|
|
273
|
-
|
|
304
|
+
const subagentInfo = Object.entries(currentSubagentActivity())
|
|
305
|
+
.map(([sessionId, activity]) => `${sessionId}:${activity.activeCount}:${activity.lastCompletedAt ?? 0}`)
|
|
306
|
+
.sort()
|
|
307
|
+
.join(',');
|
|
308
|
+
return `${stateStr}|${gatewayConnected}|${gatewayHasError}|${r5}|${r7}|${u5}|${u7}|${cx1}|${cx2}|${cxStale}|${uStale}|${sessionInfo}|${subagentInfo}|${displayDimmed}`;
|
|
274
309
|
}
|
|
275
310
|
function isAnimationActive() {
|
|
276
311
|
const state = lastStateEvent?.state ?? 'disconnected';
|
|
277
312
|
if (state === 'processing' || state.startsWith('awaiting'))
|
|
278
313
|
return true;
|
|
314
|
+
if (Object.values(currentSubagentActivity()).some((activity) => activity.activeCount > 0)) {
|
|
315
|
+
return true;
|
|
316
|
+
}
|
|
279
317
|
return lastSessions?.some(s => s.alive && (s.state === 'processing' || s.state?.startsWith('awaiting'))) ?? false;
|
|
280
318
|
}
|
|
319
|
+
function currentSubagentActivity(now = Date.now()) {
|
|
320
|
+
return deriveSubagentActivity(lastTimelineEntries, { now });
|
|
321
|
+
}
|
|
281
322
|
/**
|
|
282
323
|
* State Check and Push tick using per-device adaptive modes.
|
|
283
324
|
*/
|
|
@@ -306,7 +347,7 @@ function doStateCheckAndPush() {
|
|
|
306
347
|
debug('Pixoo', `${ts} pushing to ${due.length} dev(s) (changed=${stateChanged}, active=${active})`);
|
|
307
348
|
const promises = due.map(({ dev, mode }) => {
|
|
308
349
|
const count = 1;
|
|
309
|
-
const frames = Array.from({ length: count }, (_, i) => renderFrame(lastStateEvent, lastUsageEvent, lastSessions, now + i * 180));
|
|
350
|
+
const frames = Array.from({ length: count }, (_, i) => renderFrame(lastStateEvent, lastUsageEvent, lastSessions, now + i * 180, 64, 'standard', currentSubagentActivity(now + i * 180)));
|
|
310
351
|
// Rate-limit attempts as well as successes. This prevents a failed
|
|
311
352
|
// endpoint from being retried on every 500 ms scheduler tick.
|
|
312
353
|
deviceLastPushTime.set(dev.ip, Date.now());
|
|
@@ -332,13 +373,13 @@ function doStateCheckAndPush() {
|
|
|
332
373
|
* Used by the live preview endpoint when no Pixoo device is connected.
|
|
333
374
|
*/
|
|
334
375
|
export function renderPreviewFrame(size, layout = 'standard') {
|
|
335
|
-
return renderFrame(lastStateEvent, lastUsageEvent, lastSessions, undefined, size, layout);
|
|
376
|
+
return renderFrame(lastStateEvent, lastUsageEvent, lastSessions, undefined, size, layout, currentSubagentActivity());
|
|
336
377
|
}
|
|
337
378
|
/**
|
|
338
379
|
* Get the last calculated frame.
|
|
339
380
|
*/
|
|
340
381
|
export function getLastFrame(size, layout = 'standard') {
|
|
341
|
-
return renderFrame(lastStateEvent, lastUsageEvent, lastSessions, undefined, size, layout);
|
|
382
|
+
return renderFrame(lastStateEvent, lastUsageEvent, lastSessions, undefined, size, layout, currentSubagentActivity());
|
|
342
383
|
}
|
|
343
384
|
/** Notify all SSE frame listeners. */
|
|
344
385
|
function notifyFrameListeners(frame) {
|
|
@@ -359,7 +400,7 @@ function startPreviewTimer() {
|
|
|
359
400
|
stopPreviewTimer();
|
|
360
401
|
return;
|
|
361
402
|
}
|
|
362
|
-
const frame = renderFrame(lastStateEvent, lastUsageEvent, lastSessions);
|
|
403
|
+
const frame = renderFrame(lastStateEvent, lastUsageEvent, lastSessions, undefined, 64, 'standard', currentSubagentActivity());
|
|
363
404
|
notifyFrameListeners(frame);
|
|
364
405
|
}, intervalMs);
|
|
365
406
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixoo-bridge.js","sourceRoot":"","sources":["../../src/pixoo/pixoo-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pixoo-bridge.js","sourceRoot":"","sources":["../../src/pixoo/pixoo-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* 3. Scaled creatures → output buffer (HD grid sprites with camera-aware sizing)
|
|
18
18
|
* 4. Screen-space overlays (danger flash) → output buffer
|
|
19
19
|
*/
|
|
20
|
+
import { type SubagentActivityBySession } from '@agentdeck/shared';
|
|
20
21
|
import type { StateUpdateEvent, UsageEvent } from '../types.js';
|
|
21
22
|
import type { SessionInfo } from '@agentdeck/shared/protocol';
|
|
22
23
|
type CreatureType = 'octopus' | 'jellyfish' | 'opencode' | 'antigravity';
|
|
@@ -29,7 +30,7 @@ export declare function formatResetDetailed(resetsAt: string | undefined): strin
|
|
|
29
30
|
* `layout='micro'` renders the Timebox Mini Agent Beacon;
|
|
30
31
|
* `'standard'` is the full terrarium.
|
|
31
32
|
*/
|
|
32
|
-
export declare function renderFrame(stateEvent: StateUpdateEvent | null, usageEvent: UsageEvent | null, sessions: SessionInfo[] | null, timeOverrideMs?: number, size?: 11 | 32 | 64, layout?: 'standard' | 'micro'): Uint8Array;
|
|
33
|
+
export declare function renderFrame(stateEvent: StateUpdateEvent | null, usageEvent: UsageEvent | null, sessions: SessionInfo[] | null, timeOverrideMs?: number, size?: 11 | 32 | 64, layout?: 'standard' | 'micro', subagentActivity?: SubagentActivityBySession): Uint8Array;
|
|
33
34
|
/** Render a static black frame with centered grey "OFFLINE" text. */
|
|
34
35
|
export declare function renderDisconnectedFrame(): Uint8Array;
|
|
35
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixoo-renderer.d.ts","sourceRoot":"","sources":["../../src/pixoo/pixoo-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"pixoo-renderer.d.ts","sourceRoot":"","sources":["../../src/pixoo/pixoo-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AA0E9D,KAAK,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAgjBzE,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAcxE;AA0gBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,gBAAgB,GAAG,IAAI,EACnC,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,EAC9B,cAAc,CAAC,EAAE,MAAM,EACvB,IAAI,GAAE,EAAE,GAAG,EAAE,GAAG,EAAO,EACvB,MAAM,GAAE,UAAU,GAAG,OAAoB,EACzC,gBAAgB,GAAE,yBAA8B,GAC/C,UAAU,CA8PZ;AAID,qEAAqE;AACrE,wBAAgB,uBAAuB,IAAI,UAAU,CAIpD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,EAC9B,UAAU,EAAE,gBAAgB,GAAG,IAAI,GAClC,KAAK,CAAC;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAWD;AAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
* 4. Screen-space overlays (danger flash) → output buffer
|
|
19
19
|
*/
|
|
20
20
|
import { State } from '../types.js';
|
|
21
|
-
import { PASSIVE_OFFLINE_LABEL } from '@agentdeck/shared';
|
|
21
|
+
import { PASSIVE_OFFLINE_LABEL, } from '@agentdeck/shared';
|
|
22
22
|
import { hasOpenClawSession, foldCodexSessionsForDisplay } from '@agentdeck/shared';
|
|
23
23
|
import { layoutOctopuses, layoutCloudCreatures, layoutOpenCodeCreatures, layoutAntigravityCreatures, } from '@agentdeck/shared';
|
|
24
24
|
import { drawTextCentered } from './pixoo-font.js';
|
|
25
25
|
import { COLORS, setPixel, blendPixel, glowPixel, lerpColor, drawOfficialDotGlyph, drawTetra, drawText, getOctopusPaletteForSession, getJellyfishPaletteForSession, getOpenCodePaletteForSession, getAntigravityPaletteForSession, } from './pixoo-sprites.js';
|
|
26
|
-
import { blitWithCamera, quantizeCameraPixels, updateDirector, WORLD_SIZE, ACTIVE_SIZE, } from './pixoo-camera.js';
|
|
26
|
+
import { blitWithCamera, quantizeCameraPixels, updateDirector, worldToScreen, WORLD_SIZE, ACTIVE_SIZE, } from './pixoo-camera.js';
|
|
27
27
|
import { MICRO_SIZE, paintTimeboxBeacon, } from './micro-glyphs.js';
|
|
28
28
|
import { OFFICIAL_DOT_GLYPHS, OFFICIAL_DOT_GLYPH_SIZE, } from './official-dot-glyphs.generated.js';
|
|
29
29
|
const W = WORLD_SIZE;
|
|
@@ -719,7 +719,7 @@ function drawUsageHUD(buf, usageEvent, animFrame) {
|
|
|
719
719
|
* the requested output. A stable 9×9 official mark carries identity while the
|
|
720
720
|
* one-pixel perimeter rail alone carries state and motion.
|
|
721
721
|
*/
|
|
722
|
-
function renderMicroFrame(outputBuf, size, animFrame, stateEvent, sessions, usagePct) {
|
|
722
|
+
function renderMicroFrame(outputBuf, size, animFrame, stateEvent, sessions, usagePct, subagentActivity, now) {
|
|
723
723
|
// Presence-driven SSOT: the crayfish renders iff the daemon emitted an
|
|
724
724
|
// OpenClaw session — never from raw gateway flags. The daemon emits it iff
|
|
725
725
|
// the Gateway is authenticated, so reachability/error alone won't draw it.
|
|
@@ -748,6 +748,24 @@ function renderMicroFrame(outputBuf, size, animFrame, stateEvent, sessions, usag
|
|
|
748
748
|
creature = 'crayfish';
|
|
749
749
|
}
|
|
750
750
|
paintTimeboxBeacon(base, creature, aggregate, animFrame);
|
|
751
|
+
// At 11×11 a literal orbit would destroy the official mark. Keep only a
|
|
752
|
+
// fixed perimeter constellation: up to three cyan companion pixels owned by
|
|
753
|
+
// the dominant parent. It is static, legible, and still non-interactive.
|
|
754
|
+
const dominantActivity = dominant
|
|
755
|
+
? subagentActivity[dominant.sessionId]
|
|
756
|
+
: undefined;
|
|
757
|
+
const companionPixels = [
|
|
758
|
+
[0, 0], [10, 0], [10, 10],
|
|
759
|
+
];
|
|
760
|
+
for (let i = 0; i < Math.min(dominantActivity?.activeCount ?? 0, 3); i++) {
|
|
761
|
+
setPixel(base, companionPixels[i][0], companionPixels[i][1], [0, 229, 255]);
|
|
762
|
+
}
|
|
763
|
+
const completionAge = dominantActivity?.lastCompletedAt == null
|
|
764
|
+
? Infinity
|
|
765
|
+
: now - dominantActivity.lastCompletedAt;
|
|
766
|
+
if (completionAge >= 0 && completionAge < 4_000) {
|
|
767
|
+
setPixel(base, 0, 10, [170, 245, 255]);
|
|
768
|
+
}
|
|
751
769
|
// Scale the 11×11 base into the size×size output (1:1 when size === 11).
|
|
752
770
|
for (let y = 0; y < size; y++) {
|
|
753
771
|
const sy = Math.min(MICRO_SIZE - 1, Math.floor((y * MICRO_SIZE) / size));
|
|
@@ -764,7 +782,7 @@ function renderMicroFrame(outputBuf, size, animFrame, stateEvent, sessions, usag
|
|
|
764
782
|
/** Native 32×32 iDotMatrix identity stage. The panel gets saturated official
|
|
765
783
|
* marks on a quiet field plus four fixed telemetry rails; no 64px scene is
|
|
766
784
|
* downsampled, so cutouts remain physical pixels. */
|
|
767
|
-
function renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageEvent) {
|
|
785
|
+
function renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageEvent, subagentActivity, now) {
|
|
768
786
|
const set = (x, y, color) => setPixel(outputBuf, x, y, color);
|
|
769
787
|
const state = String(stateEvent?.state ?? State.IDLE);
|
|
770
788
|
for (let y = 0; y < 28; y++) {
|
|
@@ -782,7 +800,11 @@ function renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageE
|
|
|
782
800
|
const glyphFor = (kind) => kind === 'jellyfish' ? 'codex' : kind === 'opencode' ? 'openCode'
|
|
783
801
|
: kind === 'antigravity' ? 'antigravity' : 'claudeCode';
|
|
784
802
|
const priority = (s) => s === 'awaiting' ? 0 : s === 'processing' ? 1 : 2;
|
|
785
|
-
const marks = [...creatureInstances.values()].map((c) => ({
|
|
803
|
+
const marks = [...creatureInstances.values()].map((c) => ({
|
|
804
|
+
glyph: glyphFor(c.creatureType),
|
|
805
|
+
state: c.state,
|
|
806
|
+
sessionId: c.sessionId,
|
|
807
|
+
}));
|
|
786
808
|
if (hasOpenClawSession(sessions ?? [])) {
|
|
787
809
|
const routing = sessions?.some((s) => s.agentType === 'openclaw' && s.state === 'processing') ?? false;
|
|
788
810
|
marks.push({ glyph: 'openClaw', state: routing ? 'processing' : 'idle' });
|
|
@@ -851,6 +873,23 @@ function renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageE
|
|
|
851
873
|
set(Math.min(31, x0 + slot.size), Math.max(2, y0), [255, 190, 45]);
|
|
852
874
|
set(Math.min(31, x0 + slot.size), Math.max(2, y0 + 1), [255, 190, 45]);
|
|
853
875
|
}
|
|
876
|
+
const activity = mark.sessionId ? subagentActivity[mark.sessionId] : undefined;
|
|
877
|
+
const visibleCount = Math.min(activity?.activeCount ?? 0, 3);
|
|
878
|
+
for (let satellite = 0; satellite < visibleCount; satellite++) {
|
|
879
|
+
const angle = now / 2_500 + satellite * Math.PI * 2 / visibleCount;
|
|
880
|
+
const radius = slot.size / 2 + 2;
|
|
881
|
+
const sx = Math.round(slot.x + Math.cos(angle) * radius);
|
|
882
|
+
const sy = Math.round(slot.y + bob + Math.sin(angle) * radius * 0.45);
|
|
883
|
+
set(Math.round((slot.x + sx) / 2), Math.round((slot.y + bob + sy) / 2), [20, 92, 112]);
|
|
884
|
+
set(sx, sy, [0, 229, 255]);
|
|
885
|
+
}
|
|
886
|
+
const completionAge = activity?.lastCompletedAt == null
|
|
887
|
+
? Infinity
|
|
888
|
+
: now - activity.lastCompletedAt;
|
|
889
|
+
if (completionAge >= 0 && completionAge < 4_000) {
|
|
890
|
+
set(Math.max(0, x0 - 1), Math.max(2, y0 - 1), [170, 245, 255]);
|
|
891
|
+
set(Math.min(31, x0 + slot.size), Math.max(2, y0 - 1), [170, 245, 255]);
|
|
892
|
+
}
|
|
854
893
|
});
|
|
855
894
|
if (marks.length === 0) {
|
|
856
895
|
for (const [x, y] of [[14, 12], [15, 11], [16, 12], [17, 11], [18, 12], [15, 14], [16, 15], [17, 14]]) {
|
|
@@ -882,6 +921,95 @@ function renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageE
|
|
|
882
921
|
set(x, y, color);
|
|
883
922
|
});
|
|
884
923
|
}
|
|
924
|
+
function drawSubagentPixelLine(buf, fromX, fromY, toX, toY, color) {
|
|
925
|
+
let x = Math.round(fromX);
|
|
926
|
+
let y = Math.round(fromY);
|
|
927
|
+
const targetX = Math.round(toX);
|
|
928
|
+
const targetY = Math.round(toY);
|
|
929
|
+
const dx = Math.abs(targetX - x);
|
|
930
|
+
const sx = x < targetX ? 1 : -1;
|
|
931
|
+
const dy = -Math.abs(targetY - y);
|
|
932
|
+
const sy = y < targetY ? 1 : -1;
|
|
933
|
+
let error = dx + dy;
|
|
934
|
+
let step = 0;
|
|
935
|
+
while (true) {
|
|
936
|
+
if ((step++ & 1) === 0)
|
|
937
|
+
blendPixel(buf, x, y, color, 0.42);
|
|
938
|
+
if (x === targetX && y === targetY)
|
|
939
|
+
break;
|
|
940
|
+
const twiceError = error * 2;
|
|
941
|
+
if (twiceError >= dy) {
|
|
942
|
+
error += dy;
|
|
943
|
+
x += sx;
|
|
944
|
+
}
|
|
945
|
+
if (twiceError <= dx) {
|
|
946
|
+
error += dx;
|
|
947
|
+
y += sy;
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
function drawSubagentOrbitForCreature(buf, creature, camera, activity, animFrame, now) {
|
|
952
|
+
const completionAge = activity.lastCompletedAt == null
|
|
953
|
+
? Infinity
|
|
954
|
+
: now - activity.lastCompletedAt;
|
|
955
|
+
const completionProgress = completionAge >= 0 && completionAge < 4_000
|
|
956
|
+
? completionAge / 4_000
|
|
957
|
+
: null;
|
|
958
|
+
if (activity.activeCount <= 0 && completionProgress == null)
|
|
959
|
+
return;
|
|
960
|
+
const [centerX, centerY] = worldToScreen(creature.worldX, creature.worldY, camera);
|
|
961
|
+
const radiusX = Math.max(6, 7.5 * creature.sizeScale * camera.zoom);
|
|
962
|
+
const radiusY = Math.max(2, radiusX * 0.38);
|
|
963
|
+
const tilt = -0.28;
|
|
964
|
+
const point = (angle, multiplier = 1) => {
|
|
965
|
+
const localX = Math.cos(angle) * radiusX * multiplier;
|
|
966
|
+
const localY = Math.sin(angle) * radiusY * multiplier;
|
|
967
|
+
return [
|
|
968
|
+
centerX + localX * Math.cos(tilt) - localY * Math.sin(tilt),
|
|
969
|
+
centerY + localX * Math.sin(tilt) + localY * Math.cos(tilt),
|
|
970
|
+
];
|
|
971
|
+
};
|
|
972
|
+
if (activity.activeCount > 0) {
|
|
973
|
+
const ringColor = [20, 105, 126];
|
|
974
|
+
for (let step = 0; step < 44; step += 2) {
|
|
975
|
+
const [x, y] = point(step / 44 * Math.PI * 2);
|
|
976
|
+
blendPixel(buf, Math.round(x), Math.round(y), ringColor, 0.76);
|
|
977
|
+
}
|
|
978
|
+
const visibleCount = Math.min(activity.activeCount, 3);
|
|
979
|
+
for (let index = 0; index < visibleCount; index++) {
|
|
980
|
+
const angle = animFrame * 0.072 + index * Math.PI * 2 / visibleCount;
|
|
981
|
+
const [satelliteX, satelliteY] = point(angle);
|
|
982
|
+
drawSubagentPixelLine(buf, centerX, centerY, satelliteX, satelliteY, [16, 90, 110]);
|
|
983
|
+
glowPixel(buf, Math.round(satelliteX), Math.round(satelliteY), [0, 229, 255], 0.88);
|
|
984
|
+
if (index === 2 && activity.activeCount > 3) {
|
|
985
|
+
const labelX = Math.max(4, Math.min(57, Math.round(satelliteX + 5)));
|
|
986
|
+
const labelY = Math.max(1, Math.min(58, Math.round(satelliteY - 3)));
|
|
987
|
+
setPixel(buf, labelX, labelY + 2, [160, 245, 255]);
|
|
988
|
+
setPixel(buf, labelX - 1, labelY + 2, [160, 245, 255]);
|
|
989
|
+
setPixel(buf, labelX + 1, labelY + 2, [160, 245, 255]);
|
|
990
|
+
setPixel(buf, labelX, labelY + 1, [160, 245, 255]);
|
|
991
|
+
setPixel(buf, labelX, labelY + 3, [160, 245, 255]);
|
|
992
|
+
drawText(buf, String(activity.activeCount - 3), Math.min(64, labelX + 8), labelY, [160, 245, 255]);
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
if (completionProgress != null) {
|
|
997
|
+
const pulseRadius = radiusX * (0.72 + completionProgress * 0.58);
|
|
998
|
+
const pulseColor = [130, 238, 255];
|
|
999
|
+
for (let step = 0; step < 36; step += 2) {
|
|
1000
|
+
const angle = step / 36 * Math.PI * 2;
|
|
1001
|
+
blendPixel(buf, Math.round(centerX + Math.cos(angle) * pulseRadius), Math.round(centerY + Math.sin(angle) * pulseRadius), pulseColor, (1 - completionProgress) * 0.76);
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
function drawSubagentOrbits(buf, camera, activityBySession, animFrame, now) {
|
|
1006
|
+
for (const creature of creatureInstances.values()) {
|
|
1007
|
+
const activity = activityBySession[creature.sessionId];
|
|
1008
|
+
if (!activity)
|
|
1009
|
+
continue;
|
|
1010
|
+
drawSubagentOrbitForCreature(buf, creature, camera, activity, animFrame, now);
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
885
1013
|
/**
|
|
886
1014
|
* Render a complete frame with camera system.
|
|
887
1015
|
* Returns RGB buffer.
|
|
@@ -889,19 +1017,19 @@ function renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageE
|
|
|
889
1017
|
* `layout='micro'` renders the Timebox Mini Agent Beacon;
|
|
890
1018
|
* `'standard'` is the full terrarium.
|
|
891
1019
|
*/
|
|
892
|
-
export function renderFrame(stateEvent, usageEvent, sessions, timeOverrideMs, size = 64, layout = 'standard') {
|
|
1020
|
+
export function renderFrame(stateEvent, usageEvent, sessions, timeOverrideMs, size = 64, layout = 'standard', subagentActivity = {}) {
|
|
893
1021
|
const worldBuf = new Uint8Array(W * W * 3);
|
|
894
1022
|
const outputBuf = new Uint8Array(size * size * 3);
|
|
895
1023
|
const animFrame = getAnimFrame(timeOverrideMs);
|
|
896
1024
|
if (layout === 'micro') {
|
|
897
1025
|
// Still sync creature instances so dominant-creature selection reflects live state.
|
|
898
1026
|
syncCreatures(sessions, stateEvent);
|
|
899
|
-
renderMicroFrame(outputBuf, size, animFrame, stateEvent, sessions, usageEvent?.fiveHourPercent ?? 0);
|
|
1027
|
+
renderMicroFrame(outputBuf, size, animFrame, stateEvent, sessions, usageEvent?.fiveHourPercent ?? 0, subagentActivity, timeOverrideMs ?? Date.now());
|
|
900
1028
|
return outputBuf;
|
|
901
1029
|
}
|
|
902
1030
|
if (size === 32) {
|
|
903
1031
|
syncCreatures(sessions, stateEvent);
|
|
904
|
-
renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageEvent);
|
|
1032
|
+
renderCompact32Frame(outputBuf, animFrame, stateEvent, sessions, usageEvent, subagentActivity, timeOverrideMs ?? Date.now());
|
|
905
1033
|
return outputBuf;
|
|
906
1034
|
}
|
|
907
1035
|
const state = stateEvent?.state ?? State.IDLE;
|
|
@@ -1005,6 +1133,7 @@ export function renderFrame(stateEvent, usageEvent, sessions, timeOverrideMs, si
|
|
|
1005
1133
|
drawTetra(outputBuf, t.x / W, t.y / W, t.heading, camera);
|
|
1006
1134
|
}
|
|
1007
1135
|
}
|
|
1136
|
+
drawSubagentOrbits(outputBuf, camera, subagentActivity, animFrame, now);
|
|
1008
1137
|
// Creature instances — octopus or jellyfish based on agent type
|
|
1009
1138
|
const creatureOrder = [...creatureInstances.keys()];
|
|
1010
1139
|
for (const c of creatureInstances.values()) {
|