@agentdeck/bridge 1.0.5 → 1.0.7
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/apme/collector.d.ts +10 -0
- package/dist/apme/collector.d.ts.map +1 -1
- package/dist/apme/collector.js +39 -10
- package/dist/apme/collector.js.map +1 -1
- package/dist/apme/dashboard-html.d.ts.map +1 -1
- package/dist/apme/dashboard-html.js +289 -0
- package/dist/apme/dashboard-html.js.map +1 -1
- package/dist/apme/graph.d.ts +48 -0
- package/dist/apme/graph.d.ts.map +1 -0
- package/dist/apme/graph.js +226 -0
- package/dist/apme/graph.js.map +1 -0
- package/dist/apme/http.d.ts.map +1 -1
- package/dist/apme/http.js +52 -0
- package/dist/apme/http.js.map +1 -1
- package/dist/apme/judge-detect.d.ts.map +1 -1
- package/dist/apme/judge-detect.js +26 -2
- package/dist/apme/judge-detect.js.map +1 -1
- package/dist/apme/store.d.ts +69 -1
- package/dist/apme/store.d.ts.map +1 -1
- package/dist/apme/store.js +238 -4
- package/dist/apme/store.js.map +1 -1
- package/dist/apme/types.d.ts +1 -1
- package/dist/apme/types.d.ts.map +1 -1
- package/dist/apme/types.js.map +1 -1
- package/dist/ble-sync-spawn.d.ts +25 -2
- package/dist/ble-sync-spawn.d.ts.map +1 -1
- package/dist/ble-sync-spawn.js +38 -2
- package/dist/ble-sync-spawn.js.map +1 -1
- package/dist/ble-sync-status.d.ts +77 -0
- package/dist/ble-sync-status.d.ts.map +1 -0
- package/dist/ble-sync-status.js +157 -0
- package/dist/ble-sync-status.js.map +1 -0
- package/dist/bridge-core.d.ts.map +1 -1
- package/dist/bridge-core.js +7 -1
- package/dist/bridge-core.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/codex-rate-limits-live.d.ts +60 -0
- package/dist/codex-rate-limits-live.d.ts.map +1 -0
- package/dist/codex-rate-limits-live.js +282 -0
- package/dist/codex-rate-limits-live.js.map +1 -0
- package/dist/d200h/hid-protocol.d.ts +62 -0
- package/dist/d200h/hid-protocol.d.ts.map +1 -0
- package/dist/d200h/hid-protocol.js +124 -0
- package/dist/d200h/hid-protocol.js.map +1 -0
- package/dist/d200h/image-renderer.d.ts +24 -0
- package/dist/d200h/image-renderer.d.ts.map +1 -0
- package/dist/d200h/image-renderer.js +321 -0
- package/dist/d200h/image-renderer.js.map +1 -0
- package/dist/daemon-server.d.ts.map +1 -1
- package/dist/daemon-server.js +163 -10
- package/dist/daemon-server.js.map +1 -1
- package/dist/daemon.js +1 -1
- package/dist/device-voice-reply.d.ts +1 -10
- package/dist/device-voice-reply.d.ts.map +1 -1
- package/dist/device-voice-reply.js +4 -33
- package/dist/device-voice-reply.js.map +1 -1
- package/dist/foundation-models-helper.d.ts.map +1 -1
- package/dist/foundation-models-helper.js +59 -22
- package/dist/foundation-models-helper.js.map +1 -1
- package/dist/hook-migration.d.ts +2 -0
- package/dist/hook-migration.d.ts.map +1 -0
- package/dist/hook-migration.js +116 -0
- package/dist/hook-migration.js.map +1 -0
- package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts +8 -0
- package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts.map +1 -1
- package/dist/idotmatrix/idotmatrix-daemon-sync.js +19 -3
- package/dist/idotmatrix/idotmatrix-daemon-sync.js.map +1 -1
- package/dist/modules/d200h-module.d.ts +65 -0
- package/dist/modules/d200h-module.d.ts.map +1 -0
- package/dist/modules/d200h-module.js +495 -0
- package/dist/modules/d200h-module.js.map +1 -0
- package/dist/modules/d200h-renderer.d.ts +7 -0
- package/dist/modules/d200h-renderer.d.ts.map +1 -0
- package/dist/modules/d200h-renderer.js +321 -0
- package/dist/modules/d200h-renderer.js.map +1 -0
- package/dist/modules/idotmatrix-module.d.ts.map +1 -1
- package/dist/modules/idotmatrix-module.js +12 -1
- package/dist/modules/idotmatrix-module.js.map +1 -1
- package/dist/modules/timebox-module.d.ts.map +1 -1
- package/dist/modules/timebox-module.js +12 -1
- package/dist/modules/timebox-module.js.map +1 -1
- package/dist/modules/trmnl-module.d.ts +38 -0
- package/dist/modules/trmnl-module.d.ts.map +1 -0
- package/dist/modules/trmnl-module.js +111 -0
- package/dist/modules/trmnl-module.js.map +1 -0
- package/dist/openclaw-session.d.ts +6 -0
- package/dist/openclaw-session.d.ts.map +1 -1
- package/dist/openclaw-session.js +7 -1
- package/dist/openclaw-session.js.map +1 -1
- package/dist/timebox/timebox-daemon-sync.d.ts +8 -0
- package/dist/timebox/timebox-daemon-sync.d.ts.map +1 -1
- package/dist/timebox/timebox-daemon-sync.js +29 -1
- package/dist/timebox/timebox-daemon-sync.js.map +1 -1
- package/dist/timeline-summarizer.d.ts +12 -2
- package/dist/timeline-summarizer.d.ts.map +1 -1
- package/dist/timeline-summarizer.js +66 -4
- package/dist/timeline-summarizer.js.map +1 -1
- package/dist/trmnl/byos-server.d.ts +39 -0
- package/dist/trmnl/byos-server.d.ts.map +1 -0
- package/dist/trmnl/byos-server.js +301 -0
- package/dist/trmnl/byos-server.js.map +1 -0
- package/dist/trmnl/frame-cache.d.ts +37 -0
- package/dist/trmnl/frame-cache.d.ts.map +1 -0
- package/dist/trmnl/frame-cache.js +157 -0
- package/dist/trmnl/frame-cache.js.map +1 -0
- package/dist/trmnl/image-renderer.d.ts +27 -0
- package/dist/trmnl/image-renderer.d.ts.map +1 -0
- package/dist/trmnl/image-renderer.js +235 -0
- package/dist/trmnl/image-renderer.js.map +1 -0
- package/dist/trmnl/trmnl-settings.d.ts +96 -0
- package/dist/trmnl/trmnl-settings.d.ts.map +1 -0
- package/dist/trmnl/trmnl-settings.js +177 -0
- package/dist/trmnl/trmnl-settings.js.map +1 -0
- package/dist/trmnl/trmnl-telemetry.d.ts +47 -0
- package/dist/trmnl/trmnl-telemetry.d.ts.map +1 -0
- package/dist/trmnl/trmnl-telemetry.js +56 -0
- package/dist/trmnl/trmnl-telemetry.js.map +1 -0
- package/dist/whisper-server-manager.d.ts +19 -0
- package/dist/whisper-server-manager.d.ts.map +1 -0
- package/dist/whisper-server-manager.js +171 -0
- package/dist/whisper-server-manager.js.map +1 -0
- package/fm-helper/Info.plist +27 -0
- package/package.json +13 -14
- package/scripts/build-fm-helper.mjs +35 -3
- package/src/idotmatrix/sync.py +16 -1
- package/src/pysync/matrix_sync_common.py +83 -0
- package/src/timebox/sync_ble.py +16 -0
package/dist/daemon.js
CHANGED
|
@@ -17,7 +17,7 @@ const program = new Command();
|
|
|
17
17
|
program
|
|
18
18
|
.name('agentdeck')
|
|
19
19
|
.description('AgentDeck daemon (legacy entry point — use `agentdeck daemon` instead)')
|
|
20
|
-
.version('1.0.
|
|
20
|
+
.version('1.0.7');
|
|
21
21
|
program
|
|
22
22
|
.command('start', { isDefault: true })
|
|
23
23
|
.description('Start monitoring daemon')
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* playback speed. Sending as fast as the socket allows would overrun a ring
|
|
18
18
|
* buffer measured in seconds and cost the tail of every long answer.
|
|
19
19
|
*/
|
|
20
|
+
export { MAX_SPOKEN_CHARS, SPOKEN_DIGEST_MAX_CHARS, speakableReply, spokenDigest, } from '@agentdeck/shared';
|
|
20
21
|
export interface ReplySink {
|
|
21
22
|
/** Send a JSON control frame. */
|
|
22
23
|
send(data: string): void;
|
|
@@ -44,9 +45,6 @@ export interface ArmedReply {
|
|
|
44
45
|
/** PCM16 mono frame size. 1 KB = 32 ms at 16 kHz — small enough that a dropped
|
|
45
46
|
* frame is inaudible, large enough that framing overhead stays negligible. */
|
|
46
47
|
export declare const PCM_FRAME_BYTES = 1024;
|
|
47
|
-
/** A spoken reply past this is a monologue, not an answer. Truncated at a
|
|
48
|
-
* sentence boundary when one is near the cap. */
|
|
49
|
-
export declare const MAX_SPOKEN_CHARS = 700;
|
|
50
48
|
/**
|
|
51
49
|
* How long an arming survives *without the session making progress*. Measured
|
|
52
50
|
* from the last sign of work, not from the dictation: a question that kicks off
|
|
@@ -54,13 +52,6 @@ export declare const MAX_SPOKEN_CHARS = 700;
|
|
|
54
52
|
* that went quiet has moved on and speaking then is worse than silence.
|
|
55
53
|
*/
|
|
56
54
|
export declare const REPLY_ARM_TTL_MS: number;
|
|
57
|
-
/**
|
|
58
|
-
* Strip the parts of an assistant reply that make no sense read aloud (code
|
|
59
|
-
* fences, markdown scaffolding, bare URLs) and cap the length. Returns an empty
|
|
60
|
-
* string when nothing speakable is left — a reply that was only a diff should
|
|
61
|
-
* play nothing rather than spell out punctuation.
|
|
62
|
-
*/
|
|
63
|
-
export declare function speakableReply(raw: string, maxChars?: number): string;
|
|
64
55
|
/**
|
|
65
56
|
* Extract PCM samples from a canonical RIFF/WAVE file by walking the chunk
|
|
66
57
|
* list. Fixed-offset slicing at byte 44 is wrong for any file carrying a LIST
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-voice-reply.d.ts","sourceRoot":"","sources":["../src/device-voice-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"device-voice-reply.d.ts","sourceRoot":"","sources":["../src/device-voice-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EACL,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EAAE,YAAY,GACxE,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iCAAiC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,6EAA6E;IAC7E,MAAM,IAAI,OAAO,CAAC;IAClB,8DAA8D;IAC9D,YAAY,IAAI,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,QAAQ,IAAI,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;+EAC+E;AAC/E,eAAO,MAAM,eAAe,OAAO,CAAC;AAGpC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBlF;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,SAAkB,GAAG,MAAM,EAAE,CAM7E;AAED;;;GAGG;AACH,qBAAa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR9B,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,SAAS,CAAwB;gBAGtB,GAAG,GAAE,MAAM,MAAyB,EACpC,KAAK,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CACL;IAC/C,0EAA0E;IACzD,WAAW,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,GAAG,IAAiB;IAGpF;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAchD,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IASlD;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IAOb,+DAA+D;IAC/D,UAAU,IAAI,MAAM;IAIpB,uEAAuE;IACvE,aAAa,IAAI,MAAM;IAKvB,wDAAwD;IACxD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAU1C;;;;OAIG;IACG,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CA4CtF"}
|
|
@@ -18,12 +18,13 @@
|
|
|
18
18
|
* buffer measured in seconds and cost the tail of every long answer.
|
|
19
19
|
*/
|
|
20
20
|
import { rawSessionId } from '@agentdeck/shared';
|
|
21
|
+
// What to read aloud is a two-daemon rule, so it lives in shared/ with the
|
|
22
|
+
// Swift mirror pinned to the same parity cases. Re-exported here because every
|
|
23
|
+
// existing caller reaches for it through this module.
|
|
24
|
+
export { MAX_SPOKEN_CHARS, SPOKEN_DIGEST_MAX_CHARS, speakableReply, spokenDigest, } from '@agentdeck/shared';
|
|
21
25
|
/** PCM16 mono frame size. 1 KB = 32 ms at 16 kHz — small enough that a dropped
|
|
22
26
|
* frame is inaudible, large enough that framing overhead stays negligible. */
|
|
23
27
|
export const PCM_FRAME_BYTES = 1024;
|
|
24
|
-
/** A spoken reply past this is a monologue, not an answer. Truncated at a
|
|
25
|
-
* sentence boundary when one is near the cap. */
|
|
26
|
-
export const MAX_SPOKEN_CHARS = 700;
|
|
27
28
|
/**
|
|
28
29
|
* How long an arming survives *without the session making progress*. Measured
|
|
29
30
|
* from the last sign of work, not from the dictation: a question that kicks off
|
|
@@ -31,36 +32,6 @@ export const MAX_SPOKEN_CHARS = 700;
|
|
|
31
32
|
* that went quiet has moved on and speaking then is worse than silence.
|
|
32
33
|
*/
|
|
33
34
|
export const REPLY_ARM_TTL_MS = 10 * 60 * 1000;
|
|
34
|
-
/**
|
|
35
|
-
* Strip the parts of an assistant reply that make no sense read aloud (code
|
|
36
|
-
* fences, markdown scaffolding, bare URLs) and cap the length. Returns an empty
|
|
37
|
-
* string when nothing speakable is left — a reply that was only a diff should
|
|
38
|
-
* play nothing rather than spell out punctuation.
|
|
39
|
-
*/
|
|
40
|
-
export function speakableReply(raw, maxChars = MAX_SPOKEN_CHARS) {
|
|
41
|
-
if (!raw)
|
|
42
|
-
return '';
|
|
43
|
-
let text = raw
|
|
44
|
-
// Fenced blocks read as noise; say so once instead of reciting them.
|
|
45
|
-
.replace(/```[\s\S]*?```/g, ' (code) ')
|
|
46
|
-
.replace(/`([^`]+)`/g, '$1')
|
|
47
|
-
.replace(/!?\[([^\]]*)\]\([^)]*\)/g, '$1')
|
|
48
|
-
.replace(/https?:\/\/\S+/g, ' link ')
|
|
49
|
-
.replace(/^\s*(?:#{1,6}|>|[*\-+])\s+/gm, '')
|
|
50
|
-
.replace(/\*\*|__|~~/g, '')
|
|
51
|
-
.replace(/[ \t]+/g, ' ')
|
|
52
|
-
.replace(/\n{2,}/g, '\n')
|
|
53
|
-
.trim();
|
|
54
|
-
if (!text)
|
|
55
|
-
return '';
|
|
56
|
-
if (text.length > maxChars) {
|
|
57
|
-
const head = text.slice(0, maxChars);
|
|
58
|
-
// Prefer ending on a sentence so the cut doesn't sound like a dropout.
|
|
59
|
-
const lastStop = Math.max(head.lastIndexOf('. '), head.lastIndexOf('。'), head.lastIndexOf('! '), head.lastIndexOf('? '), head.lastIndexOf('다.'));
|
|
60
|
-
text = lastStop > maxChars * 0.5 ? head.slice(0, lastStop + 1) : head;
|
|
61
|
-
}
|
|
62
|
-
return text.trim();
|
|
63
|
-
}
|
|
64
35
|
/**
|
|
65
36
|
* Extract PCM samples from a canonical RIFF/WAVE file by walking the chunk
|
|
66
37
|
* list. Fixed-offset slicing at byte 44 is wrong for any file carrying a LIST
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-voice-reply.js","sourceRoot":"","sources":["../src/device-voice-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"device-voice-reply.js","sourceRoot":"","sources":["../src/device-voice-reply.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation-models-helper.d.ts","sourceRoot":"","sources":["../src/foundation-models-helper.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"foundation-models-helper.d.ts","sourceRoot":"","sources":["../src/foundation-models-helper.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA+GD,wBAAgB,mCAAmC,IAAI,IAAI,CAG1D;AAED,wBAAgB,6BAA6B,IAAI,4BAA4B,CA4C5E;AAsFD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAczF;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWvG;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,6EAA6E;AAC7E,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5B,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBlE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAM3F;AAED,2EAA2E;AAC3E,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAalE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawn, execFileSync } from 'child_process';
|
|
2
|
-
import { chmodSync, existsSync, mkdirSync, statSync } from 'fs';
|
|
2
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, statSync } from 'fs';
|
|
3
3
|
import { dirname, join } from 'path';
|
|
4
4
|
import { homedir, release } from 'os';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
@@ -54,26 +54,29 @@ function sourceIsNewer(source, output) {
|
|
|
54
54
|
return true;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
function
|
|
57
|
+
function buildScriptPath() {
|
|
58
|
+
return join(packageRoot(), 'scripts', 'build-fm-helper.mjs');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Compile the helper through the packaged build script rather than invoking
|
|
62
|
+
* swiftc here: the script owns the `__info_plist` embedding and the ad-hoc
|
|
63
|
+
* signature, and a second copy of those flags would drift into a binary that
|
|
64
|
+
* TCC kills on the first mic or speech request.
|
|
65
|
+
*/
|
|
66
|
+
function compileHelper(output) {
|
|
58
67
|
try {
|
|
59
68
|
mkdirSync(dirname(output), { recursive: true });
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const arch = process.arch === 'arm64' ? 'arm64' : 'x86_64';
|
|
66
|
-
execFileSync(swiftc, [
|
|
67
|
-
'-parse-as-library',
|
|
68
|
-
'-target',
|
|
69
|
-
`${arch}-apple-macos26.0`,
|
|
70
|
-
source,
|
|
71
|
-
'-o',
|
|
72
|
-
output,
|
|
73
|
-
], {
|
|
69
|
+
const script = buildScriptPath();
|
|
70
|
+
if (!existsSync(script)) {
|
|
71
|
+
return { available: false, reason: `Foundation Models helper build script missing: ${script}` };
|
|
72
|
+
}
|
|
73
|
+
execFileSync(process.execPath, [script, '--out', output], {
|
|
74
74
|
stdio: ['ignore', 'ignore', 'pipe'],
|
|
75
|
-
timeout:
|
|
75
|
+
timeout: 60_000,
|
|
76
76
|
});
|
|
77
|
+
if (!isExecutable(output)) {
|
|
78
|
+
return { available: false, reason: 'Foundation Models helper build produced no binary' };
|
|
79
|
+
}
|
|
77
80
|
chmodSync(output, 0o755);
|
|
78
81
|
return { available: true, path: output };
|
|
79
82
|
}
|
|
@@ -81,6 +84,21 @@ function compileHelper(source, output) {
|
|
|
81
84
|
return { available: false, reason: `failed to build Foundation Models helper: ${String(err).slice(0, 160)}` };
|
|
82
85
|
}
|
|
83
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* True when the binary carries the usage descriptions TCC demands before it will
|
|
89
|
+
* prompt for the microphone or speech recognition. A binary built by an older
|
|
90
|
+
* build script has none, and the failure mode is not a denied request but a
|
|
91
|
+
* SIGABRT the moment voice is used — so a plist-less bundled binary is worth
|
|
92
|
+
* rebuilding from source even though it serves the judge path perfectly well.
|
|
93
|
+
*/
|
|
94
|
+
function hasVoiceUsageDescriptions(path) {
|
|
95
|
+
try {
|
|
96
|
+
return readFileSync(path).includes('NSSpeechRecognitionUsageDescription');
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
84
102
|
export function clearFoundationModelsHelperForTests() {
|
|
85
103
|
helperPathCache = null;
|
|
86
104
|
stopFoundationModelsHelper();
|
|
@@ -100,21 +118,30 @@ export function resolveFoundationModelsHelper() {
|
|
|
100
118
|
return helperPathCache;
|
|
101
119
|
}
|
|
102
120
|
const bundled = bundledHelperPath();
|
|
103
|
-
|
|
121
|
+
const bundledUsable = isExecutable(bundled);
|
|
122
|
+
if (bundledUsable && hasVoiceUsageDescriptions(bundled)) {
|
|
104
123
|
helperPathCache = { available: true, path: bundled };
|
|
105
124
|
return helperPathCache;
|
|
106
125
|
}
|
|
107
126
|
const source = sourcePath();
|
|
108
127
|
if (!existsSync(source)) {
|
|
109
|
-
helperPathCache =
|
|
128
|
+
helperPathCache = bundledUsable
|
|
129
|
+
? { available: true, path: bundled }
|
|
130
|
+
: { available: false, reason: 'Foundation Models helper source not packaged' };
|
|
110
131
|
return helperPathCache;
|
|
111
132
|
}
|
|
112
133
|
const cached = cachedHelperPath();
|
|
113
|
-
if (isExecutable(cached) && !sourceIsNewer(source, cached)) {
|
|
134
|
+
if (isExecutable(cached) && hasVoiceUsageDescriptions(cached) && !sourceIsNewer(source, cached)) {
|
|
114
135
|
helperPathCache = { available: true, path: cached };
|
|
115
136
|
return helperPathCache;
|
|
116
137
|
}
|
|
117
|
-
|
|
138
|
+
const compiled = compileHelper(cached);
|
|
139
|
+
// A bundled binary that predates the plist still runs the judge; keep it as
|
|
140
|
+
// the degraded fallback rather than losing the helper entirely when this
|
|
141
|
+
// machine has no Swift toolchain to rebuild with.
|
|
142
|
+
helperPathCache = compiled.available || !bundledUsable
|
|
143
|
+
? compiled
|
|
144
|
+
: { available: true, path: bundled };
|
|
118
145
|
return helperPathCache;
|
|
119
146
|
}
|
|
120
147
|
function rejectAllPending(reason) {
|
|
@@ -270,7 +297,17 @@ export const RECORD_MAX_MS = 30_000;
|
|
|
270
297
|
*/
|
|
271
298
|
export async function recordWithHelper(outPath, opts = {}) {
|
|
272
299
|
const maxMs = Math.min(opts.maxMs ?? RECORD_MAX_MS, 120_000);
|
|
273
|
-
|
|
300
|
+
let response;
|
|
301
|
+
try {
|
|
302
|
+
response = await requestHelper({ type: 'record', wav: outPath, maxMs }, maxMs + 15_000);
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
// Peer silence is the signal, not the end of it: the helper allows one
|
|
306
|
+
// capture at a time, so a timed-out record leaves its slot armed and every
|
|
307
|
+
// later press answers `busy`. Release it before surfacing the failure.
|
|
308
|
+
await stopHelperRecording({ cancel: true }).catch(() => false);
|
|
309
|
+
throw err;
|
|
310
|
+
}
|
|
274
311
|
if (response.cancelled === true) {
|
|
275
312
|
throw new Error('record_cancelled');
|
|
276
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation-models-helper.js","sourceRoot":"","sources":["../src/foundation-models-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAuC,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAcpC,IAAI,eAAe,GAAwC,IAAI,CAAC;AAChE,IAAI,aAAa,GAA0C,IAAI,CAAC;AAChE,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE3C,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,wEAAwE;AACxE,4EAA4E;AAC5E,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,mFAAmF;AACnF,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,WAAW;IAClB,mFAAmF;IACnF,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B;IACtC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3D,kFAAkF;IAClF,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,yBAAyB,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc;IACnD,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc;IACnD,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;YAClE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,YAAY,CAAC,MAAM,EAAE;YACnB,mBAAmB;YACnB,SAAS;YACT,GAAG,IAAI,kBAAkB;YACzB,MAAM;YACN,IAAI;YACJ,MAAM;SACP,EAAE;YACD,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YACnC,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,6CAA6C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAChH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,eAAe,GAAG,IAAI,CAAC;IACvB,0BAA0B,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAC5C,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;QACvC,eAAe,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;QAClG,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAChD,IAAI,OAAO,EAAE,CAAC;QACZ,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;YACrC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;YACpC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,OAAO,EAAE,EAAE,CAAC;QACtF,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,eAAe,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACrD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,eAAe,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;QAC/F,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC3D,eAAe,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACpD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,eAAe,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,QAAQ,GAAG,6BAA6B,EAAE,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,sCAAsC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC;IAEjE,YAAY,GAAG,EAAE,CAAC;IAClB,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE;QACvC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAChD,YAAY,IAAI,KAAK,CAAC;QACtB,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,OAAO,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAI,IAAI;gBAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI;YAAE,KAAK,CAAC,MAAM,EAAE,oCAAoC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACxC,aAAa,GAAG,IAAI,CAAC;QACrB,gBAAgB,CAAC,oCAAoC,IAAI,IAAI,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAChC,aAAa,GAAG,IAAI,CAAC;QACrB,gBAAgB,CAAC,mCAAmC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,MAAM,EAAE,mDAAmD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,IAAI,EAAE,IAAI,IAAI;QAAE,OAAO;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,OAAgC,EAAE,SAAS,GAAG,yBAAyB;IAC5F,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAClE,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACvD,IAAI,GAAG,EAAE,CAAC;gBACR,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAC/C,MAAM,QAAQ,GAAG,6BAA6B,EAAE,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,sCAAsC;SACvG,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACxE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,MAAc,EAAE,YAAqB;IACpF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;QACnC,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,YAAY;QACZ,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;IACH,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACxF,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IACnF,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IACjF,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7D,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,MAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EACnE,qBAAqB,CACtB,CAAC;IACF,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,OAA2B,EAAE;IAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EACvC,KAAK,GAAG,MAAM,CACf,CAAC;IACF,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO;QACL,GAAG,EAAE,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;QAC9D,UAAU,EAAE,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7E,UAAU,EAAE,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACtF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA6B,EAAE;IACvE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,EAAE,EACvD,MAAM,CACP,CAAC;IACF,OAAO,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC;AACnC,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,OAA2D,EAAE;IAE7D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAChC,gBAAgB,CACjB,CAAC;IACF,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAY,EACZ,OAAe,EACf,OAA2D,EAAE;IAE7D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EACnD,gBAAgB,CACjB,CAAC;IACF,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO;QACL,GAAG,EAAE,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;QAC9D,UAAU,EAAE,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;QACjF,UAAU,EAAE,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAC9E,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"foundation-models-helper.js","sourceRoot":"","sources":["../src/foundation-models-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-migration.d.ts","sourceRoot":"","sources":["../src/hook-migration.ts"],"names":[],"mappings":"AAkGA,wBAAgB,oBAAoB,IAAI,IAAI,CA+B3C"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
const HOOK_EVENTS = [
|
|
5
|
+
'SessionStart',
|
|
6
|
+
'SessionEnd',
|
|
7
|
+
'PreToolUse',
|
|
8
|
+
'PostToolUse',
|
|
9
|
+
'PostToolUseFailure',
|
|
10
|
+
'Stop',
|
|
11
|
+
'Notification',
|
|
12
|
+
'UserPromptSubmit',
|
|
13
|
+
];
|
|
14
|
+
function buildHookCommand(eventName) {
|
|
15
|
+
return [
|
|
16
|
+
`PORT="\${AGENTDECK_PORT:-}"`,
|
|
17
|
+
`if [ -z "$PORT" ]; then`,
|
|
18
|
+
` for F in "$HOME/.agentdeck/daemon.json" "$HOME/Library/Containers/bound.serendipity.agent.deck/Data/Library/Application Support/AgentDeck/daemon.json" "$HOME/Library/Group Containers/group.bound.serendipity.agent.deck/daemon.json"; do`,
|
|
19
|
+
` [ -f "$F" ] || continue`,
|
|
20
|
+
` P=$(python3 -c "import json;d=json.load(open('$F'));print(d.get('httpPort') or d.get('port',''))" 2>/dev/null)`,
|
|
21
|
+
` [ -n "$P" ] && curl -sf --connect-timeout 0.2 --max-time 0.3 "http://127.0.0.1:$P/health" >/dev/null 2>&1 && { PORT="$P"; break; }`,
|
|
22
|
+
` done`,
|
|
23
|
+
`fi`,
|
|
24
|
+
`PORT="\${PORT:-9120}"`,
|
|
25
|
+
// Bounded timeouts: an unbounded POST to a restarting daemon outlives
|
|
26
|
+
// Claude's ~1.5s SessionEnd abort budget and surfaces as
|
|
27
|
+
// `SessionEnd hook [...] failed: Hook cancelled`. See hooks/src/install.ts.
|
|
28
|
+
`curl -sf --connect-timeout 0.2 --max-time 0.8 -X POST "http://127.0.0.1:$PORT/hooks/${eventName}" -H 'Content-Type: application/json' -d @- >/dev/null 2>&1 || true`,
|
|
29
|
+
].join('\n');
|
|
30
|
+
}
|
|
31
|
+
function buildHookEntry(eventName) {
|
|
32
|
+
const needsToolMatcher = ['PreToolUse', 'PostToolUse', 'PostToolUseFailure'].includes(eventName);
|
|
33
|
+
return {
|
|
34
|
+
matcher: needsToolMatcher ? '*' : '',
|
|
35
|
+
hooks: [{ type: 'command', command: buildHookCommand(eventName) }],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function applyHooks(settings) {
|
|
39
|
+
if (!settings.hooks)
|
|
40
|
+
settings.hooks = {};
|
|
41
|
+
for (const event of HOOK_EVENTS) {
|
|
42
|
+
if (!settings.hooks[event])
|
|
43
|
+
settings.hooks[event] = [];
|
|
44
|
+
settings.hooks[event] = settings.hooks[event].filter((h) => {
|
|
45
|
+
if (h.command?.includes('AGENTDECK_PORT') || h.command?.includes('localhost:9120'))
|
|
46
|
+
return false;
|
|
47
|
+
if (Array.isArray(h.hooks) && h.hooks.some((hh) => hh.command?.includes('AGENTDECK_PORT') || hh.command?.includes('localhost:9120'))) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
});
|
|
52
|
+
settings.hooks[event].push(buildHookEntry(event));
|
|
53
|
+
}
|
|
54
|
+
return settings;
|
|
55
|
+
}
|
|
56
|
+
function migrateHooks(settings) {
|
|
57
|
+
let migrated = false;
|
|
58
|
+
if (!settings.hooks)
|
|
59
|
+
return { settings, migrated };
|
|
60
|
+
for (const event of Object.keys(settings.hooks)) {
|
|
61
|
+
const hooks = settings.hooks[event];
|
|
62
|
+
if (!Array.isArray(hooks))
|
|
63
|
+
continue;
|
|
64
|
+
for (let i = 0; i < hooks.length; i++) {
|
|
65
|
+
const hook = hooks[i];
|
|
66
|
+
if (hook.command?.includes('localhost:9120') && !hook.command?.includes('AGENTDECK_PORT')) {
|
|
67
|
+
hook.command = hook.command.replace(/localhost:9120/g, 'localhost:${AGENTDECK_PORT:-9120}');
|
|
68
|
+
migrated = true;
|
|
69
|
+
}
|
|
70
|
+
if (hook.type === 'command' && hook.command?.includes('AGENTDECK_PORT') && !hook.hooks) {
|
|
71
|
+
hooks[i] = { matcher: '', hooks: [{ type: hook.type, command: hook.command }] };
|
|
72
|
+
migrated = true;
|
|
73
|
+
}
|
|
74
|
+
if (Array.isArray(hook.hooks)) {
|
|
75
|
+
for (const inner of hook.hooks) {
|
|
76
|
+
if (inner.command?.includes('localhost:9120') && !inner.command?.includes('AGENTDECK_PORT')) {
|
|
77
|
+
inner.command = inner.command.replace(/localhost:9120/g, 'localhost:${AGENTDECK_PORT:-9120}');
|
|
78
|
+
migrated = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return { settings, migrated };
|
|
85
|
+
}
|
|
86
|
+
export function migrateHooksIfNeeded() {
|
|
87
|
+
try {
|
|
88
|
+
const settingsPath = join(homedir(), '.claude', 'settings.local.json');
|
|
89
|
+
if (!existsSync(settingsPath))
|
|
90
|
+
return;
|
|
91
|
+
const raw = readFileSync(settingsPath, 'utf-8');
|
|
92
|
+
if (!raw.includes('AGENTDECK_PORT') && !raw.includes('localhost:9120'))
|
|
93
|
+
return;
|
|
94
|
+
const settings = JSON.parse(raw);
|
|
95
|
+
let { migrated } = migrateHooks(settings);
|
|
96
|
+
if (raw.includes('AGENTDECK_PORT') && !raw.includes('daemon.json')) {
|
|
97
|
+
applyHooks(settings);
|
|
98
|
+
migrated = true;
|
|
99
|
+
}
|
|
100
|
+
// Structured AskUserQuestion overlays need the failure/interrupt boundary.
|
|
101
|
+
// Add only this missing event here: the legacy bridge-local applyHooks
|
|
102
|
+
// helper intentionally remains out of the normal refresh path.
|
|
103
|
+
if (!settings.hooks?.PostToolUseFailure) {
|
|
104
|
+
settings.hooks ??= {};
|
|
105
|
+
settings.hooks.PostToolUseFailure = [buildHookEntry('PostToolUseFailure')];
|
|
106
|
+
migrated = true;
|
|
107
|
+
}
|
|
108
|
+
if (migrated) {
|
|
109
|
+
writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Best effort only; hook migration must not block session startup.
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=hook-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-migration.js","sourceRoot":"","sources":["../src/hook-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* App Store Swift build, so spawning a subprocess here does not touch the
|
|
16
16
|
* Apple 2.5.2 sandbox invariants.
|
|
17
17
|
*/
|
|
18
|
+
import { type BleLinkSnapshot } from '../ble-sync-status.js';
|
|
18
19
|
/**
|
|
19
20
|
* Start (or no-op if already running) the managed BLE sync for the first
|
|
20
21
|
* configured iDotMatrix device, fed by the daemon at `httpPort`.
|
|
@@ -30,4 +31,11 @@ export declare function startIDotMatrixSync(httpPort: number): void;
|
|
|
30
31
|
* (re-config restart), just signal the child and return synchronously.
|
|
31
32
|
*/
|
|
32
33
|
export declare function stopIDotMatrixSync(awaitFarewell?: boolean): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Live link state for the configured iDotMatrix panel, in the `BLEMatrixHealth`
|
|
36
|
+
* wire shape. Called by `IDotMatrixModule.statusSnapshot()` so `/health` reports
|
|
37
|
+
* whether the panel is actually being driven — the configured-device list alone
|
|
38
|
+
* left every dashboard drawing a streaming panel as disconnected.
|
|
39
|
+
*/
|
|
40
|
+
export declare function idotMatrixLinkSnapshot(configuredDeviceCount: number): BleLinkSnapshot;
|
|
33
41
|
//# sourceMappingURL=idotmatrix-daemon-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idotmatrix-daemon-sync.d.ts","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"idotmatrix-daemon-sync.d.ts","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAgCnF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA8B1D;AAwDD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,qBAAqB,EAAE,MAAM,GAAG,eAAe,CAErF"}
|
|
@@ -17,12 +17,15 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { loadIDotMatrixDevices } from './idotmatrix-settings.js';
|
|
19
19
|
import { createSyncCycleSquelch, spawnPythonSync, terminateSyncChild } from '../ble-sync-spawn.js';
|
|
20
|
+
import { createBleLinkTracker } from '../ble-sync-status.js';
|
|
20
21
|
import { getBleRuntimeStatus } from '../python-ble-runtime.js';
|
|
21
22
|
let child = null;
|
|
22
23
|
let stopping = false;
|
|
23
24
|
let respawnTimer = null;
|
|
24
25
|
let consecutiveFailures = 0;
|
|
25
26
|
let startedAt = 0;
|
|
27
|
+
/** Live BLE link state, fed by the child's `AGENTDECK_STATUS` lines. */
|
|
28
|
+
const link = createBleLinkTracker();
|
|
26
29
|
/** Address+brightness of the device the running child is driving (for reload-on-change). */
|
|
27
30
|
let runningKey = null;
|
|
28
31
|
/** Identity of the driven config — a change means the running child is stale. */
|
|
@@ -66,6 +69,9 @@ export function startIDotMatrixSync(httpPort) {
|
|
|
66
69
|
const runtime = getBleRuntimeStatus();
|
|
67
70
|
if (!runtime.ready || !runtime.python) {
|
|
68
71
|
log(`BLE sync unavailable (${runtime.reason}); run \`agentdeck ble setup\``);
|
|
72
|
+
// Record *why* nothing is driving the panel so /health can say so instead
|
|
73
|
+
// of reporting an unexplained `connected:false`.
|
|
74
|
+
link.noteUnavailable(`BLE sync unavailable: ${runtime.reason}`);
|
|
69
75
|
return;
|
|
70
76
|
}
|
|
71
77
|
spawnSync(runtime.python, runtime.paths.scripts.idotmatrixSync, httpPort);
|
|
@@ -83,13 +89,12 @@ function spawnSync(venvPython, syncScript, httpPort) {
|
|
|
83
89
|
squelch.logStart(`Starting BLE sync for ${device.name ?? addr} (bridge ${url}, brightness ${brightness}%)`);
|
|
84
90
|
startedAt = Date.now();
|
|
85
91
|
runningKey = deviceKey(device);
|
|
92
|
+
link.noteSpawn();
|
|
86
93
|
// iDotMatrix software brightness boost canonical = 1.22 — keep in sync:
|
|
87
94
|
// sync.py (run_sync boost default), IDotMatrixModule.swift (boostBrightnessContrast).
|
|
88
95
|
// stdout/stderr are captured into small rings so clean exits and crashes both
|
|
89
96
|
// leave enough context without flooding the daemon log while running.
|
|
90
|
-
const { proc, stderrTail, outputTail } = spawnPythonSync(venvPython, [
|
|
91
|
-
syncScript, '-a', addr, '-u', url, '-b', String(brightness), '--boost', '1.22',
|
|
92
|
-
]);
|
|
97
|
+
const { proc, stderrTail, outputTail } = spawnPythonSync(venvPython, [syncScript, '-a', addr, '-u', url, '-b', String(brightness), '--boost', '1.22'], { onStatus: (payload) => link.applyStatusLine(payload) });
|
|
93
98
|
child = proc;
|
|
94
99
|
proc.on('error', (err) => {
|
|
95
100
|
log(`BLE sync failed to spawn: ${err.message}`);
|
|
@@ -110,6 +115,7 @@ function spawnSync(venvPython, syncScript, httpPort) {
|
|
|
110
115
|
const delay = Math.min(MAX_BACKOFF_MS, BASE_BACKOFF_MS * consecutiveFailures);
|
|
111
116
|
const tail = stderrTail() || outputTail();
|
|
112
117
|
const why = tail ? `; output: ${tail}` : '';
|
|
118
|
+
link.noteExit(tail || `BLE sync exited (code=${code} signal=${signal})`, Date.now() + delay);
|
|
113
119
|
squelch.logExit(code, signal, uptimeMs, tail, `BLE sync exited (code=${code} signal=${signal})${why}; respawning in ${Math.round(delay / 1000)}s`);
|
|
114
120
|
respawnTimer = setTimeout(() => spawnSync(venvPython, syncScript, httpPort), delay);
|
|
115
121
|
if (respawnTimer.unref)
|
|
@@ -134,6 +140,7 @@ export async function stopIDotMatrixSync(awaitFarewell = false) {
|
|
|
134
140
|
const proc = child;
|
|
135
141
|
child = null;
|
|
136
142
|
runningKey = null;
|
|
143
|
+
link.noteUnavailable('BLE sync stopped');
|
|
137
144
|
if (!proc)
|
|
138
145
|
return;
|
|
139
146
|
if (awaitFarewell) {
|
|
@@ -148,4 +155,13 @@ export async function stopIDotMatrixSync(awaitFarewell = false) {
|
|
|
148
155
|
}
|
|
149
156
|
}
|
|
150
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Live link state for the configured iDotMatrix panel, in the `BLEMatrixHealth`
|
|
160
|
+
* wire shape. Called by `IDotMatrixModule.statusSnapshot()` so `/health` reports
|
|
161
|
+
* whether the panel is actually being driven — the configured-device list alone
|
|
162
|
+
* left every dashboard drawing a streaming panel as disconnected.
|
|
163
|
+
*/
|
|
164
|
+
export function idotMatrixLinkSnapshot(configuredDeviceCount) {
|
|
165
|
+
return link.snapshot(configuredDeviceCount);
|
|
166
|
+
}
|
|
151
167
|
//# sourceMappingURL=idotmatrix-daemon-sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idotmatrix-daemon-sync.js","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"idotmatrix-daemon-sync.js","sourceRoot":"","sources":["../../src/idotmatrix/idotmatrix-daemon-sync.ts"],"names":[],"mappings":"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"}
|