opendevbrowser 0.0.30 → 0.0.32
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 +20 -7
- package/dist/{accessibility-snapshot-CQ4ZKWKC.js → accessibility-snapshot-XOP66CSK.js} +11 -11
- package/dist/{active-window-TD5HYJ72.js → active-window-E3WFOQGX.js} +11 -11
- package/dist/{annotate-VTLFS2XV.js → annotate-MAE7ZJOZ.js} +10 -10
- package/dist/{artifacts-KJ6RNDO2.js → artifacts-JHDUUJGQ.js} +2 -2
- package/dist/{attr-BCI5KYCW.js → attr-M3PFDJ7Q.js} +10 -10
- package/dist/{canvas-5DFEEOKM.js → canvas-3AJVL5I5.js} +10 -10
- package/dist/{capture-desktop-HFTTWY4Z.js → capture-desktop-VJGEETMJ.js} +11 -11
- package/dist/{capture-window-X63XPIFF.js → capture-window-W5UFSFQL.js} +11 -11
- package/dist/{check-LWAUY7GC.js → check-4IR3UJVW.js} +10 -10
- package/dist/{checked-ZSOUKVYT.js → checked-PKNY7724.js} +10 -10
- package/dist/{chunk-KZ2IXVQT.js → chunk-2X4JFMKJ.js} +39 -4
- package/dist/chunk-2X4JFMKJ.js.map +1 -0
- package/dist/{chunk-IPE7TF2P.js → chunk-7BNU6DFI.js} +8 -5
- package/dist/chunk-7BNU6DFI.js.map +1 -0
- package/dist/{chunk-J47N77VG.js → chunk-AKIAGFOE.js} +31 -8
- package/dist/chunk-AKIAGFOE.js.map +1 -0
- package/dist/{chunk-RCZZGGJS.js → chunk-AWQ37HSC.js} +7 -3
- package/dist/chunk-AWQ37HSC.js.map +1 -0
- package/dist/{chunk-3ILXPKSJ.js → chunk-BUVYTJZR.js} +2 -1
- package/dist/chunk-BUVYTJZR.js.map +1 -0
- package/dist/{chunk-AHEWXOKY.js → chunk-BUXFIY2P.js} +4 -4
- package/dist/{chunk-QOMWCRE3.js → chunk-HBK56JST.js} +3 -3
- package/dist/{chunk-T4GMCW6Z.js → chunk-J3KYGJRQ.js} +3 -3
- package/dist/{chunk-6PVZ2ABC.js → chunk-L3YNUGYF.js} +2 -2
- package/dist/{chunk-JZXD6FWR.js → chunk-NURQB55J.js} +2 -2
- package/dist/{chunk-GQJ5S3BL.js → chunk-P5K3ZIPI.js} +3 -3
- package/dist/{chunk-PPUWQKIC.js → chunk-PIFHXKV4.js} +4 -4
- package/dist/{chunk-STGGGVYT.js → chunk-QMHKAFYX.js} +2 -2
- package/dist/{chunk-4BEJVZRK.js → chunk-RO3SMXF3.js} +1073 -138
- package/dist/chunk-RO3SMXF3.js.map +1 -0
- package/dist/{chunk-RPXWUCQQ.js → chunk-SKFB5ICF.js} +2 -2
- package/dist/{chunk-2SIMIPLY.js → chunk-W6YPVNDX.js} +3 -3
- package/dist/{chunk-MD655IPO.js → chunk-XDLJE3RJ.js} +11 -4
- package/dist/chunk-XDLJE3RJ.js.map +1 -0
- package/dist/{chunk-KDSNXS6N.js → chunk-ZMNEWS7A.js} +2 -2
- package/dist/{chunk-COAOWH3G.js → chunk-ZOVMMQO6.js} +119 -27
- package/dist/chunk-ZOVMMQO6.js.map +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/commands/daemon.d.ts +19 -2
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/inspiredesign.d.ts +6 -1
- package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
- package/dist/cli/commands/serve.d.ts +12 -3
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/types.d.ts +1 -0
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/daemon-client.d.ts.map +1 -1
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/daemon-mismatch.d.ts +9 -0
- package/dist/cli/daemon-mismatch.d.ts.map +1 -0
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/errors.d.ts +4 -2
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +91 -90
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/installers/postinstall-skill-sync.js +2 -2
- package/dist/{click-2AILSEIZ.js → click-HLNXU4I5.js} +10 -10
- package/dist/{clone-component-TPJS3PEG.js → clone-component-QIKN5PIM.js} +9 -9
- package/dist/{clone-page-LE74CIFC.js → clone-page-5C7DTGZT.js} +9 -9
- package/dist/{close-HN4YI47K.js → close-PCRZHX7F.js} +9 -9
- package/dist/{close-WFERRHX6.js → close-WTXB3EDD.js} +9 -9
- package/dist/{connect-RWBV2UCQ.js → connect-6C2IG55I.js} +10 -10
- package/dist/{console-poll-PP4YYPDF.js → console-poll-VJXCZR3F.js} +10 -10
- package/dist/{cookie-import-6IP776FC.js → cookie-import-5OEDFB6U.js} +9 -9
- package/dist/{cookie-list-O2KG6DPU.js → cookie-list-44UNJJ6D.js} +9 -9
- package/dist/{daemon-2BSAZXLT.js → daemon-CIKGBWEB.js} +25 -12
- package/dist/daemon-CIKGBWEB.js.map +1 -0
- package/dist/daemon-fingerprint.json +1 -1
- package/dist/{debug-trace-snapshot-F3BDVZXS.js → debug-trace-snapshot-RGXAPGWB.js} +10 -10
- package/dist/{dialog-6JQYUWMQ.js → dialog-S64MJUM2.js} +10 -10
- package/dist/{disconnect-763TP7GH.js → disconnect-MTIELIM7.js} +9 -9
- package/dist/{enabled-DLYQFNIP.js → enabled-KF2L7LW4.js} +10 -10
- package/dist/{goto-S346TJJH.js → goto-ULWINUAZ.js} +10 -10
- package/dist/{help-EKKKEDL5.js → help-IG5S5RJD.js} +14 -10
- package/dist/help-IG5S5RJD.js.map +1 -0
- package/dist/{hover-6JVJFGO7.js → hover-NOCOTR6N.js} +10 -10
- package/dist/{html-EVOSPBIT.js → html-LXSYP6BT.js} +10 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -17
- package/dist/index.js.map +1 -1
- package/dist/{inspector-H57BVUJP.js → inspector-62EPCLYB.js} +11 -11
- package/dist/{inspector-audit-NQBAJWC7.js → inspector-audit-T2IF67RJ.js} +13 -13
- package/dist/{inspector-plan-ZDIQVND3.js → inspector-plan-KQS6LRMW.js} +11 -11
- package/dist/inspiredesign/capture.d.ts +4 -0
- package/dist/inspiredesign/capture.d.ts.map +1 -1
- package/dist/inspiredesign/contract.d.ts +22 -0
- package/dist/inspiredesign/contract.d.ts.map +1 -1
- package/dist/inspiredesign/handoff.d.ts +7 -1
- package/dist/inspiredesign/handoff.d.ts.map +1 -1
- package/dist/inspiredesign/meta-prompt.d.ts +9 -0
- package/dist/inspiredesign/meta-prompt.d.ts.map +1 -0
- package/dist/inspiredesign/reference-discovery.d.ts +29 -0
- package/dist/inspiredesign/reference-discovery.d.ts.map +1 -0
- package/dist/inspiredesign/reference-pattern-board.d.ts +21 -0
- package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
- package/dist/inspiredesign/visual-evidence.d.ts +46 -0
- package/dist/inspiredesign/visual-evidence.d.ts.map +1 -0
- package/dist/inspiredesign/visual-policy.d.ts +17 -0
- package/dist/inspiredesign/visual-policy.d.ts.map +1 -0
- package/dist/{inspiredesign-IEUL4PX3.js → inspiredesign-DB6CHYN3.js} +71 -19
- package/dist/inspiredesign-DB6CHYN3.js.map +1 -0
- package/dist/{launch-EK66VQPF.js → launch-B5ES6FVS.js} +10 -10
- package/dist/{list-KKUKN467.js → list-TIZVR6RO.js} +9 -9
- package/dist/{list-ADZAQ2IU.js → list-XM4BP5GM.js} +9 -9
- package/dist/{macro-resolve-6DOQJ7CA.js → macro-resolve-TTQZVFIW.js} +10 -10
- package/dist/{native-UPLVQ2SG.js → native-J2DFLOLP.js} +3 -3
- package/dist/{network-poll-NUL4PDPY.js → network-poll-NNSY4W63.js} +10 -10
- package/dist/{new-5NKYPEFT.js → new-E6VNAC2A.js} +9 -9
- package/dist/{open-NR3BPLXV.js → open-F55XKMKB.js} +9 -9
- package/dist/opendevbrowser.d.ts.map +1 -1
- package/dist/opendevbrowser.js +46 -17
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/{perf-HJ36ZI6H.js → perf-RE7JE6CP.js} +10 -10
- package/dist/{pointer-down-IYTTQWXZ.js → pointer-down-BCBPC5FJ.js} +11 -11
- package/dist/{pointer-drag-A2YC5PWI.js → pointer-drag-QK7KGF7W.js} +11 -11
- package/dist/{pointer-move-W5K5FUI4.js → pointer-move-VFAZQAXA.js} +11 -11
- package/dist/{pointer-up-6GWVO64Y.js → pointer-up-FA5WE6LS.js} +11 -11
- package/dist/{press-A3V5WB3S.js → press-TNRHNDSW.js} +10 -10
- package/dist/{product-video-52REKWF3.js → product-video-UEANMZ2U.js} +11 -11
- package/dist/providers/renderer.d.ts +7 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflow-handoff.d.ts +1 -0
- package/dist/providers/workflow-handoff.d.ts.map +1 -1
- package/dist/providers/workflows.d.ts +45 -3
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-IMFYMMHQ.js → providers-AMCNWZUL.js} +3 -3
- package/dist/public-surface/generated-manifest.d.ts +12 -3
- package/dist/public-surface/generated-manifest.d.ts.map +1 -1
- package/dist/public-surface/source.d.ts +6 -6
- package/dist/public-surface/source.d.ts.map +1 -1
- package/dist/{research-WB6BBCDD.js → research-YFY7WJSZ.js} +11 -11
- package/dist/{review-BGWVY4RA.js → review-NHOPLAT7.js} +11 -11
- package/dist/{review-desktop-LEORC5VS.js → review-desktop-OFWPDYGD.js} +11 -11
- package/dist/{rpc-4TSKSFGC.js → rpc-TVVQPUOL.js} +10 -10
- package/dist/{run-3NBLVWXD.js → run-OCBEZRDW.js} +8 -8
- package/dist/{screencast-start-UZVIT3IN.js → screencast-start-GTSDA33J.js} +10 -10
- package/dist/{screencast-stop-NOSJSIUO.js → screencast-stop-FYBUIXAA.js} +10 -10
- package/dist/{screenshot-LARG4JQG.js → screenshot-OEYRT3SP.js} +10 -10
- package/dist/{scroll-VNFMV6TW.js → scroll-35OFEFC5.js} +10 -10
- package/dist/{scroll-into-view-VYRT3JPT.js → scroll-into-view-UQ5RAWIX.js} +10 -10
- package/dist/{select-KJTUZDVO.js → select-K56QELVZ.js} +10 -10
- package/dist/{serve-EV7K4HKR.js → serve-5UJ3VMWC.js} +48 -24
- package/dist/serve-5UJ3VMWC.js.map +1 -0
- package/dist/{shopping-DTXHVQ2X.js → shopping-FJG7XB4Q.js} +11 -11
- package/dist/{skill-lifecycle-5UAZGKSN.js → skill-lifecycle-OWZYBPFS.js} +3 -3
- package/dist/skills/bundled-skill-directories.d.ts.map +1 -1
- package/dist/skills/skill-loader.js +2 -2
- package/dist/{skills-NSXDX6YM.js → skills-KHMRNOE4.js} +3 -3
- package/dist/{snapshot-3XQMCMRJ.js → snapshot-W7RKVZEI.js} +10 -10
- package/dist/{status-YUMDP5KY.js → status-KHYCLGUD.js} +20 -12
- package/dist/status-KHYCLGUD.js.map +1 -0
- package/dist/{status-OXSYA5XD.js → status-R4EV4TWO.js} +11 -11
- package/dist/{status-capabilities-P4KDSE2Y.js → status-capabilities-XD3RGLKF.js} +11 -11
- package/dist/{text-V3B7UVIH.js → text-TANLFZ4O.js} +10 -10
- package/dist/tools/inspiredesign_run.d.ts.map +1 -1
- package/dist/{type-IYBN3ZLR.js → type-Y2Y7LX7Y.js} +10 -10
- package/dist/{uncheck-SG737EGI.js → uncheck-6REVUUB2.js} +10 -10
- package/dist/{uninstall-KYKGJAX7.js → uninstall-FW5ORBIN.js} +3 -3
- package/dist/{update-SMXPYGXS.js → update-FZGSXB74.js} +6 -2
- package/dist/update-FZGSXB74.js.map +1 -0
- package/dist/{update-skill-modes-BVX7IVMW.js → update-skill-modes-3ULKJK3Y.js} +3 -3
- package/dist/{upload-KH6ZABJA.js → upload-GGZC5UQP.js} +10 -10
- package/dist/{use-7YDKO3U4.js → use-B4Q7CFG2.js} +9 -9
- package/dist/{value-RZBWSKKM.js → value-DHOHO55D.js} +10 -10
- package/dist/{visible-BSFTAKXR.js → visible-S5BTWYNH.js} +10 -10
- package/dist/{wait-TMTEAYOP.js → wait-WV6NZUKL.js} +10 -10
- package/dist/{windows-HIZ23OHS.js → windows-GKE36DJQ.js} +11 -11
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/AGENTS.md +2 -1
- package/skills/opendevbrowser-best-practices/SKILL.md +9 -2
- package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +4 -3
- package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +7 -0
- package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +49 -3
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +24 -2
- package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +1 -0
- package/skills/opendevbrowser-design-agent/SKILL.md +3 -0
- package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +85 -40
- package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +2 -0
- package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +20 -5
- package/skills/opendevbrowser-motion-design/SKILL.md +129 -0
- package/skills/opendevbrowser-motion-design/artifacts/accessibility-reduced-motion.md +37 -0
- package/skills/opendevbrowser-motion-design/artifacts/device-breakpoint-posture.md +40 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-anti-patterns.md +29 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-pattern-catalog.md +430 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-release-gate.md +28 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-terminology.md +46 -0
- package/skills/opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md +48 -0
- package/skills/opendevbrowser-motion-design/artifacts/performance-frame-budget.md +38 -0
- package/skills/opendevbrowser-motion-design/artifacts/platform-framework-guide.md +166 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-audit-report.v1.md +70 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-contract.v1.json +79 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-release-gate.v1.json +18 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-viewport-matrix.v1.json +76 -0
- package/skills/opendevbrowser-motion-design/scripts/motion-workflow.sh +163 -0
- package/skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh +374 -0
- package/dist/chunk-3ILXPKSJ.js.map +0 -1
- package/dist/chunk-4BEJVZRK.js.map +0 -1
- package/dist/chunk-COAOWH3G.js.map +0 -1
- package/dist/chunk-IPE7TF2P.js.map +0 -1
- package/dist/chunk-J47N77VG.js.map +0 -1
- package/dist/chunk-KZ2IXVQT.js.map +0 -1
- package/dist/chunk-MD655IPO.js.map +0 -1
- package/dist/chunk-RCZZGGJS.js.map +0 -1
- package/dist/daemon-2BSAZXLT.js.map +0 -1
- package/dist/help-EKKKEDL5.js.map +0 -1
- package/dist/inspiredesign-IEUL4PX3.js.map +0 -1
- package/dist/serve-EV7K4HKR.js.map +0 -1
- package/dist/status-YUMDP5KY.js.map +0 -1
- package/dist/update-SMXPYGXS.js.map +0 -1
- /package/dist/{accessibility-snapshot-CQ4ZKWKC.js.map → accessibility-snapshot-XOP66CSK.js.map} +0 -0
- /package/dist/{active-window-TD5HYJ72.js.map → active-window-E3WFOQGX.js.map} +0 -0
- /package/dist/{annotate-VTLFS2XV.js.map → annotate-MAE7ZJOZ.js.map} +0 -0
- /package/dist/{artifacts-KJ6RNDO2.js.map → artifacts-JHDUUJGQ.js.map} +0 -0
- /package/dist/{attr-BCI5KYCW.js.map → attr-M3PFDJ7Q.js.map} +0 -0
- /package/dist/{canvas-5DFEEOKM.js.map → canvas-3AJVL5I5.js.map} +0 -0
- /package/dist/{capture-desktop-HFTTWY4Z.js.map → capture-desktop-VJGEETMJ.js.map} +0 -0
- /package/dist/{capture-window-X63XPIFF.js.map → capture-window-W5UFSFQL.js.map} +0 -0
- /package/dist/{check-LWAUY7GC.js.map → check-4IR3UJVW.js.map} +0 -0
- /package/dist/{checked-ZSOUKVYT.js.map → checked-PKNY7724.js.map} +0 -0
- /package/dist/{chunk-AHEWXOKY.js.map → chunk-BUXFIY2P.js.map} +0 -0
- /package/dist/{chunk-QOMWCRE3.js.map → chunk-HBK56JST.js.map} +0 -0
- /package/dist/{chunk-T4GMCW6Z.js.map → chunk-J3KYGJRQ.js.map} +0 -0
- /package/dist/{chunk-6PVZ2ABC.js.map → chunk-L3YNUGYF.js.map} +0 -0
- /package/dist/{chunk-JZXD6FWR.js.map → chunk-NURQB55J.js.map} +0 -0
- /package/dist/{chunk-GQJ5S3BL.js.map → chunk-P5K3ZIPI.js.map} +0 -0
- /package/dist/{chunk-PPUWQKIC.js.map → chunk-PIFHXKV4.js.map} +0 -0
- /package/dist/{chunk-STGGGVYT.js.map → chunk-QMHKAFYX.js.map} +0 -0
- /package/dist/{chunk-RPXWUCQQ.js.map → chunk-SKFB5ICF.js.map} +0 -0
- /package/dist/{chunk-2SIMIPLY.js.map → chunk-W6YPVNDX.js.map} +0 -0
- /package/dist/{chunk-KDSNXS6N.js.map → chunk-ZMNEWS7A.js.map} +0 -0
- /package/dist/{click-2AILSEIZ.js.map → click-HLNXU4I5.js.map} +0 -0
- /package/dist/{clone-component-TPJS3PEG.js.map → clone-component-QIKN5PIM.js.map} +0 -0
- /package/dist/{clone-page-LE74CIFC.js.map → clone-page-5C7DTGZT.js.map} +0 -0
- /package/dist/{close-HN4YI47K.js.map → close-PCRZHX7F.js.map} +0 -0
- /package/dist/{close-WFERRHX6.js.map → close-WTXB3EDD.js.map} +0 -0
- /package/dist/{connect-RWBV2UCQ.js.map → connect-6C2IG55I.js.map} +0 -0
- /package/dist/{console-poll-PP4YYPDF.js.map → console-poll-VJXCZR3F.js.map} +0 -0
- /package/dist/{cookie-import-6IP776FC.js.map → cookie-import-5OEDFB6U.js.map} +0 -0
- /package/dist/{cookie-list-O2KG6DPU.js.map → cookie-list-44UNJJ6D.js.map} +0 -0
- /package/dist/{debug-trace-snapshot-F3BDVZXS.js.map → debug-trace-snapshot-RGXAPGWB.js.map} +0 -0
- /package/dist/{dialog-6JQYUWMQ.js.map → dialog-S64MJUM2.js.map} +0 -0
- /package/dist/{disconnect-763TP7GH.js.map → disconnect-MTIELIM7.js.map} +0 -0
- /package/dist/{enabled-DLYQFNIP.js.map → enabled-KF2L7LW4.js.map} +0 -0
- /package/dist/{goto-S346TJJH.js.map → goto-ULWINUAZ.js.map} +0 -0
- /package/dist/{hover-6JVJFGO7.js.map → hover-NOCOTR6N.js.map} +0 -0
- /package/dist/{html-EVOSPBIT.js.map → html-LXSYP6BT.js.map} +0 -0
- /package/dist/{inspector-H57BVUJP.js.map → inspector-62EPCLYB.js.map} +0 -0
- /package/dist/{inspector-audit-NQBAJWC7.js.map → inspector-audit-T2IF67RJ.js.map} +0 -0
- /package/dist/{inspector-plan-ZDIQVND3.js.map → inspector-plan-KQS6LRMW.js.map} +0 -0
- /package/dist/{launch-EK66VQPF.js.map → launch-B5ES6FVS.js.map} +0 -0
- /package/dist/{list-KKUKN467.js.map → list-TIZVR6RO.js.map} +0 -0
- /package/dist/{list-ADZAQ2IU.js.map → list-XM4BP5GM.js.map} +0 -0
- /package/dist/{macro-resolve-6DOQJ7CA.js.map → macro-resolve-TTQZVFIW.js.map} +0 -0
- /package/dist/{native-UPLVQ2SG.js.map → native-J2DFLOLP.js.map} +0 -0
- /package/dist/{network-poll-NUL4PDPY.js.map → network-poll-NNSY4W63.js.map} +0 -0
- /package/dist/{new-5NKYPEFT.js.map → new-E6VNAC2A.js.map} +0 -0
- /package/dist/{open-NR3BPLXV.js.map → open-F55XKMKB.js.map} +0 -0
- /package/dist/{perf-HJ36ZI6H.js.map → perf-RE7JE6CP.js.map} +0 -0
- /package/dist/{pointer-down-IYTTQWXZ.js.map → pointer-down-BCBPC5FJ.js.map} +0 -0
- /package/dist/{pointer-drag-A2YC5PWI.js.map → pointer-drag-QK7KGF7W.js.map} +0 -0
- /package/dist/{pointer-move-W5K5FUI4.js.map → pointer-move-VFAZQAXA.js.map} +0 -0
- /package/dist/{pointer-up-6GWVO64Y.js.map → pointer-up-FA5WE6LS.js.map} +0 -0
- /package/dist/{press-A3V5WB3S.js.map → press-TNRHNDSW.js.map} +0 -0
- /package/dist/{product-video-52REKWF3.js.map → product-video-UEANMZ2U.js.map} +0 -0
- /package/dist/{providers-IMFYMMHQ.js.map → providers-AMCNWZUL.js.map} +0 -0
- /package/dist/{research-WB6BBCDD.js.map → research-YFY7WJSZ.js.map} +0 -0
- /package/dist/{review-BGWVY4RA.js.map → review-NHOPLAT7.js.map} +0 -0
- /package/dist/{review-desktop-LEORC5VS.js.map → review-desktop-OFWPDYGD.js.map} +0 -0
- /package/dist/{rpc-4TSKSFGC.js.map → rpc-TVVQPUOL.js.map} +0 -0
- /package/dist/{run-3NBLVWXD.js.map → run-OCBEZRDW.js.map} +0 -0
- /package/dist/{screencast-start-UZVIT3IN.js.map → screencast-start-GTSDA33J.js.map} +0 -0
- /package/dist/{screencast-stop-NOSJSIUO.js.map → screencast-stop-FYBUIXAA.js.map} +0 -0
- /package/dist/{screenshot-LARG4JQG.js.map → screenshot-OEYRT3SP.js.map} +0 -0
- /package/dist/{scroll-VNFMV6TW.js.map → scroll-35OFEFC5.js.map} +0 -0
- /package/dist/{scroll-into-view-VYRT3JPT.js.map → scroll-into-view-UQ5RAWIX.js.map} +0 -0
- /package/dist/{select-KJTUZDVO.js.map → select-K56QELVZ.js.map} +0 -0
- /package/dist/{shopping-DTXHVQ2X.js.map → shopping-FJG7XB4Q.js.map} +0 -0
- /package/dist/{skill-lifecycle-5UAZGKSN.js.map → skill-lifecycle-OWZYBPFS.js.map} +0 -0
- /package/dist/{skills-NSXDX6YM.js.map → skills-KHMRNOE4.js.map} +0 -0
- /package/dist/{snapshot-3XQMCMRJ.js.map → snapshot-W7RKVZEI.js.map} +0 -0
- /package/dist/{status-OXSYA5XD.js.map → status-R4EV4TWO.js.map} +0 -0
- /package/dist/{status-capabilities-P4KDSE2Y.js.map → status-capabilities-XD3RGLKF.js.map} +0 -0
- /package/dist/{text-V3B7UVIH.js.map → text-TANLFZ4O.js.map} +0 -0
- /package/dist/{type-IYBN3ZLR.js.map → type-Y2Y7LX7Y.js.map} +0 -0
- /package/dist/{uncheck-SG737EGI.js.map → uncheck-6REVUUB2.js.map} +0 -0
- /package/dist/{uninstall-KYKGJAX7.js.map → uninstall-FW5ORBIN.js.map} +0 -0
- /package/dist/{update-skill-modes-BVX7IVMW.js.map → update-skill-modes-3ULKJK3Y.js.map} +0 -0
- /package/dist/{upload-KH6ZABJA.js.map → upload-GGZC5UQP.js.map} +0 -0
- /package/dist/{use-7YDKO3U4.js.map → use-B4Q7CFG2.js.map} +0 -0
- /package/dist/{value-RZBWSKKM.js.map → value-DHOHO55D.js.map} +0 -0
- /package/dist/{visible-BSFTAKXR.js.map → visible-S5BTWYNH.js.map} +0 -0
- /package/dist/{wait-TMTEAYOP.js.map → wait-WV6NZUKL.js.map} +0 -0
- /package/dist/{windows-HIZ23OHS.js.map → windows-GKE36DJQ.js.map} +0 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
skill_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
+
skill_file="$skill_root/SKILL.md"
|
|
6
|
+
|
|
7
|
+
node - "$skill_root" "$skill_file" <<'NODE'
|
|
8
|
+
const fs = require("node:fs");
|
|
9
|
+
const path = require("node:path");
|
|
10
|
+
const { spawnSync } = require("node:child_process");
|
|
11
|
+
|
|
12
|
+
const [skillRoot, skillFile] = process.argv.slice(2);
|
|
13
|
+
const failures = [];
|
|
14
|
+
const fullPath = (relativePath) => path.join(skillRoot, relativePath);
|
|
15
|
+
const read = (relativePath) => fs.readFileSync(fullPath(relativePath), "utf8");
|
|
16
|
+
|
|
17
|
+
const requiredPaths = [
|
|
18
|
+
"SKILL.md",
|
|
19
|
+
"artifacts/motion-terminology.md",
|
|
20
|
+
"artifacts/motion-pattern-catalog.md",
|
|
21
|
+
"artifacts/platform-framework-guide.md",
|
|
22
|
+
"artifacts/device-breakpoint-posture.md",
|
|
23
|
+
"artifacts/accessibility-reduced-motion.md",
|
|
24
|
+
"artifacts/performance-frame-budget.md",
|
|
25
|
+
"artifacts/open-dev-browser-motion-evidence.md",
|
|
26
|
+
"artifacts/motion-release-gate.md",
|
|
27
|
+
"artifacts/motion-anti-patterns.md",
|
|
28
|
+
"assets/templates/motion-contract.v1.json",
|
|
29
|
+
"assets/templates/motion-audit-report.v1.md",
|
|
30
|
+
"assets/templates/motion-viewport-matrix.v1.json",
|
|
31
|
+
"assets/templates/motion-release-gate.v1.json",
|
|
32
|
+
"scripts/motion-workflow.sh",
|
|
33
|
+
"scripts/validate-skill-assets.sh"
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const jsonTemplates = [
|
|
37
|
+
"assets/templates/motion-contract.v1.json",
|
|
38
|
+
"assets/templates/motion-viewport-matrix.v1.json",
|
|
39
|
+
"assets/templates/motion-release-gate.v1.json"
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
const executableScripts = [
|
|
43
|
+
"scripts/motion-workflow.sh",
|
|
44
|
+
"scripts/validate-skill-assets.sh"
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
for (const relativePath of requiredPaths) {
|
|
48
|
+
if (!fs.existsSync(fullPath(relativePath))) {
|
|
49
|
+
failures.push(`Missing required asset: ${relativePath}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
for (const relativePath of executableScripts) {
|
|
54
|
+
if (!fs.existsSync(fullPath(relativePath))) continue;
|
|
55
|
+
const mode = fs.statSync(fullPath(relativePath)).mode & 0o111;
|
|
56
|
+
if (mode === 0) {
|
|
57
|
+
failures.push(`Script is not executable: ${relativePath}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
for (const relativePath of jsonTemplates) {
|
|
62
|
+
if (!fs.existsSync(fullPath(relativePath))) continue;
|
|
63
|
+
try {
|
|
64
|
+
JSON.parse(read(relativePath));
|
|
65
|
+
} catch {
|
|
66
|
+
failures.push(`Invalid JSON template: ${relativePath}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const skillDoc = fs.readFileSync(skillFile, "utf8");
|
|
71
|
+
for (const marker of requiredPaths) {
|
|
72
|
+
if (marker !== "SKILL.md" && !skillDoc.includes(marker)) {
|
|
73
|
+
failures.push(`SKILL.md missing marker: ${marker}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
for (const marker of [
|
|
78
|
+
"opendevbrowser-best-practices",
|
|
79
|
+
"opendevbrowser-design-agent",
|
|
80
|
+
"Motion Contract",
|
|
81
|
+
"Pattern Selection",
|
|
82
|
+
"Platform And Framework Policy",
|
|
83
|
+
"Device Posture",
|
|
84
|
+
"Reduced Motion",
|
|
85
|
+
"Verification",
|
|
86
|
+
"Anti-patterns",
|
|
87
|
+
"Related Skills"
|
|
88
|
+
]) {
|
|
89
|
+
if (!skillDoc.includes(marker)) {
|
|
90
|
+
failures.push(`SKILL.md missing marker: ${marker}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const terminology = read("artifacts/motion-terminology.md");
|
|
95
|
+
for (const marker of [
|
|
96
|
+
"Duration",
|
|
97
|
+
"Delay",
|
|
98
|
+
"Easing",
|
|
99
|
+
"Spring",
|
|
100
|
+
"Damping",
|
|
101
|
+
"Stiffness",
|
|
102
|
+
"Mass",
|
|
103
|
+
"Keyframe",
|
|
104
|
+
"Timeline",
|
|
105
|
+
"Choreography",
|
|
106
|
+
"Stagger",
|
|
107
|
+
"Interpolation",
|
|
108
|
+
"Transform",
|
|
109
|
+
"Opacity",
|
|
110
|
+
"Layout animation",
|
|
111
|
+
"Shared element transition",
|
|
112
|
+
"FLIP",
|
|
113
|
+
"Scroll progress",
|
|
114
|
+
"View progress",
|
|
115
|
+
"Gesture velocity",
|
|
116
|
+
"Inertia",
|
|
117
|
+
"Overshoot",
|
|
118
|
+
"Anticipation",
|
|
119
|
+
"Follow-through",
|
|
120
|
+
"Interruptibility",
|
|
121
|
+
"Retargeting",
|
|
122
|
+
"Reduced motion",
|
|
123
|
+
"Motion contract",
|
|
124
|
+
"Motion evidence",
|
|
125
|
+
"Frame budget",
|
|
126
|
+
"Input latency",
|
|
127
|
+
"Compositing",
|
|
128
|
+
"Decorative",
|
|
129
|
+
"Meaning-bearing"
|
|
130
|
+
]) {
|
|
131
|
+
if (!terminology.includes(marker)) {
|
|
132
|
+
failures.push(`motion-terminology missing marker: ${marker}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const patternCatalog = read("artifacts/motion-pattern-catalog.md");
|
|
137
|
+
const patternEntries = patternCatalog.match(/^### Pattern /gm) ?? [];
|
|
138
|
+
if (patternEntries.length < 30) {
|
|
139
|
+
failures.push(`motion-pattern-catalog has ${patternEntries.length} entries; expected at least 30`);
|
|
140
|
+
}
|
|
141
|
+
for (const marker of [
|
|
142
|
+
"No-motion",
|
|
143
|
+
"Opacity Fade",
|
|
144
|
+
"Fade-through",
|
|
145
|
+
"Crossfade",
|
|
146
|
+
"Scale Fade",
|
|
147
|
+
"Slide",
|
|
148
|
+
"Shared Element",
|
|
149
|
+
"FLIP Layout",
|
|
150
|
+
"Staggered Reveal",
|
|
151
|
+
"Choreographed Sequence",
|
|
152
|
+
"Progressive Disclosure",
|
|
153
|
+
"Modal Motion",
|
|
154
|
+
"Sheet Motion",
|
|
155
|
+
"Popover Motion",
|
|
156
|
+
"Skeleton Shimmer",
|
|
157
|
+
"Progress Morph",
|
|
158
|
+
"Pull-to-refresh",
|
|
159
|
+
"Swipe-to-dismiss",
|
|
160
|
+
"Spring Settle",
|
|
161
|
+
"Scroll Reveal",
|
|
162
|
+
"Parallax",
|
|
163
|
+
"Pinned Scroll",
|
|
164
|
+
"SVG Path",
|
|
165
|
+
"Icon Morph",
|
|
166
|
+
"Lottie/Rive",
|
|
167
|
+
"WebGL/Spatial"
|
|
168
|
+
]) {
|
|
169
|
+
if (!patternCatalog.includes(marker)) {
|
|
170
|
+
failures.push(`motion-pattern-catalog missing marker: ${marker}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const frameworkGuide = read("artifacts/platform-framework-guide.md");
|
|
175
|
+
for (const marker of [
|
|
176
|
+
"CSS Transitions",
|
|
177
|
+
"CSS Keyframe Animations",
|
|
178
|
+
"Web Animations API",
|
|
179
|
+
"View Transition API",
|
|
180
|
+
"CSS Scroll-driven Animations",
|
|
181
|
+
"Motion For React",
|
|
182
|
+
"motion/react",
|
|
183
|
+
"GSAP 3.x",
|
|
184
|
+
"Anime.js 4.x",
|
|
185
|
+
"react-spring",
|
|
186
|
+
"Lottie",
|
|
187
|
+
"Rive Web Runtime",
|
|
188
|
+
"Three.js",
|
|
189
|
+
"react-three-fiber",
|
|
190
|
+
"Spline",
|
|
191
|
+
"WebGL",
|
|
192
|
+
"SwiftUI",
|
|
193
|
+
"UIKit",
|
|
194
|
+
"Core Animation",
|
|
195
|
+
"Jetpack Compose",
|
|
196
|
+
"Android MotionLayout",
|
|
197
|
+
"React Native Reanimated 4.x",
|
|
198
|
+
"Flutter Animation APIs",
|
|
199
|
+
"Haptics",
|
|
200
|
+
"new runtime dependency requires approval"
|
|
201
|
+
]) {
|
|
202
|
+
if (!frameworkGuide.includes(marker)) {
|
|
203
|
+
failures.push(`platform-framework-guide missing marker: ${marker}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const devicePosture = read("artifacts/device-breakpoint-posture.md");
|
|
208
|
+
for (const marker of [
|
|
209
|
+
"Mobile portrait",
|
|
210
|
+
"Mobile landscape",
|
|
211
|
+
"Tablet portrait",
|
|
212
|
+
"Tablet landscape",
|
|
213
|
+
"Laptop and desktop",
|
|
214
|
+
"Large monitor",
|
|
215
|
+
"Short viewport",
|
|
216
|
+
"Coarse pointer",
|
|
217
|
+
"Fine pointer",
|
|
218
|
+
"Trackpad",
|
|
219
|
+
"Touch gesture context",
|
|
220
|
+
"Keyboard-only context",
|
|
221
|
+
"Reduced-power devices",
|
|
222
|
+
"High-refresh displays",
|
|
223
|
+
"Foldable/device posture",
|
|
224
|
+
"device-posture",
|
|
225
|
+
"progressive enhancement"
|
|
226
|
+
]) {
|
|
227
|
+
if (!devicePosture.includes(marker)) {
|
|
228
|
+
failures.push(`device-breakpoint-posture missing marker: ${marker}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
const accessibility = read("artifacts/accessibility-reduced-motion.md");
|
|
233
|
+
for (const marker of [
|
|
234
|
+
"WCAG 2.2 SC 2.3.3",
|
|
235
|
+
"prefers-reduced-motion",
|
|
236
|
+
"Essential",
|
|
237
|
+
"Non-essential",
|
|
238
|
+
"vestibular",
|
|
239
|
+
"keyboard order",
|
|
240
|
+
"focus stable",
|
|
241
|
+
"motion-only feedback",
|
|
242
|
+
"ARIA live"
|
|
243
|
+
]) {
|
|
244
|
+
if (!accessibility.includes(marker)) {
|
|
245
|
+
failures.push(`accessibility-reduced-motion missing marker: ${marker}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const performance = read("artifacts/performance-frame-budget.md");
|
|
250
|
+
for (const marker of [
|
|
251
|
+
"transform and opacity",
|
|
252
|
+
"layout",
|
|
253
|
+
"paint",
|
|
254
|
+
"compositing",
|
|
255
|
+
"will-change",
|
|
256
|
+
"requestAnimationFrame",
|
|
257
|
+
"INP",
|
|
258
|
+
"input latency",
|
|
259
|
+
"dropped frames",
|
|
260
|
+
"high refresh",
|
|
261
|
+
"mobile thermal",
|
|
262
|
+
"cleanup",
|
|
263
|
+
"layout shift",
|
|
264
|
+
"horizontal overflow"
|
|
265
|
+
]) {
|
|
266
|
+
if (!performance.includes(marker)) {
|
|
267
|
+
failures.push(`performance-frame-budget missing marker: ${marker}`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const evidence = read("artifacts/open-dev-browser-motion-evidence.md");
|
|
272
|
+
for (const marker of [
|
|
273
|
+
"snapshot",
|
|
274
|
+
"screenshot",
|
|
275
|
+
"debug-trace-snapshot",
|
|
276
|
+
"screencast-start",
|
|
277
|
+
"screencast-stop",
|
|
278
|
+
"console and network",
|
|
279
|
+
"viewport matrix",
|
|
280
|
+
"reduced-motion",
|
|
281
|
+
"canvas.preview.render"
|
|
282
|
+
]) {
|
|
283
|
+
if (!evidence.includes(marker)) {
|
|
284
|
+
failures.push(`open-dev-browser-motion-evidence missing marker: ${marker}`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
const releaseGate = read("artifacts/motion-release-gate.md");
|
|
289
|
+
for (const marker of [
|
|
290
|
+
"Contract alignment",
|
|
291
|
+
"Pattern justification",
|
|
292
|
+
"Reduced motion",
|
|
293
|
+
"Keyboard order",
|
|
294
|
+
"Viewport matrix",
|
|
295
|
+
"Temporal proof",
|
|
296
|
+
"Debug trace",
|
|
297
|
+
"Console/network stability",
|
|
298
|
+
"Performance",
|
|
299
|
+
"Overflow",
|
|
300
|
+
"Focus traps",
|
|
301
|
+
"Library policy"
|
|
302
|
+
]) {
|
|
303
|
+
if (!releaseGate.includes(marker)) {
|
|
304
|
+
failures.push(`motion-release-gate missing marker: ${marker}`);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
const antiPatterns = read("artifacts/motion-anti-patterns.md");
|
|
309
|
+
for (const marker of [
|
|
310
|
+
"Decorative motion without user value",
|
|
311
|
+
"Missing progress owner",
|
|
312
|
+
"Competing scroll observers",
|
|
313
|
+
"Layout-property animation",
|
|
314
|
+
"Long-distance mobile travel",
|
|
315
|
+
"Default parallax",
|
|
316
|
+
"Pinned scroll without escape",
|
|
317
|
+
"Hover-only affordance",
|
|
318
|
+
"Reduced motion that removes meaning",
|
|
319
|
+
"Unbounded loops",
|
|
320
|
+
"Fake progress",
|
|
321
|
+
"Unapproved runtime dependency",
|
|
322
|
+
"Haptic spam",
|
|
323
|
+
"Index-keyed animated lists",
|
|
324
|
+
"Non-interruptible gesture animation"
|
|
325
|
+
]) {
|
|
326
|
+
if (!antiPatterns.includes(marker)) {
|
|
327
|
+
failures.push(`motion-anti-patterns missing marker: ${marker}`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
const workflowScript = fullPath("scripts/motion-workflow.sh");
|
|
332
|
+
const workflowSource = fs.readFileSync(workflowScript, "utf8");
|
|
333
|
+
for (const marker of ["resolve-odb-cli.sh", "CLI_PREFIX"]) {
|
|
334
|
+
if (!workflowSource.includes(marker)) {
|
|
335
|
+
failures.push(`motion-workflow.sh missing resolver marker: ${marker}`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
for (const workflow of [
|
|
340
|
+
"list",
|
|
341
|
+
"contract-first",
|
|
342
|
+
"pattern-select",
|
|
343
|
+
"viewport-matrix",
|
|
344
|
+
"reduced-motion-check",
|
|
345
|
+
"temporal-proof",
|
|
346
|
+
"scroll-stage-audit",
|
|
347
|
+
"gesture-motion",
|
|
348
|
+
"performance-audit",
|
|
349
|
+
"release-gate"
|
|
350
|
+
]) {
|
|
351
|
+
const result = spawnSync(workflowScript, [workflow], { encoding: "utf8" });
|
|
352
|
+
if (result.status !== 0) {
|
|
353
|
+
failures.push(`motion-workflow.sh failed for mode ${workflow}: ${result.stderr.trim() || result.stdout.trim()}`);
|
|
354
|
+
continue;
|
|
355
|
+
}
|
|
356
|
+
if (result.stdout.trim().length === 0) {
|
|
357
|
+
failures.push(`motion-workflow.sh returned empty output for mode ${workflow}`);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
const temporalProof = spawnSync(workflowScript, ["temporal-proof"], { encoding: "utf8" });
|
|
362
|
+
for (const marker of ["screencast-start", "screencast-stop", "snapshot", "screenshot", "debug-trace-snapshot"]) {
|
|
363
|
+
if (!temporalProof.stdout.includes(marker)) {
|
|
364
|
+
failures.push(`temporal-proof output missing marker: ${marker}`);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
if (failures.length > 0) {
|
|
369
|
+
console.error(failures.join("\n"));
|
|
370
|
+
process.exit(1);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
console.log("Motion-design skill assets validated.");
|
|
374
|
+
NODE
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/package-assets.ts","../src/skills/bundled-skill-directories.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { fileURLToPath } from \"url\";\n\nconst PACKAGE_NAME = \"opendevbrowser\";\nconst SKILLS_DIR_NAME = \"skills\";\n\nlet cachedPackageRoot: string | null = null;\n\nfunction findPackageRoot(startDir: string): string | null {\n let current = startDir;\n\n while (true) {\n const pkgPath = path.join(current, \"package.json\");\n if (fs.existsSync(pkgPath)) {\n try {\n const parsed = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\")) as { name?: string };\n if (parsed.name === PACKAGE_NAME) {\n return current;\n }\n } catch {\n void 0;\n }\n }\n\n const parent = path.dirname(current);\n if (parent === current) {\n break;\n }\n current = parent;\n }\n\n return null;\n}\n\nexport function getPackageRoot(): string {\n if (cachedPackageRoot) {\n return cachedPackageRoot;\n }\n const moduleDir = path.dirname(fileURLToPath(import.meta.url));\n const packageRoot = findPackageRoot(moduleDir);\n if (!packageRoot) {\n throw new Error(`Unable to locate ${PACKAGE_NAME} package root.`);\n }\n cachedPackageRoot = packageRoot;\n return cachedPackageRoot;\n}\n\nexport function findBundledSkillsDir(): string | null {\n try {\n const skillsDir = path.join(getPackageRoot(), SKILLS_DIR_NAME);\n return fs.existsSync(skillsDir) ? skillsDir : null;\n } catch {\n return null;\n }\n}\n\nexport function getBundledSkillsDir(): string {\n const skillsDir = findBundledSkillsDir();\n if (!skillsDir) {\n throw new Error(`Bundled skills directory not found in ${PACKAGE_NAME} package.`);\n }\n return skillsDir;\n}\n","export interface BundledSkillDirectory {\n name: string;\n}\n\nexport const bundledSkillDirectories: BundledSkillDirectory[] = [\n { name: \"opendevbrowser-best-practices\" },\n { name: \"opendevbrowser-continuity-ledger\" },\n { name: \"opendevbrowser-data-extraction\" },\n { name: \"opendevbrowser-design-agent\" },\n { name: \"opendevbrowser-form-testing\" },\n { name: \"opendevbrowser-login-automation\" },\n { name: \"opendevbrowser-product-presentation-asset\" },\n { name: \"opendevbrowser-research\" },\n { name: \"opendevbrowser-shopping\" }\n];\n\nconst bundledSkillDirectoryByName = new Map(\n bundledSkillDirectories.map((entry) => [entry.name, entry] as const)\n);\n\nexport function listBundledSkillDirectories(): BundledSkillDirectory[] {\n return [...bundledSkillDirectories];\n}\n\nexport function getBundledSkillDirectory(name: string): BundledSkillDirectory | null {\n return bundledSkillDirectoryByName.get(name) ?? null;\n}\n\nexport function isBundledSkillName(name: string): boolean {\n return bundledSkillDirectoryByName.has(name);\n}\n"],"mappings":";AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,qBAAqB;AAE9B,IAAM,eAAe;AACrB,IAAM,kBAAkB;AAExB,IAAI,oBAAmC;AAEvC,SAAS,gBAAgB,UAAiC;AACxD,MAAI,UAAU;AAEd,SAAO,MAAM;AACX,UAAM,UAAe,UAAK,SAAS,cAAc;AACjD,QAAO,cAAW,OAAO,GAAG;AAC1B,UAAI;AACF,cAAM,SAAS,KAAK,MAAS,gBAAa,SAAS,OAAO,CAAC;AAC3D,YAAI,OAAO,SAAS,cAAc;AAChC,iBAAO;AAAA,QACT;AAAA,MACF,QAAQ;AAAA,MAER;AAAA,IACF;AAEA,UAAM,SAAc,aAAQ,OAAO;AACnC,QAAI,WAAW,SAAS;AACtB;AAAA,IACF;AACA,cAAU;AAAA,EACZ;AAEA,SAAO;AACT;AAEO,SAAS,iBAAyB;AACvC,MAAI,mBAAmB;AACrB,WAAO;AAAA,EACT;AACA,QAAM,YAAiB,aAAQ,cAAc,YAAY,GAAG,CAAC;AAC7D,QAAM,cAAc,gBAAgB,SAAS;AAC7C,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,oBAAoB,YAAY,gBAAgB;AAAA,EAClE;AACA,sBAAoB;AACpB,SAAO;AACT;AAEO,SAAS,uBAAsC;AACpD,MAAI;AACF,UAAM,YAAiB,UAAK,eAAe,GAAG,eAAe;AAC7D,WAAU,cAAW,SAAS,IAAI,YAAY;AAAA,EAChD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,sBAA8B;AAC5C,QAAM,YAAY,qBAAqB;AACvC,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,yCAAyC,YAAY,WAAW;AAAA,EAClF;AACA,SAAO;AACT;;;AC3DO,IAAM,0BAAmD;AAAA,EAC9D,EAAE,MAAM,gCAAgC;AAAA,EACxC,EAAE,MAAM,mCAAmC;AAAA,EAC3C,EAAE,MAAM,iCAAiC;AAAA,EACzC,EAAE,MAAM,8BAA8B;AAAA,EACtC,EAAE,MAAM,8BAA8B;AAAA,EACtC,EAAE,MAAM,kCAAkC;AAAA,EAC1C,EAAE,MAAM,4CAA4C;AAAA,EACpD,EAAE,MAAM,0BAA0B;AAAA,EAClC,EAAE,MAAM,0BAA0B;AACpC;AAEA,IAAM,8BAA8B,IAAI;AAAA,EACtC,wBAAwB,IAAI,CAAC,UAAU,CAAC,MAAM,MAAM,KAAK,CAAU;AACrE;AAEO,SAAS,8BAAuD;AACrE,SAAO,CAAC,GAAG,uBAAuB;AACpC;AAMO,SAAS,mBAAmB,MAAuB;AACxD,SAAO,4BAA4B,IAAI,IAAI;AAC7C;","names":[]}
|