opendevbrowser 0.0.34 → 0.0.35
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 +1 -1
- package/dist/{accessibility-snapshot-VCBXK47S.js → accessibility-snapshot-TAFPVLZN.js} +8 -8
- package/dist/{active-window-7EUN36LZ.js → active-window-MHFMC6NQ.js} +8 -8
- package/dist/{annotate-VLBK7YB6.js → annotate-5ZFRFQ4B.js} +7 -7
- package/dist/{attr-JNANQKM6.js → attr-MBF2UCRF.js} +7 -7
- package/dist/browser/browser-manager.d.ts +6 -1
- package/dist/browser/browser-manager.d.ts.map +1 -1
- package/dist/browser/manager-types.d.ts +48 -0
- package/dist/browser/manager-types.d.ts.map +1 -1
- package/dist/browser/ops-browser-manager.d.ts +2 -1
- package/dist/browser/ops-browser-manager.d.ts.map +1 -1
- package/dist/{canvas-V5LO4JVL.js → canvas-CAMD22YU.js} +7 -7
- package/dist/{capture-desktop-FKVDWTVG.js → capture-desktop-TMZSFA5R.js} +8 -8
- package/dist/{capture-window-QVPM2DN2.js → capture-window-NZDKD2AE.js} +8 -8
- package/dist/{check-V3CWZ56S.js → check-MO33GTQ4.js} +7 -7
- package/dist/{checked-Q27Q6YZN.js → checked-3HDF5X2M.js} +7 -7
- package/dist/{chunk-VX47SJZM.js → chunk-32ZSOZND.js} +2 -2
- package/dist/{chunk-XRDCSHKZ.js → chunk-AHQC4A6P.js} +744 -14
- package/dist/chunk-AHQC4A6P.js.map +1 -0
- package/dist/{chunk-IBIHDGTZ.js → chunk-B5XIJQXO.js} +32 -4
- package/dist/chunk-B5XIJQXO.js.map +1 -0
- package/dist/{chunk-OJAUKABV.js → chunk-BHZLEFXW.js} +2 -2
- package/dist/{chunk-VY47VKXU.js → chunk-FJZY3Z3X.js} +2 -2
- package/dist/{chunk-GC2FWISX.js → chunk-HM4CO3EW.js} +20 -16
- package/dist/chunk-HM4CO3EW.js.map +1 -0
- package/dist/{chunk-Z3HIX2SE.js → chunk-UEAXTWGT.js} +2 -2
- package/dist/{chunk-ZGCTC5YM.js → chunk-UVD34RA2.js} +33 -1
- package/dist/chunk-UVD34RA2.js.map +1 -0
- package/dist/{chunk-5FDXH4CS.js → chunk-WTWSBEBW.js} +5659 -419
- package/dist/chunk-WTWSBEBW.js.map +1 -0
- package/dist/{chunk-NX2XYJP5.js → chunk-XSSPNVMS.js} +3 -3
- package/dist/{chunk-NX2XYJP5.js.map → chunk-XSSPNVMS.js.map} +1 -1
- package/dist/{chunk-QXJDJDSZ.js → chunk-Z3ADLR7I.js} +667 -8
- package/dist/chunk-Z3ADLR7I.js.map +1 -0
- package/dist/cli/commands/inspiredesign.d.ts +12 -1
- package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +76 -76
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/workflow-message.d.ts.map +1 -1
- package/dist/{click-EQDRSLR3.js → click-SWZPJO2U.js} +7 -7
- package/dist/{clone-component-SISUXTJS.js → clone-component-YTB46YU4.js} +7 -7
- package/dist/{clone-page-MLDPCBOY.js → clone-page-5FMPHQ3A.js} +7 -7
- package/dist/{close-7J7EV237.js → close-22SNMDX3.js} +7 -7
- package/dist/{close-2LQMJVOA.js → close-ORQZCZ2E.js} +7 -7
- package/dist/{connect-JFRSIW5M.js → connect-EWYITNQU.js} +7 -7
- package/dist/{console-poll-NSVVUNEC.js → console-poll-LJR6ZTDK.js} +7 -7
- package/dist/{cookie-import-B7IQTGTN.js → cookie-import-PTAIWPEC.js} +7 -7
- package/dist/{cookie-list-YHG7JCZZ.js → cookie-list-76C35B5B.js} +7 -7
- package/dist/{daemon-ENU4FOV4.js → daemon-UKJMDLCB.js} +6 -6
- package/dist/daemon-fingerprint.json +1 -1
- package/dist/{debug-trace-snapshot-KLGU2AWY.js → debug-trace-snapshot-PQ5FJART.js} +7 -7
- package/dist/{dialog-MUVQIERS.js → dialog-WLJDWJV4.js} +7 -7
- package/dist/{disconnect-KELQJ45J.js → disconnect-FNB4JC2U.js} +7 -7
- package/dist/{enabled-SF6UU5HG.js → enabled-PYMCOQPC.js} +7 -7
- package/dist/{goto-AZQWXYPG.js → goto-UNTEW4VI.js} +7 -7
- package/dist/guidance/context.d.ts +10 -0
- package/dist/guidance/context.d.ts.map +1 -1
- package/dist/guidance/readiness.d.ts.map +1 -1
- package/dist/guidance/recipes/generic.d.ts.map +1 -1
- package/dist/guidance/recipes/pinterest.d.ts.map +1 -1
- package/dist/guidance/types.d.ts +4 -0
- package/dist/guidance/types.d.ts.map +1 -1
- package/dist/{help-B44IBHXL.js → help-QOLCIB3P.js} +8 -7
- package/dist/{help-B44IBHXL.js.map → help-QOLCIB3P.js.map} +1 -1
- package/dist/{hover-MQRAKKVU.js → hover-ZWY4YOM4.js} +7 -7
- package/dist/{html-PLRTU2WS.js → html-M46YBFT3.js} +7 -7
- package/dist/index.js +43 -18
- package/dist/index.js.map +1 -1
- package/dist/{inspector-IY4GBIT6.js → inspector-6YAOI74U.js} +8 -8
- package/dist/{inspector-audit-7MQCRJHD.js → inspector-audit-PF64X6SJ.js} +9 -9
- package/dist/{inspector-plan-ZAUDHBET.js → inspector-plan-IUGTQV3Q.js} +9 -9
- package/dist/inspiredesign/capture-mode.d.ts +8 -0
- package/dist/inspiredesign/capture-mode.d.ts.map +1 -1
- package/dist/inspiredesign/capture.d.ts +36 -1
- 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 +6 -2
- package/dist/inspiredesign/handoff.d.ts.map +1 -1
- package/dist/inspiredesign/media-analysis/analyzer.d.ts +13 -0
- package/dist/inspiredesign/media-analysis/analyzer.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/design-guidance.d.ts +11 -0
- package/dist/inspiredesign/media-analysis/design-guidance.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/ffmpeg.d.ts +21 -0
- package/dist/inspiredesign/media-analysis/ffmpeg.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/ffprobe.d.ts +8 -0
- package/dist/inspiredesign/media-analysis/ffprobe.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/index.d.ts +10 -0
- package/dist/inspiredesign/media-analysis/index.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/persist.d.ts +6 -0
- package/dist/inspiredesign/media-analysis/persist.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/pixel.d.ts +9 -0
- package/dist/inspiredesign/media-analysis/pixel.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/types.d.ts +163 -0
- package/dist/inspiredesign/media-analysis/types.d.ts.map +1 -0
- package/dist/inspiredesign/media-analysis/typography-structure.d.ts +3 -0
- package/dist/inspiredesign/media-analysis/typography-structure.d.ts.map +1 -0
- package/dist/inspiredesign/meta-prompt.d.ts.map +1 -1
- package/dist/inspiredesign/motion-evidence.d.ts +73 -0
- package/dist/inspiredesign/motion-evidence.d.ts.map +1 -0
- package/dist/inspiredesign/pinterest-media-classification.d.ts +27 -0
- package/dist/inspiredesign/pinterest-media-classification.d.ts.map +1 -0
- package/dist/inspiredesign/pinterest-pin-media-evidence.d.ts +151 -0
- package/dist/inspiredesign/pinterest-pin-media-evidence.d.ts.map +1 -0
- package/dist/inspiredesign/product-readiness.d.ts +97 -0
- package/dist/inspiredesign/product-readiness.d.ts.map +1 -0
- package/dist/inspiredesign/reference-pattern-board.d.ts +27 -2
- package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
- package/dist/inspiredesign/visual-evidence.d.ts +5 -0
- package/dist/inspiredesign/visual-evidence.d.ts.map +1 -1
- package/dist/{inspiredesign-VHPEO3UK.js → inspiredesign-GZIEXETS.js} +29 -12
- package/dist/inspiredesign-GZIEXETS.js.map +1 -0
- package/dist/{launch-OCTWPTV5.js → launch-I7WNLWLY.js} +7 -7
- package/dist/{list-HUSYADUS.js → list-BAECFJI7.js} +7 -7
- package/dist/{list-JWKAMAUA.js → list-BCF4HZ2K.js} +7 -7
- package/dist/{macro-resolve-WOXMPZDQ.js → macro-resolve-4GNZYHHW.js} +8 -8
- package/dist/{network-poll-WHB62OEF.js → network-poll-DCZ5ZNLP.js} +7 -7
- package/dist/{new-IKZBYBNK.js → new-6KZYJTJG.js} +7 -7
- package/dist/{open-UA2VI6ZP.js → open-JPGEAJHJ.js} +7 -7
- package/dist/opendevbrowser.js +43 -18
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/{perf-DICS3VKH.js → perf-5X367PRP.js} +7 -7
- package/dist/{pointer-down-2XPRZFJC.js → pointer-down-5OAUDDNR.js} +7 -7
- package/dist/{pointer-drag-7NY4BOLH.js → pointer-drag-LIW5PY5P.js} +7 -7
- package/dist/{pointer-move-FWEXMH37.js → pointer-move-7AMURLJD.js} +7 -7
- package/dist/{pointer-up-VU2OHK5D.js → pointer-up-EY652YWL.js} +7 -7
- package/dist/{press-W7IZ3FCX.js → press-UIAE5XEF.js} +7 -7
- package/dist/{product-video-XCZ6CHR5.js → product-video-B6TLS7VC.js} +9 -9
- package/dist/providers/browser-native-discovery.d.ts.map +1 -1
- package/dist/providers/renderer.d.ts +10 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflows.d.ts +53 -2
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-XCNSU3T6.js → providers-AERTX6X4.js} +5 -3
- package/dist/public-surface/generated-manifest.d.ts +2 -2
- package/dist/public-surface/generated-manifest.d.ts.map +1 -1
- package/dist/public-surface/source.d.ts +2 -2
- package/dist/public-surface/source.d.ts.map +1 -1
- package/dist/{research-AYCKHOWK.js → research-AJH6ECYW.js} +9 -9
- package/dist/{review-PP2UNSMJ.js → review-RN6XF2YB.js} +7 -7
- package/dist/{review-desktop-3JOJFUEJ.js → review-desktop-UJOUS7K2.js} +7 -7
- package/dist/{rpc-7EPTJQQ6.js → rpc-VS5Y5FUT.js} +7 -7
- package/dist/{run-P6UJS3D4.js → run-EVRIQW7S.js} +5 -5
- package/dist/{screencast-start-ZZYNH2HT.js → screencast-start-U6J4FYU4.js} +7 -7
- package/dist/{screencast-stop-Y6ADFOFA.js → screencast-stop-EQUPRGMP.js} +7 -7
- package/dist/{screenshot-CJB7PMAF.js → screenshot-BENYGC36.js} +7 -7
- package/dist/{scroll-BP5MA4ZT.js → scroll-3OALQLX2.js} +7 -7
- package/dist/{scroll-into-view-O3RDWLM2.js → scroll-into-view-SNZKBIVB.js} +7 -7
- package/dist/{select-QLCNRI36.js → select-JDZDDC3Y.js} +7 -7
- package/dist/{serve-OO2MQWGL.js → serve-LOC6ESJ4.js} +6 -6
- package/dist/{shopping-UYHCYPAH.js → shopping-267OAYGM.js} +9 -9
- package/dist/{snapshot-SXYZ3CMC.js → snapshot-ASYI5UFR.js} +7 -7
- package/dist/{status-AL2AHVA5.js → status-47CI4LJX.js} +7 -7
- package/dist/{status-QQW7REK4.js → status-N4O6DJTF.js} +8 -8
- package/dist/{status-capabilities-AVHJYQQQ.js → status-capabilities-C777JZG4.js} +8 -8
- package/dist/{text-B6Z47EOA.js → text-MS2653MW.js} +7 -7
- package/dist/tools/inspiredesign_run.d.ts.map +1 -1
- package/dist/{type-LR3F3SQY.js → type-UMPSDACC.js} +7 -7
- package/dist/{uncheck-5PJEHR7J.js → uncheck-2OZ56D42.js} +7 -7
- package/dist/{upload-HQ3QN2OW.js → upload-CD7PRH54.js} +7 -7
- package/dist/{use-KFZLMRUH.js → use-MO67AGG7.js} +7 -7
- package/dist/{value-TKUFUK5I.js → value-4GI2LRUY.js} +7 -7
- package/dist/{visible-P5Z2N2QR.js → visible-VSUFGRFZ.js} +7 -7
- package/dist/{wait-BYSHJPSC.js → wait-OQYMFENT.js} +7 -7
- package/dist/{windows-6GTD25EU.js → windows-75W2JCW7.js} +8 -8
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/opendevbrowser-best-practices/SKILL.md +41 -30
- package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +12 -8
- package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +1 -0
- package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +19 -0
- package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +23 -13
- package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +3 -1
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +62 -21
- package/skills/opendevbrowser-best-practices/scripts/resolve-odb-cli.sh +28 -0
- package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +15 -0
- package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +13 -0
- package/skills/opendevbrowser-design-agent/SKILL.md +2 -0
- package/skills/opendevbrowser-design-agent/artifacts/design-workflows.md +15 -13
- package/skills/opendevbrowser-design-agent/artifacts/isolated-preview-validation.md +1 -1
- package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +14 -7
- package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +1 -0
- package/skills/opendevbrowser-design-agent/scripts/design-workflow.sh +10 -7
- package/skills/opendevbrowser-motion-design/SKILL.md +1 -1
- package/skills/opendevbrowser-product-presentation-asset/SKILL.md +5 -4
- package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +1 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +1 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +1 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +4 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +1 -0
- package/skills/opendevbrowser-research/SKILL.md +1 -0
- package/skills/opendevbrowser-research/scripts/render-output.sh +1 -0
- package/skills/opendevbrowser-research/scripts/run-research.sh +1 -0
- package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +4 -0
- package/skills/opendevbrowser-research/scripts/write-artifacts.sh +1 -0
- package/skills/opendevbrowser-shopping/SKILL.md +1 -0
- package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +1 -0
- package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +1 -0
- package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +1 -0
- package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +4 -0
- package/dist/chunk-5FDXH4CS.js.map +0 -1
- package/dist/chunk-GC2FWISX.js.map +0 -1
- package/dist/chunk-IBIHDGTZ.js.map +0 -1
- package/dist/chunk-QXJDJDSZ.js.map +0 -1
- package/dist/chunk-XRDCSHKZ.js.map +0 -1
- package/dist/chunk-ZGCTC5YM.js.map +0 -1
- package/dist/inspiredesign-VHPEO3UK.js.map +0 -1
- /package/dist/{accessibility-snapshot-VCBXK47S.js.map → accessibility-snapshot-TAFPVLZN.js.map} +0 -0
- /package/dist/{active-window-7EUN36LZ.js.map → active-window-MHFMC6NQ.js.map} +0 -0
- /package/dist/{annotate-VLBK7YB6.js.map → annotate-5ZFRFQ4B.js.map} +0 -0
- /package/dist/{attr-JNANQKM6.js.map → attr-MBF2UCRF.js.map} +0 -0
- /package/dist/{canvas-V5LO4JVL.js.map → canvas-CAMD22YU.js.map} +0 -0
- /package/dist/{capture-desktop-FKVDWTVG.js.map → capture-desktop-TMZSFA5R.js.map} +0 -0
- /package/dist/{capture-window-QVPM2DN2.js.map → capture-window-NZDKD2AE.js.map} +0 -0
- /package/dist/{check-V3CWZ56S.js.map → check-MO33GTQ4.js.map} +0 -0
- /package/dist/{checked-Q27Q6YZN.js.map → checked-3HDF5X2M.js.map} +0 -0
- /package/dist/{chunk-VX47SJZM.js.map → chunk-32ZSOZND.js.map} +0 -0
- /package/dist/{chunk-OJAUKABV.js.map → chunk-BHZLEFXW.js.map} +0 -0
- /package/dist/{chunk-VY47VKXU.js.map → chunk-FJZY3Z3X.js.map} +0 -0
- /package/dist/{chunk-Z3HIX2SE.js.map → chunk-UEAXTWGT.js.map} +0 -0
- /package/dist/{click-EQDRSLR3.js.map → click-SWZPJO2U.js.map} +0 -0
- /package/dist/{clone-component-SISUXTJS.js.map → clone-component-YTB46YU4.js.map} +0 -0
- /package/dist/{clone-page-MLDPCBOY.js.map → clone-page-5FMPHQ3A.js.map} +0 -0
- /package/dist/{close-7J7EV237.js.map → close-22SNMDX3.js.map} +0 -0
- /package/dist/{close-2LQMJVOA.js.map → close-ORQZCZ2E.js.map} +0 -0
- /package/dist/{connect-JFRSIW5M.js.map → connect-EWYITNQU.js.map} +0 -0
- /package/dist/{console-poll-NSVVUNEC.js.map → console-poll-LJR6ZTDK.js.map} +0 -0
- /package/dist/{cookie-import-B7IQTGTN.js.map → cookie-import-PTAIWPEC.js.map} +0 -0
- /package/dist/{cookie-list-YHG7JCZZ.js.map → cookie-list-76C35B5B.js.map} +0 -0
- /package/dist/{daemon-ENU4FOV4.js.map → daemon-UKJMDLCB.js.map} +0 -0
- /package/dist/{debug-trace-snapshot-KLGU2AWY.js.map → debug-trace-snapshot-PQ5FJART.js.map} +0 -0
- /package/dist/{dialog-MUVQIERS.js.map → dialog-WLJDWJV4.js.map} +0 -0
- /package/dist/{disconnect-KELQJ45J.js.map → disconnect-FNB4JC2U.js.map} +0 -0
- /package/dist/{enabled-SF6UU5HG.js.map → enabled-PYMCOQPC.js.map} +0 -0
- /package/dist/{goto-AZQWXYPG.js.map → goto-UNTEW4VI.js.map} +0 -0
- /package/dist/{hover-MQRAKKVU.js.map → hover-ZWY4YOM4.js.map} +0 -0
- /package/dist/{html-PLRTU2WS.js.map → html-M46YBFT3.js.map} +0 -0
- /package/dist/{inspector-IY4GBIT6.js.map → inspector-6YAOI74U.js.map} +0 -0
- /package/dist/{inspector-audit-7MQCRJHD.js.map → inspector-audit-PF64X6SJ.js.map} +0 -0
- /package/dist/{inspector-plan-ZAUDHBET.js.map → inspector-plan-IUGTQV3Q.js.map} +0 -0
- /package/dist/{launch-OCTWPTV5.js.map → launch-I7WNLWLY.js.map} +0 -0
- /package/dist/{list-HUSYADUS.js.map → list-BAECFJI7.js.map} +0 -0
- /package/dist/{list-JWKAMAUA.js.map → list-BCF4HZ2K.js.map} +0 -0
- /package/dist/{macro-resolve-WOXMPZDQ.js.map → macro-resolve-4GNZYHHW.js.map} +0 -0
- /package/dist/{network-poll-WHB62OEF.js.map → network-poll-DCZ5ZNLP.js.map} +0 -0
- /package/dist/{new-IKZBYBNK.js.map → new-6KZYJTJG.js.map} +0 -0
- /package/dist/{open-UA2VI6ZP.js.map → open-JPGEAJHJ.js.map} +0 -0
- /package/dist/{perf-DICS3VKH.js.map → perf-5X367PRP.js.map} +0 -0
- /package/dist/{pointer-down-2XPRZFJC.js.map → pointer-down-5OAUDDNR.js.map} +0 -0
- /package/dist/{pointer-drag-7NY4BOLH.js.map → pointer-drag-LIW5PY5P.js.map} +0 -0
- /package/dist/{pointer-move-FWEXMH37.js.map → pointer-move-7AMURLJD.js.map} +0 -0
- /package/dist/{pointer-up-VU2OHK5D.js.map → pointer-up-EY652YWL.js.map} +0 -0
- /package/dist/{press-W7IZ3FCX.js.map → press-UIAE5XEF.js.map} +0 -0
- /package/dist/{product-video-XCZ6CHR5.js.map → product-video-B6TLS7VC.js.map} +0 -0
- /package/dist/{providers-XCNSU3T6.js.map → providers-AERTX6X4.js.map} +0 -0
- /package/dist/{research-AYCKHOWK.js.map → research-AJH6ECYW.js.map} +0 -0
- /package/dist/{review-PP2UNSMJ.js.map → review-RN6XF2YB.js.map} +0 -0
- /package/dist/{review-desktop-3JOJFUEJ.js.map → review-desktop-UJOUS7K2.js.map} +0 -0
- /package/dist/{rpc-7EPTJQQ6.js.map → rpc-VS5Y5FUT.js.map} +0 -0
- /package/dist/{run-P6UJS3D4.js.map → run-EVRIQW7S.js.map} +0 -0
- /package/dist/{screencast-start-ZZYNH2HT.js.map → screencast-start-U6J4FYU4.js.map} +0 -0
- /package/dist/{screencast-stop-Y6ADFOFA.js.map → screencast-stop-EQUPRGMP.js.map} +0 -0
- /package/dist/{screenshot-CJB7PMAF.js.map → screenshot-BENYGC36.js.map} +0 -0
- /package/dist/{scroll-BP5MA4ZT.js.map → scroll-3OALQLX2.js.map} +0 -0
- /package/dist/{scroll-into-view-O3RDWLM2.js.map → scroll-into-view-SNZKBIVB.js.map} +0 -0
- /package/dist/{select-QLCNRI36.js.map → select-JDZDDC3Y.js.map} +0 -0
- /package/dist/{serve-OO2MQWGL.js.map → serve-LOC6ESJ4.js.map} +0 -0
- /package/dist/{shopping-UYHCYPAH.js.map → shopping-267OAYGM.js.map} +0 -0
- /package/dist/{snapshot-SXYZ3CMC.js.map → snapshot-ASYI5UFR.js.map} +0 -0
- /package/dist/{status-AL2AHVA5.js.map → status-47CI4LJX.js.map} +0 -0
- /package/dist/{status-QQW7REK4.js.map → status-N4O6DJTF.js.map} +0 -0
- /package/dist/{status-capabilities-AVHJYQQQ.js.map → status-capabilities-C777JZG4.js.map} +0 -0
- /package/dist/{text-B6Z47EOA.js.map → text-MS2653MW.js.map} +0 -0
- /package/dist/{type-LR3F3SQY.js.map → type-UMPSDACC.js.map} +0 -0
- /package/dist/{uncheck-5PJEHR7J.js.map → uncheck-2OZ56D42.js.map} +0 -0
- /package/dist/{upload-HQ3QN2OW.js.map → upload-CD7PRH54.js.map} +0 -0
- /package/dist/{use-KFZLMRUH.js.map → use-MO67AGG7.js.map} +0 -0
- /package/dist/{value-TKUFUK5I.js.map → value-4GI2LRUY.js.map} +0 -0
- /package/dist/{visible-P5Z2N2QR.js.map → visible-VSUFGRFZ.js.map} +0 -0
- /package/dist/{wait-BYSHJPSC.js.map → wait-OQYMFENT.js.map} +0 -0
- /package/dist/{windows-6GTD25EU.js.map → windows-75W2JCW7.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/public-surface/generated-manifest.ts"],"sourcesContent":["/**\n * Generated by scripts/generate-public-surface-manifest.mjs.\n * Do not edit manually.\n */\n\nimport type {\n CommandHelpDetail,\n PublicSurfaceCliCommandGroupDefinition,\n PublicSurfaceCliCommandName,\n PublicSurfaceFlagName,\n PublicSurfaceManifest,\n ToolSurfaceEntry\n} from \"./source\";\n\nexport const PUBLIC_SURFACE_MANIFEST_SCHEMA_VERSION = \"2026-04-04\" as const;\nexport const PUBLIC_SURFACE_MANIFEST_GENERATED_AT = \"2026-05-21T13:16:09.774Z\" as const;\n\nexport const PUBLIC_SURFACE_MANIFEST = {\n \"schemaVersion\": \"2026-04-04\",\n \"generatedAt\": \"2026-05-21T13:16:09.774Z\",\n \"cli\": {\n \"groups\": [\n {\n \"id\": \"install_lifecycle\",\n \"title\": \"Install & Lifecycle\",\n \"summary\": \"Install, remove, and inspect CLI basics.\",\n \"commands\": [\n \"install\",\n \"update\",\n \"uninstall\",\n \"help\",\n \"version\"\n ]\n },\n {\n \"id\": \"daemon_runtime\",\n \"title\": \"Daemon & Runtime\",\n \"summary\": \"Run daemon services and single-process scripts.\",\n \"commands\": [\n \"serve\",\n \"daemon\",\n \"native\",\n \"run\"\n ]\n },\n {\n \"id\": \"session_lifecycle\",\n \"title\": \"Session Lifecycle\",\n \"summary\": \"Launch, connect, and manage browser session state.\",\n \"commands\": [\n \"launch\",\n \"connect\",\n \"disconnect\",\n \"status\",\n \"status-capabilities\",\n \"cookie-import\",\n \"cookie-list\"\n ]\n },\n {\n \"id\": \"provider_workflows\",\n \"title\": \"Provider Workflows\",\n \"summary\": \"Run research, shopping, media, and artifact workflows.\",\n \"commands\": [\n \"research\",\n \"shopping\",\n \"product-video\",\n \"inspiredesign\",\n \"artifacts\",\n \"macro-resolve\"\n ]\n },\n {\n \"id\": \"design_canvas\",\n \"title\": \"Design Canvas\",\n \"summary\": \"Execute typed /canvas commands for session, document, preview, and code-sync flows.\",\n \"commands\": [\n \"canvas\"\n ]\n },\n {\n \"id\": \"navigation\",\n \"title\": \"Navigation\",\n \"summary\": \"Move through pages and capture fresh refs.\",\n \"commands\": [\n \"goto\",\n \"wait\",\n \"snapshot\",\n \"review\",\n \"review-desktop\"\n ]\n },\n {\n \"id\": \"interaction\",\n \"title\": \"Interaction\",\n \"summary\": \"Perform ref-based interactions in the active page.\",\n \"commands\": [\n \"click\",\n \"hover\",\n \"press\",\n \"check\",\n \"uncheck\",\n \"type\",\n \"select\",\n \"scroll\",\n \"scroll-into-view\",\n \"upload\",\n \"pointer-move\",\n \"pointer-down\",\n \"pointer-up\",\n \"pointer-drag\"\n ]\n },\n {\n \"id\": \"targets_pages\",\n \"title\": \"Targets & Pages\",\n \"summary\": \"Manage tabs, targets, and named pages.\",\n \"commands\": [\n \"targets-list\",\n \"target-use\",\n \"target-new\",\n \"target-close\",\n \"page\",\n \"pages\",\n \"page-close\"\n ]\n },\n {\n \"id\": \"dom_export\",\n \"title\": \"DOM & Export\",\n \"summary\": \"Read DOM state and export page or component code.\",\n \"commands\": [\n \"dom-html\",\n \"dom-text\",\n \"dom-attr\",\n \"dom-value\",\n \"dom-visible\",\n \"dom-enabled\",\n \"dom-checked\",\n \"clone-page\",\n \"clone-component\"\n ]\n },\n {\n \"id\": \"diagnostics_annotation\",\n \"title\": \"Diagnostics & Annotation\",\n \"summary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\",\n \"commands\": [\n \"session-inspector\",\n \"session-inspector-plan\",\n \"session-inspector-audit\",\n \"perf\",\n \"screenshot\",\n \"dialog\",\n \"console-poll\",\n \"network-poll\",\n \"debug-trace-snapshot\",\n \"annotate\"\n ]\n },\n {\n \"id\": \"browser_replay\",\n \"title\": \"Browser Replay\",\n \"summary\": \"Capture temporal replay artifacts through the public browser replay lane for a browser target.\",\n \"commands\": [\n \"screencast-start\",\n \"screencast-stop\"\n ]\n },\n {\n \"id\": \"desktop_observation\",\n \"title\": \"Desktop Observation\",\n \"summary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\",\n \"commands\": [\n \"desktop-status\",\n \"desktop-windows\",\n \"desktop-active-window\",\n \"desktop-capture-desktop\",\n \"desktop-capture-window\",\n \"desktop-accessibility-snapshot\"\n ]\n },\n {\n \"id\": \"power\",\n \"title\": \"Power\",\n \"summary\": \"Unsafe internal daemon passthrough.\",\n \"commands\": [\n \"rpc\"\n ]\n }\n ],\n \"commands\": [\n {\n \"name\": \"install\",\n \"description\": \"Install the plugin and sync bundled skill packs\",\n \"usage\": \"npx opendevbrowser [--global|--local] [--with-config] [--full] [--skills-global|--skills-local|--no-skills] [--no-prompt] [--quiet]\",\n \"flags\": [\n \"--global\",\n \"--local\",\n \"--with-config\",\n \"--full\",\n \"--skills-global\",\n \"--skills-local\",\n \"--no-skills\",\n \"--no-prompt\",\n \"--quiet\"\n ],\n \"examples\": [\n \"npx opendevbrowser install --local --with-config --skills-local\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"update\",\n \"description\": \"Repair OpenCode package caches and refresh managed skill packs\",\n \"usage\": \"npx opendevbrowser update [--global|--local] [--skills-global|--skills-local|--no-skills]\",\n \"flags\": [\n \"--global\",\n \"--local\",\n \"--skills-global\",\n \"--skills-local\",\n \"--no-skills\"\n ],\n \"examples\": [\n \"npx opendevbrowser update --local --skills-local\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"uninstall\",\n \"description\": \"Remove plugin from config and clean managed skill packs\",\n \"usage\": \"npx opendevbrowser uninstall [--global|--local] [--no-skills] [--no-prompt] [--quiet]\",\n \"flags\": [\n \"--global\",\n \"--local\",\n \"--no-skills\",\n \"--no-prompt\",\n \"--quiet\"\n ],\n \"examples\": [\n \"npx opendevbrowser uninstall --local --no-skills --no-prompt\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"help\",\n \"description\": \"Show help\",\n \"usage\": \"npx opendevbrowser --help | npx opendevbrowser help\",\n \"flags\": [\n \"--help\"\n ],\n \"examples\": [\n \"npx opendevbrowser --help\"\n ],\n \"notes\": [\n \"Generated help is the canonical first-contact discovery surface and should stay source-owned.\"\n ],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"version\",\n \"description\": \"Show version\",\n \"usage\": \"npx opendevbrowser --version | npx opendevbrowser version\",\n \"flags\": [\n \"--version\"\n ],\n \"examples\": [\n \"npx opendevbrowser --version\"\n ],\n \"notes\": [],\n \"groupId\": \"install_lifecycle\",\n \"groupTitle\": \"Install & Lifecycle\",\n \"groupSummary\": \"Install, remove, and inspect CLI basics.\"\n },\n {\n \"name\": \"serve\",\n \"description\": \"Start or stop the local daemon\",\n \"usage\": \"npx opendevbrowser serve [--port <port>] [--token <token>] [--stop]\",\n \"flags\": [\n \"--port\",\n \"--token\",\n \"--stop\"\n ],\n \"examples\": [\n \"npx opendevbrowser serve --port 8788 --token local-dev-token\"\n ],\n \"notes\": [],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"daemon\",\n \"description\": \"Install/uninstall/status daemon auto-start\",\n \"usage\": \"npx opendevbrowser daemon <install|uninstall|status>\",\n \"flags\": [\n \"--output-format\"\n ],\n \"examples\": [\n \"npx opendevbrowser daemon status --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"native\",\n \"description\": \"Install/uninstall/status native messaging host\",\n \"usage\": \"npx opendevbrowser native <install|uninstall|status> [extension-id]\",\n \"flags\": [\n \"--output-format\"\n ],\n \"examples\": [\n \"npx opendevbrowser native status --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"run\",\n \"description\": \"Execute a JSON script in a single process\",\n \"usage\": \"npx opendevbrowser run --script <path> [--headless] [--profile <name>] [--persist-profile <bool>] [--chrome-path <path>] [--start-url <url>] [--flag <chrome-arg>]\",\n \"flags\": [\n \"--script\",\n \"--headless\",\n \"--profile\",\n \"--persist-profile\",\n \"--chrome-path\",\n \"--start-url\",\n \"--flag\"\n ],\n \"examples\": [\n \"npx opendevbrowser run --script ./workflow.json --headless --output-format json\"\n ],\n \"notes\": [\n \"One-shot run uses a temporary profile unless --persist-profile is explicitly enabled.\"\n ],\n \"groupId\": \"daemon_runtime\",\n \"groupTitle\": \"Daemon & Runtime\",\n \"groupSummary\": \"Run daemon services and single-process scripts.\"\n },\n {\n \"name\": \"launch\",\n \"description\": \"Launch a managed browser session via daemon\",\n \"usage\": \"npx opendevbrowser launch [--headless] [--profile <name>] [--persist-profile <bool>] [--chrome-path <path>] [--start-url <url>] [--flag <chrome-arg>] [--no-extension|--extension-only] [--extension-legacy] [--wait-for-extension] [--wait-timeout-ms <ms>]\",\n \"flags\": [\n \"--headless\",\n \"--profile\",\n \"--persist-profile\",\n \"--chrome-path\",\n \"--start-url\",\n \"--flag\",\n \"--no-extension\",\n \"--extension-only\",\n \"--extension-legacy\",\n \"--wait-for-extension\",\n \"--wait-timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser launch --no-extension --headless --start-url https://example.com --output-format json\"\n ],\n \"notes\": [\n \"Use --wait-for-extension when you need a clean daemon-extension handshake before the next step.\"\n ],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"connect\",\n \"description\": \"Connect to an existing browser via daemon\",\n \"usage\": \"npx opendevbrowser connect (--ws-endpoint <url> | --host <host> --cdp-port <port>) [--start-url <url>] [--extension-legacy]\",\n \"flags\": [\n \"--ws-endpoint\",\n \"--host\",\n \"--cdp-port\",\n \"--start-url\",\n \"--extension-legacy\"\n ],\n \"examples\": [\n \"npx opendevbrowser connect --host 127.0.0.1 --cdp-port 9222 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"disconnect\",\n \"description\": \"Disconnect a daemon session\",\n \"usage\": \"npx opendevbrowser disconnect --session-id <id> [--close-browser]\",\n \"flags\": [\n \"--session-id\",\n \"--close-browser\"\n ],\n \"examples\": [\n \"npx opendevbrowser disconnect --session-id s1 --close-browser --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"status\",\n \"description\": \"Get daemon or session status\",\n \"usage\": \"npx opendevbrowser status [--session-id <id> | --daemon] [--transport <relay|native>]\",\n \"flags\": [\n \"--session-id\",\n \"--daemon\",\n \"--transport\"\n ],\n \"examples\": [\n \"npx opendevbrowser status --daemon --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"status-capabilities\",\n \"description\": \"Inspect runtime capability discovery for the host and an optional session\",\n \"usage\": \"npx opendevbrowser status-capabilities [--session-id <id>] [--target-id <id>] [--challenge-automation-mode <mode>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--challenge-automation-mode\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser status-capabilities --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --timeout-ms 30000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"cookie-import\",\n \"description\": \"Import validated cookies into a session\",\n \"usage\": \"npx opendevbrowser cookie-import --session-id <id> (--cookies <json> | --cookies-file <path>) [--strict <bool>]\",\n \"flags\": [\n \"--session-id\",\n \"--cookies\",\n \"--cookies-file\",\n \"--strict\"\n ],\n \"examples\": [\n \"npx opendevbrowser cookie-import --session-id s1 --cookies-file ./cookies.json --strict true --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"cookie-list\",\n \"description\": \"List cookies for a session (optionally filtered by URL)\",\n \"usage\": \"npx opendevbrowser cookie-list --session-id <id> [--url <url>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\"\n ],\n \"examples\": [\n \"npx opendevbrowser cookie-list --session-id s1 --url https://example.com --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"session_lifecycle\",\n \"groupTitle\": \"Session Lifecycle\",\n \"groupSummary\": \"Launch, connect, and manage browser session state.\"\n },\n {\n \"name\": \"research\",\n \"description\": \"Run research workflows\",\n \"usage\": \"npx opendevbrowser research run --topic <text> [--days <n>|--from <date> --to <date>] [--source-selection <family>] [--sources <csv>] [--include-engagement] [--limit-per-source <n>] [--browser-mode <mode>] [--mode <mode>] [--timeout-ms <ms>] [--output-dir <path>] [--ttl-hours <n>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]\",\n \"flags\": [\n \"--topic\",\n \"--days\",\n \"--from\",\n \"--to\",\n \"--source-selection\",\n \"--sources\",\n \"--include-engagement\",\n \"--limit-per-source\",\n \"--browser-mode\",\n \"--mode\",\n \"--timeout-ms\",\n \"--output-dir\",\n \"--ttl-hours\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser research run --topic \\\"Chrome extension debugging workflows\\\" --days 30 --sources web,community --browser-mode managed --mode json --output-format json\"\n ],\n \"notes\": [\n \"Load opendevbrowser-research first, use explicit source families such as --sources web,community, and inspect artifacts before final claims.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"shopping\",\n \"description\": \"Run shopping workflows\",\n \"usage\": \"npx opendevbrowser shopping run --query <text> [--providers <csv>] [--budget <amount>] [--region <region>] [--browser-mode <mode>] [--sort <mode>] [--mode <mode>] [--timeout-ms <ms>] [--output-dir <path>] [--ttl-hours <n>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]\",\n \"flags\": [\n \"--query\",\n \"--providers\",\n \"--budget\",\n \"--region\",\n \"--browser-mode\",\n \"--sort\",\n \"--mode\",\n \"--timeout-ms\",\n \"--output-dir\",\n \"--ttl-hours\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser shopping run --query \\\"wireless ergonomic mouse\\\" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --mode json --output-format json\"\n ],\n \"notes\": [\n \"Treat --region as advisory unless the workflow output reports region_authoritative=true.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"product-video\",\n \"description\": \"Run product presentation asset workflows\",\n \"usage\": \"npx opendevbrowser product-video run (--product-url <url> | --product-name <name>) [--provider-hint <provider>] [--include-screenshots[=<bool>]] [--include-all-images[=<bool>]] [--include-copy[=<bool>]] [--timeout-ms <ms>] [--browser-mode <mode>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>] [--output-dir <path>] [--ttl-hours <n>]\",\n \"flags\": [\n \"--product-url\",\n \"--product-name\",\n \"--provider-hint\",\n \"--include-screenshots\",\n \"--include-all-images\",\n \"--include-copy\",\n \"--timeout-ms\",\n \"--browser-mode\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\",\n \"--output-dir\",\n \"--ttl-hours\"\n ],\n \"examples\": [\n \"npx opendevbrowser product-video run --product-url \\\"https://example.com/p/1\\\" --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-screenshots --output-format json\"\n ],\n \"notes\": [\n \"Confirm whether the returned pack is visual-ready or metadata-first before briefing production.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"inspiredesign\",\n \"description\": \"Run inspiredesign workflows and visual reference harvests\",\n \"usage\": \"npx opendevbrowser inspiredesign run --brief <text> [--url <url>]... [--capture-mode <mode>] [--include-prototype-guidance[=<bool>]] [--mode <mode>] [--timeout-ms <ms>] [--output-dir <path>] [--ttl-hours <n>] [--browser-mode <mode>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>] | npx opendevbrowser inspiredesign harvest --brief <text> (--query <text> | --url <url>) [--provider <id>]... [--url <url>]... [--max-references <n>] [--visual-evidence <mode>] [--mode <mode>] [--timeout-ms <ms>] [--output-dir <path>] [--ttl-hours <n>] [--browser-mode <mode>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]\",\n \"flags\": [\n \"--brief\",\n \"--query\",\n \"--provider\",\n \"--url\",\n \"--max-references\",\n \"--visual-evidence\",\n \"--capture-mode\",\n \"--include-prototype-guidance\",\n \"--mode\",\n \"--timeout-ms\",\n \"--output-dir\",\n \"--ttl-hours\",\n \"--browser-mode\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser inspiredesign run --brief \\\"Extract a reusable dashboard design contract from live references\\\" --url https://linear.app --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-prototype-guidance --output-dir /tmp/inspiredesign --output-format json\",\n \"npx opendevbrowser inspiredesign harvest --brief \\\"Synthesize a premium docs workspace\\\" --query \\\"best docs product landing pages\\\" --provider web/default --max-references 5 --visual-evidence required --browser-mode managed --output-format json\",\n \"npx opendevbrowser inspiredesign harvest --brief \\\"Premium digital photography studio landing page\\\" --query \\\"Pinterest premium digital photography studio landing page cinematic parallax portfolio\\\" --provider social/pinterest --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json\",\n \"npx opendevbrowser inspiredesign harvest --brief \\\"Fashion design studio landing page with atelier motion references\\\" --provider social/pinterest --url \\\"https://www.pinterest.com/pin/27654985208435505/\\\" --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json\"\n ],\n \"notes\": [\n \"Any inspiredesign --url forces deep capture for DOM/layout evidence; without URLs, --capture-mode defaults to off.\",\n \"Repeat --url for multiple references. There is no --urls alias.\",\n \"inspiredesign harvest keeps the daemon method as inspiredesign.run, requires --query or at least one --url, defaults to path output, requires visual evidence, and caps discovery at 5 references unless --max-references changes it.\",\n \"Inspect nextStepGuidance.readiness before continuing. Only readiness=ready makes Canvas continuation the primary action.\",\n \"Do not proceed when nextStepGuidance.doNotProceedIf matches zero references, empty ranked references, missing required screenshots, provider unavailability, or diagnostic-only captures.\",\n \"CLI completion text includes readiness=<value> when the workflow reports nextStepGuidance.readiness, so success output is not confused with design readiness.\",\n \"Pinterest is modeled as a browser-native site recipe for social/pinterest, not as a default full social provider. Compatible Pinterest --url recovery can run with --provider social/pinterest even when --query is omitted.\",\n \"Harvest JSON is metadata-only: screenshots are artifact PNG files referenced by relative paths, hashes, viewport metadata, and warnings.\",\n \"ranked-references.json includes rejectedReferences for captured-but-rejected diagnostics such as interface_chrome_shell without promoting those captures into design references.\",\n \"Load opendevbrowser-motion-design before turning harvest motion posture into implementation timing, scroll choreography, reduced-motion behavior, or temporal proof.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"artifacts\",\n \"description\": \"Manage workflow artifact lifecycle\",\n \"usage\": \"npx opendevbrowser artifacts cleanup [--expired-only] [--output-dir <path>]\",\n \"flags\": [\n \"--expired-only\",\n \"--output-dir\"\n ],\n \"examples\": [\n \"npx opendevbrowser artifacts cleanup --expired-only --output-dir /tmp/opendevbrowser --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"macro-resolve\",\n \"description\": \"Resolve or execute a macro expression via provider actions\",\n \"usage\": \"npx opendevbrowser macro-resolve --expression <macro> [--default-provider <provider>] [--include-catalog] [--execute [--timeout-ms <ms>] [--browser-mode <mode>] [--use-cookies[=<bool>]] [--challenge-automation-mode <mode>] [--cookie-policy-override <policy>]]\",\n \"flags\": [\n \"--expression\",\n \"--default-provider\",\n \"--include-catalog\",\n \"--execute\",\n \"--timeout-ms\",\n \"--browser-mode\",\n \"--use-cookies\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\"\n ],\n \"examples\": [\n \"npx opendevbrowser macro-resolve --expression '@community.search(\\\"browser automation failures\\\", 4)' --execute --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --output-format json\"\n ],\n \"notes\": [\n \"Use --browser-mode and --challenge-automation-mode only with --execute.\",\n \"Use --browser-mode extension --use-cookies --cookie-policy required when provider macros must reuse relay-backed browser state and verify that provider cookies are observable.\",\n \"When --execute is enabled, inspect execution.meta.blocker before trusting a blocked result as complete.\"\n ],\n \"groupId\": \"provider_workflows\",\n \"groupTitle\": \"Provider Workflows\",\n \"groupSummary\": \"Run research, shopping, media, and artifact workflows.\"\n },\n {\n \"name\": \"canvas\",\n \"description\": \"Execute a design-canvas command\",\n \"usage\": \"npx opendevbrowser canvas --command <canvas.command> [--params <json> | --params-file <path>] [--timeout-ms <ms>] [--output-format json]\",\n \"flags\": [\n \"--command\",\n \"--params\",\n \"--params-file\",\n \"--timeout-ms\",\n \"--output-format\"\n ],\n \"examples\": [\n \"npx opendevbrowser canvas --command canvas.session.open --params '{\\\"label\\\":\\\"design review\\\"}' --timeout-ms 120000 --output-format json\",\n \"npx opendevbrowser canvas --command canvas.plan.set --params-file ./canvas-plan.request.json --output-format json\"\n ],\n \"notes\": [\n \"Use --params-file for strict request envelopes such as canvas.plan.set or governance handoff payloads.\",\n \"Canvas guidance preserves guidance.recommendedNextCommands and adds nextStepGuidance, paramsExamples, fieldExamples, validationChecks, and doNotProceedIf when a repair envelope exists.\",\n \"For generation_plan_invalid or missing session identifiers, follow returned paramsExamples before retrying canvas.plan.set.\"\n ],\n \"groupId\": \"design_canvas\",\n \"groupTitle\": \"Design Canvas\",\n \"groupSummary\": \"Execute typed /canvas commands for session, document, preview, and code-sync flows.\"\n },\n {\n \"name\": \"goto\",\n \"description\": \"Navigate current session to a URL\",\n \"usage\": \"npx opendevbrowser goto --session-id <id> --url <url> [--wait-until <state>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\",\n \"--wait-until\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser goto --session-id s1 --url https://example.com --wait-until networkidle --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"wait\",\n \"description\": \"Wait for load or a ref to appear\",\n \"usage\": \"npx opendevbrowser wait --session-id <id> [--ref <ref>] [--state <state>|--until <condition>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--state\",\n \"--until\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser wait --session-id s1 --state networkidle --timeout-ms 30000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"snapshot\",\n \"description\": \"Capture a snapshot of the active page\",\n \"usage\": \"npx opendevbrowser snapshot --session-id <id> [--mode <mode>] [--max-chars <n>] [--cursor <cursor>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--mode\",\n \"--max-chars\",\n \"--cursor\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser snapshot --session-id s1 --mode actionables --max-chars 4000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"review\",\n \"description\": \"Capture a first-class review payload for the active page\",\n \"usage\": \"npx opendevbrowser review --session-id <id> [--target-id <id>] [--max-chars <n>] [--cursor <cursor>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--max-chars\",\n \"--cursor\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser review --session-id s1 --target-id page-1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"review-desktop\",\n \"description\": \"Capture desktop-assisted browser review with read-only desktop evidence\",\n \"usage\": \"npx opendevbrowser review-desktop --session-id <id> [--target-id <id>] [--reason <text>] [--max-chars <n>] [--cursor <cursor>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--reason\",\n \"--max-chars\",\n \"--cursor\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser review-desktop --session-id s1 --reason \\\"trace challenge state\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"navigation\",\n \"groupTitle\": \"Navigation\",\n \"groupSummary\": \"Move through pages and capture fresh refs.\"\n },\n {\n \"name\": \"click\",\n \"description\": \"Click an element by ref\",\n \"usage\": \"npx opendevbrowser click --session-id <id> --ref <ref> [--target-id <id>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--target-id\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser click --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"hover\",\n \"description\": \"Hover an element by ref\",\n \"usage\": \"npx opendevbrowser hover --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser hover --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"press\",\n \"description\": \"Press a keyboard key\",\n \"usage\": \"npx opendevbrowser press --session-id <id> --key <key> [--ref <ref>]\",\n \"flags\": [\n \"--session-id\",\n \"--key\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser press --session-id s1 --key Enter --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"check\",\n \"description\": \"Check a checkbox by ref\",\n \"usage\": \"npx opendevbrowser check --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser check --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"uncheck\",\n \"description\": \"Uncheck a checkbox by ref\",\n \"usage\": \"npx opendevbrowser uncheck --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser uncheck --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"type\",\n \"description\": \"Type into an element by ref\",\n \"usage\": \"npx opendevbrowser type --session-id <id> --ref <ref> --text <text> [--clear] [--submit]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--text\",\n \"--clear\",\n \"--submit\"\n ],\n \"examples\": [\n \"npx opendevbrowser type --session-id s1 --ref r12 --text \\\"agent@example.com\\\" --clear --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"select\",\n \"description\": \"Select values in a select by ref\",\n \"usage\": \"npx opendevbrowser select --session-id <id> --ref <ref> --values <csv>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--values\"\n ],\n \"examples\": [\n \"npx opendevbrowser select --session-id s1 --ref r12 --values us,ca --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"scroll\",\n \"description\": \"Scroll the page or element by ref\",\n \"usage\": \"npx opendevbrowser scroll --session-id <id> --dy <pixels> [--ref <ref>]\",\n \"flags\": [\n \"--session-id\",\n \"--dy\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser scroll --session-id s1 --dy 1000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"scroll-into-view\",\n \"description\": \"Scroll an element into view by ref\",\n \"usage\": \"npx opendevbrowser scroll-into-view --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser scroll-into-view --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"upload\",\n \"description\": \"Upload files to a file input or chooser by ref\",\n \"usage\": \"npx opendevbrowser upload --session-id <id> --ref <ref> --files <csv> [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--files\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser upload --session-id s1 --ref r12 --files ./draft.pdf,./hero.png --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-move\",\n \"description\": \"Move the pointer to viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-move --session-id <id> --x <n> --y <n> [--steps <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--x\",\n \"--y\",\n \"--steps\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-move --session-id s1 --x 320 --y 240 --steps 12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-down\",\n \"description\": \"Press a mouse button at viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-down --session-id <id> --x <n> --y <n> [--button <left|middle|right>] [--click-count <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--x\",\n \"--y\",\n \"--button\",\n \"--click-count\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-down --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-up\",\n \"description\": \"Release a mouse button at viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-up --session-id <id> --x <n> --y <n> [--button <left|middle|right>] [--click-count <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--x\",\n \"--y\",\n \"--button\",\n \"--click-count\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-up --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"pointer-drag\",\n \"description\": \"Drag the pointer between two viewport coordinates\",\n \"usage\": \"npx opendevbrowser pointer-drag --session-id <id> --from-x <n> --from-y <n> --to-x <n> --to-y <n> [--steps <n>] [--target-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--from-x\",\n \"--from-y\",\n \"--to-x\",\n \"--to-y\",\n \"--steps\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pointer-drag --session-id s1 --from-x 320 --from-y 240 --to-x 640 --to-y 240 --steps 18 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"interaction\",\n \"groupTitle\": \"Interaction\",\n \"groupSummary\": \"Perform ref-based interactions in the active page.\"\n },\n {\n \"name\": \"targets-list\",\n \"description\": \"List page targets\",\n \"usage\": \"npx opendevbrowser targets-list --session-id <id> [--include-urls]\",\n \"flags\": [\n \"--session-id\",\n \"--include-urls\"\n ],\n \"examples\": [\n \"npx opendevbrowser targets-list --session-id s1 --include-urls --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"target-use\",\n \"description\": \"Focus a target by id\",\n \"usage\": \"npx opendevbrowser target-use --session-id <id> --target-id <id>\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser target-use --session-id s1 --target-id page-2 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"target-new\",\n \"description\": \"Open a new target\",\n \"usage\": \"npx opendevbrowser target-new --session-id <id> [--url <url>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\"\n ],\n \"examples\": [\n \"npx opendevbrowser target-new --session-id s1 --url https://example.com/docs --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"target-close\",\n \"description\": \"Close a target by id\",\n \"usage\": \"npx opendevbrowser target-close --session-id <id> --target-id <id>\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser target-close --session-id s1 --target-id page-2 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"page\",\n \"description\": \"Open or focus a named page\",\n \"usage\": \"npx opendevbrowser page --session-id <id> --name <page> [--url <url>]\",\n \"flags\": [\n \"--session-id\",\n \"--name\",\n \"--url\"\n ],\n \"examples\": [\n \"npx opendevbrowser page --session-id s1 --name settings --url https://example.com/settings --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"pages\",\n \"description\": \"List named pages\",\n \"usage\": \"npx opendevbrowser pages --session-id <id>\",\n \"flags\": [\n \"--session-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser pages --session-id s1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"page-close\",\n \"description\": \"Close a named page\",\n \"usage\": \"npx opendevbrowser page-close --session-id <id> --name <page>\",\n \"flags\": [\n \"--session-id\",\n \"--name\"\n ],\n \"examples\": [\n \"npx opendevbrowser page-close --session-id s1 --name settings --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"targets_pages\",\n \"groupTitle\": \"Targets & Pages\",\n \"groupSummary\": \"Manage tabs, targets, and named pages.\"\n },\n {\n \"name\": \"dom-html\",\n \"description\": \"Capture HTML for a ref\",\n \"usage\": \"npx opendevbrowser dom-html --session-id <id> [--ref <ref>] [--max-chars <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--max-chars\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-html --session-id s1 --ref r12 --max-chars 2000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-text\",\n \"description\": \"Capture text for a ref\",\n \"usage\": \"npx opendevbrowser dom-text --session-id <id> [--ref <ref>] [--max-chars <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--max-chars\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-text --session-id s1 --ref r12 --max-chars 500 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-attr\",\n \"description\": \"Capture attribute value for a ref\",\n \"usage\": \"npx opendevbrowser dom-attr --session-id <id> --ref <ref> --attr <name>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--attr\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-attr --session-id s1 --ref r12 --attr aria-label --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-value\",\n \"description\": \"Capture input value for a ref\",\n \"usage\": \"npx opendevbrowser dom-value --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-value --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-visible\",\n \"description\": \"Check visibility for a ref\",\n \"usage\": \"npx opendevbrowser dom-visible --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-visible --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-enabled\",\n \"description\": \"Check enabled state for a ref\",\n \"usage\": \"npx opendevbrowser dom-enabled --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-enabled --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"dom-checked\",\n \"description\": \"Check checked state for a ref\",\n \"usage\": \"npx opendevbrowser dom-checked --session-id <id> --ref <ref>\",\n \"flags\": [\n \"--session-id\",\n \"--ref\"\n ],\n \"examples\": [\n \"npx opendevbrowser dom-checked --session-id s1 --ref r12 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"clone-page\",\n \"description\": \"Clone the active page to React\",\n \"usage\": \"npx opendevbrowser clone-page --session-id <id> [--target-id <id>] [--path <file>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--path\"\n ],\n \"examples\": [\n \"npx opendevbrowser clone-page --session-id s1 --target-id page-1 --path ./exports/page.tsx --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"clone-component\",\n \"description\": \"Clone a component by ref\",\n \"usage\": \"npx opendevbrowser clone-component --session-id <id> --ref <ref> [--target-id <id>] [--path <file>]\",\n \"flags\": [\n \"--session-id\",\n \"--ref\",\n \"--target-id\",\n \"--path\"\n ],\n \"examples\": [\n \"npx opendevbrowser clone-component --session-id s1 --ref r12 --path ./exports/component.tsx --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"dom_export\",\n \"groupTitle\": \"DOM & Export\",\n \"groupSummary\": \"Read DOM state and export page or component code.\"\n },\n {\n \"name\": \"session-inspector\",\n \"description\": \"Capture a session-first diagnostic summary with relay health and trace proof\",\n \"usage\": \"npx opendevbrowser session-inspector --session-id <id> [--include-urls] [--since-console-seq <n>] [--since-network-seq <n>] [--since-exception-seq <n>] [--max <n>] [--request-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--include-urls\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--request-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser session-inspector --session-id s1 --include-urls --max 20 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"session-inspector-plan\",\n \"description\": \"Inspect browser-scoped computer-use policy and safe suggested steps\",\n \"usage\": \"npx opendevbrowser session-inspector-plan --session-id <id> [--target-id <id>] [--challenge-automation-mode <mode>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--challenge-automation-mode\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser session-inspector-plan --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --output-format json\"\n ],\n \"notes\": [\n \"Inspect browser-scoped challenge automation before enabling browser_with_helper on a live rerun.\"\n ],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"session-inspector-audit\",\n \"description\": \"Capture a correlated audit bundle across desktop evidence, browser review, and policy state\",\n \"usage\": \"npx opendevbrowser session-inspector-audit --session-id <id> [--target-id <id>] [--reason <text>] [--max-chars <n>] [--cursor <cursor>] [--include-urls] [--since-console-seq <n>] [--since-network-seq <n>] [--since-exception-seq <n>] [--max <n>] [--request-id <id>] [--challenge-automation-mode <mode>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--reason\",\n \"--max-chars\",\n \"--cursor\",\n \"--include-urls\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--request-id\",\n \"--challenge-automation-mode\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser session-inspector-audit --session-id s1 --target-id page-1 --reason \\\"trace challenge state\\\" --include-urls --request-id req-session-audit-001 --challenge-automation-mode browser_with_helper --output-format json\"\n ],\n \"notes\": [\n \"Audit mode is the quickest correlated proof lane when you need desktop evidence plus browser trace state.\"\n ],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"perf\",\n \"description\": \"Capture performance metrics\",\n \"usage\": \"npx opendevbrowser perf --session-id <id>\",\n \"flags\": [\n \"--session-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser perf --session-id s1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"screenshot\",\n \"description\": \"Capture a screenshot\",\n \"usage\": \"npx opendevbrowser screenshot --session-id <id> [--target-id <id>] [--path <file>] [--ref <ref> | --full-page] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--path\",\n \"--ref\",\n \"--full-page\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser screenshot --session-id s1 --output-format json\",\n \"npx opendevbrowser screenshot --session-id s1 --path ./artifacts/page.png --full-page --output-format json\"\n ],\n \"notes\": [\n \"When --path is omitted, screenshot writes .opendevbrowser/screenshot/<uuid>/capture.png and returns path plus artifact_path.\",\n \"Explicit --path remains caller-controlled and does not create the omitted-output screenshot artifact directory.\"\n ],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"dialog\",\n \"description\": \"Inspect or handle a JavaScript dialog\",\n \"usage\": \"npx opendevbrowser dialog --session-id <id> [--target-id <id>] [--action <status|accept|dismiss>] [--prompt-text <text>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--action\",\n \"--prompt-text\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser dialog --session-id s1 --action status --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"console-poll\",\n \"description\": \"Poll console events\",\n \"usage\": \"npx opendevbrowser console-poll --session-id <id> [--since-seq <n>] [--max <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--since-seq\",\n \"--max\"\n ],\n \"examples\": [\n \"npx opendevbrowser console-poll --session-id s1 --max 50 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"network-poll\",\n \"description\": \"Poll network events\",\n \"usage\": \"npx opendevbrowser network-poll --session-id <id> [--since-seq <n>] [--max <n>]\",\n \"flags\": [\n \"--session-id\",\n \"--since-seq\",\n \"--max\"\n ],\n \"examples\": [\n \"npx opendevbrowser network-poll --session-id s1 --max 50 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"debug-trace-snapshot\",\n \"description\": \"Capture page + console + network + exception diagnostics\",\n \"usage\": \"npx opendevbrowser debug-trace-snapshot --session-id <id> [--since-console-seq <n>] [--since-network-seq <n>] [--since-exception-seq <n>] [--max <n>] [--request-id <id>]\",\n \"flags\": [\n \"--session-id\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--request-id\"\n ],\n \"examples\": [\n \"npx opendevbrowser debug-trace-snapshot --session-id s1 --max 50 --request-id req-trace-001 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"annotate\",\n \"description\": \"Request interactive annotations via direct or relay transport\",\n \"usage\": \"npx opendevbrowser annotate --session-id <id> [--url <url>] [--transport <auto|direct|relay>] [--target-id <id>] [--tab-id <tab>] [--screenshot-mode <visible|full|none>] [--context <text>] [--debug] [--stored] [--include-screenshots <bool>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--url\",\n \"--transport\",\n \"--target-id\",\n \"--tab-id\",\n \"--screenshot-mode\",\n \"--context\",\n \"--debug\",\n \"--stored\",\n \"--include-screenshots\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser annotate --session-id s1 --transport auto --context \\\"review call to action spacing\\\" --include-screenshots true --output-format json\"\n ],\n \"notes\": [\n \"Use --stored when you want the last delivered annotation payload without starting a new capture.\"\n ],\n \"groupId\": \"diagnostics_annotation\",\n \"groupTitle\": \"Diagnostics & Annotation\",\n \"groupSummary\": \"Collect session-centric diagnostics, trace proof, and annotation payloads.\"\n },\n {\n \"name\": \"screencast-start\",\n \"description\": \"Start a browser replay screencast capture\",\n \"usage\": \"npx opendevbrowser screencast-start --session-id <id> [--target-id <id>] [--output-dir <path>] [--interval-ms <ms>] [--max-frames <n>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--target-id\",\n \"--output-dir\",\n \"--interval-ms\",\n \"--max-frames\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser screencast-start --session-id s1 --interval-ms 750 --max-frames 40 --output-format json\",\n \"npx opendevbrowser screencast-start --session-id s1 --output-dir ./artifacts/replay --interval-ms 750 --max-frames 40 --output-format json\"\n ],\n \"notes\": [\n \"When --output-dir is omitted, screencast-start writes replay files under .opendevbrowser/screencast/<uuid> and returns artifact_path.\",\n \"Explicit --output-dir remains caller-controlled and keeps the existing replay file names inside that directory.\"\n ],\n \"groupId\": \"browser_replay\",\n \"groupTitle\": \"Browser Replay\",\n \"groupSummary\": \"Capture temporal replay artifacts through the public browser replay lane for a browser target.\"\n },\n {\n \"name\": \"screencast-stop\",\n \"description\": \"Stop a browser replay screencast capture\",\n \"usage\": \"npx opendevbrowser screencast-stop --session-id <id> --screencast-id <id> [--timeout-ms <ms>]\",\n \"flags\": [\n \"--session-id\",\n \"--screencast-id\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser screencast-stop --session-id s1 --screencast-id cast-1 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"browser_replay\",\n \"groupTitle\": \"Browser Replay\",\n \"groupSummary\": \"Capture temporal replay artifacts through the public browser replay lane for a browser target.\"\n },\n {\n \"name\": \"desktop-status\",\n \"description\": \"Inspect public read-only desktop observation availability\",\n \"usage\": \"npx opendevbrowser desktop-status [--timeout-ms <ms>]\",\n \"flags\": [\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-status --timeout-ms 5000 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-windows\",\n \"description\": \"List windows exposed by the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-windows [--reason <text>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-windows --reason \\\"inventory browser-adjacent windows\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-active-window\",\n \"description\": \"Inspect the active window through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-active-window [--reason <text>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-active-window --reason \\\"capture active browser context\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-capture-desktop\",\n \"description\": \"Capture the current desktop surface through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-capture-desktop --reason <text> [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-capture-desktop --reason \\\"capture login checkpoint state\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-capture-window\",\n \"description\": \"Capture a specific window through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-capture-window --window-id <id> --reason <text> [--timeout-ms <ms>]\",\n \"flags\": [\n \"--window-id\",\n \"--reason\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-capture-window --window-id 101 --reason \\\"capture browser window\\\" --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"desktop-accessibility-snapshot\",\n \"description\": \"Capture desktop accessibility state through the public read-only desktop observation plane\",\n \"usage\": \"npx opendevbrowser desktop-accessibility-snapshot --reason <text> [--window-id <id>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--reason\",\n \"--window-id\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser desktop-accessibility-snapshot --reason \\\"inspect current browser-adjacent labels\\\" --window-id 101 --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"desktop_observation\",\n \"groupTitle\": \"Desktop Observation\",\n \"groupSummary\": \"Inspect the public read-only sibling desktop observation plane on macOS; availability, window inventory, and accessibility probes use the local swift command, while screenshots use macOS screencapture outside extension relay.\"\n },\n {\n \"name\": \"rpc\",\n \"description\": \"Execute an internal daemon RPC command (power-user)\",\n \"usage\": \"npx opendevbrowser rpc --unsafe-internal --name <daemon.command> [--params <json> | --params-file <path>] [--timeout-ms <ms>]\",\n \"flags\": [\n \"--unsafe-internal\",\n \"--name\",\n \"--params\",\n \"--params-file\",\n \"--timeout-ms\"\n ],\n \"examples\": [\n \"npx opendevbrowser rpc --unsafe-internal --name browser.status --params-file ./rpc-params.json --output-format json\"\n ],\n \"notes\": [],\n \"groupId\": \"power\",\n \"groupTitle\": \"Power\",\n \"groupSummary\": \"Unsafe internal daemon passthrough.\"\n }\n ],\n \"flags\": [\n {\n \"name\": \"--global\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--local\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--update\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--uninstall\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--help\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--version\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--with-config\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--no-prompt\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--no-interactive\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--quiet\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--output-format\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--full\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--port\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--token\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--stop\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--script\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--headless\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--profile\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--persist-profile\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--chrome-path\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--start-url\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--flag\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--session-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--close-browser\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--ws-endpoint\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--host\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--cdp-port\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--url\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--wait-until\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--timeout-ms\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--ref\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--state\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--until\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--max-chars\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cursor\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--text\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--clear\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--submit\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--values\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--files\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--dy\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--key\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--attr\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--x\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--y\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--from-x\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--from-y\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--to-x\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--to-y\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--steps\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--button\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--click-count\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--name\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--target-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--window-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--tab-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-urls\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--path\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--screencast-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--reason\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--full-page\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--action\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--prompt-text\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--max\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--interval-ms\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--max-frames\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-console-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-network-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--since-exception-seq\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--request-id\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookies\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookies-file\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--strict\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--expression\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--default-provider\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-catalog\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--command\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--execute\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--params\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--params-file\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--unsafe-internal\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--daemon\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--transport\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--no-extension\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--extension-only\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--extension-legacy\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--wait-for-extension\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--wait-timeout-ms\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--skills-global\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--skills-local\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--no-skills\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--screenshot-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--debug\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--context\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--stored\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--topic\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--days\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--from\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--to\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--source-selection\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--sources\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-engagement\",\n \"kind\": \"boolean\"\n },\n {\n \"name\": \"--limit-per-source\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--query\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--providers\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--provider\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--max-references\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--visual-evidence\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--budget\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--region\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--browser-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--sort\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--brief\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--capture-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-prototype-guidance\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--product-url\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--product-name\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--provider-hint\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-screenshots\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-all-images\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--include-copy\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--use-cookies\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--challenge-automation-mode\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookie-policy-override\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--cookie-policy\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--output-dir\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--ttl-hours\",\n \"kind\": \"value\"\n },\n {\n \"name\": \"--expired-only\",\n \"kind\": \"boolean\"\n }\n ],\n \"equalsFlags\": [\n \"--output-format\",\n \"--transport\",\n \"--session-id\",\n \"--url\",\n \"--screenshot-mode\",\n \"--context\",\n \"--timeout-ms\",\n \"--since-seq\",\n \"--since-console-seq\",\n \"--since-network-seq\",\n \"--since-exception-seq\",\n \"--max\",\n \"--dy\",\n \"--target-id\",\n \"--window-id\",\n \"--tab-id\",\n \"--name\",\n \"--cookies\",\n \"--cookies-file\",\n \"--persist-profile\",\n \"--expression\",\n \"--default-provider\",\n \"--command\",\n \"--request-id\",\n \"--strict\",\n \"--params\",\n \"--params-file\",\n \"--topic\",\n \"--days\",\n \"--from\",\n \"--to\",\n \"--source-selection\",\n \"--sources\",\n \"--mode\",\n \"--ref\",\n \"--path\",\n \"--screencast-id\",\n \"--reason\",\n \"--interval-ms\",\n \"--max-frames\",\n \"--max-chars\",\n \"--cursor\",\n \"--files\",\n \"--action\",\n \"--prompt-text\",\n \"--limit-per-source\",\n \"--query\",\n \"--providers\",\n \"--provider\",\n \"--max-references\",\n \"--visual-evidence\",\n \"--budget\",\n \"--region\",\n \"--sort\",\n \"--brief\",\n \"--capture-mode\",\n \"--product-url\",\n \"--product-name\",\n \"--provider-hint\",\n \"--include-prototype-guidance\",\n \"--x\",\n \"--y\",\n \"--from-x\",\n \"--from-y\",\n \"--to-x\",\n \"--to-y\",\n \"--steps\",\n \"--button\",\n \"--click-count\",\n \"--include-screenshots\",\n \"--include-all-images\",\n \"--include-copy\",\n \"--use-cookies\",\n \"--browser-mode\",\n \"--challenge-automation-mode\",\n \"--cookie-policy-override\",\n \"--cookie-policy\",\n \"--output-dir\",\n \"--ttl-hours\"\n ]\n },\n \"tools\": {\n \"entries\": [\n {\n \"name\": \"opendevbrowser_launch\",\n \"description\": \"Launch a managed browser session.\",\n \"cliEquivalent\": \"launch\",\n \"example\": \"npx opendevbrowser launch --no-extension --headless --start-url https://example.com --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_connect\",\n \"description\": \"Connect to an existing browser session.\",\n \"cliEquivalent\": \"connect\",\n \"example\": \"npx opendevbrowser connect --host 127.0.0.1 --cdp-port 9222 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_disconnect\",\n \"description\": \"Disconnect a managed or connected session.\",\n \"cliEquivalent\": \"disconnect\",\n \"example\": \"npx opendevbrowser disconnect --session-id s1 --close-browser --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_status\",\n \"description\": \"Inspect session and relay status.\",\n \"cliEquivalent\": \"status\",\n \"example\": \"npx opendevbrowser status --daemon --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_status_capabilities\",\n \"description\": \"Inspect runtime capability discovery for the host and an optional session.\",\n \"cliEquivalent\": \"status-capabilities\",\n \"example\": \"npx opendevbrowser status-capabilities --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --timeout-ms 30000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_session_inspector\",\n \"description\": \"Capture a session-first diagnostic bundle with relay health, trace proof, and a suggested next action.\",\n \"cliEquivalent\": \"session-inspector\",\n \"example\": \"npx opendevbrowser session-inspector --session-id s1 --include-urls --max 20 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_session_inspector_plan\",\n \"description\": \"Inspect browser-scoped computer-use policy, eligibility, and safe suggested steps.\",\n \"cliEquivalent\": \"session-inspector-plan\",\n \"example\": \"npx opendevbrowser session-inspector-plan --session-id s1 --target-id page-1 --challenge-automation-mode browser_with_helper --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_session_inspector_audit\",\n \"description\": \"Capture a correlated audit bundle across desktop evidence, browser review, and policy state.\",\n \"cliEquivalent\": \"session-inspector-audit\",\n \"example\": \"npx opendevbrowser session-inspector-audit --session-id s1 --target-id page-1 --reason \\\"trace challenge state\\\" --include-urls --request-id req-session-audit-001 --challenge-automation-mode browser_with_helper --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_targets_list\",\n \"description\": \"List available page targets/tabs.\",\n \"cliEquivalent\": \"targets-list\",\n \"example\": \"npx opendevbrowser targets-list --session-id s1 --include-urls --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_target_use\",\n \"description\": \"Switch the active target by id.\",\n \"cliEquivalent\": \"target-use\",\n \"example\": \"npx opendevbrowser target-use --session-id s1 --target-id page-2 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_target_new\",\n \"description\": \"Create a new target or tab.\",\n \"cliEquivalent\": \"target-new\",\n \"example\": \"npx opendevbrowser target-new --session-id s1 --url https://example.com/docs --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_target_close\",\n \"description\": \"Close a target or tab by id.\",\n \"cliEquivalent\": \"target-close\",\n \"example\": \"npx opendevbrowser target-close --session-id s1 --target-id page-2 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_page\",\n \"description\": \"Open or focus a named page.\",\n \"cliEquivalent\": \"page\",\n \"example\": \"npx opendevbrowser page --session-id s1 --name settings --url https://example.com/settings --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_list\",\n \"description\": \"List named pages in the session.\",\n \"cliEquivalent\": \"pages\",\n \"example\": \"npx opendevbrowser pages --session-id s1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_close\",\n \"description\": \"Close a named page.\",\n \"cliEquivalent\": \"page-close\",\n \"example\": \"npx opendevbrowser page-close --session-id s1 --name settings --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_goto\",\n \"description\": \"Navigate to a URL.\",\n \"cliEquivalent\": \"goto\",\n \"example\": \"npx opendevbrowser goto --session-id s1 --url https://example.com --wait-until networkidle --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_wait\",\n \"description\": \"Wait for load, ref, or state conditions.\",\n \"cliEquivalent\": \"wait\",\n \"example\": \"npx opendevbrowser wait --session-id s1 --state networkidle --timeout-ms 30000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_snapshot\",\n \"description\": \"Capture AX-tree refs for actions.\",\n \"cliEquivalent\": \"snapshot\",\n \"example\": \"npx opendevbrowser snapshot --session-id s1 --mode actionables --max-chars 4000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_review\",\n \"description\": \"Capture a first-class review payload with status and actionables.\",\n \"cliEquivalent\": \"review\",\n \"example\": \"npx opendevbrowser review --session-id s1 --target-id page-1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_review_desktop\",\n \"description\": \"Capture desktop-assisted browser review with read-only desktop evidence and browser-owned verification.\",\n \"cliEquivalent\": \"review-desktop\",\n \"example\": \"npx opendevbrowser review-desktop --session-id s1 --reason \\\"trace challenge state\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_click\",\n \"description\": \"Click an element by ref.\",\n \"cliEquivalent\": \"click\",\n \"example\": \"npx opendevbrowser click --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_hover\",\n \"description\": \"Hover an element by ref.\",\n \"cliEquivalent\": \"hover\",\n \"example\": \"npx opendevbrowser hover --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_press\",\n \"description\": \"Send a keyboard key.\",\n \"cliEquivalent\": \"press\",\n \"example\": \"npx opendevbrowser press --session-id s1 --key Enter --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_check\",\n \"description\": \"Check a checkbox or radio by ref.\",\n \"cliEquivalent\": \"check\",\n \"example\": \"npx opendevbrowser check --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_uncheck\",\n \"description\": \"Uncheck a checkbox or radio by ref.\",\n \"cliEquivalent\": \"uncheck\",\n \"example\": \"npx opendevbrowser uncheck --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_type\",\n \"description\": \"Type text into an input by ref.\",\n \"cliEquivalent\": \"type\",\n \"example\": \"npx opendevbrowser type --session-id s1 --ref r12 --text \\\"agent@example.com\\\" --clear --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_select\",\n \"description\": \"Set select values by ref.\",\n \"cliEquivalent\": \"select\",\n \"example\": \"npx opendevbrowser select --session-id s1 --ref r12 --values us,ca --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_scroll\",\n \"description\": \"Scroll a page or element.\",\n \"cliEquivalent\": \"scroll\",\n \"example\": \"npx opendevbrowser scroll --session-id s1 --dy 1000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_scroll_into_view\",\n \"description\": \"Scroll a target element into view.\",\n \"cliEquivalent\": \"scroll-into-view\",\n \"example\": \"npx opendevbrowser scroll-into-view --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_upload\",\n \"description\": \"Upload files to a file input or chooser by ref.\",\n \"cliEquivalent\": \"upload\",\n \"example\": \"npx opendevbrowser upload --session-id s1 --ref r12 --files ./draft.pdf,./hero.png --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_move\",\n \"description\": \"Move the pointer to viewport coordinates.\",\n \"cliEquivalent\": \"pointer-move\",\n \"example\": \"npx opendevbrowser pointer-move --session-id s1 --x 320 --y 240 --steps 12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_down\",\n \"description\": \"Press a mouse button at viewport coordinates.\",\n \"cliEquivalent\": \"pointer-down\",\n \"example\": \"npx opendevbrowser pointer-down --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_up\",\n \"description\": \"Release a mouse button at viewport coordinates.\",\n \"cliEquivalent\": \"pointer-up\",\n \"example\": \"npx opendevbrowser pointer-up --session-id s1 --x 320 --y 240 --button left --click-count 1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_pointer_drag\",\n \"description\": \"Drag the pointer between viewport coordinates.\",\n \"cliEquivalent\": \"pointer-drag\",\n \"example\": \"npx opendevbrowser pointer-drag --session-id s1 --from-x 320 --from-y 240 --to-x 640 --to-y 240 --steps 18 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_dom_get_html\",\n \"description\": \"Get HTML for a page or ref.\",\n \"cliEquivalent\": \"dom-html\",\n \"example\": \"npx opendevbrowser dom-html --session-id s1 --ref r12 --max-chars 2000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_dom_get_text\",\n \"description\": \"Get text for a page or ref.\",\n \"cliEquivalent\": \"dom-text\",\n \"example\": \"npx opendevbrowser dom-text --session-id s1 --ref r12 --max-chars 500 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_get_attr\",\n \"description\": \"Read a DOM attribute by ref.\",\n \"cliEquivalent\": \"dom-attr\",\n \"example\": \"npx opendevbrowser dom-attr --session-id s1 --ref r12 --attr aria-label --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_get_value\",\n \"description\": \"Read a form or control value by ref.\",\n \"cliEquivalent\": \"dom-value\",\n \"example\": \"npx opendevbrowser dom-value --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_is_visible\",\n \"description\": \"Check ref visibility.\",\n \"cliEquivalent\": \"dom-visible\",\n \"example\": \"npx opendevbrowser dom-visible --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_is_enabled\",\n \"description\": \"Check ref enabled state.\",\n \"cliEquivalent\": \"dom-enabled\",\n \"example\": \"npx opendevbrowser dom-enabled --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_is_checked\",\n \"description\": \"Check ref checked state.\",\n \"cliEquivalent\": \"dom-checked\",\n \"example\": \"npx opendevbrowser dom-checked --session-id s1 --ref r12 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_run\",\n \"description\": \"Execute multi-action automation scripts.\",\n \"cliEquivalent\": \"run\",\n \"example\": \"npx opendevbrowser run --script ./workflow.json --headless --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_prompting_guide\",\n \"description\": \"Start here for first-contact OpenDevBrowser guidance and the bundled best-practices quick start.\",\n \"example\": \"{\\\"topic\\\":\\\"quick start\\\"}\",\n \"notes\": [\n \"Tool-only helper. Use it before low-level browser commands when an agent needs the canonical quick start.\"\n ]\n },\n {\n \"name\": \"opendevbrowser_console_poll\",\n \"description\": \"Poll redacted console events.\",\n \"cliEquivalent\": \"console-poll\",\n \"example\": \"npx opendevbrowser console-poll --session-id s1 --max 50 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_network_poll\",\n \"description\": \"Poll redacted network events.\",\n \"cliEquivalent\": \"network-poll\",\n \"example\": \"npx opendevbrowser network-poll --session-id s1 --max 50 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_debug_trace_snapshot\",\n \"description\": \"Capture page, console, and network diagnostics.\",\n \"cliEquivalent\": \"debug-trace-snapshot\",\n \"example\": \"npx opendevbrowser debug-trace-snapshot --session-id s1 --max 50 --request-id req-trace-001 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_cookie_import\",\n \"description\": \"Import validated cookies into a session.\",\n \"cliEquivalent\": \"cookie-import\",\n \"example\": \"npx opendevbrowser cookie-import --session-id s1 --cookies-file ./cookies.json --strict true --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_cookie_list\",\n \"description\": \"List cookies in a session with optional URL filters.\",\n \"cliEquivalent\": \"cookie-list\",\n \"example\": \"npx opendevbrowser cookie-list --session-id s1 --url https://example.com --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_macro_resolve\",\n \"description\": \"Resolve or execute provider macro expressions.\",\n \"cliEquivalent\": \"macro-resolve\",\n \"example\": \"npx opendevbrowser macro-resolve --expression '@community.search(\\\"browser automation failures\\\", 4)' --execute --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_research_run\",\n \"description\": \"Run the research workflow directly.\",\n \"cliEquivalent\": \"research\",\n \"example\": \"npx opendevbrowser research run --topic \\\"Chrome extension debugging workflows\\\" --days 30 --sources web,community --browser-mode managed --mode json --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_shopping_run\",\n \"description\": \"Run the shopping workflow directly.\",\n \"cliEquivalent\": \"shopping\",\n \"example\": \"npx opendevbrowser shopping run --query \\\"wireless ergonomic mouse\\\" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --mode json --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_product_video_run\",\n \"description\": \"Run the product-video asset workflow directly.\",\n \"cliEquivalent\": \"product-video\",\n \"example\": \"npx opendevbrowser product-video run --product-url \\\"https://example.com/p/1\\\" --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-screenshots --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_inspiredesign_run\",\n \"description\": \"Run the inspiredesign workflow directly, including provider-scoped URL recovery, harvest query discovery, readiness guidance, and visual evidence capture.\",\n \"cliEquivalent\": \"inspiredesign\",\n \"example\": \"npx opendevbrowser inspiredesign run --brief \\\"Extract a reusable dashboard design contract from live references\\\" --url https://linear.app --browser-mode managed --use-cookies --challenge-automation-mode browser_with_helper --include-prototype-guidance --output-dir /tmp/inspiredesign --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_canvas\",\n \"description\": \"Execute a typed design-canvas command surface call.\",\n \"cliEquivalent\": \"canvas\",\n \"example\": \"npx opendevbrowser canvas --command canvas.session.open --params '{\\\"label\\\":\\\"design review\\\"}' --timeout-ms 120000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_clone_page\",\n \"description\": \"Export the active page into React code.\",\n \"cliEquivalent\": \"clone-page\",\n \"example\": \"npx opendevbrowser clone-page --session-id s1 --target-id page-1 --path ./exports/page.tsx --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_clone_component\",\n \"description\": \"Export a component by ref into React code.\",\n \"cliEquivalent\": \"clone-component\",\n \"example\": \"npx opendevbrowser clone-component --session-id s1 --ref r12 --path ./exports/component.tsx --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_perf\",\n \"description\": \"Collect browser performance metrics.\",\n \"cliEquivalent\": \"perf\",\n \"example\": \"npx opendevbrowser perf --session-id s1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_screenshot\",\n \"description\": \"Capture a page screenshot and persist omitted outputs under .opendevbrowser/screenshot/<uuid>/capture.png.\",\n \"cliEquivalent\": \"screenshot\",\n \"example\": \"npx opendevbrowser screenshot --session-id s1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_screencast_start\",\n \"description\": \"Start a browser replay screencast capture and persist omitted outputs under .opendevbrowser/screencast/<uuid>.\",\n \"cliEquivalent\": \"screencast-start\",\n \"example\": \"npx opendevbrowser screencast-start --session-id s1 --interval-ms 750 --max-frames 40 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_screencast_stop\",\n \"description\": \"Stop a browser replay screencast capture.\",\n \"cliEquivalent\": \"screencast-stop\",\n \"example\": \"npx opendevbrowser screencast-stop --session-id s1 --screencast-id cast-1 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_dialog\",\n \"description\": \"Inspect or handle a JavaScript dialog.\",\n \"cliEquivalent\": \"dialog\",\n \"example\": \"npx opendevbrowser dialog --session-id s1 --action status --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_status\",\n \"description\": \"Inspect public read-only desktop observation availability.\",\n \"cliEquivalent\": \"desktop-status\",\n \"example\": \"npx opendevbrowser desktop-status --timeout-ms 5000 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_windows\",\n \"description\": \"List windows exposed by the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-windows\",\n \"example\": \"npx opendevbrowser desktop-windows --reason \\\"inventory browser-adjacent windows\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_active_window\",\n \"description\": \"Inspect the active window through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-active-window\",\n \"example\": \"npx opendevbrowser desktop-active-window --reason \\\"capture active browser context\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_capture_desktop\",\n \"description\": \"Capture the current desktop surface through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-capture-desktop\",\n \"example\": \"npx opendevbrowser desktop-capture-desktop --reason \\\"capture login checkpoint state\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_capture_window\",\n \"description\": \"Capture a specific window through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-capture-window\",\n \"example\": \"npx opendevbrowser desktop-capture-window --window-id 101 --reason \\\"capture browser window\\\" --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_desktop_accessibility_snapshot\",\n \"description\": \"Capture desktop accessibility state through the public read-only desktop observation plane.\",\n \"cliEquivalent\": \"desktop-accessibility-snapshot\",\n \"example\": \"npx opendevbrowser desktop-accessibility-snapshot --reason \\\"inspect current browser-adjacent labels\\\" --window-id 101 --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_annotate\",\n \"description\": \"Capture interactive annotations.\",\n \"cliEquivalent\": \"annotate\",\n \"example\": \"npx opendevbrowser annotate --session-id s1 --transport auto --context \\\"review call to action spacing\\\" --include-screenshots true --output-format json\"\n },\n {\n \"name\": \"opendevbrowser_skill_list\",\n \"description\": \"List bundled and discovered skill packs before choosing a local onboarding or workflow lane.\",\n \"example\": \"{}\",\n \"notes\": [\n \"Tool-only helper. Use it to inspect local workflow lanes before loading a pack.\"\n ]\n },\n {\n \"name\": \"opendevbrowser_skill_load\",\n \"description\": \"Load a specific skill pack locally, especially the bundled best-practices quick start.\",\n \"example\": \"{\\\"name\\\":\\\"opendevbrowser-best-practices\\\",\\\"topic\\\":\\\"quick start\\\"}\",\n \"notes\": [\n \"Tool-only helper. Use it to load opendevbrowser-best-practices or design-agent guidance directly into the current agent context.\"\n ]\n }\n ],\n \"cliToolPairs\": [\n {\n \"cliCommand\": \"launch\",\n \"toolName\": \"opendevbrowser_launch\"\n },\n {\n \"cliCommand\": \"connect\",\n \"toolName\": \"opendevbrowser_connect\"\n },\n {\n \"cliCommand\": \"disconnect\",\n \"toolName\": \"opendevbrowser_disconnect\"\n },\n {\n \"cliCommand\": \"status\",\n \"toolName\": \"opendevbrowser_status\"\n },\n {\n \"cliCommand\": \"status-capabilities\",\n \"toolName\": \"opendevbrowser_status_capabilities\"\n },\n {\n \"cliCommand\": \"session-inspector\",\n \"toolName\": \"opendevbrowser_session_inspector\"\n },\n {\n \"cliCommand\": \"session-inspector-plan\",\n \"toolName\": \"opendevbrowser_session_inspector_plan\"\n },\n {\n \"cliCommand\": \"session-inspector-audit\",\n \"toolName\": \"opendevbrowser_session_inspector_audit\"\n },\n {\n \"cliCommand\": \"targets-list\",\n \"toolName\": \"opendevbrowser_targets_list\"\n },\n {\n \"cliCommand\": \"target-use\",\n \"toolName\": \"opendevbrowser_target_use\"\n },\n {\n \"cliCommand\": \"target-new\",\n \"toolName\": \"opendevbrowser_target_new\"\n },\n {\n \"cliCommand\": \"target-close\",\n \"toolName\": \"opendevbrowser_target_close\"\n },\n {\n \"cliCommand\": \"page\",\n \"toolName\": \"opendevbrowser_page\"\n },\n {\n \"cliCommand\": \"pages\",\n \"toolName\": \"opendevbrowser_list\"\n },\n {\n \"cliCommand\": \"page-close\",\n \"toolName\": \"opendevbrowser_close\"\n },\n {\n \"cliCommand\": \"goto\",\n \"toolName\": \"opendevbrowser_goto\"\n },\n {\n \"cliCommand\": \"wait\",\n \"toolName\": \"opendevbrowser_wait\"\n },\n {\n \"cliCommand\": \"snapshot\",\n \"toolName\": \"opendevbrowser_snapshot\"\n },\n {\n \"cliCommand\": \"review\",\n \"toolName\": \"opendevbrowser_review\"\n },\n {\n \"cliCommand\": \"review-desktop\",\n \"toolName\": \"opendevbrowser_review_desktop\"\n },\n {\n \"cliCommand\": \"click\",\n \"toolName\": \"opendevbrowser_click\"\n },\n {\n \"cliCommand\": \"hover\",\n \"toolName\": \"opendevbrowser_hover\"\n },\n {\n \"cliCommand\": \"press\",\n \"toolName\": \"opendevbrowser_press\"\n },\n {\n \"cliCommand\": \"check\",\n \"toolName\": \"opendevbrowser_check\"\n },\n {\n \"cliCommand\": \"uncheck\",\n \"toolName\": \"opendevbrowser_uncheck\"\n },\n {\n \"cliCommand\": \"type\",\n \"toolName\": \"opendevbrowser_type\"\n },\n {\n \"cliCommand\": \"select\",\n \"toolName\": \"opendevbrowser_select\"\n },\n {\n \"cliCommand\": \"scroll\",\n \"toolName\": \"opendevbrowser_scroll\"\n },\n {\n \"cliCommand\": \"scroll-into-view\",\n \"toolName\": \"opendevbrowser_scroll_into_view\"\n },\n {\n \"cliCommand\": \"upload\",\n \"toolName\": \"opendevbrowser_upload\"\n },\n {\n \"cliCommand\": \"pointer-move\",\n \"toolName\": \"opendevbrowser_pointer_move\"\n },\n {\n \"cliCommand\": \"pointer-down\",\n \"toolName\": \"opendevbrowser_pointer_down\"\n },\n {\n \"cliCommand\": \"pointer-up\",\n \"toolName\": \"opendevbrowser_pointer_up\"\n },\n {\n \"cliCommand\": \"pointer-drag\",\n \"toolName\": \"opendevbrowser_pointer_drag\"\n },\n {\n \"cliCommand\": \"dom-html\",\n \"toolName\": \"opendevbrowser_dom_get_html\"\n },\n {\n \"cliCommand\": \"dom-text\",\n \"toolName\": \"opendevbrowser_dom_get_text\"\n },\n {\n \"cliCommand\": \"dom-attr\",\n \"toolName\": \"opendevbrowser_get_attr\"\n },\n {\n \"cliCommand\": \"dom-value\",\n \"toolName\": \"opendevbrowser_get_value\"\n },\n {\n \"cliCommand\": \"dom-visible\",\n \"toolName\": \"opendevbrowser_is_visible\"\n },\n {\n \"cliCommand\": \"dom-enabled\",\n \"toolName\": \"opendevbrowser_is_enabled\"\n },\n {\n \"cliCommand\": \"dom-checked\",\n \"toolName\": \"opendevbrowser_is_checked\"\n },\n {\n \"cliCommand\": \"run\",\n \"toolName\": \"opendevbrowser_run\"\n },\n {\n \"cliCommand\": \"console-poll\",\n \"toolName\": \"opendevbrowser_console_poll\"\n },\n {\n \"cliCommand\": \"network-poll\",\n \"toolName\": \"opendevbrowser_network_poll\"\n },\n {\n \"cliCommand\": \"debug-trace-snapshot\",\n \"toolName\": \"opendevbrowser_debug_trace_snapshot\"\n },\n {\n \"cliCommand\": \"cookie-import\",\n \"toolName\": \"opendevbrowser_cookie_import\"\n },\n {\n \"cliCommand\": \"cookie-list\",\n \"toolName\": \"opendevbrowser_cookie_list\"\n },\n {\n \"cliCommand\": \"macro-resolve\",\n \"toolName\": \"opendevbrowser_macro_resolve\"\n },\n {\n \"cliCommand\": \"research\",\n \"toolName\": \"opendevbrowser_research_run\"\n },\n {\n \"cliCommand\": \"shopping\",\n \"toolName\": \"opendevbrowser_shopping_run\"\n },\n {\n \"cliCommand\": \"product-video\",\n \"toolName\": \"opendevbrowser_product_video_run\"\n },\n {\n \"cliCommand\": \"inspiredesign\",\n \"toolName\": \"opendevbrowser_inspiredesign_run\"\n },\n {\n \"cliCommand\": \"canvas\",\n \"toolName\": \"opendevbrowser_canvas\"\n },\n {\n \"cliCommand\": \"clone-page\",\n \"toolName\": \"opendevbrowser_clone_page\"\n },\n {\n \"cliCommand\": \"clone-component\",\n \"toolName\": \"opendevbrowser_clone_component\"\n },\n {\n \"cliCommand\": \"perf\",\n \"toolName\": \"opendevbrowser_perf\"\n },\n {\n \"cliCommand\": \"screenshot\",\n \"toolName\": \"opendevbrowser_screenshot\"\n },\n {\n \"cliCommand\": \"screencast-start\",\n \"toolName\": \"opendevbrowser_screencast_start\"\n },\n {\n \"cliCommand\": \"screencast-stop\",\n \"toolName\": \"opendevbrowser_screencast_stop\"\n },\n {\n \"cliCommand\": \"dialog\",\n \"toolName\": \"opendevbrowser_dialog\"\n },\n {\n \"cliCommand\": \"desktop-status\",\n \"toolName\": \"opendevbrowser_desktop_status\"\n },\n {\n \"cliCommand\": \"desktop-windows\",\n \"toolName\": \"opendevbrowser_desktop_windows\"\n },\n {\n \"cliCommand\": \"desktop-active-window\",\n \"toolName\": \"opendevbrowser_desktop_active_window\"\n },\n {\n \"cliCommand\": \"desktop-capture-desktop\",\n \"toolName\": \"opendevbrowser_desktop_capture_desktop\"\n },\n {\n \"cliCommand\": \"desktop-capture-window\",\n \"toolName\": \"opendevbrowser_desktop_capture_window\"\n },\n {\n \"cliCommand\": \"desktop-accessibility-snapshot\",\n \"toolName\": \"opendevbrowser_desktop_accessibility_snapshot\"\n },\n {\n \"cliCommand\": \"annotate\",\n \"toolName\": \"opendevbrowser_annotate\"\n }\n ]\n },\n \"counts\": {\n \"commandCount\": 77,\n \"toolCount\": 70,\n \"cliToolPairCount\": 67\n }\n} satisfies PublicSurfaceManifest;\n\nexport const VALID_FLAGS = PUBLIC_SURFACE_MANIFEST.cli.flags.map((flag) => flag.name) as PublicSurfaceFlagName[];\nexport const VALID_EQUALS_FLAGS = [...PUBLIC_SURFACE_MANIFEST.cli.equalsFlags] as PublicSurfaceFlagName[];\nexport const CLI_COMMANDS = PUBLIC_SURFACE_MANIFEST.cli.commands.map((command) => command.name) as PublicSurfaceCliCommandName[];\n\nexport const CLI_COMMAND_HELP_DETAILS = Object.fromEntries(\n PUBLIC_SURFACE_MANIFEST.cli.commands.map((command) => [\n command.name,\n {\n description: command.description,\n usage: command.usage,\n flags: [...command.flags],\n examples: [...command.examples],\n notes: [...command.notes]\n } satisfies CommandHelpDetail\n ] as const)\n) as unknown as Record<PublicSurfaceCliCommandName, CommandHelpDetail>;\n\nconst COMMANDS_BY_GROUP = Object.fromEntries(\n PUBLIC_SURFACE_MANIFEST.cli.groups.map((group) => [\n group.id,\n PUBLIC_SURFACE_MANIFEST.cli.commands\n .filter((command) => command.groupId === group.id)\n .map((command) => ({\n name: command.name,\n description: command.description,\n usage: command.usage,\n flags: [...command.flags],\n examples: [...command.examples],\n notes: [...command.notes]\n }))\n ] as const)\n) as Record<string, PublicSurfaceCliCommandGroupDefinition['commands']>;\n\nexport const PUBLIC_CLI_COMMAND_GROUPS = PUBLIC_SURFACE_MANIFEST.cli.groups.map((group) => ({\n id: group.id,\n title: group.title,\n summary: group.summary,\n commands: COMMANDS_BY_GROUP[group.id]\n})) as readonly PublicSurfaceCliCommandGroupDefinition[];\n\nexport const TOOL_SURFACE_ENTRIES = PUBLIC_SURFACE_MANIFEST.tools.entries.map((entry) => ({\n name: entry.name,\n description: entry.description,\n ...(entry.cliEquivalent ? { cliEquivalent: entry.cliEquivalent } : {}),\n example: entry.example,\n ...(entry.notes ? { notes: [...entry.notes] } : {})\n})) as readonly ToolSurfaceEntry[];\n"],"mappings":"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AAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,Q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d,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,MACA;AAAA,QACE,cAAc;AAAA,QACd,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,oBAAoB;AAAA,EACtB;AACF;AAEO,IAAM,cAAc,wBAAwB,IAAI,MAAM,IAAI,CAAC,SAAS,KAAK,IAAI;AAC7E,IAAM,qBAAqB,CAAC,GAAG,wBAAwB,IAAI,WAAW;AACtE,IAAM,eAAe,wBAAwB,IAAI,SAAS,IAAI,CAAC,YAAY,QAAQ,IAAI;AAEvF,IAAM,2BAA2B,OAAO;AAAA,EAC7C,wBAAwB,IAAI,SAAS,IAAI,CAAC,YAAY;AAAA,IACpD,QAAQ;AAAA,IACR;AAAA,MACE,aAAa,QAAQ;AAAA,MACrB,OAAO,QAAQ;AAAA,MACf,OAAO,CAAC,GAAG,QAAQ,KAAK;AAAA,MACxB,UAAU,CAAC,GAAG,QAAQ,QAAQ;AAAA,MAC9B,OAAO,CAAC,GAAG,QAAQ,KAAK;AAAA,IAC1B;AAAA,EACF,CAAU;AACZ;AAEA,IAAM,oBAAoB,OAAO;AAAA,EAC/B,wBAAwB,IAAI,OAAO,IAAI,CAAC,UAAU;AAAA,IAChD,MAAM;AAAA,IACN,wBAAwB,IAAI,SACzB,OAAO,CAAC,YAAY,QAAQ,YAAY,MAAM,EAAE,EAChD,IAAI,CAAC,aAAa;AAAA,MACjB,MAAM,QAAQ;AAAA,MACd,aAAa,QAAQ;AAAA,MACrB,OAAO,QAAQ;AAAA,MACf,OAAO,CAAC,GAAG,QAAQ,KAAK;AAAA,MACxB,UAAU,CAAC,GAAG,QAAQ,QAAQ;AAAA,MAC9B,OAAO,CAAC,GAAG,QAAQ,KAAK;AAAA,IAC1B,EAAE;AAAA,EACN,CAAU;AACZ;AAEO,IAAM,4BAA4B,wBAAwB,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,EAC1F,IAAI,MAAM;AAAA,EACV,OAAO,MAAM;AAAA,EACb,SAAS,MAAM;AAAA,EACf,UAAU,kBAAkB,MAAM,EAAE;AACtC,EAAE;AAEK,IAAM,uBAAuB,wBAAwB,MAAM,QAAQ,IAAI,CAAC,WAAW;AAAA,EACxF,MAAM,MAAM;AAAA,EACZ,aAAa,MAAM;AAAA,EACnB,GAAI,MAAM,gBAAgB,EAAE,eAAe,MAAM,cAAc,IAAI,CAAC;AAAA,EACpE,SAAS,MAAM;AAAA,EACf,GAAI,MAAM,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,KAAK,EAAE,IAAI,CAAC;AACnD,EAAE;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/inspiredesign/handoff.ts"],"sourcesContent":["export const INSPIREDESIGN_HANDOFF_FILES = {\n designMarkdown: \"design.md\",\n advancedBrief: \"advanced-brief.md\",\n designContract: \"design-contract.json\",\n canvasPlanRequest: \"canvas-plan.request.json\",\n designAgentHandoff: \"design-agent-handoff.json\",\n generationPlan: \"generation-plan.json\",\n implementationPlanMarkdown: \"implementation-plan.md\",\n implementationPlan: \"implementation-plan.json\",\n evidence: \"evidence.json\",\n visualEvidence: \"visual-evidence.json\",\n screenshotIndex: \"screenshot-index.json\",\n rankedReferences: \"ranked-references.json\",\n metaPrompt: \"meta-prompt.md\",\n prototypeGuidance: \"prototype-guidance.md\"\n} as const;\n\nexport type InspiredesignGuideEntry = {\n purpose: string;\n expectedContents: readonly string[];\n howToUse: readonly string[];\n mustNot: readonly string[];\n};\n\ntype InspiredesignHandoffFile =\n (typeof INSPIREDESIGN_HANDOFF_FILES)[keyof typeof INSPIREDESIGN_HANDOFF_FILES];\n\nexport type InspiredesignArtifactGuide = Record<InspiredesignHandoffFile, InspiredesignGuideEntry>;\n\nexport type InspiredesignContractSectionGuide = Record<string, InspiredesignGuideEntry>;\n\nconst INSPIREDESIGN_HANDOFF_SKILLS = {\n bestPractices: {\n name: \"opendevbrowser-best-practices\",\n topic: \"quick start\"\n },\n designAgent: {\n name: \"opendevbrowser-design-agent\",\n topic: \"canvas-contract\"\n },\n motionDesign: {\n name: \"opendevbrowser-motion-design\",\n topic: \"quick start\"\n }\n} as const;\n\ntype InspiredesignHandoffSkill =\n (typeof INSPIREDESIGN_HANDOFF_SKILLS)[keyof typeof INSPIREDESIGN_HANDOFF_SKILLS];\n\nconst formatSkillReference = (skill: InspiredesignHandoffSkill): string => (\n `${skill.name} \"${skill.topic}\"`\n);\n\nconst formatSkillLoadCommand = (skill: InspiredesignHandoffSkill): string => (\n `opendevbrowser_skill_load ${skill.name} \"${skill.topic}\"`\n);\n\nexport const INSPIREDESIGN_HANDOFF_COMMANDS = {\n loadBestPractices: formatSkillLoadCommand(INSPIREDESIGN_HANDOFF_SKILLS.bestPractices),\n loadDesignAgent: formatSkillLoadCommand(INSPIREDESIGN_HANDOFF_SKILLS.designAgent),\n loadMotionDesign: formatSkillLoadCommand(INSPIREDESIGN_HANDOFF_SKILLS.motionDesign),\n continueInCanvas: `opendevbrowser canvas --command canvas.plan.set --params-file ./${INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest} --output-format json`\n} as const;\n\nexport const INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS = [\n formatSkillReference(INSPIREDESIGN_HANDOFF_SKILLS.bestPractices),\n formatSkillReference(INSPIREDESIGN_HANDOFF_SKILLS.designAgent),\n formatSkillReference(INSPIREDESIGN_HANDOFF_SKILLS.motionDesign)\n] as const;\n\nexport const INSPIREDESIGN_HANDOFF_GUIDANCE = {\n reviewAdvancedBrief: `${INSPIREDESIGN_HANDOFF_FILES.advancedBrief} is the authoritative reference-first brief. When URL references exist, captured evidence leads the creative direction; selected format, profile defaults, layout posture, motion grammar, and anti-patterns are route guardrails only. Read it before touching Canvas or implementation files.`,\n prepareCanvasPlanRequest: `Fill canvasSessionId, leaseId, and documentId in ${INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest} before running ${INSPIREDESIGN_HANDOFF_COMMANDS.continueInCanvas}.`,\n deepCaptureRecommendation: \"Any inspiredesign run with reference URLs already uses captureMode=deep. Rerun with the same URLs only when you need refreshed DOM/layout evidence, restored session state, or capture-specific debugging.\",\n visualArtifactRecommendation: `${INSPIREDESIGN_HANDOFF_FILES.visualEvidence}, ${INSPIREDESIGN_HANDOFF_FILES.screenshotIndex}, ${INSPIREDESIGN_HANDOFF_FILES.rankedReferences}, and ${INSPIREDESIGN_HANDOFF_FILES.metaPrompt} are metadata-only guidance surfaces. Read them before translating visual or motion cues, and inspect PNG files by path instead of expecting image blobs in JSON.`\n} as const;\n\nexport const INSPIREDESIGN_ARTIFACT_GUIDE: InspiredesignArtifactGuide = {\n [INSPIREDESIGN_HANDOFF_FILES.advancedBrief]: {\n purpose: \"Authoritative reference-first brief for the downstream design agent.\",\n expectedContents: [\"Selected prompt format\", \"reference pattern board\", \"route guardrails\"],\n howToUse: [\"Read first\", \"treat captured evidence as creative priority\", \"use guardrails to avoid route drift\"],\n mustNot: [\"Do not treat defaults as stronger than captured references\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.designMarkdown]: {\n purpose: \"Human-readable design specification and implementation narrative.\",\n expectedContents: [\"inspiration analysis\", \"unified direction\", \"governance summary\", \"deliverables\"],\n howToUse: [\"Use as the readable project brief\", \"cross-check implementation choices against its sections\"],\n mustNot: [\"Do not use prose as a substitute for the JSON contract when patching Canvas\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.designContract]: {\n purpose: \"Narrowed Canvas governance contract for design decisions.\",\n expectedContents: [\"emitted governance blocks\", \"motion system\", \"library policy\", \"runtime budgets\"],\n howToUse: [\"Patch only emitted governance blocks\", \"compare implementation against this contract before shipping\"],\n mustNot: [\"Do not add navigation, async, or performance context as Canvas governance patches\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest]: {\n purpose: \"Ready-to-fill request payload for `canvas.plan.set`.\",\n expectedContents: [\"request ids\", \"Canvas session ids\", \"mutation-safe generationPlan\"],\n howToUse: [\"Fill canvasSessionId, leaseId, and documentId\", \"submit with the provided canvas.plan.set command\"],\n mustNot: [\"Do not add handoff-only fields or reference-only analysis to generationPlan\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.designAgentHandoff]: {\n purpose: \"Downstream index for artifact usage, skills, commands, and omitted implementation context.\",\n expectedContents: [\"skills\", \"commands\", \"contract scope\", \"implementation context\", \"artifact and section guides\"],\n howToUse: [\"Use as the navigation map for the bundle\", \"load recommended skills before implementation\"],\n mustNot: [\"Do not treat handoff context as runtime Canvas schema\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.generationPlan]: {\n purpose: \"Full generated plan for reasoning about design intent.\",\n expectedContents: [\"Canvas plan fields\", \"design vectors\", \"reference analysis when available\"],\n howToUse: [\"Use for agent reasoning and audit traceability\", \"compare with canvas-plan.request.json for runtime subset\"],\n mustNot: [\"Do not submit this file directly to Canvas when it contains non-request context\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.implementationPlanMarkdown]: {\n purpose: \"Human-readable engineering sequence for the first implementation pass.\",\n expectedContents: [\"build sequence\", \"component plan\", \"token strategy\", \"QA and risk checks\"],\n howToUse: [\"Convert sections into implementation tasks\", \"keep tests and browser validation aligned to the plan\"],\n mustNot: [\"Do not implement sections unsupported by brief or reference evidence\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.implementationPlan]: {\n purpose: \"Machine-readable implementation plan matching the Markdown plan.\",\n expectedContents: [\"architecture steps\", \"component inventory\", \"state and validation tasks\"],\n howToUse: [\"Use for structured task extraction\", \"keep it synchronized with implementation-plan.md\"],\n mustNot: [\"Do not treat it as a Canvas document patch payload\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.evidence]: {\n purpose: \"Evidence digest for brief, reference, capture, and design-vector provenance.\",\n expectedContents: [\"brief expansion\", \"reference outcomes\", \"capture attempts\", \"design vectors\"],\n howToUse: [\"Audit why choices were made\", \"prefer evidence over generic template defaults\"],\n mustNot: [\"Do not ignore failed or skipped capture statuses when judging confidence\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.visualEvidence]: {\n purpose: \"Metadata-only visual evidence index for screenshot capture results.\",\n expectedContents: [\"reference ids\", \"artifact-relative PNG paths\", \"hashes\", \"byte counts\", \"viewport metadata when available\", \"warnings\"],\n howToUse: [\"Open PNG files by path\", \"audit hashes and warnings before making visual claims\"],\n mustNot: [\"Do not expect base64 images, absolute temp paths, DOM, or raw screenshots in JSON\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.screenshotIndex]: {\n purpose: \"Compact index of finalized screenshot PNG files.\",\n expectedContents: [\"reference ids\", \"paths\", \"sha256 hashes\", \"byte counts\", \"capture timestamps\"],\n howToUse: [\"Use for bundle inspection\", \"confirm every listed path exists before implementation\"],\n mustNot: [\"Do not treat missing screenshots as visual proof\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.rankedReferences]: {\n purpose: \"Deterministic ranked reference pattern board for design transfer.\",\n expectedContents: [\"rank\", \"score\", \"confidence\", \"visual strengths\", \"visual risks\", \"aggregate rejected counts\"],\n howToUse: [\"Start from rank 1 for dominant direction\", \"borrow patterns and reject risks explicitly\"],\n mustNot: [\"Do not copy source brands, rejected reference URLs, or override the ranked order with source order\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.metaPrompt]: {\n purpose: \"Markdown prompt for downstream design generation from harvested evidence.\",\n expectedContents: [\"ranked references\", \"borrow guidance\", \"reject guidance\", \"motion posture\", \"accessibility constraints\", \"validation gates\"],\n howToUse: [\"Use as the prompt brief for the first design pass\", \"pair with the motion-design skill for timing and reduced-motion decisions\"],\n mustNot: [\"Do not generate production code from harvest output alone\"]\n },\n [INSPIREDESIGN_HANDOFF_FILES.prototypeGuidance]: {\n purpose: \"Optional first prototype guidance when the workflow requests prototype output.\",\n expectedContents: [\"prototype structure\", \"design-vector guidance\", \"browser proof checklist\"],\n howToUse: [\"Use only for the first prototype pass\", \"promote proven ideas back into contract-aligned work\"],\n mustNot: [\"Do not treat prototype guidance as final implementation authority\"]\n }\n};\n\nexport const INSPIREDESIGN_CONTRACT_SECTION_GUIDE: InspiredesignContractSectionGuide = {\n intent: {\n purpose: \"Define why the design exists and what success means.\",\n expectedContents: [\"audience\", \"task\", \"success criteria\", \"trust posture\"],\n howToUse: [\"Validate the primary user job before styling\", \"reject sections that do not serve the task\"],\n mustNot: [\"Do not start visual polish before the audience and task are clear\"]\n },\n generationPlan: {\n purpose: \"Mutation-safe subset accepted by Canvas planning.\",\n expectedContents: [\"target outcome\", \"visual, layout, content, component, motion, responsive, accessibility posture\"],\n howToUse: [\"Submit only through canvas-plan.request.json\", \"repair generationPlanIssues before mutation\"],\n mustNot: [\"Do not add handoff-only guide fields to the Canvas generation plan\"]\n },\n designLanguage: {\n purpose: \"Name the coherent visual direction and token ownership.\",\n expectedContents: [\"direction\", \"style axes\", \"semantic token source\", \"approved libraries\"],\n howToUse: [\"Keep one design language per task\", \"align repeated components to semantic tokens\"],\n mustNot: [\"Do not mix unrelated visual families inside one surface\"]\n },\n contentModel: {\n purpose: \"Define real content, message hierarchy, and UI states.\",\n expectedContents: [\"primary message\", \"supporting messages\", \"states\", \"loading, empty, and error behavior\"],\n howToUse: [\"Use real content first\", \"plan non-happy-path states before polish\"],\n mustNot: [\"Do not ship placeholder copy as product content\"]\n },\n layoutSystem: {\n purpose: \"Describe page architecture and section rhythm.\",\n expectedContents: [\"grid\", \"containers\", \"spacing rhythm\", \"alignment rules\"],\n howToUse: [\"Use to place sections and scan units consistently\", \"verify desktop and mobile structure\"],\n mustNot: [\"Do not invent one-off layout rules for repeated sections\"]\n },\n typographySystem: {\n purpose: \"Define type families, scale, measure, and loading behavior.\",\n expectedContents: [\"families\", \"scale\", \"measure\", \"fallback policy\", \"loading strategy\"],\n howToUse: [\"Apply type hierarchy consistently\", \"avoid layout shift from font loading\"],\n mustNot: [\"Do not default to unapproved system stacks for a distinctive design\"]\n },\n colorSystem: {\n purpose: \"Define semantic color roles and theme behavior.\",\n expectedContents: [\"primary roles\", \"surface roles\", \"text roles\", \"state colors\"],\n howToUse: [\"Map repeated UI to semantic tokens\", \"validate contrast in every required theme\"],\n mustNot: [\"Do not scatter raw color values across leaf components\"]\n },\n surfaceSystem: {\n purpose: \"Define material, depth, borders, and background behavior.\",\n expectedContents: [\"surface hierarchy\", \"border rules\", \"shadow rules\", \"material effects\"],\n howToUse: [\"Use depth only to clarify hierarchy\", \"align material effects with design vectors\"],\n mustNot: [\"Do not turn every content group into a card by default\"]\n },\n iconSystem: {\n purpose: \"Define icon usage and decorative asset boundaries.\",\n expectedContents: [\"icon family\", \"stroke policy\", \"labeling rules\", \"decorative rules\"],\n howToUse: [\"Use icons to clarify actions\", \"keep accessible names on icon-only controls\"],\n mustNot: [\"Do not rely on icons as the only explanation for critical actions\"]\n },\n motionSystem: {\n purpose: \"Define motion that supports comprehension.\",\n expectedContents: [\"timing\", \"interaction moments\", \"reduced-motion posture\", \"advanced motion advisory\"],\n howToUse: [\"Keep shader, WebGL, and Spline cues advisory\", \"provide reduced-motion replacements\"],\n mustNot: [\"Do not use motion cues to authorize new runtime libraries\"]\n },\n responsiveSystem: {\n purpose: \"Define authored behavior across desktop, tablet, and mobile.\",\n expectedContents: [\"breakpoints\", \"adaptation rules\", \"touch policy\", \"overflow policy\"],\n howToUse: [\"Validate the primary action at every viewport\", \"collapse structure before copy becomes cramped\"],\n mustNot: [\"Do not assume desktop layouts naturally scale down\"]\n },\n accessibilityPolicy: {\n purpose: \"Set accessibility requirements before implementation.\",\n expectedContents: [\"WCAG target\", \"keyboard requirements\", \"focus policy\", \"semantic requirements\"],\n howToUse: [\"Block release on contrast or keyboard regressions\", \"validate focus on every interactive state\"],\n mustNot: [\"Do not defer accessibility until after visual implementation\"]\n },\n libraryPolicy: {\n purpose: \"Declare approved implementation libraries and runtime boundaries.\",\n expectedContents: [\"components\", \"icons\", \"styling\", \"motion\", \"threeD\"],\n howToUse: [\"Use as the dependency authorization boundary\", \"keep motion and threeD empty unless separately approved\"],\n mustNot: [\"Do not infer WebGL, shader, Spline, or 3D runtime support from advisory motion\"]\n },\n runtimeBudgets: {\n purpose: \"Set practical limits for sections, actions, interaction latency, and preview cost.\",\n expectedContents: [\"section budgets\", \"action budgets\", \"latency budgets\", \"preview notes\"],\n howToUse: [\"Use as a constraint during implementation\", \"validate slow or animation-heavy surfaces against it\"],\n mustNot: [\"Do not add decorative weight that violates the budget\"]\n },\n navigationModel: {\n purpose: \"Implementation-only context for route, tab, overlay, and deep-link ownership.\",\n expectedContents: [\"route owner\", \"deep-link policy\", \"invalid route fallback\", \"overlay entry points\"],\n howToUse: [\"Use from design-agent-handoff.json when wiring implementation state\"],\n mustNot: [\"Do not patch this omitted block into Canvas governance\"]\n },\n asyncModel: {\n purpose: \"Implementation-only context for loading, restart, cancellation, and URL-owned query state.\",\n expectedContents: [\"owner\", \"load trigger\", \"restart triggers\", \"cancellation policy\"],\n howToUse: [\"Use when wiring fetch/search state and stale-request handling\"],\n mustNot: [\"Do not let components invent independent async ownership\"]\n },\n performanceModel: {\n purpose: \"Implementation-only context for render hotspots and measurement posture.\",\n expectedContents: [\"render hotspots\", \"stable identity policy\", \"list strategy\", \"measurement plan\"],\n howToUse: [\"Use before building scan-heavy or motion-heavy surfaces\"],\n mustNot: [\"Do not ship heavy interaction surfaces without measurement evidence\"]\n }\n};\n\nexport const buildInspiredesignFollowthroughSummary = (): string => (\n `Read ${INSPIREDESIGN_HANDOFF_FILES.advancedBrief} first, then continue in OpenDevBrowser Canvas with ${INSPIREDESIGN_HANDOFF_FILES.canvasPlanRequest} and ${INSPIREDESIGN_HANDOFF_FILES.designAgentHandoff}, load ${INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS[0]}, ${INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS[1]}, and ${INSPIREDESIGN_HANDOFF_RECOMMENDED_SKILLS[2]} before implementation, inspect ${INSPIREDESIGN_HANDOFF_FILES.metaPrompt} plus screenshot metadata, and note that any supplied reference URL already uses captureMode=deep.`\n);\n\nexport const buildInspiredesignNextStep = (): string => (\n `Read ${INSPIREDESIGN_HANDOFF_FILES.advancedBrief} first. ${INSPIREDESIGN_HANDOFF_GUIDANCE.prepareCanvasPlanRequest} Then run ${INSPIREDESIGN_HANDOFF_COMMANDS.continueInCanvas}, confirm planStatus=accepted, then patch only the governance blocks listed in ${INSPIREDESIGN_HANDOFF_FILES.designAgentHandoff}.`\n);\n"],"mappings":"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","names":[]}
|