@agentdeck/bridge 1.0.0 → 1.0.2
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/apme/antigravity-transcript.d.ts.map +1 -1
- package/dist/apme/antigravity-transcript.js +16 -3
- package/dist/apme/antigravity-transcript.js.map +1 -1
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +17 -3
- package/dist/daemon-server.js.map +1 -1
- package/dist/daemon.js +1 -1
- package/dist/esp32-serial.d.ts +10 -0
- package/dist/esp32-serial.d.ts.map +1 -1
- package/dist/esp32-serial.js +55 -0
- package/dist/esp32-serial.js.map +1 -1
- package/dist/session-registry.d.ts +12 -0
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/session-registry.js +31 -0
- package/dist/session-registry.js.map +1 -1
- package/dist/usage-event.d.ts.map +1 -1
- package/dist/usage-event.js +18 -0
- package/dist/usage-event.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity-transcript.d.ts","sourceRoot":"","sources":["../../src/apme/antigravity-transcript.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;uEACmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,4BAA4B,
|
|
1
|
+
{"version":3,"file":"antigravity-transcript.d.ts","sourceRoot":"","sources":["../../src/apme/antigravity-transcript.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;uEACmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,4BAA4B,CA8CpF;AAMD;6CAC6C;AAC7C,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAK5D;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQrF;AAED,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAExE"}
|
|
@@ -40,7 +40,14 @@ export function parseAntigravityTranscript(raw) {
|
|
|
40
40
|
let goal;
|
|
41
41
|
let model;
|
|
42
42
|
let currentTask;
|
|
43
|
-
|
|
43
|
+
// Track the newest step to read its live status. agy appends a `RUNNING`
|
|
44
|
+
// record when a step starts and a `DONE` record when it finishes, so the
|
|
45
|
+
// transcript accumulates historical `RUNNING` entries that are never
|
|
46
|
+
// rewritten. A session is processing ONLY while its newest step is still
|
|
47
|
+
// RUNNING — scanning every record for RUNNING would freeze a finished
|
|
48
|
+
// session into "processing" forever (verified: real transcripts carry
|
|
49
|
+
// dozens of stray RUNNING records after the last DONE step).
|
|
50
|
+
let latestStep;
|
|
44
51
|
for (const rec of records) {
|
|
45
52
|
if (rec.type === 'USER_INPUT' && typeof rec.content === 'string') {
|
|
46
53
|
if (!goal) {
|
|
@@ -54,12 +61,18 @@ export function parseAntigravityTranscript(raw) {
|
|
|
54
61
|
if (change && change[1].trim())
|
|
55
62
|
model = change[1].trim();
|
|
56
63
|
}
|
|
57
|
-
if (rec.status === 'RUNNING')
|
|
58
|
-
processing = true;
|
|
59
64
|
if (rec.type && TOOL_TYPES.has(rec.type)) {
|
|
60
65
|
currentTask = rec.tool_calls?.[0]?.name ?? rec.type.toLowerCase();
|
|
61
66
|
}
|
|
67
|
+
// Records arrive in file order (newest last within the tail), so prefer a
|
|
68
|
+
// higher step_index and otherwise advance on every record so records
|
|
69
|
+
// without step_index still resolve to the newest by position.
|
|
70
|
+
if (latestStep === undefined ||
|
|
71
|
+
(rec.step_index ?? -1) >= (latestStep.step_index ?? -1)) {
|
|
72
|
+
latestStep = rec;
|
|
73
|
+
}
|
|
62
74
|
}
|
|
75
|
+
const processing = latestStep?.status === 'RUNNING';
|
|
63
76
|
return { goal, model, currentTask, state: processing ? 'processing' : 'idle' };
|
|
64
77
|
}
|
|
65
78
|
function cleanGoal(s) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity-transcript.js","sourceRoot":"","sources":["../../src/apme/antigravity-transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAoB5B,gFAAgF;AAChF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW;CACxF,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,IAAwB,CAAC;IAC7B,IAAI,KAAyB,CAAC;IAC9B,IAAI,WAA+B,CAAC;IACpC,
|
|
1
|
+
{"version":3,"file":"antigravity-transcript.js","sourceRoot":"","sources":["../../src/apme/antigravity-transcript.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;
|
|
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;AAkK1E;;;;;;;;;;;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,CAmtEpE"}
|
package/dist/daemon-server.js
CHANGED
|
@@ -38,7 +38,7 @@ const OBSERVED_APPROVAL_ENABLED = process.env.AGENTDECK_OBSERVED_APPROVAL !== '0
|
|
|
38
38
|
const OBSERVED_APPROVAL_HOLD_MS = Math.min(50_000, Math.max(5_000, Number(process.env.AGENTDECK_APPROVAL_HOLD_MS) || 25_000));
|
|
39
39
|
import { VoiceManager } from './voice.js';
|
|
40
40
|
import { VoiceAssistantManager } from './voice-assistant.js';
|
|
41
|
-
import { listActive as listActiveSessions, findAvailablePort, findExistingDaemon, DAEMON_DEFAULT_PORT, probeDaemonHealth, requestDaemonShutdown, scanDaemonPortWindow, shouldConcedePortToOccupant, waitForDaemonExit, writeDaemonInfo, removeDaemonInfo, readDaemonInfo, removeDaemonSession, getCandidateDataDirs, getOwnTimelineFile, } from './session-registry.js';
|
|
41
|
+
import { listActive as listActiveSessions, findAvailablePort, findExistingDaemon, DAEMON_DEFAULT_PORT, probeDaemonHealth, requestDaemonShutdown, scanDaemonPortWindow, shouldConcedePortToOccupant, waitForDaemonExit, writeDaemonInfo, ensureDaemonInfo, removeDaemonInfo, readDaemonInfo, removeDaemonSession, getCandidateDataDirs, getOwnTimelineFile, } from './session-registry.js';
|
|
42
42
|
import { fetchUsageFromApi, hasOAuthToken, resetConsecutiveFailures } from './usage-api.js';
|
|
43
43
|
import { isLocalConnection, validateToken } from './auth.js';
|
|
44
44
|
import { getLastFrame, renderPreviewFrame, onFrameRendered, offFrameRendered } from './pixoo/pixoo-bridge.js';
|
|
@@ -1691,8 +1691,10 @@ export async function startDaemon(opts) {
|
|
|
1691
1691
|
throw err;
|
|
1692
1692
|
}
|
|
1693
1693
|
});
|
|
1694
|
-
// Write daemon.json for client discovery (must be after successful bind)
|
|
1695
|
-
|
|
1694
|
+
// Write daemon.json for client discovery (must be after successful bind).
|
|
1695
|
+
// Keep the original startedAt stable when the self-heal timer rewrites it.
|
|
1696
|
+
const daemonInfo = { port, pid: process.pid, startedAt: new Date().toISOString() };
|
|
1697
|
+
writeDaemonInfo(daemonInfo);
|
|
1696
1698
|
// ===== BridgeCore =====
|
|
1697
1699
|
const core = new BridgeCore({
|
|
1698
1700
|
port,
|
|
@@ -1700,6 +1702,17 @@ export async function startDaemon(opts) {
|
|
|
1700
1702
|
httpServer,
|
|
1701
1703
|
isDaemon: true,
|
|
1702
1704
|
});
|
|
1705
|
+
// Hooks resolve a fallback daemon port through daemon.json. Another process
|
|
1706
|
+
// can delete that file while this daemon remains healthy, which makes every
|
|
1707
|
+
// standalone Claude/Codex hook silently fall back to an empty :9120. Mirror
|
|
1708
|
+
// the Swift daemon's 10-second registry self-heal so timeline ingestion does
|
|
1709
|
+
// not stop merely because the discovery file disappeared.
|
|
1710
|
+
const daemonInfoHealTimer = setInterval(() => {
|
|
1711
|
+
if (ensureDaemonInfo(daemonInfo)) {
|
|
1712
|
+
debug('daemon', `Self-healed daemon.json for port ${port}`);
|
|
1713
|
+
}
|
|
1714
|
+
}, 10_000);
|
|
1715
|
+
daemonInfoHealTimer.unref?.();
|
|
1703
1716
|
const esp32WifiEvents = new Set([
|
|
1704
1717
|
...SERIAL_FORWARDED_EVENTS,
|
|
1705
1718
|
'esp32_ota_begin',
|
|
@@ -2955,6 +2968,7 @@ export async function startDaemon(opts) {
|
|
|
2955
2968
|
// ===== Shutdown =====
|
|
2956
2969
|
core.onShutdown(async () => {
|
|
2957
2970
|
clearInterval(permissionSweepTimer);
|
|
2971
|
+
clearInterval(daemonInfoHealTimer);
|
|
2958
2972
|
drainAllPending();
|
|
2959
2973
|
removeDaemonInfo();
|
|
2960
2974
|
focusRelay.stop();
|