opendevbrowser 0.0.31 → 0.0.33
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/README.md +18 -5
- package/dist/{accessibility-snapshot-CQ4ZKWKC.js → accessibility-snapshot-JSPFVWZ6.js} +12 -12
- package/dist/{active-window-TD5HYJ72.js → active-window-2OB2MSCR.js} +12 -12
- package/dist/{annotate-VTLFS2XV.js → annotate-VDZBZBKZ.js} +11 -11
- package/dist/{artifacts-KJ6RNDO2.js → artifacts-JHDUUJGQ.js} +2 -2
- package/dist/{attr-BCI5KYCW.js → attr-7XIO4MCH.js} +11 -11
- package/dist/browser/canvas-manager.d.ts.map +1 -1
- package/dist/canvas/guidance.d.ts +7 -0
- package/dist/canvas/guidance.d.ts.map +1 -1
- package/dist/canvas/repair-examples.d.ts +45 -0
- package/dist/canvas/repair-examples.d.ts.map +1 -0
- package/dist/{canvas-5DFEEOKM.js → canvas-N4PAA274.js} +26 -11
- package/dist/canvas-N4PAA274.js.map +1 -0
- package/dist/{capture-desktop-HFTTWY4Z.js → capture-desktop-T5YO3EBI.js} +12 -12
- package/dist/{capture-window-X63XPIFF.js → capture-window-UKEUBWKH.js} +12 -12
- package/dist/{check-LWAUY7GC.js → check-PQB6KKMN.js} +11 -11
- package/dist/{checked-ZSOUKVYT.js → checked-RNZIMCU6.js} +11 -11
- package/dist/{chunk-6B5WAQV7.js → chunk-27W46IKI.js} +42 -11
- package/dist/chunk-27W46IKI.js.map +1 -0
- package/dist/{chunk-WHQZBUNY.js → chunk-3WLCWHIV.js} +2 -2
- package/dist/{chunk-WHQZBUNY.js.map → chunk-3WLCWHIV.js.map} +1 -1
- package/dist/{chunk-PPUWQKIC.js → chunk-52ZIOWVU.js} +4 -4
- package/dist/{chunk-IPE7TF2P.js → chunk-7BNU6DFI.js} +8 -5
- package/dist/chunk-7BNU6DFI.js.map +1 -0
- package/dist/{chunk-3ILXPKSJ.js → chunk-BUVYTJZR.js} +2 -1
- package/dist/chunk-BUVYTJZR.js.map +1 -0
- package/dist/{chunk-QOMWCRE3.js → chunk-EOX6U6Q4.js} +47 -19
- package/dist/chunk-EOX6U6Q4.js.map +1 -0
- package/dist/{chunk-4BEJVZRK.js → chunk-FBKPDILE.js} +3625 -289
- package/dist/chunk-FBKPDILE.js.map +1 -0
- package/dist/{chunk-2I3YS3DV.js → chunk-FDBUB7BM.js} +7 -3
- package/dist/chunk-FDBUB7BM.js.map +1 -0
- package/dist/{chunk-COAOWH3G.js → chunk-HMRANSDX.js} +120 -28
- package/dist/chunk-HMRANSDX.js.map +1 -0
- package/dist/{chunk-KZ2IXVQT.js → chunk-IBIHDGTZ.js} +40 -5
- package/dist/chunk-IBIHDGTZ.js.map +1 -0
- package/dist/{chunk-T4GMCW6Z.js → chunk-J3KYGJRQ.js} +3 -3
- package/dist/{chunk-AHEWXOKY.js → chunk-JROW6ZNN.js} +4 -4
- package/dist/{chunk-6PVZ2ABC.js → chunk-L3YNUGYF.js} +2 -2
- package/dist/{chunk-MD655IPO.js → chunk-MJF67OTH.js} +11 -4
- package/dist/chunk-MJF67OTH.js.map +1 -0
- package/dist/{chunk-JZXD6FWR.js → chunk-NURQB55J.js} +2 -2
- package/dist/{chunk-STGGGVYT.js → chunk-QMHKAFYX.js} +2 -2
- package/dist/{chunk-RPXWUCQQ.js → chunk-SKFB5ICF.js} +2 -2
- package/dist/{chunk-2SIMIPLY.js → chunk-W6YPVNDX.js} +3 -3
- package/dist/{chunk-GQJ5S3BL.js → chunk-YRRRUGSQ.js} +3 -3
- package/dist/{chunk-37VSRUW4.js → chunk-ZGCTC5YM.js} +39 -7
- package/dist/chunk-ZGCTC5YM.js.map +1 -0
- package/dist/{chunk-KDSNXS6N.js → chunk-ZMNEWS7A.js} +2 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/commands/canvas.d.ts +12 -0
- package/dist/cli/commands/canvas.d.ts.map +1 -1
- package/dist/cli/commands/daemon.d.ts +19 -2
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/inspiredesign.d.ts +6 -1
- package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
- package/dist/cli/commands/serve.d.ts +12 -3
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/types.d.ts +1 -0
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/daemon-client.d.ts.map +1 -1
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/daemon-mismatch.d.ts +15 -0
- package/dist/cli/daemon-mismatch.d.ts.map +1 -0
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/errors.d.ts +4 -2
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +91 -90
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/installers/postinstall-skill-sync.js +2 -2
- package/dist/cli/utils/workflow-message.d.ts +1 -1
- package/dist/cli/utils/workflow-message.d.ts.map +1 -1
- package/dist/{click-2AILSEIZ.js → click-U7ZFKSB4.js} +11 -11
- package/dist/{clone-component-TPJS3PEG.js → clone-component-SWYAORTU.js} +10 -10
- package/dist/{clone-page-LE74CIFC.js → clone-page-WJ6UJOJG.js} +10 -10
- package/dist/{close-HN4YI47K.js → close-NAVIHZ2T.js} +10 -10
- package/dist/{close-WFERRHX6.js → close-VKIGIKVT.js} +10 -10
- package/dist/{connect-RWBV2UCQ.js → connect-XVG2MOZL.js} +11 -11
- package/dist/{console-poll-PP4YYPDF.js → console-poll-XI5BZPL7.js} +11 -11
- package/dist/{cookie-import-6IP776FC.js → cookie-import-QELKE7TK.js} +10 -10
- package/dist/{cookie-list-O2KG6DPU.js → cookie-list-QDA6KWIY.js} +10 -10
- package/dist/{daemon-2BSAZXLT.js → daemon-CA4UIIZQ.js} +26 -13
- package/dist/daemon-CA4UIIZQ.js.map +1 -0
- package/dist/daemon-fingerprint.json +1 -1
- package/dist/{debug-trace-snapshot-F3BDVZXS.js → debug-trace-snapshot-AT4GAO57.js} +11 -11
- package/dist/{dialog-6JQYUWMQ.js → dialog-O3V2IBFH.js} +11 -11
- package/dist/{disconnect-763TP7GH.js → disconnect-NAX5TPTG.js} +10 -10
- package/dist/{enabled-DLYQFNIP.js → enabled-VT4FJXDX.js} +11 -11
- package/dist/{goto-S346TJJH.js → goto-GBJG5NC4.js} +11 -11
- package/dist/guidance/context.d.ts +44 -0
- package/dist/guidance/context.d.ts.map +1 -0
- package/dist/guidance/index.d.ts +7 -0
- package/dist/guidance/index.d.ts.map +1 -0
- package/dist/guidance/readiness.d.ts +7 -0
- package/dist/guidance/readiness.d.ts.map +1 -0
- package/dist/guidance/recipes/generic.d.ts +3 -0
- package/dist/guidance/recipes/generic.d.ts.map +1 -0
- package/dist/guidance/recipes/pinterest.d.ts +5 -0
- package/dist/guidance/recipes/pinterest.d.ts.map +1 -0
- package/dist/guidance/recipes/site-recipe-types.d.ts +2 -0
- package/dist/guidance/recipes/site-recipe-types.d.ts.map +1 -0
- package/dist/guidance/recipes/site-registry.d.ts +5 -0
- package/dist/guidance/recipes/site-registry.d.ts.map +1 -0
- package/dist/guidance/renderers.d.ts +22 -0
- package/dist/guidance/renderers.d.ts.map +1 -0
- package/dist/guidance/router.d.ts +8 -0
- package/dist/guidance/router.d.ts.map +1 -0
- package/dist/guidance/types.d.ts +139 -0
- package/dist/guidance/types.d.ts.map +1 -0
- package/dist/{help-U7KBQME6.js → help-SUI4H77K.js} +14 -9
- package/dist/help-SUI4H77K.js.map +1 -0
- package/dist/{hover-6JVJFGO7.js → hover-476ZNQZE.js} +11 -11
- package/dist/{html-EVOSPBIT.js → html-5C4TXOV3.js} +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -18
- package/dist/index.js.map +1 -1
- package/dist/{inspector-H57BVUJP.js → inspector-73ARPCIV.js} +13 -13
- package/dist/{inspector-audit-NQBAJWC7.js → inspector-audit-QT6QY7KS.js} +15 -15
- package/dist/{inspector-plan-ZDIQVND3.js → inspector-plan-JRNSGN2Z.js} +13 -13
- package/dist/inspiredesign/capture.d.ts +4 -0
- package/dist/inspiredesign/capture.d.ts.map +1 -1
- package/dist/inspiredesign/contract.d.ts +24 -0
- package/dist/inspiredesign/contract.d.ts.map +1 -1
- package/dist/inspiredesign/handoff.d.ts +9 -3
- package/dist/inspiredesign/handoff.d.ts.map +1 -1
- package/dist/inspiredesign/meta-prompt.d.ts +9 -0
- package/dist/inspiredesign/meta-prompt.d.ts.map +1 -0
- package/dist/inspiredesign/reference-discovery.d.ts +29 -0
- package/dist/inspiredesign/reference-discovery.d.ts.map +1 -0
- package/dist/inspiredesign/reference-pattern-board.d.ts +38 -1
- package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
- package/dist/inspiredesign/visual-evidence.d.ts +46 -0
- package/dist/inspiredesign/visual-evidence.d.ts.map +1 -0
- package/dist/inspiredesign/visual-policy.d.ts +17 -0
- package/dist/inspiredesign/visual-policy.d.ts.map +1 -0
- package/dist/{inspiredesign-IEUL4PX3.js → inspiredesign-IPVZDLSQ.js} +73 -21
- package/dist/inspiredesign-IPVZDLSQ.js.map +1 -0
- package/dist/{launch-EK66VQPF.js → launch-B35YDRQC.js} +11 -11
- package/dist/{list-ADZAQ2IU.js → list-JV55JVGB.js} +10 -10
- package/dist/{list-KKUKN467.js → list-YETWKTKY.js} +10 -10
- package/dist/{macro-resolve-6DOQJ7CA.js → macro-resolve-DQK4B3W3.js} +12 -12
- package/dist/{native-UPLVQ2SG.js → native-J2DFLOLP.js} +3 -3
- package/dist/{network-poll-NUL4PDPY.js → network-poll-4GWHCJXI.js} +11 -11
- package/dist/{new-5NKYPEFT.js → new-XDCQPIEG.js} +10 -10
- package/dist/{open-NR3BPLXV.js → open-GIM3ZCSV.js} +10 -10
- package/dist/opendevbrowser.d.ts.map +1 -1
- package/dist/opendevbrowser.js +47 -18
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/{perf-HJ36ZI6H.js → perf-26VBXDPI.js} +11 -11
- package/dist/{pointer-down-IYTTQWXZ.js → pointer-down-O3VSNAXW.js} +12 -12
- package/dist/{pointer-drag-A2YC5PWI.js → pointer-drag-WQ5QGE6J.js} +12 -12
- package/dist/{pointer-move-W5K5FUI4.js → pointer-move-4N4D7JY2.js} +12 -12
- package/dist/{pointer-up-6GWVO64Y.js → pointer-up-CQC4NPDX.js} +12 -12
- package/dist/{press-A3V5WB3S.js → press-XGJD45CU.js} +11 -11
- package/dist/{product-video-52REKWF3.js → product-video-HD4ZOUI7.js} +13 -13
- package/dist/providers/browser-native-discovery.d.ts +23 -0
- package/dist/providers/browser-native-discovery.d.ts.map +1 -0
- package/dist/providers/renderer.d.ts +9 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflow-handoff.d.ts +4 -0
- package/dist/providers/workflow-handoff.d.ts.map +1 -1
- package/dist/providers/workflows.d.ts +45 -3
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-IMFYMMHQ.js → providers-KKNPJSQK.js} +4 -4
- package/dist/public-surface/generated-manifest.d.ts +14 -5
- package/dist/public-surface/generated-manifest.d.ts.map +1 -1
- package/dist/public-surface/source.d.ts +7 -7
- package/dist/public-surface/source.d.ts.map +1 -1
- package/dist/{research-WB6BBCDD.js → research-VUWWEQ4R.js} +13 -13
- package/dist/{review-BGWVY4RA.js → review-LZ3TA7U7.js} +12 -12
- package/dist/{review-desktop-LEORC5VS.js → review-desktop-LAO7U7T3.js} +12 -12
- package/dist/{rpc-4TSKSFGC.js → rpc-HKNIVFGC.js} +11 -11
- package/dist/{run-3NBLVWXD.js → run-SHCF53FO.js} +9 -9
- package/dist/{screencast-start-UZVIT3IN.js → screencast-start-JHMQZVWJ.js} +11 -11
- package/dist/{screencast-stop-NOSJSIUO.js → screencast-stop-RWQTWWQS.js} +11 -11
- package/dist/{screenshot-LARG4JQG.js → screenshot-QHFYO6PB.js} +11 -11
- package/dist/{scroll-VNFMV6TW.js → scroll-L3FTMAV4.js} +11 -11
- package/dist/{scroll-into-view-VYRT3JPT.js → scroll-into-view-JVDHX4WU.js} +11 -11
- package/dist/{select-KJTUZDVO.js → select-X4BO7GTB.js} +11 -11
- package/dist/{serve-EV7K4HKR.js → serve-JIMIBCNO.js} +49 -25
- package/dist/serve-JIMIBCNO.js.map +1 -0
- package/dist/{shopping-DTXHVQ2X.js → shopping-EGSDP2GL.js} +13 -13
- package/dist/{skill-lifecycle-5UAZGKSN.js → skill-lifecycle-OWZYBPFS.js} +3 -3
- package/dist/skills/bundled-skill-directories.d.ts.map +1 -1
- package/dist/skills/skill-loader.js +2 -2
- package/dist/{skills-NSXDX6YM.js → skills-KHMRNOE4.js} +3 -3
- package/dist/{snapshot-3XQMCMRJ.js → snapshot-QGJ7RDNV.js} +11 -11
- package/dist/{status-YUMDP5KY.js → status-CKGPNYIH.js} +21 -13
- package/dist/status-CKGPNYIH.js.map +1 -0
- package/dist/{status-OXSYA5XD.js → status-LEBY2X7N.js} +12 -12
- package/dist/{status-capabilities-P4KDSE2Y.js → status-capabilities-6QTWNGKM.js} +12 -12
- package/dist/{text-V3B7UVIH.js → text-VUZU7D3L.js} +11 -11
- package/dist/tools/inspiredesign_run.d.ts.map +1 -1
- package/dist/{type-IYBN3ZLR.js → type-N5SURP74.js} +11 -11
- package/dist/{uncheck-SG737EGI.js → uncheck-JFMK3SSY.js} +11 -11
- package/dist/{uninstall-KYKGJAX7.js → uninstall-FW5ORBIN.js} +3 -3
- package/dist/{update-skill-modes-BVX7IVMW.js → update-skill-modes-3ULKJK3Y.js} +3 -3
- package/dist/{upload-KH6ZABJA.js → upload-KFUYLL7M.js} +11 -11
- package/dist/{use-7YDKO3U4.js → use-CNMPP2ED.js} +10 -10
- package/dist/{value-RZBWSKKM.js → value-J335MPZE.js} +11 -11
- package/dist/{visible-BSFTAKXR.js → visible-YQZWWPBZ.js} +11 -11
- package/dist/{wait-TMTEAYOP.js → wait-IC7YJJPJ.js} +11 -11
- package/dist/{windows-HIZ23OHS.js → windows-AGVQ3KX3.js} +12 -12
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/AGENTS.md +2 -1
- package/skills/opendevbrowser-best-practices/SKILL.md +16 -3
- package/skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md +4 -4
- package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +4 -3
- package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +7 -0
- package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +49 -3
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +31 -2
- package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +7 -0
- package/skills/opendevbrowser-design-agent/SKILL.md +11 -6
- package/skills/opendevbrowser-design-agent/artifacts/design-workflows.md +4 -3
- package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +110 -41
- package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +2 -0
- package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +21 -5
- package/skills/opendevbrowser-design-agent/scripts/design-workflow.sh +5 -2
- package/skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh +8 -2
- package/skills/opendevbrowser-motion-design/SKILL.md +129 -0
- package/skills/opendevbrowser-motion-design/artifacts/accessibility-reduced-motion.md +37 -0
- package/skills/opendevbrowser-motion-design/artifacts/device-breakpoint-posture.md +40 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-anti-patterns.md +29 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-pattern-catalog.md +430 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-release-gate.md +28 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-terminology.md +46 -0
- package/skills/opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md +48 -0
- package/skills/opendevbrowser-motion-design/artifacts/performance-frame-budget.md +38 -0
- package/skills/opendevbrowser-motion-design/artifacts/platform-framework-guide.md +166 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-audit-report.v1.md +70 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-contract.v1.json +79 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-release-gate.v1.json +18 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-viewport-matrix.v1.json +76 -0
- package/skills/opendevbrowser-motion-design/scripts/motion-workflow.sh +163 -0
- package/skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh +375 -0
- package/dist/canvas-5DFEEOKM.js.map +0 -1
- package/dist/chunk-2I3YS3DV.js.map +0 -1
- package/dist/chunk-37VSRUW4.js.map +0 -1
- package/dist/chunk-3ILXPKSJ.js.map +0 -1
- package/dist/chunk-4BEJVZRK.js.map +0 -1
- package/dist/chunk-6B5WAQV7.js.map +0 -1
- package/dist/chunk-COAOWH3G.js.map +0 -1
- package/dist/chunk-IPE7TF2P.js.map +0 -1
- package/dist/chunk-KZ2IXVQT.js.map +0 -1
- package/dist/chunk-MD655IPO.js.map +0 -1
- package/dist/chunk-QOMWCRE3.js.map +0 -1
- package/dist/daemon-2BSAZXLT.js.map +0 -1
- package/dist/help-U7KBQME6.js.map +0 -1
- package/dist/inspiredesign-IEUL4PX3.js.map +0 -1
- package/dist/serve-EV7K4HKR.js.map +0 -1
- package/dist/status-YUMDP5KY.js.map +0 -1
- /package/dist/{accessibility-snapshot-CQ4ZKWKC.js.map → accessibility-snapshot-JSPFVWZ6.js.map} +0 -0
- /package/dist/{active-window-TD5HYJ72.js.map → active-window-2OB2MSCR.js.map} +0 -0
- /package/dist/{annotate-VTLFS2XV.js.map → annotate-VDZBZBKZ.js.map} +0 -0
- /package/dist/{artifacts-KJ6RNDO2.js.map → artifacts-JHDUUJGQ.js.map} +0 -0
- /package/dist/{attr-BCI5KYCW.js.map → attr-7XIO4MCH.js.map} +0 -0
- /package/dist/{capture-desktop-HFTTWY4Z.js.map → capture-desktop-T5YO3EBI.js.map} +0 -0
- /package/dist/{capture-window-X63XPIFF.js.map → capture-window-UKEUBWKH.js.map} +0 -0
- /package/dist/{check-LWAUY7GC.js.map → check-PQB6KKMN.js.map} +0 -0
- /package/dist/{checked-ZSOUKVYT.js.map → checked-RNZIMCU6.js.map} +0 -0
- /package/dist/{chunk-PPUWQKIC.js.map → chunk-52ZIOWVU.js.map} +0 -0
- /package/dist/{chunk-T4GMCW6Z.js.map → chunk-J3KYGJRQ.js.map} +0 -0
- /package/dist/{chunk-AHEWXOKY.js.map → chunk-JROW6ZNN.js.map} +0 -0
- /package/dist/{chunk-6PVZ2ABC.js.map → chunk-L3YNUGYF.js.map} +0 -0
- /package/dist/{chunk-JZXD6FWR.js.map → chunk-NURQB55J.js.map} +0 -0
- /package/dist/{chunk-STGGGVYT.js.map → chunk-QMHKAFYX.js.map} +0 -0
- /package/dist/{chunk-RPXWUCQQ.js.map → chunk-SKFB5ICF.js.map} +0 -0
- /package/dist/{chunk-2SIMIPLY.js.map → chunk-W6YPVNDX.js.map} +0 -0
- /package/dist/{chunk-GQJ5S3BL.js.map → chunk-YRRRUGSQ.js.map} +0 -0
- /package/dist/{chunk-KDSNXS6N.js.map → chunk-ZMNEWS7A.js.map} +0 -0
- /package/dist/{click-2AILSEIZ.js.map → click-U7ZFKSB4.js.map} +0 -0
- /package/dist/{clone-component-TPJS3PEG.js.map → clone-component-SWYAORTU.js.map} +0 -0
- /package/dist/{clone-page-LE74CIFC.js.map → clone-page-WJ6UJOJG.js.map} +0 -0
- /package/dist/{close-HN4YI47K.js.map → close-NAVIHZ2T.js.map} +0 -0
- /package/dist/{close-WFERRHX6.js.map → close-VKIGIKVT.js.map} +0 -0
- /package/dist/{connect-RWBV2UCQ.js.map → connect-XVG2MOZL.js.map} +0 -0
- /package/dist/{console-poll-PP4YYPDF.js.map → console-poll-XI5BZPL7.js.map} +0 -0
- /package/dist/{cookie-import-6IP776FC.js.map → cookie-import-QELKE7TK.js.map} +0 -0
- /package/dist/{cookie-list-O2KG6DPU.js.map → cookie-list-QDA6KWIY.js.map} +0 -0
- /package/dist/{debug-trace-snapshot-F3BDVZXS.js.map → debug-trace-snapshot-AT4GAO57.js.map} +0 -0
- /package/dist/{dialog-6JQYUWMQ.js.map → dialog-O3V2IBFH.js.map} +0 -0
- /package/dist/{disconnect-763TP7GH.js.map → disconnect-NAX5TPTG.js.map} +0 -0
- /package/dist/{enabled-DLYQFNIP.js.map → enabled-VT4FJXDX.js.map} +0 -0
- /package/dist/{goto-S346TJJH.js.map → goto-GBJG5NC4.js.map} +0 -0
- /package/dist/{hover-6JVJFGO7.js.map → hover-476ZNQZE.js.map} +0 -0
- /package/dist/{html-EVOSPBIT.js.map → html-5C4TXOV3.js.map} +0 -0
- /package/dist/{inspector-H57BVUJP.js.map → inspector-73ARPCIV.js.map} +0 -0
- /package/dist/{inspector-audit-NQBAJWC7.js.map → inspector-audit-QT6QY7KS.js.map} +0 -0
- /package/dist/{inspector-plan-ZDIQVND3.js.map → inspector-plan-JRNSGN2Z.js.map} +0 -0
- /package/dist/{launch-EK66VQPF.js.map → launch-B35YDRQC.js.map} +0 -0
- /package/dist/{list-ADZAQ2IU.js.map → list-JV55JVGB.js.map} +0 -0
- /package/dist/{list-KKUKN467.js.map → list-YETWKTKY.js.map} +0 -0
- /package/dist/{macro-resolve-6DOQJ7CA.js.map → macro-resolve-DQK4B3W3.js.map} +0 -0
- /package/dist/{native-UPLVQ2SG.js.map → native-J2DFLOLP.js.map} +0 -0
- /package/dist/{network-poll-NUL4PDPY.js.map → network-poll-4GWHCJXI.js.map} +0 -0
- /package/dist/{new-5NKYPEFT.js.map → new-XDCQPIEG.js.map} +0 -0
- /package/dist/{open-NR3BPLXV.js.map → open-GIM3ZCSV.js.map} +0 -0
- /package/dist/{perf-HJ36ZI6H.js.map → perf-26VBXDPI.js.map} +0 -0
- /package/dist/{pointer-down-IYTTQWXZ.js.map → pointer-down-O3VSNAXW.js.map} +0 -0
- /package/dist/{pointer-drag-A2YC5PWI.js.map → pointer-drag-WQ5QGE6J.js.map} +0 -0
- /package/dist/{pointer-move-W5K5FUI4.js.map → pointer-move-4N4D7JY2.js.map} +0 -0
- /package/dist/{pointer-up-6GWVO64Y.js.map → pointer-up-CQC4NPDX.js.map} +0 -0
- /package/dist/{press-A3V5WB3S.js.map → press-XGJD45CU.js.map} +0 -0
- /package/dist/{product-video-52REKWF3.js.map → product-video-HD4ZOUI7.js.map} +0 -0
- /package/dist/{providers-IMFYMMHQ.js.map → providers-KKNPJSQK.js.map} +0 -0
- /package/dist/{research-WB6BBCDD.js.map → research-VUWWEQ4R.js.map} +0 -0
- /package/dist/{review-BGWVY4RA.js.map → review-LZ3TA7U7.js.map} +0 -0
- /package/dist/{review-desktop-LEORC5VS.js.map → review-desktop-LAO7U7T3.js.map} +0 -0
- /package/dist/{rpc-4TSKSFGC.js.map → rpc-HKNIVFGC.js.map} +0 -0
- /package/dist/{run-3NBLVWXD.js.map → run-SHCF53FO.js.map} +0 -0
- /package/dist/{screencast-start-UZVIT3IN.js.map → screencast-start-JHMQZVWJ.js.map} +0 -0
- /package/dist/{screencast-stop-NOSJSIUO.js.map → screencast-stop-RWQTWWQS.js.map} +0 -0
- /package/dist/{screenshot-LARG4JQG.js.map → screenshot-QHFYO6PB.js.map} +0 -0
- /package/dist/{scroll-VNFMV6TW.js.map → scroll-L3FTMAV4.js.map} +0 -0
- /package/dist/{scroll-into-view-VYRT3JPT.js.map → scroll-into-view-JVDHX4WU.js.map} +0 -0
- /package/dist/{select-KJTUZDVO.js.map → select-X4BO7GTB.js.map} +0 -0
- /package/dist/{shopping-DTXHVQ2X.js.map → shopping-EGSDP2GL.js.map} +0 -0
- /package/dist/{skill-lifecycle-5UAZGKSN.js.map → skill-lifecycle-OWZYBPFS.js.map} +0 -0
- /package/dist/{skills-NSXDX6YM.js.map → skills-KHMRNOE4.js.map} +0 -0
- /package/dist/{snapshot-3XQMCMRJ.js.map → snapshot-QGJ7RDNV.js.map} +0 -0
- /package/dist/{status-OXSYA5XD.js.map → status-LEBY2X7N.js.map} +0 -0
- /package/dist/{status-capabilities-P4KDSE2Y.js.map → status-capabilities-6QTWNGKM.js.map} +0 -0
- /package/dist/{text-V3B7UVIH.js.map → text-VUZU7D3L.js.map} +0 -0
- /package/dist/{type-IYBN3ZLR.js.map → type-N5SURP74.js.map} +0 -0
- /package/dist/{uncheck-SG737EGI.js.map → uncheck-JFMK3SSY.js.map} +0 -0
- /package/dist/{uninstall-KYKGJAX7.js.map → uninstall-FW5ORBIN.js.map} +0 -0
- /package/dist/{update-skill-modes-BVX7IVMW.js.map → update-skill-modes-3ULKJK3Y.js.map} +0 -0
- /package/dist/{upload-KH6ZABJA.js.map → upload-KFUYLL7M.js.map} +0 -0
- /package/dist/{use-7YDKO3U4.js.map → use-CNMPP2ED.js.map} +0 -0
- /package/dist/{value-RZBWSKKM.js.map → value-J335MPZE.js.map} +0 -0
- /package/dist/{visible-BSFTAKXR.js.map → visible-YQZWWPBZ.js.map} +0 -0
- /package/dist/{wait-TMTEAYOP.js.map → wait-IC7YJJPJ.js.map} +0 -0
- /package/dist/{windows-HIZ23OHS.js.map → windows-AGVQ3KX3.js.map} +0 -0
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
CLI_COMMANDS,
|
|
3
3
|
VALID_EQUALS_FLAGS,
|
|
4
4
|
VALID_FLAGS
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-27W46IKI.js";
|
|
6
6
|
import {
|
|
7
7
|
createUsageError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-7BNU6DFI.js";
|
|
9
9
|
|
|
10
10
|
// src/cli/args.ts
|
|
11
11
|
var CLI_COMMAND_SET = new Set(CLI_COMMANDS);
|
|
@@ -74,8 +74,12 @@ function parseTransport(args) {
|
|
|
74
74
|
var VALID_FLAG_SET = new Set(VALID_FLAGS);
|
|
75
75
|
var VALID_EQUALS_FLAG_SET = new Set(VALID_EQUALS_FLAGS);
|
|
76
76
|
var SIGNED_VALUE_FLAG_SET = /* @__PURE__ */ new Set(["--dy"]);
|
|
77
|
+
var PASSTHROUGH_VALUE_FLAG_SET = /* @__PURE__ */ new Set(["--flag"]);
|
|
77
78
|
var SIGNED_INTEGER_VALUE = /^-\d+$/;
|
|
78
79
|
function shouldSkipValueToken(flag, value) {
|
|
80
|
+
if (PASSTHROUGH_VALUE_FLAG_SET.has(flag) && value !== void 0) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
79
83
|
if (!VALID_EQUALS_FLAG_SET.has(flag) || value === void 0) {
|
|
80
84
|
return false;
|
|
81
85
|
}
|
|
@@ -223,4 +227,4 @@ export {
|
|
|
223
227
|
parseArgs,
|
|
224
228
|
detectOutputFormat
|
|
225
229
|
};
|
|
226
|
-
//# sourceMappingURL=chunk-
|
|
230
|
+
//# sourceMappingURL=chunk-FDBUB7BM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/args.ts"],"sourcesContent":["import { createUsageError } from \"./errors\";\nimport {\n CLI_COMMANDS,\n VALID_EQUALS_FLAGS,\n VALID_FLAGS\n} from \"../public-surface/generated-manifest\";\nimport type { PublicSurfaceCliCommandName } from \"../public-surface/source\";\n\nconst CLI_COMMAND_SET = new Set<string>(CLI_COMMANDS);\n\nexport { CLI_COMMANDS, VALID_EQUALS_FLAGS, VALID_FLAGS };\n\nexport type CliCommand = PublicSurfaceCliCommandName;\nexport type InstallMode = \"global\" | \"local\";\nexport type SkillsMode = \"global\" | \"local\" | \"none\";\nexport type OutputFormat = \"text\" | \"json\" | \"stream-json\";\nexport type TransportMode = \"relay\" | \"native\";\n\nexport interface ParsedArgs {\n command: CliCommand;\n mode?: InstallMode;\n withConfig: boolean;\n noPrompt: boolean;\n noInteractive: boolean;\n quiet: boolean;\n outputFormat: OutputFormat;\n transport: TransportMode;\n skillsMode: SkillsMode;\n fullInstall: boolean;\n rawArgs: string[];\n}\n\nconst SHORT_FLAGS: Record<string, string> = {\n \"-g\": \"--global\",\n \"-l\": \"--local\",\n \"-u\": \"--update\",\n \"-h\": \"--help\",\n \"-v\": \"--version\",\n \"-f\": \"--full\"\n};\n\nfunction expandShortFlags(args: string[]): string[] {\n return args.map((arg) => SHORT_FLAGS[arg] ?? arg);\n}\n\nfunction parseSkillsMode(args: string[]): SkillsMode {\n const hasLocal = args.includes(\"--skills-local\");\n const hasGlobal = args.includes(\"--skills-global\");\n if (hasLocal && hasGlobal) {\n throw createUsageError(\"Choose either --skills-local or --skills-global.\");\n }\n if (args.includes(\"--no-skills\")) {\n return \"none\";\n }\n if (hasLocal) {\n return \"local\";\n }\n if (hasGlobal) {\n return \"global\";\n }\n return \"global\";\n}\n\nfunction parseOutputFormat(args: string[]): OutputFormat {\n const outputFlag = args.find((arg) => arg.startsWith(\"--output-format\"));\n if (!outputFlag) {\n return \"text\";\n }\n\n let value: string | undefined;\n if (outputFlag.includes(\"=\")) {\n value = outputFlag.split(\"=\", 2)[1];\n } else {\n const index = args.indexOf(outputFlag);\n value = index >= 0 ? args[index + 1] : undefined;\n }\n\n if (value === \"text\" || value === \"json\" || value === \"stream-json\") {\n return value;\n }\n\n throw createUsageError(`Invalid --output-format: ${value ?? \"missing\"}`);\n}\n\nfunction parseTransport(args: string[]): TransportMode {\n const transportFlag = args.find((arg) => arg.startsWith(\"--transport\"));\n if (!transportFlag) {\n return \"relay\";\n }\n\n let value: string | undefined;\n if (transportFlag.includes(\"=\")) {\n value = transportFlag.split(\"=\", 2)[1];\n } else {\n const index = args.indexOf(transportFlag);\n value = index >= 0 ? args[index + 1] : undefined;\n }\n\n if (value === \"relay\" || value === \"native\") {\n return value;\n }\n\n throw createUsageError(`Invalid --transport: ${value ?? \"missing\"}`);\n}\n\nconst VALID_FLAG_SET = new Set<string>(VALID_FLAGS);\nconst VALID_EQUALS_FLAG_SET = new Set<string>(VALID_EQUALS_FLAGS);\nconst SIGNED_VALUE_FLAG_SET = new Set<string>([\"--dy\"]);\nconst PASSTHROUGH_VALUE_FLAG_SET = new Set<string>([\"--flag\"]);\nconst SIGNED_INTEGER_VALUE = /^-\\d+$/;\n\nfunction shouldSkipValueToken(flag: string, value: string | undefined): boolean {\n if (PASSTHROUGH_VALUE_FLAG_SET.has(flag) && value !== undefined) {\n return true;\n }\n if (!VALID_EQUALS_FLAG_SET.has(flag) || value === undefined) {\n return false;\n }\n if (!value.startsWith(\"-\")) {\n return true;\n }\n return SIGNED_VALUE_FLAG_SET.has(flag) && SIGNED_INTEGER_VALUE.test(value);\n}\n\nexport function parseArgs(argv: string[]): ParsedArgs {\n let args = expandShortFlags(argv.slice(2));\n let commandOverride: CliCommand | null = null;\n\n if (args[0] && !args[0].startsWith(\"-\")) {\n const candidate = args[0];\n if (CLI_COMMAND_SET.has(candidate)) {\n commandOverride = candidate as CliCommand;\n args = args.slice(1);\n } else {\n throw createUsageError(`Unknown command: ${candidate}`);\n }\n }\n const hasGlobal = args.includes(\"--global\");\n const hasLocal = args.includes(\"--local\");\n if (hasGlobal && hasLocal) {\n throw createUsageError(\"Choose either --global or --local.\");\n }\n\n const skillsMode = parseSkillsMode(args);\n const fullInstall = args.includes(\"--full\");\n const outputFormat = parseOutputFormat(args);\n const transport = commandOverride === \"annotate\" ? \"relay\" : parseTransport(args);\n\n if (commandOverride === \"help\" || args.includes(\"--help\") || args.includes(\"-h\")) {\n return {\n command: \"help\",\n withConfig: false,\n noPrompt: false,\n noInteractive: false,\n quiet: false,\n outputFormat,\n transport,\n skillsMode,\n fullInstall,\n rawArgs: args\n };\n }\n\n if (commandOverride === \"version\" || args.includes(\"--version\") || args.includes(\"-v\")) {\n return {\n command: \"version\",\n withConfig: false,\n noPrompt: false,\n noInteractive: false,\n quiet: false,\n outputFormat,\n transport,\n skillsMode,\n fullInstall,\n rawArgs: args\n };\n }\n\n if (commandOverride === \"update\" || args.includes(\"--update\")) {\n const mode = args.includes(\"--global\") ? \"global\" : args.includes(\"--local\") ? \"local\" : undefined;\n return {\n command: \"update\",\n mode,\n withConfig: false,\n noPrompt: false,\n noInteractive: false,\n quiet: false,\n outputFormat,\n transport,\n skillsMode,\n fullInstall,\n rawArgs: args\n };\n }\n\n if (commandOverride === \"uninstall\" || args.includes(\"--uninstall\")) {\n const mode = args.includes(\"--global\") ? \"global\" : args.includes(\"--local\") ? \"local\" : undefined;\n const noPrompt = args.includes(\"--no-prompt\") || args.includes(\"--no-interactive\");\n return {\n command: \"uninstall\",\n mode,\n withConfig: false,\n noPrompt,\n noInteractive: noPrompt,\n quiet: args.includes(\"--quiet\"),\n outputFormat,\n transport,\n skillsMode,\n fullInstall,\n rawArgs: args\n };\n }\n\n const withConfig = args.includes(\"--with-config\") || fullInstall;\n const noPrompt = args.includes(\"--no-prompt\") || args.includes(\"--no-interactive\");\n const noInteractive = args.includes(\"--no-interactive\") || noPrompt;\n const quiet = args.includes(\"--quiet\");\n\n let mode: InstallMode | undefined;\n if (args.includes(\"--global\")) {\n mode = \"global\";\n } else if (args.includes(\"--local\")) {\n mode = \"local\";\n } else if (noPrompt) {\n mode = \"global\";\n }\n\n for (let index = 0; index < args.length; index += 1) {\n const arg = args[index] ?? \"\";\n if (arg.startsWith(\"--\") && !VALID_FLAG_SET.has(arg)) {\n if (arg.includes(\"=\")) {\n const baseFlag = arg.split(\"=\", 2)[0] ?? \"\";\n if (VALID_EQUALS_FLAG_SET.has(baseFlag)) {\n continue;\n }\n }\n throw createUsageError(`Unknown flag: ${arg}`);\n }\n if (arg.startsWith(\"-\") && !arg.startsWith(\"--\") && !SHORT_FLAGS[arg]) {\n throw createUsageError(`Unknown flag: ${arg}`);\n }\n if (shouldSkipValueToken(arg, args[index + 1])) {\n index += 1;\n }\n }\n\n return {\n command: commandOverride ?? \"install\",\n mode,\n withConfig,\n noPrompt,\n noInteractive,\n quiet,\n outputFormat,\n transport,\n skillsMode,\n fullInstall,\n rawArgs: args\n };\n}\n\nexport function detectOutputFormat(argv: string[]): OutputFormat {\n const args = expandShortFlags(argv.slice(2));\n try {\n return parseOutputFormat(args);\n } catch {\n return \"text\";\n }\n}\n\nexport function detectQuiet(argv: string[]): boolean {\n const args = expandShortFlags(argv.slice(2));\n return args.includes(\"--quiet\");\n}\n"],"mappings":"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","names":["mode","noPrompt"]}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
readCookiesFromSource,
|
|
8
8
|
resolveBundledProviderRuntime,
|
|
9
9
|
resolveSessionRelayRoute
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EOX6U6Q4.js";
|
|
11
11
|
import {
|
|
12
12
|
loadGlobalConfig,
|
|
13
13
|
resolveConfig
|
|
@@ -24,12 +24,12 @@ import {
|
|
|
24
24
|
runProductVideoWorkflow,
|
|
25
25
|
runResearchWorkflow,
|
|
26
26
|
runShoppingWorkflow
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-FBKPDILE.js";
|
|
28
28
|
import {
|
|
29
29
|
buildBlockerArtifacts,
|
|
30
30
|
classifyBlockerSignal,
|
|
31
31
|
redactSensitive
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-3WLCWHIV.js";
|
|
33
33
|
|
|
34
34
|
// src/cli/utils/http.ts
|
|
35
35
|
var DEFAULT_HTTP_TIMEOUT_MS = 5e3;
|
|
@@ -148,12 +148,30 @@ async function readResponseJsonWithTimeout(response, signal, timeoutMs) {
|
|
|
148
148
|
return await readResponseBodyWithTimeout(response, signal, timeoutMs, () => response.json());
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
// src/cli/daemon-mismatch.ts
|
|
152
|
+
var DAEMON_FINGERPRINT_MISMATCH_REASON = "daemon_fingerprint_mismatch";
|
|
153
|
+
var STATUS_PREFLIGHT_COMMAND = "opendevbrowser status --daemon --output-format json";
|
|
154
|
+
var FINGERPRINT_CURRENT_ASSERTION = "data.fingerprintCurrent === true";
|
|
155
|
+
var formatPid = (pid) => {
|
|
156
|
+
return Number.isInteger(pid) && Number(pid) > 0 ? ` pid=${pid}` : "";
|
|
157
|
+
};
|
|
158
|
+
function buildDaemonFingerprintMismatchMessage({
|
|
159
|
+
label,
|
|
160
|
+
port,
|
|
161
|
+
pid
|
|
162
|
+
}) {
|
|
163
|
+
return `${label} on 127.0.0.1:${port}${formatPid(pid)} is protected by a different opendevbrowser build. Run \`${STATUS_PREFLIGHT_COMMAND}\` and continue only when \`${FINGERPRINT_CURRENT_ASSERTION}\`. Use the matching binary to stop it, restart the daemon from the current install, or isolate this run with separate OPENCODE_CONFIG_DIR, OPENCODE_CACHE_DIR, daemon port, and relay port.`;
|
|
164
|
+
}
|
|
165
|
+
function buildDaemonFingerprintMismatchStatusGuidance() {
|
|
166
|
+
return `Recovery: run \`${STATUS_PREFLIGHT_COMMAND}\` and proceed only when \`${FINGERPRINT_CURRENT_ASSERTION}\`; use the matching binary, restart the daemon from the current install, or isolate OPENCODE_CONFIG_DIR, OPENCODE_CACHE_DIR, daemon port, and relay port.`;
|
|
167
|
+
}
|
|
168
|
+
|
|
151
169
|
// src/cli/daemon.ts
|
|
152
170
|
import { createServer } from "http";
|
|
153
171
|
import { createHash, timingSafeEqual } from "crypto";
|
|
154
172
|
import { mkdirSync, readFileSync, writeFileSync, unlinkSync, existsSync } from "fs";
|
|
155
173
|
import { homedir } from "os";
|
|
156
|
-
import { basename, dirname, join, resolve } from "path";
|
|
174
|
+
import { basename, dirname as dirname2, join, resolve as resolve2 } from "path";
|
|
157
175
|
import { fileURLToPath } from "url";
|
|
158
176
|
|
|
159
177
|
// src/cli/daemon-commands.ts
|
|
@@ -394,10 +412,15 @@ function getBoolean(value) {
|
|
|
394
412
|
}
|
|
395
413
|
|
|
396
414
|
// src/inspiredesign/capture.ts
|
|
415
|
+
import { mkdir } from "fs/promises";
|
|
416
|
+
import { dirname, resolve } from "path";
|
|
397
417
|
var INSPIREDESIGN_CAPTURE_TIMEOUT_MS = 3e4;
|
|
398
418
|
var INSPIREDESIGN_CAPTURE_MAX_CHARS = 12e3;
|
|
399
419
|
var ACTIVE_SESSION_COOKIE_REUSE_UNAVAILABLE_MESSAGE = "Deep capture only honors configured provider cookie sources; active session cookies are not reused.";
|
|
400
420
|
var DOM_CAPTURE_HELPER_UNAVAILABLE_MESSAGE = "DOM capture helper unavailable in this execution lane.";
|
|
421
|
+
var VISUAL_CAPTURE_HELPER_UNAVAILABLE_MESSAGE = "Visual evidence screenshot helper unavailable in this execution lane.";
|
|
422
|
+
var VISUAL_CAPTURE_PATH_UNAVAILABLE_MESSAGE = "Visual evidence path was not configured for screenshot capture.";
|
|
423
|
+
var VISUAL_CAPTURE_EMPTY_MESSAGE = "Visual evidence screenshot did not return a file path.";
|
|
401
424
|
var SNAPSHOT_CAPTURE_EMPTY_MESSAGE = "Snapshot capture returned empty content.";
|
|
402
425
|
var CLONE_CAPTURE_EMPTY_MESSAGE = "Clone capture returned empty component and CSS previews.";
|
|
403
426
|
var DOM_CAPTURE_EMPTY_MESSAGE = "DOM capture returned empty HTML.";
|
|
@@ -605,7 +628,55 @@ var captureDomArtifact = async (manager, sessionId, remainingTimeoutMs) => {
|
|
|
605
628
|
};
|
|
606
629
|
}
|
|
607
630
|
};
|
|
608
|
-
var
|
|
631
|
+
var buildVisualEvidenceMetadata = (status, detail, warnings = [], tempPath) => ({
|
|
632
|
+
status,
|
|
633
|
+
kind: "viewport",
|
|
634
|
+
fullPage: false,
|
|
635
|
+
capturedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
636
|
+
...tempPath ? { tempPath } : {},
|
|
637
|
+
warnings,
|
|
638
|
+
...detail ? { failure: sanitizeInspiredesignCaptureText(detail) } : {}
|
|
639
|
+
});
|
|
640
|
+
var captureVisualEvidenceArtifact = async (manager, sessionId, options, remainingTimeoutMs) => {
|
|
641
|
+
const visualEvidence = options.visualEvidence ?? "off";
|
|
642
|
+
if (visualEvidence === "off") return void 0;
|
|
643
|
+
if (!options.visualEvidencePath) {
|
|
644
|
+
return buildVisualEvidenceMetadata(
|
|
645
|
+
visualEvidence === "required" ? "failed" : "skipped",
|
|
646
|
+
VISUAL_CAPTURE_PATH_UNAVAILABLE_MESSAGE
|
|
647
|
+
);
|
|
648
|
+
}
|
|
649
|
+
if (typeof manager.screenshot !== "function") {
|
|
650
|
+
return buildVisualEvidenceMetadata(
|
|
651
|
+
visualEvidence === "required" ? "failed" : "skipped",
|
|
652
|
+
VISUAL_CAPTURE_HELPER_UNAVAILABLE_MESSAGE
|
|
653
|
+
);
|
|
654
|
+
}
|
|
655
|
+
try {
|
|
656
|
+
await mkdir(dirname(options.visualEvidencePath), { recursive: true });
|
|
657
|
+
const screenshot = await withCaptureDeadline(
|
|
658
|
+
manager.screenshot(sessionId, {
|
|
659
|
+
path: options.visualEvidencePath,
|
|
660
|
+
fullPage: false
|
|
661
|
+
}),
|
|
662
|
+
remainingTimeoutMs(),
|
|
663
|
+
"visual evidence screenshot"
|
|
664
|
+
);
|
|
665
|
+
if (!screenshot.path) {
|
|
666
|
+
return buildVisualEvidenceMetadata("failed", VISUAL_CAPTURE_EMPTY_MESSAGE);
|
|
667
|
+
}
|
|
668
|
+
if (resolve(screenshot.path) !== resolve(options.visualEvidencePath)) {
|
|
669
|
+
return buildVisualEvidenceMetadata("failed", "Visual evidence screenshot path did not match the requested artifact path.");
|
|
670
|
+
}
|
|
671
|
+
return buildVisualEvidenceMetadata("captured", void 0, screenshot.warnings ?? [], options.visualEvidencePath);
|
|
672
|
+
} catch (error) {
|
|
673
|
+
return buildVisualEvidenceMetadata(
|
|
674
|
+
"failed",
|
|
675
|
+
detailFromCaptureError(error, "Visual evidence screenshot failed.")
|
|
676
|
+
);
|
|
677
|
+
}
|
|
678
|
+
};
|
|
679
|
+
var buildCaptureEvidence = (snapshot, clone, dom, visual) => {
|
|
609
680
|
const attempts = {
|
|
610
681
|
snapshot: snapshot.attempt,
|
|
611
682
|
clone: clone.attempt,
|
|
@@ -615,6 +686,7 @@ var buildCaptureEvidence = (snapshot, clone, dom) => {
|
|
|
615
686
|
...snapshot.snapshot ? { snapshot: snapshot.snapshot } : {},
|
|
616
687
|
...dom.dom ? { dom: dom.dom } : {},
|
|
617
688
|
...clone.clone ? { clone: clone.clone } : {},
|
|
689
|
+
...visual ? { visual } : {},
|
|
618
690
|
attempts
|
|
619
691
|
};
|
|
620
692
|
};
|
|
@@ -630,7 +702,7 @@ var buildTransportTimeoutCaptureEvidence = (snapshot, clone, label) => {
|
|
|
630
702
|
attempts
|
|
631
703
|
};
|
|
632
704
|
};
|
|
633
|
-
var captureInspiredesignArtifacts = async (manager, sessionId, remainingTimeoutMs) => {
|
|
705
|
+
var captureInspiredesignArtifacts = async (manager, sessionId, remainingTimeoutMs, options) => {
|
|
634
706
|
const snapshot = await captureSnapshotArtifact(manager, sessionId, remainingTimeoutMs);
|
|
635
707
|
if (snapshot.transportTimedOut) {
|
|
636
708
|
return buildTransportTimeoutCaptureEvidence(snapshot, void 0, "snapshot capture");
|
|
@@ -640,7 +712,8 @@ var captureInspiredesignArtifacts = async (manager, sessionId, remainingTimeoutM
|
|
|
640
712
|
return buildTransportTimeoutCaptureEvidence(snapshot, clone, "clone capture");
|
|
641
713
|
}
|
|
642
714
|
const dom = await captureDomArtifact(manager, sessionId, remainingTimeoutMs);
|
|
643
|
-
|
|
715
|
+
const visual = await captureVisualEvidenceArtifact(manager, sessionId, options, remainingTimeoutMs);
|
|
716
|
+
return buildCaptureEvidence(snapshot, clone, dom, visual);
|
|
644
717
|
};
|
|
645
718
|
async function captureInspiredesignReferenceFromManager(manager, url, options = {}) {
|
|
646
719
|
const cookiePolicy = resolveInspiredesignCaptureCookiePolicy(options);
|
|
@@ -692,7 +765,7 @@ async function captureInspiredesignReferenceFromManager(manager, url, options =
|
|
|
692
765
|
throw error;
|
|
693
766
|
}
|
|
694
767
|
}
|
|
695
|
-
return await captureInspiredesignArtifacts(manager, session.sessionId, remainingTimeoutMs);
|
|
768
|
+
return await captureInspiredesignArtifacts(manager, session.sessionId, remainingTimeoutMs, options);
|
|
696
769
|
} finally {
|
|
697
770
|
await manager.disconnect(session.sessionId, true).catch(() => void 0);
|
|
698
771
|
}
|
|
@@ -1282,7 +1355,7 @@ var waitForBinding = async (clientId, timeoutMs) => {
|
|
|
1282
1355
|
if (!getQueueEntry(clientId)) {
|
|
1283
1356
|
break;
|
|
1284
1357
|
}
|
|
1285
|
-
await new Promise((
|
|
1358
|
+
await new Promise((resolve3) => setTimeout(resolve3, 250));
|
|
1286
1359
|
}
|
|
1287
1360
|
dequeueClient(clientId);
|
|
1288
1361
|
throw new Error("RELAY_WAIT_TIMEOUT: Timed out waiting for relay binding.");
|
|
@@ -2113,10 +2186,15 @@ async function handleDaemonCommand(core, request) {
|
|
|
2113
2186
|
createDaemonWorkflowRuntime(core),
|
|
2114
2187
|
{
|
|
2115
2188
|
brief: requireString(params.brief, "brief"),
|
|
2189
|
+
harvest: optionalBoolean2(params.harvest),
|
|
2190
|
+
query: optionalString(params.query),
|
|
2191
|
+
providers: optionalStringArray2(params.providers),
|
|
2192
|
+
maxReferences: optionalNumber(params.maxReferences, "maxReferences"),
|
|
2193
|
+
visualEvidence: optionalInspiredesignVisualEvidence(params.visualEvidence),
|
|
2116
2194
|
urls: optionalStringArray2(params.urls),
|
|
2117
2195
|
captureMode: optionalInspiredesignCaptureMode(params.captureMode),
|
|
2118
2196
|
includePrototypeGuidance: optionalBoolean2(params.includePrototypeGuidance),
|
|
2119
|
-
mode: optionalRenderMode(params.mode)
|
|
2197
|
+
mode: optionalRenderMode(params.mode),
|
|
2120
2198
|
timeoutMs: inspiredesignTimeoutMs,
|
|
2121
2199
|
outputDir: resolveDaemonWorkflowOutputDir(core, optionalString(params.outputDir)),
|
|
2122
2200
|
ttlHours: optionalNumber(params.ttlHours, "ttlHours"),
|
|
@@ -2165,8 +2243,8 @@ async function handleDaemonCommand(core, request) {
|
|
|
2165
2243
|
await core.manager.goto(session.sessionId, url, "load", captureTimeoutMs);
|
|
2166
2244
|
const screenshot = await Promise.race([
|
|
2167
2245
|
core.manager.screenshot(session.sessionId),
|
|
2168
|
-
new Promise((
|
|
2169
|
-
setTimeout(() =>
|
|
2246
|
+
new Promise((resolve3) => {
|
|
2247
|
+
setTimeout(() => resolve3(null), captureTimeoutMs);
|
|
2170
2248
|
})
|
|
2171
2249
|
]);
|
|
2172
2250
|
if (!screenshot || typeof screenshot.base64 !== "string" || screenshot.base64.length === 0) return null;
|
|
@@ -2895,6 +2973,13 @@ function optionalInspiredesignCaptureMode(value) {
|
|
|
2895
2973
|
}
|
|
2896
2974
|
throw new Error("Invalid captureMode");
|
|
2897
2975
|
}
|
|
2976
|
+
function optionalInspiredesignVisualEvidence(value) {
|
|
2977
|
+
if (typeof value === "undefined") return void 0;
|
|
2978
|
+
if (value === "off" || value === "auto" || value === "required") {
|
|
2979
|
+
return value;
|
|
2980
|
+
}
|
|
2981
|
+
throw new Error("Invalid visualEvidence");
|
|
2982
|
+
}
|
|
2898
2983
|
function requireWaitUntil(value) {
|
|
2899
2984
|
if (value === "domcontentloaded" || value === "load" || value === "networkidle") {
|
|
2900
2985
|
return value;
|
|
@@ -2968,7 +3053,7 @@ async function waitForRelayHandshake(relay, observedPort, timeoutMs) {
|
|
|
2968
3053
|
if (observedStatus?.extensionHandshakeComplete) {
|
|
2969
3054
|
return true;
|
|
2970
3055
|
}
|
|
2971
|
-
await new Promise((
|
|
3056
|
+
await new Promise((resolve3) => setTimeout(resolve3, delay));
|
|
2972
3057
|
delay = Math.min(delay * 2, WAIT_MAX_DELAY_MS);
|
|
2973
3058
|
}
|
|
2974
3059
|
return false;
|
|
@@ -3175,15 +3260,15 @@ function clearDaemonMetadata() {
|
|
|
3175
3260
|
function resolveCurrentDaemonEntrypointPath(options = {}) {
|
|
3176
3261
|
const rawEntry = options.argv1 ?? process.argv[1];
|
|
3177
3262
|
if (typeof rawEntry === "string" && rawEntry.trim().length > 0) {
|
|
3178
|
-
return
|
|
3263
|
+
return resolve2(rawEntry);
|
|
3179
3264
|
}
|
|
3180
3265
|
const moduleUrl = options.moduleUrl ?? import.meta.url;
|
|
3181
|
-
const cliEntrypoint =
|
|
3266
|
+
const cliEntrypoint = resolve2(fileURLToPath(new URL("./index.js", moduleUrl)));
|
|
3182
3267
|
const entryExists = options.entryExists ?? existsSync;
|
|
3183
3268
|
if (entryExists(cliEntrypoint)) {
|
|
3184
3269
|
return cliEntrypoint;
|
|
3185
3270
|
}
|
|
3186
|
-
return
|
|
3271
|
+
return resolve2(fileURLToPath(moduleUrl));
|
|
3187
3272
|
}
|
|
3188
3273
|
function hashFileContents(entryPath) {
|
|
3189
3274
|
try {
|
|
@@ -3193,12 +3278,12 @@ function hashFileContents(entryPath) {
|
|
|
3193
3278
|
}
|
|
3194
3279
|
}
|
|
3195
3280
|
function resolveDaemonFingerprintDistRoot(modulePath) {
|
|
3196
|
-
let currentDir =
|
|
3281
|
+
let currentDir = dirname2(modulePath);
|
|
3197
3282
|
while (true) {
|
|
3198
3283
|
if (basename(currentDir) === "dist") {
|
|
3199
3284
|
return currentDir;
|
|
3200
3285
|
}
|
|
3201
|
-
const parentDir =
|
|
3286
|
+
const parentDir = dirname2(currentDir);
|
|
3202
3287
|
if (parentDir === currentDir) {
|
|
3203
3288
|
break;
|
|
3204
3289
|
}
|
|
@@ -3222,7 +3307,7 @@ function readDaemonFingerprintArtifact(modulePath) {
|
|
|
3222
3307
|
return null;
|
|
3223
3308
|
}
|
|
3224
3309
|
function getCurrentDaemonFingerprint(options = {}) {
|
|
3225
|
-
const modulePath =
|
|
3310
|
+
const modulePath = resolve2(fileURLToPath(options.moduleUrl ?? import.meta.url));
|
|
3226
3311
|
const sharedFingerprint = readDaemonFingerprintArtifact(modulePath);
|
|
3227
3312
|
const fingerprintParts = [
|
|
3228
3313
|
DAEMON_FINGERPRINT_VERSION,
|
|
@@ -3360,7 +3445,11 @@ async function startDaemon(options = {}) {
|
|
|
3360
3445
|
fingerprintMatches: stopFingerprint === fingerprint
|
|
3361
3446
|
});
|
|
3362
3447
|
if (stopFingerprint !== fingerprint) {
|
|
3363
|
-
sendJson(response, 409, {
|
|
3448
|
+
sendJson(response, 409, {
|
|
3449
|
+
ok: false,
|
|
3450
|
+
error: "Stale daemon stop request.",
|
|
3451
|
+
reason: DAEMON_FINGERPRINT_MISMATCH_REASON
|
|
3452
|
+
});
|
|
3364
3453
|
return;
|
|
3365
3454
|
}
|
|
3366
3455
|
sendJson(response, 200, { ok: true });
|
|
@@ -3383,9 +3472,9 @@ async function startDaemon(options = {}) {
|
|
|
3383
3472
|
}
|
|
3384
3473
|
sendJson(response, 404, { error: "Not found" });
|
|
3385
3474
|
});
|
|
3386
|
-
await new Promise((
|
|
3475
|
+
await new Promise((resolve3, reject) => {
|
|
3387
3476
|
server.once("error", reject);
|
|
3388
|
-
server.listen(port, "127.0.0.1", () =>
|
|
3477
|
+
server.listen(port, "127.0.0.1", () => resolve3());
|
|
3389
3478
|
});
|
|
3390
3479
|
const state = {
|
|
3391
3480
|
port,
|
|
@@ -3444,8 +3533,8 @@ async function startDaemon(options = {}) {
|
|
|
3444
3533
|
process.off("uncaughtException", uncaughtExceptionHandler);
|
|
3445
3534
|
process.off("unhandledRejection", unhandledRejectionHandler);
|
|
3446
3535
|
core.cleanup();
|
|
3447
|
-
await new Promise((
|
|
3448
|
-
server.close(() =>
|
|
3536
|
+
await new Promise((resolve3) => {
|
|
3537
|
+
server.close(() => resolve3());
|
|
3449
3538
|
});
|
|
3450
3539
|
logDaemonStopDebug("stop.complete", { reason });
|
|
3451
3540
|
};
|
|
@@ -3464,7 +3553,7 @@ async function startDaemon(options = {}) {
|
|
|
3464
3553
|
return { state, stop };
|
|
3465
3554
|
}
|
|
3466
3555
|
function readJson(request) {
|
|
3467
|
-
return new Promise((
|
|
3556
|
+
return new Promise((resolve3, reject) => {
|
|
3468
3557
|
let data = "";
|
|
3469
3558
|
request.setEncoding("utf8");
|
|
3470
3559
|
request.on("data", (chunk) => {
|
|
@@ -3477,7 +3566,7 @@ function readJson(request) {
|
|
|
3477
3566
|
reject(new Error("Invalid JSON body"));
|
|
3478
3567
|
return;
|
|
3479
3568
|
}
|
|
3480
|
-
|
|
3569
|
+
resolve3(parsed);
|
|
3481
3570
|
} catch (error) {
|
|
3482
3571
|
reject(error);
|
|
3483
3572
|
}
|
|
@@ -3499,7 +3588,7 @@ var sleep = async (delayMs) => {
|
|
|
3499
3588
|
if (!(Number.isFinite(delayMs) && delayMs > 0)) {
|
|
3500
3589
|
return;
|
|
3501
3590
|
}
|
|
3502
|
-
await new Promise((
|
|
3591
|
+
await new Promise((resolve3) => setTimeout(resolve3, delayMs));
|
|
3503
3592
|
};
|
|
3504
3593
|
var resolveRetryAttempts = (retryAttempts) => {
|
|
3505
3594
|
return typeof retryAttempts === "number" && Number.isFinite(retryAttempts) && retryAttempts > 1 ? Math.floor(retryAttempts) : 1;
|
|
@@ -3636,6 +3725,9 @@ export {
|
|
|
3636
3725
|
fetchWithTimeoutContext,
|
|
3637
3726
|
readResponseTextWithTimeout,
|
|
3638
3727
|
readResponseJsonWithTimeout,
|
|
3728
|
+
DAEMON_FINGERPRINT_MISMATCH_REASON,
|
|
3729
|
+
buildDaemonFingerprintMismatchMessage,
|
|
3730
|
+
buildDaemonFingerprintMismatchStatusGuidance,
|
|
3639
3731
|
DAEMON_STOP_DEBUG_ENV,
|
|
3640
3732
|
getCacheRoot,
|
|
3641
3733
|
readDaemonMetadata,
|
|
@@ -3648,4 +3740,4 @@ export {
|
|
|
3648
3740
|
fetchDaemonStatusFromMetadata,
|
|
3649
3741
|
persistDaemonStatusMetadata
|
|
3650
3742
|
};
|
|
3651
|
-
//# sourceMappingURL=chunk-
|
|
3743
|
+
//# sourceMappingURL=chunk-HMRANSDX.js.map
|