@deepseek-insight/dsi 0.8.3 → 0.8.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.
Files changed (110) hide show
  1. package/.agents/skills/dsi-gb-verifier/SKILL.md +143 -0
  2. package/build/client/_app/immutable/assets/0.C6AGVUc8.css +2 -0
  3. package/build/client/_app/immutable/assets/{2.BPprd30B.css → 2.gXzZuuwh.css} +1 -1
  4. package/build/client/_app/immutable/chunks/BFOY8uwF.js +1 -0
  5. package/build/client/_app/immutable/chunks/CrTRqozz.js +1 -0
  6. package/build/client/_app/immutable/chunks/DxGYLnDH.js +1 -0
  7. package/build/client/_app/immutable/chunks/HD-mJtOS.js +6 -0
  8. package/build/client/_app/immutable/chunks/{BoHeiMOU.js → b4-Ro8NH.js} +1 -1
  9. package/build/client/_app/immutable/chunks/hC0DBYN6.js +2 -0
  10. package/build/client/_app/immutable/entry/{app.S_mxIoOg.js → app.DHewwbUQ.js} +2 -2
  11. package/build/client/_app/immutable/entry/start.C0PcwkeZ.js +1 -0
  12. package/build/client/_app/immutable/nodes/{0.6dTmg1Xv.js → 0.CP10wY64.js} +1 -1
  13. package/build/client/_app/immutable/nodes/{1.D20V6eTe.js → 1.qWvE0DiU.js} +1 -1
  14. package/build/client/_app/immutable/nodes/{2.BHcBdFqH.js → 2.Nw7iFtoh.js} +224 -223
  15. package/build/client/_app/version.json +1 -1
  16. package/build/handler.js +4 -4
  17. package/build/index.js +4 -4
  18. package/build/server/chunks/chunks/{app-config.svelte.js-BM4WbMFB.js → app-config.svelte.js-DCc9d7A4.js} +6 -2
  19. package/build/server/chunks/chunks/{config.js-vThvQeMn.js → config.js-s6iKwHD7.js} +3 -2
  20. package/build/server/chunks/chunks/{db.js-DQm6CZ_r.js → db.js-CxxWK5sn.js} +2 -2
  21. package/build/server/chunks/chunks/{db2.js-DUhFxA3a.js → db2.js-DwJ9lySe.js} +2 -2
  22. package/build/server/chunks/chunks/{dsh-connection.js-BgeraFA2.js → dsh-connection.js-Chtudg1p.js} +3 -3
  23. package/build/server/chunks/chunks/{dsh-events.js-BUkLR6ZV.js → dsh-events.js-BUdvZQmd.js} +6 -3
  24. package/build/server/chunks/chunks/{git-probe.js-CLF37SRh.js → git-probe.js-BX9FPnet.js} +3 -3
  25. package/build/server/chunks/chunks/{insight-config.js-Dp_2gB5J.js → insight-config.js-Db5fe5Df.js} +9 -5
  26. package/build/server/chunks/chunks/{internal2.js-Ba5p8uFM.js → internal2.js-CaZaz-a9.js} +3 -3
  27. package/build/server/chunks/chunks/ledger-stats.js-BWACyDPg.js +72 -0
  28. package/build/server/chunks/chunks/{registry.js-C2MdrfNv.js → registry.js-syaTZ_-A.js} +403 -34
  29. package/build/server/chunks/chunks/{settings-document.js-Gw1puaik.js → settings-document.js-BHESJ7im.js} +2 -2
  30. package/build/server/chunks/chunks/{state.js-BSiAgink.js → state.js-oYjf745s.js} +3 -3
  31. package/build/server/chunks/chunks/{watcher.js-BVKnoQUw.js → watcher.js-Ci9jsM5l.js} +5 -5
  32. package/build/server/chunks/entries/endpoints/api/a2a/_id_/{_server.ts.js-BjzdVwdY.js → _server.ts.js-CHaYhzjy.js} +5 -5
  33. package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-3kQCQuHT.js → _server.ts.js-CdyqA85c.js} +8 -8
  34. package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-BUBTCLFn.js → _server.ts.js-DO_FS5b4.js} +8 -8
  35. package/build/server/chunks/entries/endpoints/api/browser/_id_/activate/{_server.ts.js-CogDOHKu.js → _server.ts.js-D7Be4JUf.js} +5 -5
  36. package/build/server/chunks/entries/endpoints/api/browser/_id_/close/{_server.ts.js-xOt7LnS1.js → _server.ts.js-CGkm2H-U.js} +5 -5
  37. package/build/server/chunks/entries/endpoints/api/browser/_id_/closetab/{_server.ts.js-CSmVPvSM.js → _server.ts.js-D7SLUfOo.js} +5 -5
  38. package/build/server/chunks/entries/endpoints/api/browser/_id_/element/{_server.ts.js-BA40oCDW.js → _server.ts.js-C3d_JV-q.js} +5 -5
  39. package/build/server/chunks/entries/endpoints/api/browser/_id_/input/{_server.ts.js-EX7eVzjp.js → _server.ts.js-DW0hyVML.js} +5 -5
  40. package/build/server/chunks/entries/endpoints/api/browser/_id_/mcp/{_server.ts.js-B_EcmyFt.js → _server.ts.js-Ev-hdBlf.js} +5 -5
  41. package/build/server/chunks/entries/endpoints/api/browser/_id_/navigate/{_server.ts.js-C3dYbyS3.js → _server.ts.js-DZ8-wocV.js} +5 -5
  42. package/build/server/chunks/entries/endpoints/api/browser/_id_/opentab/{_server.ts.js-CMhJJO25.js → _server.ts.js-aapPrIQK.js} +11 -9
  43. package/build/server/chunks/entries/endpoints/api/browser/_id_/page/{_server.ts.js-DIW4uI2S.js → _server.ts.js-DANA_hMd.js} +5 -5
  44. package/build/server/chunks/entries/endpoints/api/browser/_id_/stream/{_server.ts.js-CIPIlq5X.js → _server.ts.js-BqfseXFy.js} +26 -9
  45. package/build/server/chunks/entries/endpoints/api/browser/_id_/tabs/{_server.ts.js-CoEdOiml.js → _server.ts.js-DFFF9qe-.js} +5 -5
  46. package/build/server/chunks/entries/endpoints/api/browser/_id_/viewport/{_server.ts.js-CdELUoGT.js → _server.ts.js-ek6-D4Zm.js} +5 -5
  47. package/build/server/chunks/entries/endpoints/api/browser/{_server.ts.js-ea6HpNGh.js → _server.ts.js-CPjKy3ma.js} +5 -5
  48. package/build/server/chunks/entries/endpoints/api/config/{_server.ts.js-C8XDnDwe.js → _server.ts.js-CWE9NP6g.js} +12 -5
  49. package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-BFmWshpv.js → _server.ts.js-D-raYQon.js} +5 -5
  50. package/build/server/chunks/entries/endpoints/api/dsh/jobs/{_server.ts.js-DATWy5mQ.js → _server.ts.js-CI4dEHFY.js} +5 -5
  51. package/build/server/chunks/entries/endpoints/api/dsh/jobs/follow/{_server.ts.js-CugOD1Zd.js → _server.ts.js-cnjoSLtY.js} +5 -5
  52. package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-DCupM4da.js → _server.ts.js-0UUtapX5.js} +5 -5
  53. package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-Bh1btvr9.js → _server.ts.js-MK5ezU8u.js} +5 -5
  54. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-Cb8SBWVw.js → _server.ts.js-CEiMgzjC.js} +5 -5
  55. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-WI9yH2iG.js → _server.ts.js-wGEl1fuF.js} +5 -5
  56. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-bN9adUqz.js → _server.ts.js-Bz7u2BlD.js} +5 -5
  57. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/changes/{_server.ts.js-Bxlm966G.js → _server.ts.js-yue5aEjr.js} +5 -5
  58. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-CM-raN_Q.js → _server.ts.js-BFSs5T2m.js} +5 -5
  59. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-BzP30TXW.js → _server.ts.js-C2i85wQy.js} +7 -70
  60. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-DvNkrTaY.js → _server.ts.js-_toO4f4W.js} +5 -5
  61. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-DXbCrefw.js → _server.ts.js-BGJnDV85.js} +5 -5
  62. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-B7YRQhuJ.js → _server.ts.js-CQCJg8U8.js} +6 -6
  63. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-C_AEaLLJ.js → _server.ts.js-0ADvdE79.js} +5 -5
  64. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/path/{_server.ts.js-Dj-pF5ik.js → _server.ts.js-DyO4T1Ro.js} +4 -4
  65. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-BX9FWJ6g.js → _server.ts.js-CIY7oimw.js} +5 -5
  66. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-CQ2Bmtu4.js → _server.ts.js-B-9faNHX.js} +5 -5
  67. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-Ha7xjnKW.js → _server.ts.js-E7-0zfiH.js} +5 -5
  68. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-BOg6llHk.js → _server.ts.js-CODtLQ3Q.js} +5 -5
  69. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-DBqGALzZ.js → _server.ts.js-BiSxsU-j.js} +5 -5
  70. package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-CvA8WDDb.js → _server.ts.js-C0WJnv2b.js} +5 -5
  71. package/build/server/chunks/entries/endpoints/api/dsh/subagents/_server.ts.js-D5bc4xg4.js +72 -0
  72. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js-BfjNH40j.js → _server.ts.js-23ycAyUg.js} +5 -5
  73. package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-De_qumyr.js → _server.ts.js-B4w5Jh7f.js} +5 -5
  74. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-tFpJJHCb.js → _server.ts.js-VQLxDbFE.js} +5 -5
  75. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-DVx5GGA_.js → _server.ts.js-vs5N5Cya.js} +5 -5
  76. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/{_server.ts.js-DuKT-aZp.js → _server.ts.js-BOWhoBHV.js} +5 -5
  77. package/build/server/chunks/entries/endpoints/api/prompts/_id_/{_server.ts.js-DsWFidFY.js → _server.ts.js-aDEAGfJe.js} +5 -5
  78. package/build/server/chunks/entries/endpoints/api/prompts/{_server.ts.js-C6j0adQs.js → _server.ts.js-BZ-nRrTp.js} +5 -5
  79. package/build/server/chunks/entries/endpoints/api/prompts/use/{_server.ts.js-BChAg4hm.js → _server.ts.js-CkDY1PQ7.js} +5 -5
  80. package/build/server/chunks/entries/endpoints/api/settings/{_server.ts.js-BPSHqbZN.js → _server.ts.js-CHvgF47Y.js} +4 -4
  81. package/build/server/chunks/entries/endpoints/api/terminal/{_server.ts.js-D5CbUe5k.js → _server.ts.js-CbRT4vBo.js} +4 -4
  82. package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-B-5YihUA.js → _server.ts.js-BwD0KaXy.js} +7 -7
  83. package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-DT5jRZFE.js → _server.ts.js-DgbMRh3d.js} +7 -7
  84. package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-DtW-utrd.js → _server.ts.js-DRqZawic.js} +7 -7
  85. package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-8AIAo9jX.js → _server.ts.js-CTXwwwB1.js} +7 -7
  86. package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-CMw96vjY.js → _server.ts.js-B4aJBY2w.js} +7 -7
  87. package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-DKufa14_.js → _server.ts.js-CDJJA18L.js} +7 -7
  88. package/build/server/chunks/entries/{hooks.server.js-B-e4_ekh.js → hooks.server.js-Iel6oE7w.js} +3 -3
  89. package/build/server/chunks/entries/pages/{_error.svelte.js-D8-G0evO.js → _error.svelte.js-B-wdFjVG.js} +4 -4
  90. package/build/server/chunks/entries/pages/{_page.server.ts.js-7x6ZfGoB.js → _page.server.ts.js-CaoeQzem.js} +3 -3
  91. package/build/server/chunks/entries/pages/{_page.svelte.js-7xWLRsiZ.js → _page.svelte.js-CY7zcWr4.js} +1713 -1077
  92. package/build/server/chunks/{handler-BedQ0jP-.js → handler-DYk4NJto.js} +3 -3
  93. package/build/server/chunks/{index.js-BF6tPPQs.js → index.js-kL9MZ99b.js} +2 -2
  94. package/build/server/chunks/{manifest.js-3c0p7QAl.js → manifest.js-BrMLQqec.js} +67 -60
  95. package/build/server/chunks/nodes/{0.js-B3i7sGR_.js → 0.js-BembYTTr.js} +3 -3
  96. package/build/server/chunks/nodes/1.js-CKJjyWGZ.js +9 -0
  97. package/build/server/chunks/nodes/{2.js-CgnRGwm6.js → 2.js-BezA2RPm.js} +10 -10
  98. package/package.json +1 -1
  99. package/skills/{dsi-kb-scenario → dsi-fc-scenario}/SKILL.md +11 -6
  100. package/template/.dsi/prompts.sqlite-shm +0 -0
  101. package/template/.dsi/prompts.sqlite-wal +0 -0
  102. package/template/.dsi/settings.yaml +2 -2
  103. package/build/client/_app/immutable/assets/0.DyOAkKS-.css +0 -2
  104. package/build/client/_app/immutable/chunks/C9QAOGL1.js +0 -2
  105. package/build/client/_app/immutable/chunks/D-Rolhzs.js +0 -1
  106. package/build/client/_app/immutable/chunks/NcOjFWr3.js +0 -6
  107. package/build/client/_app/immutable/chunks/QJuSx3RG.js +0 -1
  108. package/build/client/_app/immutable/chunks/sC_8Ss7w.js +0 -1
  109. package/build/client/_app/immutable/entry/start.BPQAB3iV.js +0 -1
  110. package/build/server/chunks/nodes/1.js-eUf50uxI.js +0 -9
@@ -1,4 +1,4 @@
1
- import { d as readBrowserConfig } from './insight-config.js-Dp_2gB5J.js';
1
+ import { d as readBrowserConfig } from './insight-config.js-Db5fe5Df.js';
2
2
  import { mkdirSync, rmSync, readdirSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { spawn, spawnSync } from 'node:child_process';
@@ -95,6 +95,22 @@ var BrowserRelay = class {
95
95
  };
96
96
  for (const sub of this.subscribers) sub(this.latest);
97
97
  }
98
+ /** Navigate reseed (ADR-0039 follow-up, 2026-10-25): unlike seed(), this
99
+ * REPLACES an existing frame. A discrete navigation under a paced
100
+ * screencast (everyNthFrame > 2, headless) composites too few frames for
101
+ * Chrome to emit anything — and the ring still holds the OPENER's
102
+ * synthesized frame, which seed() refuses to advance past, so the glass
103
+ * would freeze on the old face forever. A navigation is a real face
104
+ * change: it must land even over a synthesized frame. */
105
+ reseed(frame) {
106
+ if (!this.cdp) throw new RelayClosedError();
107
+ this.seq += 1;
108
+ this.latest = {
109
+ ...frame,
110
+ seq: this.seq
111
+ };
112
+ for (const sub of this.subscribers) sub(this.latest);
113
+ }
98
114
  latestFrame() {
99
115
  if (!this.cdp) throw new RelayClosedError();
100
116
  return this.latest;
@@ -362,6 +378,16 @@ var BrowserRegistry = class {
362
378
  if (!h) throw new BrowserRegistryRefusal("CLOSED", "no active tab handle");
363
379
  return h.relay;
364
380
  }
381
+ /** D5 amendment 2026-10-27: watch the active pointer. The stream route
382
+ * re-binds its relay on every fire so a brain-driven activate (creation
383
+ * auto-focus) repoints the MIRROR, not just the strip highlight. */
384
+ onActiveChange(id, cb) {
385
+ const e = this.peek(id);
386
+ (e.activeListeners ??= /* @__PURE__ */ new Set()).add(cb);
387
+ return () => {
388
+ e.activeListeners?.delete(cb);
389
+ };
390
+ }
365
391
  /** Resolve a verb's target handle: explicit targetId, else the active tab
366
392
  * (ADR-0040 D3 — one verb seam, optional pointer). An ENUMERATED but
367
393
  * not-yet-attached target attaches lazily here — attach is not stream
@@ -398,6 +424,7 @@ var BrowserRegistry = class {
398
424
  page
399
425
  }).catch(() => void 0);
400
426
  e.tabs.set(tid, handle);
427
+ (e.tabOrder ??= []).push(tid);
401
428
  if (tid === key) break;
402
429
  }
403
430
  }
@@ -405,6 +432,48 @@ var BrowserRegistry = class {
405
432
  if (!h) throw new BrowserRegistryRefusal("NO_TARGET", "no such tab: " + key);
406
433
  return h;
407
434
  }
435
+ /** BUG 2026-10-27 (brain churn leaves stale handles): the registry's
436
+ * cached CDP sessions can DIE while the pages live on (brain re-home,
437
+ * MCP client reconnect) — listTabs then answers empty, every verb
438
+ * NO_TARGETs, and the mirror starves on one frozen frame. Heal: re-probe
439
+ * every live page with a FRESH CDP session, replace dead handles, and
440
+ * remap the pointer when its target is gone. Called from listTabs when
441
+ * enumeration comes back empty — the panel's 2s poll then heals the
442
+ * whole session without operator action. */
443
+ async healHandles(e) {
444
+ for (const page of e.context.pages()) {
445
+ let scdp = null;
446
+ let tid = null;
447
+ try {
448
+ scdp = await e.context.newCDPSession(page);
449
+ tid = (await scdp.send("Target.getTargetInfo")).targetInfo?.targetId ?? null;
450
+ } catch {
451
+ continue;
452
+ }
453
+ if (!tid || !scdp) {
454
+ await scdp?.detach().catch(() => void 0);
455
+ continue;
456
+ }
457
+ const old = e.tabs.get(tid);
458
+ if (old) {
459
+ if (!await old.cdp.send("Target.getTargetInfo").then(() => false).catch(() => true)) {
460
+ await scdp.detach().catch(() => void 0);
461
+ continue;
462
+ }
463
+ old.relay.stop();
464
+ await old.cdp.detach().catch(() => void 0);
465
+ const cfg = readBrowserConfig();
466
+ e.tabs.set(tid, {
467
+ targetId: tid,
468
+ cdp: scdp,
469
+ relay: new BrowserRelay(scdp, cfg.screencastQuality, cfg.screencastMaxFps),
470
+ page
471
+ });
472
+ if (!e.tabOrder.includes(tid)) e.tabOrder.push(tid);
473
+ } else await scdp.detach().catch(() => void 0);
474
+ }
475
+ if (e.activeTargetId && !e.tabs.has(e.activeTargetId)) e.activeTargetId = [...e.tabs.keys()][0] ?? null;
476
+ }
408
477
  /** Enumerate the context's page targets (ADR-0040 D5 feed) — type:page
409
478
  * only; iframes/omnibox/service workers are chrome noise (wire capture
410
479
  * 2026-10-24). Read-only: never attaches, never streams (D1). */
@@ -412,12 +481,22 @@ var BrowserRegistry = class {
412
481
  const e = this.peek(id);
413
482
  const src = (e.activeTargetId ? e.tabs.get(e.activeTargetId) : null)?.cdp ?? [...e.tabs.values()][0]?.cdp;
414
483
  if (!src) return [];
415
- return ((await src.send("Target.getTargets").catch(() => null))?.targetInfos ?? []).filter((t) => t.type === "page").map((t) => ({
484
+ let infos = ((await src.send("Target.getTargets").catch(() => null))?.targetInfos ?? []).filter((t) => t.type === "page");
485
+ if (infos.length === 0 && e.context.pages().length > 0) {
486
+ await this.healHandles(e);
487
+ infos = ((await ((e.activeTargetId ? e.tabs.get(e.activeTargetId) : null)?.cdp ?? [...e.tabs.values()][0]?.cdp)?.send("Target.getTargets").catch(() => null))?.targetInfos ?? []).filter((t) => t.type === "page");
488
+ }
489
+ return infos.map((t) => ({
416
490
  targetId: t.targetId,
417
491
  url: t.url,
418
492
  title: t.title,
419
493
  active: t.targetId === e.activeTargetId
420
- }));
494
+ })).sort((a, b) => {
495
+ const order = e.tabOrder ?? [];
496
+ const ia = order.indexOf(a.targetId);
497
+ const ib = order.indexOf(b.targetId);
498
+ return (ia === -1 ? Infinity : ia) - (ib === -1 ? Infinity : ib);
499
+ });
421
500
  }
422
501
  /** Attach (lazily), seed the first frame, re-apply the viewport, and move
423
502
  * the active pointer (ADR-0040 D1/D2/D4). The OLD active relay pauses —
@@ -446,6 +525,9 @@ var BrowserRegistry = class {
446
525
  });
447
526
  }
448
527
  e.activeTargetId = targetId;
528
+ for (const l of e.activeListeners ?? []) try {
529
+ l(targetId);
530
+ } catch {}
449
531
  let url = "";
450
532
  let title = "";
451
533
  try {
@@ -538,6 +620,7 @@ var BrowserRegistry = class {
538
620
  context,
539
621
  tabs,
540
622
  activeTargetId,
623
+ tabOrder: activeTargetId ? [activeTargetId] : [],
541
624
  viewport: {
542
625
  width: Math.max(200, Math.min(1920, options.width ?? 730)),
543
626
  height: Math.max(120, Math.min(1080, options.height ?? 830))
@@ -557,6 +640,41 @@ var BrowserRegistry = class {
557
640
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
558
641
  };
559
642
  state().entries.set(id, entry);
643
+ if (typeof context.on === "function") context.on("page", (page) => {
644
+ (async () => {
645
+ for (let i = 0; i < 10; i += 1) {
646
+ await new Promise((r) => setTimeout(r, 300));
647
+ try {
648
+ const scdp = await context.newCDPSession(page);
649
+ const info = await scdp.send("Target.getTargetInfo").catch(() => null);
650
+ await scdp.detach().catch(() => void 0);
651
+ const tid = info?.targetInfo?.targetId;
652
+ if (!tid) continue;
653
+ if (!entry.tabOrder.includes(tid)) entry.tabOrder.push(tid);
654
+ if (entry.activeTargetId !== tid && !entry.closed) await this.activate(id, tid);
655
+ return;
656
+ } catch {}
657
+ }
658
+ })();
659
+ });
660
+ if (!entry.headless) {
661
+ await this.applyPanelViewport(entry, {
662
+ cdp,
663
+ relay
664
+ }).catch(() => void 0);
665
+ const birthShot = await cdp.send("Page.captureScreenshot", {
666
+ format: "jpeg",
667
+ quality: cfg.screencastQuality
668
+ }).catch(() => null);
669
+ if (birthShot?.data) relay.reseed({
670
+ seq: 0,
671
+ jpeg: birthShot.data,
672
+ metadata: {
673
+ seeded: true,
674
+ birth: true
675
+ }
676
+ });
677
+ }
560
678
  if (options.spawnMcp ?? true) {
561
679
  if (process.env.DSI_MCP_IN_PROCESS === "1") {
562
680
  evictBrainPort(brainPort, id);
@@ -678,18 +796,25 @@ var BrowserRegistry = class {
678
796
  });
679
797
  }
680
798
  /** Navigate the session's active page — public because causing page
681
- * damage is the only reliable way to make screencast emit a frame. */
799
+ * damage is the only reliable way to make screencast emit a frame.
800
+ * BUGFIX (ADR-0039 follow-up, 2026-10-25): at a paced cadence finer than
801
+ * everyNthFrame=2 (e.g. the operator's live screencastMaxFps: 10 →
802
+ * everyNthFrame 3), a HEADLESS single-damage navigate composites only
803
+ * 1–2 frames and Chrome emits NOTHING — the glass froze on the old face
804
+ * after every header navigate. A bounded no-frame grace re-fires the
805
+ * deterministic captureScreenshot seed (the activate()/resize idiom):
806
+ * pacing still governs LIVE video; a discrete navigation always lands. */
682
807
  async navigate(id, url, opts) {
683
808
  const e = this.peek(id);
684
809
  const h = await this.handleOf(e, opts?.targetId);
685
810
  await h.cdp.send("Page.enable").catch(() => void 0);
811
+ const prevSeq = h.relay.latestFrame()?.seq ?? -1;
686
812
  if (opts?.waitLoad) {
687
813
  const loaded = this.waitLoad(h);
688
814
  await h.cdp.send("Page.navigate", { url });
689
815
  await loaded;
690
- return;
691
- }
692
- await h.cdp.send("Page.navigate", { url });
816
+ } else await h.cdp.send("Page.navigate", { url });
817
+ this.seedAfterNavigate(h, prevSeq).catch(() => void 0);
693
818
  }
694
819
  /** Match the page viewport to the panel's glass box (ADR-0031
695
820
  * amendment 2): the screencast frame then equals the panel size, so
@@ -708,16 +833,240 @@ var BrowserRegistry = class {
708
833
  await handle.cdp.send("Page.enable").catch(() => void 0);
709
834
  const prevSeq = handle.relay.latestFrame()?.seq ?? -1;
710
835
  await this.applyPanelViewport(e, handle);
711
- await this.seedAfterResize(handle, prevSeq).catch(() => void 0);
712
- }
713
- /** ADR-0041 D3: a resize must REPAINT, not wait for the next page
714
- * change — the screencast speaks only on change, so a static page
715
- * keeps the old-aspect frame letterboxed on the panel forever (the
716
- * operator's black bands, 2026-10-25). Bounded grace for a FRESH
717
- * frame (seq past prevSeq); silence answers with the deterministic
718
- * captureScreenshot seed — activate()'s first-frame idiom re-fired
719
- * for the resize path. Never hangs the verb past the grace. */
720
- async seedAfterResize(handle, prevSeq) {
836
+ await this.repairSurfaceAfterResize(e, handle, prevSeq).catch(() => void 0);
837
+ }
838
+ /** The window id, retried — Target.getWindowForTarget on a Playwright
839
+ * page session races out on a COLD headed launch (measured in the
840
+ * surface-lag test: both resizes skipped, the birth window kept its
841
+ * size). Three bounded tries; the caller's race caps still apply. */
842
+ async windowIdOf(anyCdp, race, targetId) {
843
+ for (let i = 0; i < 3; i += 1) {
844
+ const t = await race(anyCdp.send("Target.getWindowForTarget"), null);
845
+ if (t && t.windowId) return t;
846
+ const b = await race(anyCdp.send("Browser.getWindowForTarget", targetId ? { targetId } : {}), null);
847
+ if (b && b.windowId) return b;
848
+ await new Promise((r) => setTimeout(r, 500));
849
+ }
850
+ return null;
851
+ }
852
+ /** ADR-0041 D3 + the surface-lag repair (BUG 2026-10-26): a resize must
853
+ * REPAINT at the REQUESTED size, not just emit SOME fresh frame. Two
854
+ * failure shapes live here:
855
+ * 1. the SILENT page — the screencast speaks only on change, so a
856
+ * static page never repaints (the 2026-10-25 black bands);
857
+ * 2. the STALE SURFACE — a headed off-screen window takes the new
858
+ * RENDERER size but macOS never reallocates the compositor surface:
859
+ * every frame (even captureScreenshot) keeps arriving at the OLD
860
+ * height, and the panel letterboxes it (the operator's top/bottom
861
+ * bands at every height grow). Measured: 53 frames over 6s all at
862
+ * the old 832 while innerHeight was 919; captureScreenshot agreed
863
+ * with the stale surface. A window-state BOUNCE (minimize ->
864
+ * normal — invisible at -32000,-32000) forces the window server to
865
+ * reallocate; frames then arrive at the requested size.
866
+ * Ladder: grace for a frame whose JPEG dims MATCH the request ->
867
+ * bounce (headed only) -> second grace -> deterministic
868
+ * captureScreenshot reseed (reseed: a stale REAL frame may sit atop
869
+ * the ring, and seed() refuses to cover one). Capped throughout —
870
+ * nothing here may hang the verb (the 2.5s rule). */
871
+ async repairSurfaceAfterResize(e, handle, prevSeq) {
872
+ const want = {
873
+ w: e.viewport.width,
874
+ h: e.viewport.height
875
+ };
876
+ const dimsOf = (f) => {
877
+ if (!f) return null;
878
+ const md = f.metadata;
879
+ const mw = Number(md?.deviceWidth);
880
+ const mh = Number(md?.deviceHeight);
881
+ if (Number.isFinite(mw) && Number.isFinite(mh) && mw > 0 && mh > 0) return {
882
+ w: mw,
883
+ h: mh
884
+ };
885
+ const b = Buffer.from(f.jpeg, "base64");
886
+ let i = 2;
887
+ while (i < b.length - 9) {
888
+ if (b[i] !== 255) {
889
+ i += 1;
890
+ continue;
891
+ }
892
+ const marker = b[i + 1];
893
+ if (marker >= 192 && marker <= 207 && marker !== 196 && marker !== 200 && marker !== 204) return {
894
+ h: b.readUInt16BE(i + 5),
895
+ w: b.readUInt16BE(i + 7)
896
+ };
897
+ i += Math.max(2, b.readUInt16BE(i + 2));
898
+ }
899
+ return null;
900
+ };
901
+ const matched = () => {
902
+ const f = handle.relay.latestFrame();
903
+ if (!f || f.seq === prevSeq) return false;
904
+ const d = dimsOf(f);
905
+ return d !== null && Math.abs(d.w - want.w) < 3 && Math.abs(d.h - want.h) < 3;
906
+ };
907
+ for (let i = 0; i < 10 && !matched(); i += 1) await new Promise((r) => setTimeout(r, 100));
908
+ if (matched()) return;
909
+ if (e.headless) {
910
+ const raceH = async (p, fb) => {
911
+ const timeout = new Promise((res) => setTimeout(() => res(fb), 2500));
912
+ return await Promise.race([p.catch(() => fb), timeout]);
913
+ };
914
+ const anyCdpH = handle.cdp;
915
+ await raceH(anyCdpH.send("Emulation.setDeviceMetricsOverride", {
916
+ width: want.w,
917
+ height: want.h,
918
+ deviceScaleFactor: 1,
919
+ mobile: false
920
+ }).then(() => null), null);
921
+ await new Promise((r) => setTimeout(r, 400));
922
+ const shotH = await raceH(handle.cdp.send("Page.captureScreenshot", {
923
+ format: "jpeg",
924
+ quality: readBrowserConfig().screencastQuality
925
+ }).catch(() => null), null);
926
+ if (shotH?.data) handle.relay.reseed({
927
+ seq: 0,
928
+ jpeg: shotH.data,
929
+ metadata: {
930
+ seeded: true,
931
+ resize: true
932
+ }
933
+ });
934
+ return;
935
+ }
936
+ if (!e.headless) {
937
+ const race = async (p, fb) => {
938
+ const timeout = new Promise((res) => setTimeout(() => res(fb), 2500));
939
+ return await Promise.race([p.catch(() => fb), timeout]);
940
+ };
941
+ const anyCdp = handle.cdp;
942
+ const win = await this.windowIdOf(anyCdp, race, e.activeTargetId ?? void 0);
943
+ if (win?.windowId) {
944
+ let cw = e.chrome?.w ?? 0;
945
+ let ch = e.chrome?.h ?? 0;
946
+ console.log("[surface] ladder start want", want.w + "x" + want.h, "learned chrome", cw + "/" + ch);
947
+ for (let i = 0; i < 3; i += 1) {
948
+ await race(anyCdp.send("Browser.setWindowBounds", {
949
+ windowId: win.windowId,
950
+ bounds: {
951
+ width: Math.max(200, want.w + cw),
952
+ height: Math.max(120, want.h + ch),
953
+ windowState: "normal"
954
+ }
955
+ }), null);
956
+ await new Promise((r) => setTimeout(r, 350));
957
+ const shot = await race(anyCdp.send("Page.captureScreenshot", {
958
+ format: "jpeg",
959
+ quality: 60
960
+ }), null);
961
+ const d = shot?.data ? dimsOf({
962
+ jpeg: shot.data,
963
+ metadata: {}
964
+ }) : null;
965
+ if (d && Math.abs(d.w - want.w) < 3 && Math.abs(d.h - want.h) < 3) {
966
+ console.log("[surface] iter", i, "converged: capture", d.w + "x" + d.h, "chrome", cw + "/" + ch);
967
+ e.chrome = {
968
+ w: cw,
969
+ h: ch
970
+ };
971
+ if (shot?.data) handle.relay.reseed({
972
+ seq: 0,
973
+ jpeg: shot.data,
974
+ metadata: {
975
+ seeded: true,
976
+ resize: true
977
+ }
978
+ });
979
+ return;
980
+ }
981
+ console.log("[surface] iter", i, "miss: capture", d ? d.w + "x" + d.h : "null", "at bounds", want.w + cw + "x" + (want.h + ch));
982
+ if (!d) continue;
983
+ const cur = await race(anyCdp.send("Browser.getWindowForTarget", { targetId: e.activeTargetId }), null);
984
+ if (cur?.bounds?.width && cur?.bounds?.height) {
985
+ cw = Math.max(0, cur.bounds.width - d.w);
986
+ ch = Math.max(0, cur.bounds.height - d.h);
987
+ } else {
988
+ cw += Math.max(0, want.w - d.w);
989
+ ch += Math.max(0, want.h - d.h);
990
+ }
991
+ }
992
+ e.chrome = {
993
+ w: cw,
994
+ h: ch
995
+ };
996
+ await race(anyCdp.send("Browser.setWindowBounds", {
997
+ windowId: win.windowId,
998
+ bounds: { windowState: "minimized" }
999
+ }), null);
1000
+ await race(anyCdp.send("Browser.setWindowBounds", {
1001
+ windowId: win.windowId,
1002
+ bounds: { windowState: "normal" }
1003
+ }), null);
1004
+ await race(anyCdp.send("Browser.setWindowBounds", {
1005
+ windowId: win.windowId,
1006
+ bounds: {
1007
+ width: Math.max(200, want.w + cw),
1008
+ height: Math.max(120, want.h + ch),
1009
+ windowState: "normal"
1010
+ }
1011
+ }), null);
1012
+ await new Promise((r) => setTimeout(r, 300));
1013
+ for (let i = 0; i < 10 && !matched(); i += 1) await new Promise((r) => setTimeout(r, 100));
1014
+ if (matched()) return;
1015
+ const parked = {
1016
+ width: Math.max(200, want.w + cw),
1017
+ height: Math.max(120, want.h + ch),
1018
+ windowState: "normal"
1019
+ };
1020
+ await race(anyCdp.send("Browser.setWindowBounds", {
1021
+ windowId: win.windowId,
1022
+ bounds: {
1023
+ ...parked,
1024
+ left: 10,
1025
+ top: 10
1026
+ }
1027
+ }), null);
1028
+ await new Promise((r) => setTimeout(r, 400));
1029
+ await race(anyCdp.send("Browser.setWindowBounds", {
1030
+ windowId: win.windowId,
1031
+ bounds: {
1032
+ ...parked,
1033
+ left: -32e3,
1034
+ top: -32e3
1035
+ }
1036
+ }), null);
1037
+ await new Promise((r) => setTimeout(r, 300));
1038
+ for (let i = 0; i < 10 && !matched(); i += 1) await new Promise((r) => setTimeout(r, 100));
1039
+ if (matched()) return;
1040
+ console.log("[surface] ladder exhausted: bounce+flash ran, stream frames still", (() => {
1041
+ const d = dimsOf(handle.relay.latestFrame());
1042
+ return d ? d.w + "x" + d.h : "unknown";
1043
+ })());
1044
+ }
1045
+ }
1046
+ const cfg = readBrowserConfig();
1047
+ const shot = await handle.cdp.send("Page.captureScreenshot", {
1048
+ format: "jpeg",
1049
+ quality: cfg.screencastQuality
1050
+ }).catch(() => null);
1051
+ const fd = shot?.data ? dimsOf({
1052
+ jpeg: shot.data,
1053
+ metadata: {}
1054
+ }) : null;
1055
+ console.log("[surface] final reseed capture:", fd ? fd.w + "x" + fd.h : "null", "want", want.w + "x" + want.h);
1056
+ if (shot?.data) handle.relay.reseed({
1057
+ seq: 0,
1058
+ jpeg: shot.data,
1059
+ metadata: {
1060
+ seeded: true,
1061
+ resize: true
1062
+ }
1063
+ });
1064
+ }
1065
+ /** The navigate path's seed arm (ADR-0039 follow-up): same bounded grace,
1066
+ * but the synthesized replacement must land OVER the opener's synthesized
1067
+ * frame — seed() refuses that, reseed() is the honest verb (the mirror
1068
+ * froze on the old face after every paced navigate otherwise). */
1069
+ async seedAfterNavigate(handle, prevSeq) {
721
1070
  for (let i = 0; i < 10 && (handle.relay.latestFrame()?.seq ?? -1) === prevSeq; i += 1) await new Promise((r) => setTimeout(r, 100));
722
1071
  if ((handle.relay.latestFrame()?.seq ?? -1) !== prevSeq) return;
723
1072
  const cfg = readBrowserConfig();
@@ -725,12 +1074,12 @@ var BrowserRegistry = class {
725
1074
  format: "jpeg",
726
1075
  quality: cfg.screencastQuality
727
1076
  }).catch(() => null);
728
- if (shot?.data) handle.relay.seed({
1077
+ if (shot?.data) handle.relay.reseed({
729
1078
  seq: 0,
730
1079
  jpeg: shot.data,
731
1080
  metadata: {
732
1081
  seeded: true,
733
- resize: true
1082
+ navigate: true
734
1083
  }
735
1084
  });
736
1085
  }
@@ -838,8 +1187,14 @@ var BrowserRegistry = class {
838
1187
  };
839
1188
  }
840
1189
  }
841
- /** Open a NEW tab in the glass at `url` and make it the active face
842
- * (the context menu's 'open in new tab' verbs). Returns the new tab. */
1190
+ /** Open a NEW tab in the glass and make it the active face. With a
1191
+ * `url`: the context-menu open-link/image path — create BLANK then
1192
+ * navigate through the verb seam (createTarget with a URL races its own
1193
+ * navigation and lands on chrome-error, observed 2026-10-25). WITHOUT a
1194
+ * url (ADR-0042 D2, the + chip): createTarget ONLY — the birth state
1195
+ * again, no navigation. Either way activate() applies the first-frame
1196
+ * contract (ADR-0040 D4 / ADR-0042 D4: grace, then a captureScreenshot
1197
+ * seed) and returns the boundary payload the caller paints. */
843
1198
  async openTab(id, url, opts) {
844
1199
  const e = this.peek(id);
845
1200
  if (e.closed) throw new BrowserRegistryRefusal("CLOSED", "session is closing");
@@ -847,22 +1202,21 @@ var BrowserRegistry = class {
847
1202
  if (!src) throw new BrowserRegistryRefusal("CLOSED", "no tab handle to create from");
848
1203
  const targetId = (await src.send("Target.createTarget", { url: "about:blank" }))?.targetId;
849
1204
  if (!targetId) throw new BrowserRegistryRefusal("NO_TARGET", "Target.createTarget returned no id");
850
- await this.navigate(id, url, {
1205
+ if (url) await this.navigate(id, url, {
851
1206
  waitLoad: true,
852
1207
  targetId
853
1208
  });
854
- if (opts?.activate ?? true) await this.activate(id, targetId);
1209
+ if (opts?.activate ?? true) return {
1210
+ ...await this.activate(id, targetId),
1211
+ targetId
1212
+ };
855
1213
  const h = e.tabs.get(targetId);
856
- const pi = await this.pageInfo(id, targetId).catch(() => ({
857
- url,
858
- title: ""
859
- }));
860
1214
  return {
861
1215
  targetId,
862
1216
  seq: h?.relay.latestFrame()?.seq ?? 0,
863
1217
  jpeg: h?.relay.latestFrame()?.jpeg ?? null,
864
- url: pi.url || url,
865
- title: pi.title
1218
+ url: url ?? "about:blank",
1219
+ title: ""
866
1220
  };
867
1221
  }
868
1222
  /** Apply the remembered panel viewport by RESIZING THE WINDOW (round 10:
@@ -885,6 +1239,12 @@ var BrowserRegistry = class {
885
1239
  width: e.viewport.width,
886
1240
  height: e.viewport.height
887
1241
  }).catch(() => void 0), new Promise((res) => setTimeout(res, 2500))]);
1242
+ await handle.cdp.send("Emulation.setDeviceMetricsOverride", {
1243
+ width: e.viewport.width,
1244
+ height: e.viewport.height,
1245
+ deviceScaleFactor: 1,
1246
+ mobile: false
1247
+ }).catch(() => void 0);
888
1248
  return;
889
1249
  }
890
1250
  const race = async (p, fb) => await Promise.race([p.catch(() => fb), new Promise((res) => setTimeout(() => res(fb), 2500))]);
@@ -893,14 +1253,19 @@ var BrowserRegistry = class {
893
1253
  expression: "JSON.stringify({ oh: window.outerHeight - window.innerHeight, ow: window.outerWidth - window.innerWidth })",
894
1254
  returnByValue: true
895
1255
  }), null);
896
- let chromeH = 0, chromeW = 0;
1256
+ let chromeH = e.chrome?.h ?? 0;
1257
+ let chromeW = e.chrome?.w ?? 0;
897
1258
  try {
898
1259
  const d = JSON.parse(dims && dims.result && dims.result.value || "{}");
899
- chromeH = Number(d.oh) || 0;
900
- chromeW = Number(d.ow) || 0;
1260
+ const oh = Number(d.oh) || 0;
1261
+ const ow = Number(d.ow) || 0;
1262
+ if (oh > 0 || ow > 0) {
1263
+ chromeH = oh;
1264
+ chromeW = ow;
1265
+ }
901
1266
  } catch {}
902
1267
  const anyCdp2 = handle.cdp;
903
- const win = await race(anyCdp2.send("Target.getWindowForTarget"), null);
1268
+ const win = await this.windowIdOf(anyCdp2, race);
904
1269
  if (win && win.windowId) {
905
1270
  await race(anyCdp2.send("Browser.setWindowBounds", {
906
1271
  windowId: win.windowId,
@@ -910,6 +1275,10 @@ var BrowserRegistry = class {
910
1275
  windowState: "normal"
911
1276
  }
912
1277
  }), null);
1278
+ if (chromeW > 0 || chromeH > 0) e.chrome = {
1279
+ w: chromeW,
1280
+ h: chromeH
1281
+ };
913
1282
  const check = await race(anyCdp2.send("Browser.getWindowForTarget", { targetId: e.activeTargetId }), null);
914
1283
  console.log("[window] resized ->", JSON.stringify(check && check.bounds ? check.bounds : check), "want", e.viewport.width + chromeW, "x", e.viewport.height + chromeH);
915
1284
  } else console.log("[window] no windowId — resize skipped (raced out)");
@@ -951,4 +1320,4 @@ var BrowserRegistry = class {
951
1320
  var browserRegistry = new BrowserRegistry();
952
1321
 
953
1322
  export { BrowserRegistryRefusal as B, browserRegistry as b };
954
- //# sourceMappingURL=registry.js-C2MdrfNv.js.map
1323
+ //# sourceMappingURL=registry.js-syaTZ_-A.js.map
@@ -1,4 +1,4 @@
1
- import { i as isConfigRecord } from './config.js-vThvQeMn.js';
1
+ import { i as isConfigRecord } from './config.js-s6iKwHD7.js';
2
2
  import { existsSync, readFileSync, cpSync, mkdirSync, writeFileSync, renameSync } from 'node:fs';
3
3
  import { dirname, join } from 'node:path';
4
4
  import { homedir } from 'node:os';
@@ -159,4 +159,4 @@ function parseYamlSettings(text) {
159
159
  }
160
160
 
161
161
  export { SettingsParseError as S, ensureDsiHome as e, migrateLegacyDsiConfig as m, parseYamlSettings as p, readSettingsDocument as r, saveSettingsDocument as s };
162
- //# sourceMappingURL=settings-document.js-Gw1puaik.js.map
162
+ //# sourceMappingURL=settings-document.js-BHESJ7im.js.map
@@ -1,9 +1,9 @@
1
1
  import { i as index_server_exports } from './index-server.js-DmIEbDVz.js';
2
2
  import './shared.js-HQ0rfhm4.js';
3
- import './internal2.js-Ba5p8uFM.js';
3
+ import './internal2.js-CaZaz-a9.js';
4
4
  import './exports.js-DH_tjtdv.js';
5
5
  import { U as snapshot, g as getContext, n as noop } from './server.js-B1bDXhHu.js';
6
- import { U as UI_LOCALES } from './config.js-vThvQeMn.js';
6
+ import { U as UI_LOCALES } from './config.js-s6iKwHD7.js';
7
7
  import { c as getLocale } from './runtime.js-CCJi3XaY.js';
8
8
  import './utils.js-CAdNO8Tu.js';
9
9
 
@@ -304,4 +304,4 @@ var page = {
304
304
  };
305
305
 
306
306
  export { afterNavigate as a, backtoworkspace2 as b, currentLocale as c, dshunreachable1 as d, replaceState as e, page as p, reapednote1 as r, sessionnotfound2 as s, t, unexpectederror1 as u };
307
- //# sourceMappingURL=state.js-BSiAgink.js.map
307
+ //# sourceMappingURL=state.js-oYjf745s.js.map
@@ -1,7 +1,7 @@
1
- import { c as readA2aConfig } from './insight-config.js-Dp_2gB5J.js';
2
- import { i as insertWaiting, o as openA2aDb, s as settleRow, p as pruneTerminalBefore, l as listWaiting } from './db.js-DQm6CZ_r.js';
3
- import { g as getDshConnection } from './dsh-connection.js-BgeraFA2.js';
4
- import { a as entryForEvent, h as historyToEvents } from './dsh-events.js-BUkLR6ZV.js';
1
+ import { c as readA2aConfig } from './insight-config.js-Db5fe5Df.js';
2
+ import { i as insertWaiting, o as openA2aDb, s as settleRow, p as pruneTerminalBefore, l as listWaiting } from './db.js-CxxWK5sn.js';
3
+ import { g as getDshConnection } from './dsh-connection.js-Chtudg1p.js';
4
+ import { a as entryForEvent, h as historyToEvents } from './dsh-events.js-BUdvZQmd.js';
5
5
 
6
6
  //#region src/lib/server/a2a/matcher.ts
7
7
  /**
@@ -470,4 +470,4 @@ function registerWatch(row) {
470
470
  }
471
471
 
472
472
  export { configureWatcher as c, ensureStarted as e, registerWatch as r };
473
- //# sourceMappingURL=watcher.js-BVKnoQUw.js.map
473
+ //# sourceMappingURL=watcher.js-Ci9jsM5l.js.map
@@ -1,8 +1,8 @@
1
- import { g as getRow } from '../../../../../chunks/db.js-DQm6CZ_r.js';
1
+ import { g as getRow } from '../../../../../chunks/db.js-CxxWK5sn.js';
2
2
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
3
- import '../../../../../chunks/insight-config.js-Dp_2gB5J.js';
4
- import '../../../../../chunks/config.js-vThvQeMn.js';
5
- import '../../../../../chunks/settings-document.js-Gw1puaik.js';
3
+ import '../../../../../chunks/insight-config.js-Db5fe5Df.js';
4
+ import '../../../../../chunks/config.js-s6iKwHD7.js';
5
+ import '../../../../../chunks/settings-document.js-BHESJ7im.js';
6
6
  import 'node:fs';
7
7
  import 'node:path';
8
8
  import 'node:os';
@@ -36,4 +36,4 @@ var GET = ({ params }) => {
36
36
  };
37
37
 
38
38
  export { GET };
39
- //# sourceMappingURL=_server.ts.js-BjzdVwdY.js.map
39
+ //# sourceMappingURL=_server.ts.js-CHaYhzjy.js.map
@@ -1,17 +1,17 @@
1
- import { a as listRecent } from '../../../../chunks/db.js-DQm6CZ_r.js';
2
- import { e as ensureStarted } from '../../../../chunks/watcher.js-BVKnoQUw.js';
1
+ import { a as listRecent } from '../../../../chunks/db.js-CxxWK5sn.js';
2
+ import { e as ensureStarted } from '../../../../chunks/watcher.js-Ci9jsM5l.js';
3
3
  import { j as json } from '../../../../chunks/utils.js-CAdNO8Tu.js';
4
- import '../../../../chunks/insight-config.js-Dp_2gB5J.js';
5
- import '../../../../chunks/config.js-vThvQeMn.js';
6
- import '../../../../chunks/settings-document.js-Gw1puaik.js';
4
+ import '../../../../chunks/insight-config.js-Db5fe5Df.js';
5
+ import '../../../../chunks/config.js-s6iKwHD7.js';
6
+ import '../../../../chunks/settings-document.js-BHESJ7im.js';
7
7
  import 'node:fs';
8
8
  import 'node:path';
9
9
  import 'node:os';
10
10
  import 'yaml';
11
11
  import '../../../../chunks/settings-home2.js-f75-B6RI.js';
12
12
  import 'node:sqlite';
13
- import '../../../../chunks/dsh-connection.js-BgeraFA2.js';
14
- import '../../../../chunks/dsh-events.js-BUkLR6ZV.js';
13
+ import '../../../../chunks/dsh-connection.js-Chtudg1p.js';
14
+ import '../../../../chunks/dsh-events.js-BUdvZQmd.js';
15
15
  import '../../../../chunks/merge.js-yMwW440S.js';
16
16
  import '../../../../chunks/shared.js-HQ0rfhm4.js';
17
17
  import '../../../../chunks/uneval.js-BJ9Qq2SF.js';
@@ -61,4 +61,4 @@ var GET = ({ url }) => {
61
61
  };
62
62
 
63
63
  export { GET };
64
- //# sourceMappingURL=_server.ts.js-3kQCQuHT.js.map
64
+ //# sourceMappingURL=_server.ts.js-CdyqA85c.js.map