local-operator-ui 0.14.1 → 0.15.1

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 (75) hide show
  1. package/bin/local-operator-ui.js +71 -2
  2. package/out/main/index.js +5841 -2
  3. package/out/preload/index.js +256 -2
  4. package/out/renderer/assets/{_basePickBy-Cy9erSx0.js → _basePickBy-CfllbLPT.js} +1 -1
  5. package/out/renderer/assets/{_baseUniq-Cdh0lp5R.js → _baseUniq-t3IzOokH.js} +1 -1
  6. package/out/renderer/assets/agent-details-page-BU1kYKxK.js +6 -0
  7. package/out/renderer/assets/{agent-hub-page-D4ovDlBn.js → agent-hub-page-DrFYnBSt.js} +2 -2
  8. package/out/renderer/assets/{agents-page-C407yRQS.js → agents-page-cq-zLmOE.js} +5 -5
  9. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-BxpB4aVb.js → architectureDiagram-IEHRJDOE-DZdNjiiw.js} +1 -1
  10. package/out/renderer/assets/{blockDiagram-JOT3LUYC-B_HweIEn.js → blockDiagram-JOT3LUYC-DfSTYCE8.js} +1 -1
  11. package/out/renderer/assets/{c4Diagram-VJAJSXHY-D17CqAh-.js → c4Diagram-VJAJSXHY-kj8ONcdJ.js} +1 -1
  12. package/out/renderer/assets/channel-Dy-Y0W96.js +1 -0
  13. package/out/renderer/assets/{chunk-4BMEZGHF-CIkDF-oX.js → chunk-4BMEZGHF-DTEIsOQ8.js} +1 -1
  14. package/out/renderer/assets/{chunk-A2AXSNBT-BHMWIiOa.js → chunk-A2AXSNBT-H5FcAjIP.js} +1 -1
  15. package/out/renderer/assets/{chunk-AEK57VVT-Bt_D_M5e.js → chunk-AEK57VVT-Ckh1RshY.js} +1 -1
  16. package/out/renderer/assets/{chunk-D6G4REZN-CHph6e1i.js → chunk-D6G4REZN-BI15Ho6z.js} +1 -1
  17. package/out/renderer/assets/{chunk-RZ5BOZE2-BdF4IfqM.js → chunk-RZ5BOZE2-B4XztrFv.js} +1 -1
  18. package/out/renderer/assets/{chunk-XZIHB7SX-Cfay2vIu.js → chunk-XZIHB7SX-RYtDnxT5.js} +1 -1
  19. package/out/renderer/assets/classDiagram-GIVACNV2-BZfvXxWD.js +1 -0
  20. package/out/renderer/assets/classDiagram-v2-COTLJTTW-BZfvXxWD.js +1 -0
  21. package/out/renderer/assets/clone-Dd3fQGFQ.js +1 -0
  22. package/out/renderer/assets/{dagre-OKDRZEBW-BXMKs78G.js → dagre-OKDRZEBW-CVqq_Qpq.js} +1 -1
  23. package/out/renderer/assets/{diagram-SSKATNLV-DhSX6SYv.js → diagram-SSKATNLV-7I1hPrEB.js} +1 -1
  24. package/out/renderer/assets/{diagram-VNBRO52H-W1auqSvU.js → diagram-VNBRO52H-B4In8mRQ.js} +1 -1
  25. package/out/renderer/assets/{erDiagram-Q7BY3M3F-Bgf4HPgp.js → erDiagram-Q7BY3M3F-D8m7xWyt.js} +1 -1
  26. package/out/renderer/assets/{flowDiagram-4HSFHLVR-Dqs3w7l7.js → flowDiagram-4HSFHLVR-HzyvxZJ_.js} +1 -1
  27. package/out/renderer/assets/{ganttDiagram-APWFNJXF-W2Dl2kia.js → ganttDiagram-APWFNJXF-D9VGOeKz.js} +1 -1
  28. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-bzFBPCxE.js → gitGraphDiagram-7IBYFJ6S-bCjN7hkh.js} +1 -1
  29. package/out/renderer/assets/{graph-BMAumaKR.js → graph-Bm4dxGQt.js} +1 -1
  30. package/out/renderer/assets/{icon-Bdl-1nZa.js → icon-BIaTDBQz.js} +27 -32
  31. package/out/renderer/assets/icon-CtRkDz9c.css +1 -0
  32. package/out/renderer/assets/{index-CkXXVBtx.js → index-B1ky8xLm.js} +1 -1
  33. package/out/renderer/assets/{index-B6-l73tV.js → index-C_toWewb.js} +1 -1
  34. package/out/renderer/assets/{index-7CdFyTkj.js → index-fNnd2qrg.js} +483 -449
  35. package/out/renderer/assets/{infoDiagram-PH2N3AL5-CbpfPVKf.js → infoDiagram-PH2N3AL5-B2JkP-Hd.js} +1 -1
  36. package/out/renderer/assets/installer-DYZ22Cfq.js +21 -0
  37. package/out/renderer/assets/{journeyDiagram-U35MCT3I-De-0hv4q.js → journeyDiagram-U35MCT3I-NnbVNsik.js} +1 -1
  38. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-BPd3pi-w.js → kanban-definition-NDS4AKOZ-DBgR7W50.js} +1 -1
  39. package/out/renderer/assets/{layout-XEIorevy.js → layout-CE8ShubG.js} +1 -1
  40. package/out/renderer/assets/{mermaid.core-sEsfjAyk.js → mermaid.core-CExbFl-7.js} +5 -5
  41. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-CFXykZSH.js → mindmap-definition-ALO5MXBD-ag_HQs7G.js} +1 -1
  42. package/out/renderer/assets/{page-header-B3jpJFT8.js → page-header-GWjqQg3-.js} +1 -1
  43. package/out/renderer/assets/{parseISO-CO0fdbU-.js → parseISO-LV1Yh_aZ.js} +1 -1
  44. package/out/renderer/assets/{pieDiagram-IB7DONF6-DMDEzLCV.js → pieDiagram-IB7DONF6-DJ-5Rt4W.js} +1 -1
  45. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-SUeX7lBX.js → quadrantDiagram-7GDLP6J5-BQceCClO.js} +1 -1
  46. package/out/renderer/assets/{radar-MK3ICKWK-DDk8ymtw.js → radar-MK3ICKWK-D2qI0wBa.js} +1 -1
  47. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-BsFfxWiY.js → requirementDiagram-KVF5MWMF-Bd6T_ndu.js} +1 -1
  48. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-CpAd5XMM.js → sankeyDiagram-QLVOVGJD-CnMYNt__.js} +1 -1
  49. package/out/renderer/assets/{schedules-page-B9u-fITa.js → schedules-page-DqrcIxzB.js} +9 -9
  50. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-C3opC0to.js → sequenceDiagram-X6HHIX6F-SiFK0EWD.js} +1 -1
  51. package/out/renderer/assets/settings-page-D_JWK3qq.js +165 -0
  52. package/out/renderer/assets/{settings-section-Cr0MA7c0.js → settings-section-yqdH5CNp.js} +1 -1
  53. package/out/renderer/assets/{square-pen-DowzdNbI.js → square-pen-sK57wlY1.js} +1 -1
  54. package/out/renderer/assets/{stateDiagram-DGXRK772-DECvRMXG.js → stateDiagram-DGXRK772-BrX4XGdu.js} +1 -1
  55. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CEzipxL2.js +1 -0
  56. package/out/renderer/assets/{timeline-definition-BDJGKUSR-NQ4Fd0l2.js → timeline-definition-BDJGKUSR-CtwXxKAC.js} +1 -1
  57. package/out/renderer/assets/use-agent-like-mutation-f9aYefiU.js +1 -0
  58. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-D3b3_Vc_.js → xychartDiagram-VJFVF3MP-BUx2vked.js} +1 -1
  59. package/out/renderer/index.html +3 -3
  60. package/out/renderer/installer.html +3 -3
  61. package/package.json +13 -4
  62. package/out/main/bytecode-loader.cjs +0 -72
  63. package/out/main/index.jsc +0 -0
  64. package/out/preload/bytecode-loader.cjs +0 -72
  65. package/out/preload/index.jsc +0 -0
  66. package/out/renderer/assets/agent-details-page-CiFKV0Jt.js +0 -6
  67. package/out/renderer/assets/channel-UECC9RiS.js +0 -1
  68. package/out/renderer/assets/classDiagram-GIVACNV2-Azw5v2F7.js +0 -1
  69. package/out/renderer/assets/classDiagram-v2-COTLJTTW-Azw5v2F7.js +0 -1
  70. package/out/renderer/assets/clone-Bd4rSxIW.js +0 -1
  71. package/out/renderer/assets/icon-Dwj-2eqO.css +0 -1
  72. package/out/renderer/assets/installer-BahdLBix.js +0 -16
  73. package/out/renderer/assets/settings-page-BUNGBMNO.js +0 -154
  74. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Cq4eZ4i6.js +0 -1
  75. package/out/renderer/assets/use-agent-like-mutation-COMP5roj.js +0 -1
@@ -11,8 +11,77 @@ const { spawn } = require("node:child_process");
11
11
  const path = require("node:path");
12
12
  const fs = require("node:fs");
13
13
 
14
- // Get the path to the electron executable
15
- const electronPath = require("electron");
14
+ // Electron is an optionalDependency pinned to an exact version, not a plain
15
+ // dependency: electron-builder refuses to package a project that lists electron
16
+ // under "dependencies", but the npm/npx launcher below still needs a runtime at
17
+ // require time. "optional" keeps electron-builder happy while npm/bun/pnpm still
18
+ // install it for the CLI. The cost of "optional" is that a failed install is
19
+ // silent, so resolve it defensively and say what to do. See issue #88.
20
+ let electronPath;
21
+ try {
22
+ electronPath = require("electron");
23
+ } catch (err) {
24
+ console.error("Error: Could not resolve the Electron runtime.");
25
+ console.error(
26
+ "Electron is an optional dependency and its binary download may have been",
27
+ );
28
+ console.error(
29
+ "skipped or blocked. Reinstall with optional dependencies enabled, e.g.",
30
+ );
31
+ console.error(" npm install -g local-operator-ui --include=optional");
32
+ console.error(`Underlying error: ${err.message}`);
33
+ process.exit(1);
34
+ }
35
+
36
+ // The try/catch above only catches "nothing resolvable at all", and that is not
37
+ // how issue #88 actually failed. There, `require("electron")` succeeded and
38
+ // returned an AMBIENT Electron 44.2.0 from higher up the directory tree, because
39
+ // our own optional install had not produced one. Resolution throws nothing in
40
+ // that case, so the guard above never fires and the app runs on a runtime we
41
+ // never tested. Assert the version, not just the presence.
42
+ //
43
+ // Compare on MAJOR only. Electron's ABI, V8, Chromium and Node all move on the
44
+ // major boundary, which is the axis that broke #88 (35 vs 44); a patch or minor
45
+ // difference is the normal result of a hoisted or deduped tree and warning about
46
+ // it would print noise on a working install.
47
+ //
48
+ // WARN, never exit. Since #88 the npm channel ships plain JS rather than V8
49
+ // bytecode, so a mismatched major usually still runs. Making this fatal would
50
+ // convert a degraded-but-working install into no app at all, which is a worse
51
+ // outcome than the one being guarded against. The user gets the diagnosis and
52
+ // the app still starts. CI does not get this latitude: scripts/npx-smoke-test.mjs
53
+ // asserts the EXACT pinned version and fails, because there we control the
54
+ // install and an unintended runtime means the artifact was never really tested.
55
+ //
56
+ // Both versions are read defensively inside the try for the same reason: this
57
+ // is a diagnostic, and a diagnostic must never be why the app fails to start.
58
+ // Missing or malformed metadata degrades to "cannot verify". An earlier revision
59
+ // read the pin at module scope and crashed the launcher outright on a
60
+ // package.json with no optionalDependencies.
61
+ try {
62
+ const pinned = require("../package.json").optionalDependencies?.electron;
63
+ const resolved = require("electron/package.json").version;
64
+ if (!pinned || !resolved) {
65
+ throw new Error("no version to compare");
66
+ }
67
+ if (resolved.split(".")[0] !== pinned.split(".")[0]) {
68
+ console.warn(
69
+ `Warning: local-operator-ui pins Electron ${pinned} but resolved ${resolved}.`,
70
+ );
71
+ console.warn(
72
+ "This usually means the optional Electron install was skipped and another",
73
+ );
74
+ console.warn(
75
+ "Electron was picked up from the surrounding environment. The app will try",
76
+ );
77
+ console.warn("to start anyway. If it misbehaves, reinstall with:");
78
+ console.warn(" npm install -g local-operator-ui --include=optional");
79
+ }
80
+ } catch (err) {
81
+ // Version metadata is unreadable while the binary itself resolved. Nothing
82
+ // actionable to assert, and the app is more useful started than blocked.
83
+ console.warn(`Warning: could not verify the Electron version: ${err.message}`);
84
+ }
16
85
 
17
86
  // Get the path to the main.js file
18
87
  const appPath = path.join(__dirname, "../out/main/index.js");