opendevbrowser 0.0.28 → 0.0.30
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 +2 -2
- package/dist/accessibility-snapshot-CQ4ZKWKC.js +39 -0
- package/dist/accessibility-snapshot-CQ4ZKWKC.js.map +1 -0
- package/dist/active-window-TD5HYJ72.js +37 -0
- package/dist/active-window-TD5HYJ72.js.map +1 -0
- package/dist/annotate-VTLFS2XV.js +205 -0
- package/dist/annotate-VTLFS2XV.js.map +1 -0
- package/dist/artifacts-KJ6RNDO2.js +120 -0
- package/dist/artifacts-KJ6RNDO2.js.map +1 -0
- package/dist/attr-BCI5KYCW.js +84 -0
- package/dist/attr-BCI5KYCW.js.map +1 -0
- package/dist/browser/ops-client.d.ts +1 -0
- package/dist/browser/ops-client.d.ts.map +1 -1
- package/dist/canvas-5DFEEOKM.js +309 -0
- package/dist/canvas-5DFEEOKM.js.map +1 -0
- package/dist/capture-desktop-HFTTWY4Z.js +38 -0
- package/dist/capture-desktop-HFTTWY4Z.js.map +1 -0
- package/dist/capture-window-X63XPIFF.js +40 -0
- package/dist/capture-window-X63XPIFF.js.map +1 -0
- package/dist/check-LWAUY7GC.js +71 -0
- package/dist/check-LWAUY7GC.js.map +1 -0
- package/dist/checked-ZSOUKVYT.js +71 -0
- package/dist/checked-ZSOUKVYT.js.map +1 -0
- package/dist/chunk-2SIMIPLY.js +67 -0
- package/dist/chunk-2SIMIPLY.js.map +1 -0
- package/dist/chunk-37VSRUW4.js +141 -0
- package/dist/chunk-37VSRUW4.js.map +1 -0
- package/dist/{chunk-T3VVHJTK.js → chunk-4BEJVZRK.js} +1078 -1458
- package/dist/chunk-4BEJVZRK.js.map +1 -0
- package/dist/chunk-5SWZDVOW.js +144 -0
- package/dist/chunk-5SWZDVOW.js.map +1 -0
- package/dist/chunk-6PVZ2ABC.js +429 -0
- package/dist/chunk-6PVZ2ABC.js.map +1 -0
- package/dist/chunk-7GVOUZMQ.js +64 -0
- package/dist/chunk-7GVOUZMQ.js.map +1 -0
- package/dist/chunk-7THCPS52.js +84 -0
- package/dist/chunk-7THCPS52.js.map +1 -0
- package/dist/chunk-AHEWXOKY.js +64 -0
- package/dist/chunk-AHEWXOKY.js.map +1 -0
- package/dist/chunk-ASMHEEKY.js +10 -0
- package/dist/chunk-ASMHEEKY.js.map +1 -0
- package/dist/chunk-COAOWH3G.js +3651 -0
- package/dist/chunk-COAOWH3G.js.map +1 -0
- package/dist/chunk-DBF5OKH3.js +111 -0
- package/dist/chunk-DBF5OKH3.js.map +1 -0
- package/dist/chunk-DW4TX7MU.js +54 -0
- package/dist/chunk-DW4TX7MU.js.map +1 -0
- package/dist/chunk-GQJ5S3BL.js +20 -0
- package/dist/chunk-GQJ5S3BL.js.map +1 -0
- package/dist/chunk-IPE7TF2P.js +54 -0
- package/dist/chunk-IPE7TF2P.js.map +1 -0
- package/dist/chunk-IQTJHXZJ.js +126 -0
- package/dist/chunk-IQTJHXZJ.js.map +1 -0
- package/dist/chunk-J47N77VG.js +2969 -0
- package/dist/chunk-J47N77VG.js.map +1 -0
- package/dist/chunk-JZXD6FWR.js +25 -0
- package/dist/chunk-JZXD6FWR.js.map +1 -0
- package/dist/{chunk-QVWOPIZJ.js → chunk-KDSNXS6N.js} +75 -149
- package/dist/chunk-KDSNXS6N.js.map +1 -0
- package/dist/chunk-KZ2IXVQT.js +219 -0
- package/dist/chunk-KZ2IXVQT.js.map +1 -0
- package/dist/chunk-MD655IPO.js +838 -0
- package/dist/chunk-MD655IPO.js.map +1 -0
- package/dist/chunk-MX3NFLCE.js +940 -0
- package/dist/chunk-MX3NFLCE.js.map +1 -0
- package/dist/chunk-OW5HMYMI.js +19 -0
- package/dist/chunk-OW5HMYMI.js.map +1 -0
- package/dist/chunk-PPUWQKIC.js +26 -0
- package/dist/chunk-PPUWQKIC.js.map +1 -0
- package/dist/{chunk-I5ZCOZZV.js → chunk-QOMWCRE3.js} +1202 -9561
- package/dist/chunk-QOMWCRE3.js.map +1 -0
- package/dist/chunk-RCZZGGJS.js +226 -0
- package/dist/chunk-RCZZGGJS.js.map +1 -0
- package/dist/chunk-RJNI3BHT.js +1 -0
- package/dist/chunk-RPXWUCQQ.js +112 -0
- package/dist/chunk-RPXWUCQQ.js.map +1 -0
- package/dist/chunk-S5KZQJJI.js +107 -0
- package/dist/chunk-S5KZQJJI.js.map +1 -0
- package/dist/chunk-T4GMCW6Z.js +46 -0
- package/dist/chunk-T4GMCW6Z.js.map +1 -0
- package/dist/chunk-WHQZBUNY.js +982 -0
- package/dist/chunk-WHQZBUNY.js.map +1 -0
- package/dist/chunk-WOXBLP7V.js +610 -0
- package/dist/chunk-WOXBLP7V.js.map +1 -0
- package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
- package/dist/cli/commands/macro-resolve.d.ts +4 -1
- package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
- package/dist/cli/commands/product-video.d.ts.map +1 -1
- package/dist/cli/commands/research.d.ts.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/shopping.d.ts.map +1 -1
- package/dist/cli/commands/workflow-output.d.ts +2 -0
- package/dist/cli/commands/workflow-output.d.ts.map +1 -0
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/index.js +204 -8123
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/installers/postinstall-skill-sync.js +2 -1
- package/dist/cli/installers/postinstall-skill-sync.js.map +1 -1
- package/dist/cli/remote-relay.d.ts.map +1 -1
- package/dist/click-2AILSEIZ.js +81 -0
- package/dist/click-2AILSEIZ.js.map +1 -0
- package/dist/clone-component-TPJS3PEG.js +82 -0
- package/dist/clone-component-TPJS3PEG.js.map +1 -0
- package/dist/clone-page-LE74CIFC.js +69 -0
- package/dist/clone-page-LE74CIFC.js.map +1 -0
- package/dist/close-HN4YI47K.js +63 -0
- package/dist/close-HN4YI47K.js.map +1 -0
- package/dist/close-WFERRHX6.js +63 -0
- package/dist/close-WFERRHX6.js.map +1 -0
- package/dist/connect-RWBV2UCQ.js +107 -0
- package/dist/connect-RWBV2UCQ.js.map +1 -0
- package/dist/console-poll-PP4YYPDF.js +76 -0
- package/dist/console-poll-PP4YYPDF.js.map +1 -0
- package/dist/cookie-import-6IP776FC.js +177 -0
- package/dist/cookie-import-6IP776FC.js.map +1 -0
- package/dist/cookie-list-O2KG6DPU.js +117 -0
- package/dist/cookie-list-O2KG6DPU.js.map +1 -0
- package/dist/daemon-2BSAZXLT.js +194 -0
- package/dist/daemon-2BSAZXLT.js.map +1 -0
- package/dist/daemon-fingerprint.json +1 -1
- package/dist/debug-trace-snapshot-F3BDVZXS.js +136 -0
- package/dist/debug-trace-snapshot-F3BDVZXS.js.map +1 -0
- package/dist/dialog-6JQYUWMQ.js +75 -0
- package/dist/dialog-6JQYUWMQ.js.map +1 -0
- package/dist/disconnect-763TP7GH.js +58 -0
- package/dist/disconnect-763TP7GH.js.map +1 -0
- package/dist/enabled-DLYQFNIP.js +71 -0
- package/dist/enabled-DLYQFNIP.js.map +1 -0
- package/dist/extension-extractor-GKWSFHPN.js +11 -0
- package/dist/extension-extractor-GKWSFHPN.js.map +1 -0
- package/dist/global-D6WLWBXA.js +56 -0
- package/dist/global-D6WLWBXA.js.map +1 -0
- package/dist/goto-S346TJJH.js +98 -0
- package/dist/goto-S346TJJH.js.map +1 -0
- package/dist/help-EKKKEDL5.js +491 -0
- package/dist/help-EKKKEDL5.js.map +1 -0
- package/dist/hover-6JVJFGO7.js +71 -0
- package/dist/hover-6JVJFGO7.js.map +1 -0
- package/dist/html-EVOSPBIT.js +84 -0
- package/dist/html-EVOSPBIT.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +87 -38
- package/dist/index.js.map +1 -1
- package/dist/inspector-H57BVUJP.js +62 -0
- package/dist/inspector-H57BVUJP.js.map +1 -0
- package/dist/inspector-audit-NQBAJWC7.js +84 -0
- package/dist/inspector-audit-NQBAJWC7.js.map +1 -0
- package/dist/inspector-plan-ZDIQVND3.js +69 -0
- package/dist/inspector-plan-ZDIQVND3.js.map +1 -0
- package/dist/inspiredesign-IEUL4PX3.js +234 -0
- package/dist/inspiredesign-IEUL4PX3.js.map +1 -0
- package/dist/install-autostart-output-5DOMKCQL.js +41 -0
- package/dist/install-autostart-output-5DOMKCQL.js.map +1 -0
- package/dist/install-autostart-reconciliation-NHKOFYTD.js +73 -0
- package/dist/install-autostart-reconciliation-NHKOFYTD.js.map +1 -0
- package/dist/launch-EK66VQPF.js +225 -0
- package/dist/launch-EK66VQPF.js.map +1 -0
- package/dist/list-ADZAQ2IU.js +51 -0
- package/dist/list-ADZAQ2IU.js.map +1 -0
- package/dist/list-KKUKN467.js +54 -0
- package/dist/list-KKUKN467.js.map +1 -0
- package/dist/local-HXJLUUNT.js +54 -0
- package/dist/local-HXJLUUNT.js.map +1 -0
- package/dist/macro-resolve-6DOQJ7CA.js +253 -0
- package/dist/macro-resolve-6DOQJ7CA.js.map +1 -0
- package/dist/macros/execute-runtime.d.ts +3 -1
- package/dist/macros/execute-runtime.d.ts.map +1 -1
- package/dist/macros/execute.d.ts +2 -0
- package/dist/macros/execute.d.ts.map +1 -1
- package/dist/native-UPLVQ2SG.js +22 -0
- package/dist/native-UPLVQ2SG.js.map +1 -0
- package/dist/network-poll-NUL4PDPY.js +76 -0
- package/dist/network-poll-NUL4PDPY.js.map +1 -0
- package/dist/new-5NKYPEFT.js +69 -0
- package/dist/new-5NKYPEFT.js.map +1 -0
- package/dist/onboarding-metadata-7E3KLYSZ.js +27 -0
- package/dist/onboarding-metadata-7E3KLYSZ.js.map +1 -0
- package/dist/open-NR3BPLXV.js +81 -0
- package/dist/open-NR3BPLXV.js.map +1 -0
- package/dist/opendevbrowser.d.ts.map +1 -1
- package/dist/opendevbrowser.js +87 -38
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/perf-HJ36ZI6H.js +58 -0
- package/dist/perf-HJ36ZI6H.js.map +1 -0
- package/dist/pointer-down-IYTTQWXZ.js +55 -0
- package/dist/pointer-down-IYTTQWXZ.js.map +1 -0
- package/dist/pointer-drag-A2YC5PWI.js +54 -0
- package/dist/pointer-drag-A2YC5PWI.js.map +1 -0
- package/dist/pointer-move-W5K5FUI4.js +52 -0
- package/dist/pointer-move-W5K5FUI4.js.map +1 -0
- package/dist/pointer-up-6GWVO64Y.js +55 -0
- package/dist/pointer-up-6GWVO64Y.js.map +1 -0
- package/dist/press-A3V5WB3S.js +83 -0
- package/dist/press-A3V5WB3S.js.map +1 -0
- package/dist/product-video-52REKWF3.js +235 -0
- package/dist/product-video-52REKWF3.js.map +1 -0
- package/dist/providers/artifacts.d.ts +0 -2
- package/dist/providers/artifacts.d.ts.map +1 -1
- package/dist/providers/blocker.d.ts.map +1 -1
- package/dist/providers/bounded-map.d.ts +2 -0
- package/dist/providers/bounded-map.d.ts.map +1 -0
- package/dist/providers/community/index.d.ts.map +1 -1
- package/dist/providers/constraint.d.ts.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/research-compiler.d.ts +1 -1
- package/dist/providers/research-compiler.d.ts.map +1 -1
- package/dist/providers/research-executor.d.ts.map +1 -1
- package/dist/providers/runtime-factory.d.ts.map +1 -1
- package/dist/providers/shared/traversal-url.d.ts +3 -0
- package/dist/providers/shared/traversal-url.d.ts.map +1 -1
- package/dist/providers/shopping/index.d.ts.map +1 -1
- package/dist/providers/social/search-quality.d.ts.map +1 -1
- package/dist/providers/workflow-handoff.d.ts +4 -0
- package/dist/providers/workflow-handoff.d.ts.map +1 -1
- package/dist/providers/workflow-output-root.d.ts +6 -0
- package/dist/providers/workflow-output-root.d.ts.map +1 -0
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-QF2RFB4J.js → providers-IMFYMMHQ.js} +19 -14
- package/dist/providers-IMFYMMHQ.js.map +1 -0
- 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/relay/protocol.d.ts +3 -1
- package/dist/relay/protocol.d.ts.map +1 -1
- package/dist/relay/relay-server.d.ts +6 -0
- package/dist/relay/relay-server.d.ts.map +1 -1
- package/dist/research-WB6BBCDD.js +295 -0
- package/dist/research-WB6BBCDD.js.map +1 -0
- package/dist/review-BGWVY4RA.js +48 -0
- package/dist/review-BGWVY4RA.js.map +1 -0
- package/dist/review-desktop-LEORC5VS.js +54 -0
- package/dist/review-desktop-LEORC5VS.js.map +1 -0
- package/dist/rpc-4TSKSFGC.js +159 -0
- package/dist/rpc-4TSKSFGC.js.map +1 -0
- package/dist/run-3NBLVWXD.js +180 -0
- package/dist/run-3NBLVWXD.js.map +1 -0
- package/dist/screencast-start-UZVIT3IN.js +67 -0
- package/dist/screencast-start-UZVIT3IN.js.map +1 -0
- package/dist/screencast-stop-NOSJSIUO.js +59 -0
- package/dist/screencast-stop-NOSJSIUO.js.map +1 -0
- package/dist/screenshot-LARG4JQG.js +68 -0
- package/dist/screenshot-LARG4JQG.js.map +1 -0
- package/dist/scroll-VNFMV6TW.js +84 -0
- package/dist/scroll-VNFMV6TW.js.map +1 -0
- package/dist/scroll-into-view-VYRT3JPT.js +71 -0
- package/dist/scroll-into-view-VYRT3JPT.js.map +1 -0
- package/dist/select-KJTUZDVO.js +86 -0
- package/dist/select-KJTUZDVO.js.map +1 -0
- package/dist/serve-EV7K4HKR.js +498 -0
- package/dist/serve-EV7K4HKR.js.map +1 -0
- package/dist/shopping-DTXHVQ2X.js +273 -0
- package/dist/shopping-DTXHVQ2X.js.map +1 -0
- package/dist/skill-lifecycle-5UAZGKSN.js +89 -0
- package/dist/skill-lifecycle-5UAZGKSN.js.map +1 -0
- package/dist/skills-NSXDX6YM.js +26 -0
- package/dist/skills-NSXDX6YM.js.map +1 -0
- package/dist/snapshot-3XQMCMRJ.js +113 -0
- package/dist/snapshot-3XQMCMRJ.js.map +1 -0
- package/dist/status-OXSYA5XD.js +35 -0
- package/dist/status-OXSYA5XD.js.map +1 -0
- package/dist/status-YUMDP5KY.js +132 -0
- package/dist/status-YUMDP5KY.js.map +1 -0
- package/dist/status-capabilities-P4KDSE2Y.js +57 -0
- package/dist/status-capabilities-P4KDSE2Y.js.map +1 -0
- package/dist/text-V3B7UVIH.js +84 -0
- package/dist/text-V3B7UVIH.js.map +1 -0
- package/dist/tools/deps.d.ts +1 -0
- package/dist/tools/deps.d.ts.map +1 -1
- package/dist/tools/inspiredesign_run.d.ts.map +1 -1
- package/dist/tools/macro_resolve.d.ts.map +1 -1
- package/dist/tools/product_video_run.d.ts.map +1 -1
- package/dist/tools/research_run.d.ts.map +1 -1
- package/dist/tools/shopping_run.d.ts.map +1 -1
- package/dist/tools/workflow-output.d.ts +3 -0
- package/dist/tools/workflow-output.d.ts.map +1 -0
- package/dist/type-IYBN3ZLR.js +94 -0
- package/dist/type-IYBN3ZLR.js.map +1 -0
- package/dist/uncheck-SG737EGI.js +71 -0
- package/dist/uncheck-SG737EGI.js.map +1 -0
- package/dist/uninstall-KYKGJAX7.js +91 -0
- package/dist/uninstall-KYKGJAX7.js.map +1 -0
- package/dist/update-SMXPYGXS.js +305 -0
- package/dist/update-SMXPYGXS.js.map +1 -0
- package/dist/update-skill-modes-BVX7IVMW.js +38 -0
- package/dist/update-skill-modes-BVX7IVMW.js.map +1 -0
- package/dist/upload-KH6ZABJA.js +56 -0
- package/dist/upload-KH6ZABJA.js.map +1 -0
- package/dist/use-7YDKO3U4.js +63 -0
- package/dist/use-7YDKO3U4.js.map +1 -0
- package/dist/value-RZBWSKKM.js +71 -0
- package/dist/value-RZBWSKKM.js.map +1 -0
- package/dist/visible-BSFTAKXR.js +71 -0
- package/dist/visible-BSFTAKXR.js.map +1 -0
- package/dist/wait-TMTEAYOP.js +109 -0
- package/dist/wait-TMTEAYOP.js.map +1 -0
- package/dist/windows-HIZ23OHS.js +37 -0
- package/dist/windows-HIZ23OHS.js.map +1 -0
- package/extension/dist/background.js +99 -22
- package/extension/dist/ops/ops-runtime.js +85 -7
- package/extension/dist/ops/ops-session-store.js +3 -0
- package/extension/dist/ops/target-session-coordinator.js +3 -0
- package/extension/dist/services/CDPRouter.js +9 -0
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/opendevbrowser-best-practices/SKILL.md +8 -6
- package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +1 -1
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +3 -2
- package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +39 -2
- package/skills/opendevbrowser-research/SKILL.md +64 -12
- package/skills/opendevbrowser-research/artifacts/research-workflows.md +56 -19
- package/skills/opendevbrowser-research/assets/templates/compact.md +31 -5
- package/skills/opendevbrowser-research/assets/templates/context.json +52 -1
- package/skills/opendevbrowser-research/assets/templates/report.md +57 -4
- package/skills/opendevbrowser-research/examples/sample-input.json +1 -1
- package/skills/opendevbrowser-research/examples/sample-output.md +27 -2
- package/skills/opendevbrowser-research/scripts/run-research.sh +2 -6
- package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +115 -1
- package/dist/chunk-I5ZCOZZV.js.map +0 -1
- package/dist/chunk-QVWOPIZJ.js.map +0 -1
- package/dist/chunk-T3VVHJTK.js.map +0 -1
- /package/dist/{providers-QF2RFB4J.js.map → chunk-RJNI3BHT.js.map} +0 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseNumberFlag
|
|
3
|
+
} from "./chunk-RPXWUCQQ.js";
|
|
4
|
+
import {
|
|
5
|
+
DaemonClient
|
|
6
|
+
} from "./chunk-MD655IPO.js";
|
|
7
|
+
import "./chunk-COAOWH3G.js";
|
|
8
|
+
import "./chunk-QOMWCRE3.js";
|
|
9
|
+
import "./chunk-MX3NFLCE.js";
|
|
10
|
+
import "./chunk-ASMHEEKY.js";
|
|
11
|
+
import {
|
|
12
|
+
writeOutput
|
|
13
|
+
} from "./chunk-7GVOUZMQ.js";
|
|
14
|
+
import {
|
|
15
|
+
createUsageError
|
|
16
|
+
} from "./chunk-IPE7TF2P.js";
|
|
17
|
+
import "./chunk-STGGGVYT.js";
|
|
18
|
+
import "./chunk-3ILXPKSJ.js";
|
|
19
|
+
import "./chunk-TBUCZX4A.js";
|
|
20
|
+
import "./chunk-Y2KL55OG.js";
|
|
21
|
+
import "./chunk-5SWZDVOW.js";
|
|
22
|
+
import "./chunk-4BEJVZRK.js";
|
|
23
|
+
import "./chunk-S5KZQJJI.js";
|
|
24
|
+
import "./chunk-KZ2IXVQT.js";
|
|
25
|
+
import "./chunk-WHQZBUNY.js";
|
|
26
|
+
import "./chunk-FUSXMW3G.js";
|
|
27
|
+
|
|
28
|
+
// src/cli/commands/canvas.ts
|
|
29
|
+
import { readFileSync } from "fs";
|
|
30
|
+
var DEFAULT_FEEDBACK_STREAM_TIMEOUT_MS = 3e4;
|
|
31
|
+
var isRecord = (value) => {
|
|
32
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
33
|
+
};
|
|
34
|
+
var asString = (value) => {
|
|
35
|
+
return typeof value === "string" && value.length > 0 ? value : null;
|
|
36
|
+
};
|
|
37
|
+
var asNumber = (value) => {
|
|
38
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
39
|
+
};
|
|
40
|
+
var asRecordArray = (value) => {
|
|
41
|
+
return Array.isArray(value) ? value.filter(isRecord) : [];
|
|
42
|
+
};
|
|
43
|
+
var toFeedbackSubscribeResult = (value) => {
|
|
44
|
+
if (!isRecord(value)) {
|
|
45
|
+
return {
|
|
46
|
+
subscriptionId: null,
|
|
47
|
+
initialItems: [],
|
|
48
|
+
cursor: null,
|
|
49
|
+
heartbeatMs: 15e3
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
subscriptionId: asString(value.subscriptionId),
|
|
54
|
+
initialItems: asRecordArray(value.initialItems),
|
|
55
|
+
cursor: asString(value.cursor),
|
|
56
|
+
heartbeatMs: Math.max(asNumber(value.heartbeatMs) ?? 15e3, 1e3)
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
async function streamFeedbackViaSubscription(client, args, canvasArgs, params, initial) {
|
|
60
|
+
const outputOptions = { format: args.outputFormat, quiet: args.quiet };
|
|
61
|
+
writeOutput({
|
|
62
|
+
success: true,
|
|
63
|
+
message: `Canvas executed: ${canvasArgs.command}`,
|
|
64
|
+
data: {
|
|
65
|
+
command: canvasArgs.command,
|
|
66
|
+
result: initial
|
|
67
|
+
}
|
|
68
|
+
}, outputOptions);
|
|
69
|
+
const initialResult = toFeedbackSubscribeResult(initial);
|
|
70
|
+
const subscriptionId = initialResult.subscriptionId;
|
|
71
|
+
const heartbeatMs = initialResult.heartbeatMs;
|
|
72
|
+
const streamTimeoutMs = canvasArgs.timeoutMs ?? DEFAULT_FEEDBACK_STREAM_TIMEOUT_MS;
|
|
73
|
+
const deadline = Date.now() + streamTimeoutMs;
|
|
74
|
+
let cursor = initialResult.cursor;
|
|
75
|
+
for (const item of initialResult.initialItems) {
|
|
76
|
+
const itemCursor = asString(item.cursor);
|
|
77
|
+
if (itemCursor) {
|
|
78
|
+
cursor = itemCursor;
|
|
79
|
+
}
|
|
80
|
+
writeOutput({
|
|
81
|
+
success: true,
|
|
82
|
+
message: `Canvas feedback: ${canvasArgs.command}`,
|
|
83
|
+
data: {
|
|
84
|
+
command: canvasArgs.command,
|
|
85
|
+
streamEvent: {
|
|
86
|
+
eventType: "feedback.item",
|
|
87
|
+
item
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}, outputOptions);
|
|
91
|
+
}
|
|
92
|
+
while (subscriptionId && Date.now() < deadline) {
|
|
93
|
+
const remainingMs = deadline - Date.now();
|
|
94
|
+
if (remainingMs <= 0) {
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
const nextEvent = await client.call(
|
|
98
|
+
"canvas.execute",
|
|
99
|
+
{
|
|
100
|
+
command: "canvas.feedback.next",
|
|
101
|
+
params: {
|
|
102
|
+
...params,
|
|
103
|
+
subscriptionId,
|
|
104
|
+
timeoutMs: Math.min(heartbeatMs, remainingMs)
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{ timeoutMs: remainingMs }
|
|
108
|
+
);
|
|
109
|
+
if (isRecord(nextEvent)) {
|
|
110
|
+
if (nextEvent.eventType === "feedback.item" && isRecord(nextEvent.item)) {
|
|
111
|
+
const itemCursor = asString(nextEvent.item.cursor);
|
|
112
|
+
if (itemCursor) {
|
|
113
|
+
cursor = itemCursor;
|
|
114
|
+
}
|
|
115
|
+
} else if (typeof nextEvent.cursor === "string") {
|
|
116
|
+
cursor = nextEvent.cursor;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
writeOutput({
|
|
120
|
+
success: true,
|
|
121
|
+
message: `Canvas feedback: ${canvasArgs.command}`,
|
|
122
|
+
data: {
|
|
123
|
+
command: canvasArgs.command,
|
|
124
|
+
streamEvent: nextEvent
|
|
125
|
+
}
|
|
126
|
+
}, outputOptions);
|
|
127
|
+
if (isRecord(nextEvent) && nextEvent.eventType === "feedback.complete") {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (Date.now() >= deadline) {
|
|
132
|
+
writeOutput({
|
|
133
|
+
success: true,
|
|
134
|
+
message: `Canvas feedback: ${canvasArgs.command}`,
|
|
135
|
+
data: {
|
|
136
|
+
command: canvasArgs.command,
|
|
137
|
+
streamEvent: {
|
|
138
|
+
eventType: "feedback.complete",
|
|
139
|
+
cursor: cursor ?? null,
|
|
140
|
+
reason: "timeout"
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}, outputOptions);
|
|
144
|
+
}
|
|
145
|
+
if (subscriptionId) {
|
|
146
|
+
await client.call(
|
|
147
|
+
"canvas.execute",
|
|
148
|
+
{
|
|
149
|
+
command: "canvas.feedback.unsubscribe",
|
|
150
|
+
params: {
|
|
151
|
+
...params,
|
|
152
|
+
subscriptionId
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
).catch(() => {
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
var requireValue = (value, flag) => {
|
|
160
|
+
if (!value) throw createUsageError(`Missing value for ${flag}`);
|
|
161
|
+
return value;
|
|
162
|
+
};
|
|
163
|
+
var parseJsonObject = (raw, source) => {
|
|
164
|
+
let parsed;
|
|
165
|
+
try {
|
|
166
|
+
parsed = JSON.parse(raw);
|
|
167
|
+
} catch (error) {
|
|
168
|
+
const message = error instanceof Error ? error.message : "Invalid JSON";
|
|
169
|
+
throw createUsageError(`Invalid JSON from ${source}: ${message}`);
|
|
170
|
+
}
|
|
171
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
172
|
+
throw createUsageError(`Invalid JSON from ${source}: expected object`);
|
|
173
|
+
}
|
|
174
|
+
return parsed;
|
|
175
|
+
};
|
|
176
|
+
var parseCanvasArgs = (rawArgs) => {
|
|
177
|
+
const parsed = {};
|
|
178
|
+
for (let i = 0; i < rawArgs.length; i += 1) {
|
|
179
|
+
const arg = rawArgs[i];
|
|
180
|
+
if (arg === "--command") {
|
|
181
|
+
parsed.command = requireValue(rawArgs[i + 1], "--command");
|
|
182
|
+
i += 1;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if (arg?.startsWith("--command=")) {
|
|
186
|
+
parsed.command = requireValue(arg.split("=", 2)[1], "--command");
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
if (arg === "--params") {
|
|
190
|
+
parsed.params = requireValue(rawArgs[i + 1], "--params");
|
|
191
|
+
i += 1;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
if (arg?.startsWith("--params=")) {
|
|
195
|
+
parsed.params = requireValue(arg.split("=", 2)[1], "--params");
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
if (arg === "--params-file") {
|
|
199
|
+
parsed.paramsFile = requireValue(rawArgs[i + 1], "--params-file");
|
|
200
|
+
i += 1;
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
if (arg?.startsWith("--params-file=")) {
|
|
204
|
+
parsed.paramsFile = requireValue(arg.split("=", 2)[1], "--params-file");
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
if (arg === "--timeout-ms") {
|
|
208
|
+
parsed.timeoutMs = parseNumberFlag(requireValue(rawArgs[i + 1], "--timeout-ms"), "--timeout-ms", { min: 1 });
|
|
209
|
+
i += 1;
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
if (arg?.startsWith("--timeout-ms=")) {
|
|
213
|
+
parsed.timeoutMs = parseNumberFlag(requireValue(arg.split("=", 2)[1], "--timeout-ms"), "--timeout-ms", { min: 1 });
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return parsed;
|
|
217
|
+
};
|
|
218
|
+
var resolveCanvasParams = (canvasArgs) => {
|
|
219
|
+
const hasParams = typeof canvasArgs.params === "string";
|
|
220
|
+
const hasParamsFile = typeof canvasArgs.paramsFile === "string";
|
|
221
|
+
if (Number(hasParams) + Number(hasParamsFile) > 1) {
|
|
222
|
+
throw createUsageError("Provide only one params source: --params or --params-file.");
|
|
223
|
+
}
|
|
224
|
+
if (hasParams) {
|
|
225
|
+
return parseJsonObject(canvasArgs.params ?? "", "--params");
|
|
226
|
+
}
|
|
227
|
+
if (hasParamsFile) {
|
|
228
|
+
let raw = "";
|
|
229
|
+
try {
|
|
230
|
+
raw = readFileSync(canvasArgs.paramsFile ?? "", "utf8");
|
|
231
|
+
} catch (error) {
|
|
232
|
+
const message = error instanceof Error ? error.message : "Unable to read file";
|
|
233
|
+
throw createUsageError(`Invalid --params-file: ${message}`);
|
|
234
|
+
}
|
|
235
|
+
if (!raw.trim()) {
|
|
236
|
+
throw createUsageError("Invalid JSON from --params-file: empty input");
|
|
237
|
+
}
|
|
238
|
+
return parseJsonObject(raw, "--params-file");
|
|
239
|
+
}
|
|
240
|
+
return {};
|
|
241
|
+
};
|
|
242
|
+
var attachRepoRoot = (params) => {
|
|
243
|
+
if (typeof params.repoRoot === "string" && params.repoRoot.trim().length > 0) {
|
|
244
|
+
return params;
|
|
245
|
+
}
|
|
246
|
+
return {
|
|
247
|
+
...params,
|
|
248
|
+
repoRoot: process.cwd()
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
async function runCanvas(args) {
|
|
252
|
+
const canvasArgs = parseCanvasArgs(args.rawArgs);
|
|
253
|
+
if (!canvasArgs.command) {
|
|
254
|
+
throw createUsageError("Usage: opendevbrowser canvas --command <canvas.command> [--params <json> | --params-file <path>]");
|
|
255
|
+
}
|
|
256
|
+
if (!canvasArgs.command.startsWith("canvas.")) {
|
|
257
|
+
throw createUsageError("Canvas command names must start with 'canvas.'.");
|
|
258
|
+
}
|
|
259
|
+
const client = new DaemonClient({ autoRenew: true });
|
|
260
|
+
try {
|
|
261
|
+
const params = attachRepoRoot(resolveCanvasParams(canvasArgs));
|
|
262
|
+
const result = await client.call(
|
|
263
|
+
"canvas.execute",
|
|
264
|
+
{
|
|
265
|
+
command: canvasArgs.command,
|
|
266
|
+
params
|
|
267
|
+
},
|
|
268
|
+
{ timeoutMs: canvasArgs.timeoutMs }
|
|
269
|
+
);
|
|
270
|
+
if (canvasArgs.command === "canvas.feedback.subscribe" && args.outputFormat === "stream-json" && isRecord(result)) {
|
|
271
|
+
await streamFeedbackViaSubscription(client, args, canvasArgs, params, result);
|
|
272
|
+
return {
|
|
273
|
+
success: true,
|
|
274
|
+
message: `Canvas executed: ${canvasArgs.command}`,
|
|
275
|
+
data: {
|
|
276
|
+
suppressOutput: true
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
if (args.outputFormat === "text") {
|
|
281
|
+
const output = typeof result === "string" ? result : JSON.stringify(result, null, 2);
|
|
282
|
+
return { success: true, message: output };
|
|
283
|
+
}
|
|
284
|
+
return {
|
|
285
|
+
success: true,
|
|
286
|
+
message: `Canvas executed: ${canvasArgs.command}`,
|
|
287
|
+
data: {
|
|
288
|
+
command: canvasArgs.command,
|
|
289
|
+
result
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
} finally {
|
|
293
|
+
await client.releaseBinding().catch(() => {
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
var __test__ = {
|
|
298
|
+
parseCanvasArgs,
|
|
299
|
+
parseJsonObject,
|
|
300
|
+
resolveCanvasParams,
|
|
301
|
+
attachRepoRoot,
|
|
302
|
+
toFeedbackSubscribeResult
|
|
303
|
+
};
|
|
304
|
+
export {
|
|
305
|
+
__test__,
|
|
306
|
+
parseCanvasArgs,
|
|
307
|
+
runCanvas
|
|
308
|
+
};
|
|
309
|
+
//# sourceMappingURL=canvas-5DFEEOKM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/canvas.ts"],"sourcesContent":["import { readFileSync } from \"fs\";\nimport type { ParsedArgs } from \"../args\";\nimport { DaemonClient } from \"../daemon-client\";\nimport { createUsageError } from \"../errors\";\nimport { writeOutput } from \"../output\";\nimport { parseNumberFlag } from \"../utils/parse\";\n\ntype CanvasArgs = {\n command?: string;\n params?: string;\n paramsFile?: string;\n timeoutMs?: number;\n};\n\nconst DEFAULT_FEEDBACK_STREAM_TIMEOUT_MS = 30000;\n\ntype FeedbackItem = Record<string, unknown>;\n\ntype FeedbackSubscribeResult = {\n subscriptionId: string | null;\n initialItems: FeedbackItem[];\n cursor: string | null;\n heartbeatMs: number;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\nconst asString = (value: unknown): string | null => {\n return typeof value === \"string\" && value.length > 0 ? value : null;\n};\n\nconst asNumber = (value: unknown): number | null => {\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n};\n\nconst asRecordArray = (value: unknown): FeedbackItem[] => {\n return Array.isArray(value) ? value.filter(isRecord) : [];\n};\n\nconst toFeedbackSubscribeResult = (value: unknown): FeedbackSubscribeResult => {\n if (!isRecord(value)) {\n return {\n subscriptionId: null,\n initialItems: [],\n cursor: null,\n heartbeatMs: 15000\n };\n }\n return {\n subscriptionId: asString(value.subscriptionId),\n initialItems: asRecordArray(value.initialItems),\n cursor: asString(value.cursor),\n heartbeatMs: Math.max(asNumber(value.heartbeatMs) ?? 15000, 1000)\n };\n};\n\nasync function streamFeedbackViaSubscription(\n client: DaemonClient,\n args: ParsedArgs,\n canvasArgs: CanvasArgs,\n params: Record<string, unknown>,\n initial: Record<string, unknown>\n): Promise<void> {\n const outputOptions = { format: args.outputFormat, quiet: args.quiet };\n writeOutput({\n success: true,\n message: `Canvas executed: ${canvasArgs.command}`,\n data: {\n command: canvasArgs.command,\n result: initial\n }\n }, outputOptions);\n\n const initialResult = toFeedbackSubscribeResult(initial);\n const subscriptionId = initialResult.subscriptionId;\n const heartbeatMs = initialResult.heartbeatMs;\n const streamTimeoutMs = canvasArgs.timeoutMs ?? DEFAULT_FEEDBACK_STREAM_TIMEOUT_MS;\n const deadline = Date.now() + streamTimeoutMs;\n let cursor = initialResult.cursor;\n\n for (const item of initialResult.initialItems) {\n const itemCursor = asString(item.cursor);\n if (itemCursor) {\n cursor = itemCursor;\n }\n writeOutput({\n success: true,\n message: `Canvas feedback: ${canvasArgs.command}`,\n data: {\n command: canvasArgs.command,\n streamEvent: {\n eventType: \"feedback.item\",\n item\n }\n }\n }, outputOptions);\n }\n\n while (subscriptionId && Date.now() < deadline) {\n const remainingMs = deadline - Date.now();\n if (remainingMs <= 0) {\n break;\n }\n const nextEvent = await client.call(\n \"canvas.execute\",\n {\n command: \"canvas.feedback.next\",\n params: {\n ...params,\n subscriptionId,\n timeoutMs: Math.min(heartbeatMs, remainingMs)\n }\n },\n { timeoutMs: remainingMs }\n );\n if (isRecord(nextEvent)) {\n if (nextEvent.eventType === \"feedback.item\" && isRecord(nextEvent.item)) {\n const itemCursor = asString(nextEvent.item.cursor);\n if (itemCursor) {\n cursor = itemCursor;\n }\n } else if (typeof nextEvent.cursor === \"string\") {\n cursor = nextEvent.cursor;\n }\n }\n writeOutput({\n success: true,\n message: `Canvas feedback: ${canvasArgs.command}`,\n data: {\n command: canvasArgs.command,\n streamEvent: nextEvent\n }\n }, outputOptions);\n if (isRecord(nextEvent) && nextEvent.eventType === \"feedback.complete\") {\n break;\n }\n }\n\n if (Date.now() >= deadline) {\n writeOutput({\n success: true,\n message: `Canvas feedback: ${canvasArgs.command}`,\n data: {\n command: canvasArgs.command,\n streamEvent: {\n eventType: \"feedback.complete\",\n cursor: cursor ?? null,\n reason: \"timeout\"\n }\n }\n }, outputOptions);\n }\n\n if (subscriptionId) {\n await client.call(\n \"canvas.execute\",\n {\n command: \"canvas.feedback.unsubscribe\",\n params: {\n ...params,\n subscriptionId\n }\n }\n ).catch(() => {});\n }\n}\n\nconst requireValue = (value: string | undefined, flag: string): string => {\n if (!value) throw createUsageError(`Missing value for ${flag}`);\n return value;\n};\n\nconst parseJsonObject = (raw: string, source: string): Record<string, unknown> => {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Invalid JSON\";\n throw createUsageError(`Invalid JSON from ${source}: ${message}`);\n }\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n throw createUsageError(`Invalid JSON from ${source}: expected object`);\n }\n return parsed as Record<string, unknown>;\n};\n\nexport const parseCanvasArgs = (rawArgs: string[]): CanvasArgs => {\n const parsed: CanvasArgs = {};\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\n if (arg === \"--command\") {\n parsed.command = requireValue(rawArgs[i + 1], \"--command\");\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--command=\")) {\n parsed.command = requireValue(arg.split(\"=\", 2)[1], \"--command\");\n continue;\n }\n if (arg === \"--params\") {\n parsed.params = requireValue(rawArgs[i + 1], \"--params\");\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--params=\")) {\n parsed.params = requireValue(arg.split(\"=\", 2)[1], \"--params\");\n continue;\n }\n if (arg === \"--params-file\") {\n parsed.paramsFile = requireValue(rawArgs[i + 1], \"--params-file\");\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--params-file=\")) {\n parsed.paramsFile = requireValue(arg.split(\"=\", 2)[1], \"--params-file\");\n continue;\n }\n if (arg === \"--timeout-ms\") {\n parsed.timeoutMs = parseNumberFlag(requireValue(rawArgs[i + 1], \"--timeout-ms\"), \"--timeout-ms\", { min: 1 });\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--timeout-ms=\")) {\n parsed.timeoutMs = parseNumberFlag(requireValue(arg.split(\"=\", 2)[1], \"--timeout-ms\"), \"--timeout-ms\", { min: 1 });\n }\n }\n return parsed;\n};\n\nconst resolveCanvasParams = (canvasArgs: CanvasArgs): Record<string, unknown> => {\n const hasParams = typeof canvasArgs.params === \"string\";\n const hasParamsFile = typeof canvasArgs.paramsFile === \"string\";\n if (Number(hasParams) + Number(hasParamsFile) > 1) {\n throw createUsageError(\"Provide only one params source: --params or --params-file.\");\n }\n if (hasParams) {\n return parseJsonObject(canvasArgs.params ?? \"\", \"--params\");\n }\n if (hasParamsFile) {\n let raw = \"\";\n try {\n raw = readFileSync(canvasArgs.paramsFile ?? \"\", \"utf8\");\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unable to read file\";\n throw createUsageError(`Invalid --params-file: ${message}`);\n }\n if (!raw.trim()) {\n throw createUsageError(\"Invalid JSON from --params-file: empty input\");\n }\n return parseJsonObject(raw, \"--params-file\");\n }\n return {};\n};\n\nconst attachRepoRoot = (params: Record<string, unknown>): Record<string, unknown> => {\n if (typeof params.repoRoot === \"string\" && params.repoRoot.trim().length > 0) {\n return params;\n }\n return {\n ...params,\n repoRoot: process.cwd()\n };\n};\n\nexport async function runCanvas(args: ParsedArgs) {\n const canvasArgs = parseCanvasArgs(args.rawArgs);\n if (!canvasArgs.command) {\n throw createUsageError(\"Usage: opendevbrowser canvas --command <canvas.command> [--params <json> | --params-file <path>]\");\n }\n if (!canvasArgs.command.startsWith(\"canvas.\")) {\n throw createUsageError(\"Canvas command names must start with 'canvas.'.\");\n }\n\n const client = new DaemonClient({ autoRenew: true });\n try {\n const params = attachRepoRoot(resolveCanvasParams(canvasArgs));\n const result = await client.call<unknown>(\n \"canvas.execute\",\n {\n command: canvasArgs.command,\n params\n },\n { timeoutMs: canvasArgs.timeoutMs }\n );\n if (\n canvasArgs.command === \"canvas.feedback.subscribe\"\n && args.outputFormat === \"stream-json\"\n && isRecord(result)\n ) {\n await streamFeedbackViaSubscription(client, args, canvasArgs, params, result);\n return {\n success: true,\n message: `Canvas executed: ${canvasArgs.command}`,\n data: {\n suppressOutput: true\n }\n };\n }\n if (args.outputFormat === \"text\") {\n const output = typeof result === \"string\" ? result : JSON.stringify(result, null, 2);\n return { success: true, message: output };\n }\n return {\n success: true,\n message: `Canvas executed: ${canvasArgs.command}`,\n data: {\n command: canvasArgs.command,\n result\n }\n };\n } finally {\n await client.releaseBinding().catch(() => {});\n }\n}\n\nexport const __test__ = {\n parseCanvasArgs,\n parseJsonObject,\n resolveCanvasParams,\n attachRepoRoot,\n toFeedbackSubscribeResult\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
callDesktopCommand,
|
|
3
|
+
desktopCommandResult,
|
|
4
|
+
parseDesktopReasonArgs,
|
|
5
|
+
requireDesktopReason
|
|
6
|
+
} from "./chunk-AHEWXOKY.js";
|
|
7
|
+
import "./chunk-RJNI3BHT.js";
|
|
8
|
+
import "./chunk-RPXWUCQQ.js";
|
|
9
|
+
import "./chunk-OW5HMYMI.js";
|
|
10
|
+
import "./chunk-MD655IPO.js";
|
|
11
|
+
import "./chunk-COAOWH3G.js";
|
|
12
|
+
import "./chunk-QOMWCRE3.js";
|
|
13
|
+
import "./chunk-MX3NFLCE.js";
|
|
14
|
+
import "./chunk-ASMHEEKY.js";
|
|
15
|
+
import "./chunk-IPE7TF2P.js";
|
|
16
|
+
import "./chunk-STGGGVYT.js";
|
|
17
|
+
import "./chunk-3ILXPKSJ.js";
|
|
18
|
+
import "./chunk-TBUCZX4A.js";
|
|
19
|
+
import "./chunk-Y2KL55OG.js";
|
|
20
|
+
import "./chunk-5SWZDVOW.js";
|
|
21
|
+
import "./chunk-4BEJVZRK.js";
|
|
22
|
+
import "./chunk-S5KZQJJI.js";
|
|
23
|
+
import "./chunk-KZ2IXVQT.js";
|
|
24
|
+
import "./chunk-WHQZBUNY.js";
|
|
25
|
+
import "./chunk-FUSXMW3G.js";
|
|
26
|
+
|
|
27
|
+
// src/cli/commands/desktop/capture-desktop.ts
|
|
28
|
+
async function runDesktopCaptureDesktop(args) {
|
|
29
|
+
const { reason, timeoutMs } = parseDesktopReasonArgs(args.rawArgs);
|
|
30
|
+
const result = await callDesktopCommand("desktop.capture.desktop", {
|
|
31
|
+
reason: requireDesktopReason(reason)
|
|
32
|
+
}, timeoutMs);
|
|
33
|
+
return desktopCommandResult("Desktop captured.", result);
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
runDesktopCaptureDesktop
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=capture-desktop-HFTTWY4Z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/desktop/capture-desktop.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport {\n callDesktopCommand,\n desktopCommandResult,\n parseDesktopReasonArgs,\n requireDesktopReason\n} from \"./shared\";\n\nexport async function runDesktopCaptureDesktop(args: ParsedArgs) {\n const { reason, timeoutMs } = parseDesktopReasonArgs(args.rawArgs);\n const result = await callDesktopCommand(\"desktop.capture.desktop\", {\n reason: requireDesktopReason(reason)\n }, timeoutMs);\n return desktopCommandResult(\"Desktop captured.\", result);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,eAAsB,yBAAyB,MAAkB;AAC/D,QAAM,EAAE,QAAQ,UAAU,IAAI,uBAAuB,KAAK,OAAO;AACjE,QAAM,SAAS,MAAM,mBAAmB,2BAA2B;AAAA,IACjE,QAAQ,qBAAqB,MAAM;AAAA,EACrC,GAAG,SAAS;AACZ,SAAO,qBAAqB,qBAAqB,MAAM;AACzD;","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
callDesktopCommand,
|
|
3
|
+
desktopCommandResult,
|
|
4
|
+
parseDesktopWindowReasonArgs,
|
|
5
|
+
requireDesktopReason,
|
|
6
|
+
requireDesktopWindowId
|
|
7
|
+
} from "./chunk-AHEWXOKY.js";
|
|
8
|
+
import "./chunk-RJNI3BHT.js";
|
|
9
|
+
import "./chunk-RPXWUCQQ.js";
|
|
10
|
+
import "./chunk-OW5HMYMI.js";
|
|
11
|
+
import "./chunk-MD655IPO.js";
|
|
12
|
+
import "./chunk-COAOWH3G.js";
|
|
13
|
+
import "./chunk-QOMWCRE3.js";
|
|
14
|
+
import "./chunk-MX3NFLCE.js";
|
|
15
|
+
import "./chunk-ASMHEEKY.js";
|
|
16
|
+
import "./chunk-IPE7TF2P.js";
|
|
17
|
+
import "./chunk-STGGGVYT.js";
|
|
18
|
+
import "./chunk-3ILXPKSJ.js";
|
|
19
|
+
import "./chunk-TBUCZX4A.js";
|
|
20
|
+
import "./chunk-Y2KL55OG.js";
|
|
21
|
+
import "./chunk-5SWZDVOW.js";
|
|
22
|
+
import "./chunk-4BEJVZRK.js";
|
|
23
|
+
import "./chunk-S5KZQJJI.js";
|
|
24
|
+
import "./chunk-KZ2IXVQT.js";
|
|
25
|
+
import "./chunk-WHQZBUNY.js";
|
|
26
|
+
import "./chunk-FUSXMW3G.js";
|
|
27
|
+
|
|
28
|
+
// src/cli/commands/desktop/capture-window.ts
|
|
29
|
+
async function runDesktopCaptureWindow(args) {
|
|
30
|
+
const { windowId, reason, timeoutMs } = parseDesktopWindowReasonArgs(args.rawArgs);
|
|
31
|
+
const result = await callDesktopCommand("desktop.capture.window", {
|
|
32
|
+
windowId: requireDesktopWindowId(windowId),
|
|
33
|
+
reason: requireDesktopReason(reason)
|
|
34
|
+
}, timeoutMs);
|
|
35
|
+
return desktopCommandResult("Desktop window captured.", result);
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
runDesktopCaptureWindow
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=capture-window-X63XPIFF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/desktop/capture-window.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport {\n callDesktopCommand,\n desktopCommandResult,\n parseDesktopWindowReasonArgs,\n requireDesktopReason,\n requireDesktopWindowId\n} from \"./shared\";\n\nexport async function runDesktopCaptureWindow(args: ParsedArgs) {\n const { windowId, reason, timeoutMs } = parseDesktopWindowReasonArgs(args.rawArgs);\n const result = await callDesktopCommand(\"desktop.capture.window\", {\n windowId: requireDesktopWindowId(windowId),\n reason: requireDesktopReason(reason)\n }, timeoutMs);\n return desktopCommandResult(\"Desktop window captured.\", result);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,eAAsB,wBAAwB,MAAkB;AAC9D,QAAM,EAAE,UAAU,QAAQ,UAAU,IAAI,6BAA6B,KAAK,OAAO;AACjF,QAAM,SAAS,MAAM,mBAAmB,0BAA0B;AAAA,IAChE,UAAU,uBAAuB,QAAQ;AAAA,IACzC,QAAQ,qBAAqB,MAAM;AAAA,EACrC,GAAG,SAAS;AACZ,SAAO,qBAAqB,4BAA4B,MAAM;AAChE;","names":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import "./chunk-RJNI3BHT.js";
|
|
2
|
+
import {
|
|
3
|
+
parseOptionalStringFlag
|
|
4
|
+
} from "./chunk-RPXWUCQQ.js";
|
|
5
|
+
import {
|
|
6
|
+
callDaemon
|
|
7
|
+
} from "./chunk-MD655IPO.js";
|
|
8
|
+
import "./chunk-COAOWH3G.js";
|
|
9
|
+
import "./chunk-QOMWCRE3.js";
|
|
10
|
+
import "./chunk-MX3NFLCE.js";
|
|
11
|
+
import "./chunk-ASMHEEKY.js";
|
|
12
|
+
import {
|
|
13
|
+
createUsageError
|
|
14
|
+
} from "./chunk-IPE7TF2P.js";
|
|
15
|
+
import "./chunk-STGGGVYT.js";
|
|
16
|
+
import "./chunk-3ILXPKSJ.js";
|
|
17
|
+
import "./chunk-TBUCZX4A.js";
|
|
18
|
+
import "./chunk-Y2KL55OG.js";
|
|
19
|
+
import "./chunk-5SWZDVOW.js";
|
|
20
|
+
import "./chunk-4BEJVZRK.js";
|
|
21
|
+
import "./chunk-S5KZQJJI.js";
|
|
22
|
+
import "./chunk-KZ2IXVQT.js";
|
|
23
|
+
import "./chunk-WHQZBUNY.js";
|
|
24
|
+
import "./chunk-FUSXMW3G.js";
|
|
25
|
+
|
|
26
|
+
// src/cli/commands/interact/check.ts
|
|
27
|
+
function parseCheckArgs(rawArgs) {
|
|
28
|
+
const parsed = {};
|
|
29
|
+
for (let i = 0; i < rawArgs.length; i += 1) {
|
|
30
|
+
const arg = rawArgs[i];
|
|
31
|
+
if (arg === "--session-id") {
|
|
32
|
+
const value = rawArgs[i + 1];
|
|
33
|
+
if (!value) throw createUsageError("Missing value for --session-id");
|
|
34
|
+
parsed.sessionId = value;
|
|
35
|
+
i += 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (arg?.startsWith("--session-id=")) {
|
|
39
|
+
parsed.sessionId = arg.split("=", 2)[1];
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (arg === "--ref") {
|
|
43
|
+
const value = rawArgs[i + 1];
|
|
44
|
+
if (!value) throw createUsageError("Missing value for --ref");
|
|
45
|
+
parsed.ref = value;
|
|
46
|
+
i += 1;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (arg?.startsWith("--ref=")) {
|
|
50
|
+
parsed.ref = arg.split("=", 2)[1];
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return parsed;
|
|
55
|
+
}
|
|
56
|
+
async function runCheck(args) {
|
|
57
|
+
const { sessionId, ref } = parseCheckArgs(args.rawArgs);
|
|
58
|
+
const targetId = parseOptionalStringFlag(args.rawArgs, "--target-id");
|
|
59
|
+
if (!sessionId) throw createUsageError("Missing --session-id");
|
|
60
|
+
if (!ref) throw createUsageError("Missing --ref");
|
|
61
|
+
const result = await callDaemon("interact.check", {
|
|
62
|
+
sessionId,
|
|
63
|
+
ref,
|
|
64
|
+
...typeof targetId === "string" ? { targetId } : {}
|
|
65
|
+
});
|
|
66
|
+
return { success: true, message: "Check complete.", data: result };
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
runCheck
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=check-LWAUY7GC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/interact/check.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { parseOptionalStringFlag } from \"../../utils/parse\";\n\nfunction parseCheckArgs(rawArgs: string[]): { sessionId?: string; ref?: string } {\n const parsed: { sessionId?: string; ref?: string } = {};\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\n if (arg === \"--session-id\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --session-id\");\n parsed.sessionId = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--session-id=\")) {\n parsed.sessionId = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--ref\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --ref\");\n parsed.ref = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--ref=\")) {\n parsed.ref = arg.split(\"=\", 2)[1];\n continue;\n }\n }\n return parsed;\n}\n\nexport async function runCheck(args: ParsedArgs) {\n const { sessionId, ref } = parseCheckArgs(args.rawArgs);\n const targetId = parseOptionalStringFlag(args.rawArgs, \"--target-id\");\n if (!sessionId) throw createUsageError(\"Missing --session-id\");\n if (!ref) throw createUsageError(\"Missing --ref\");\n const result = await callDaemon(\"interact.check\", {\n sessionId,\n ref,\n ...(typeof targetId === \"string\" ? { targetId } : {})\n });\n return { success: true, message: \"Check complete.\", data: result };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,eAAe,SAAyD;AAC/E,QAAM,SAA+C,CAAC;AACtD,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;AAC1C,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,gCAAgC;AACnE,aAAO,YAAY;AACnB,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AACtC;AAAA,IACF;AACA,QAAI,QAAQ,SAAS;AACnB,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,yBAAyB;AAC5D,aAAO,MAAM;AACb,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,aAAO,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AAChC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,SAAS,MAAkB;AAC/C,QAAM,EAAE,WAAW,IAAI,IAAI,eAAe,KAAK,OAAO;AACtD,QAAM,WAAW,wBAAwB,KAAK,SAAS,aAAa;AACpE,MAAI,CAAC,UAAW,OAAM,iBAAiB,sBAAsB;AAC7D,MAAI,CAAC,IAAK,OAAM,iBAAiB,eAAe;AAChD,QAAM,SAAS,MAAM,WAAW,kBAAkB;AAAA,IAChD;AAAA,IACA;AAAA,IACA,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EACrD,CAAC;AACD,SAAO,EAAE,SAAS,MAAM,SAAS,mBAAmB,MAAM,OAAO;AACnE;","names":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import "./chunk-RJNI3BHT.js";
|
|
2
|
+
import {
|
|
3
|
+
parseOptionalStringFlag
|
|
4
|
+
} from "./chunk-RPXWUCQQ.js";
|
|
5
|
+
import {
|
|
6
|
+
callDaemon
|
|
7
|
+
} from "./chunk-MD655IPO.js";
|
|
8
|
+
import "./chunk-COAOWH3G.js";
|
|
9
|
+
import "./chunk-QOMWCRE3.js";
|
|
10
|
+
import "./chunk-MX3NFLCE.js";
|
|
11
|
+
import "./chunk-ASMHEEKY.js";
|
|
12
|
+
import {
|
|
13
|
+
createUsageError
|
|
14
|
+
} from "./chunk-IPE7TF2P.js";
|
|
15
|
+
import "./chunk-STGGGVYT.js";
|
|
16
|
+
import "./chunk-3ILXPKSJ.js";
|
|
17
|
+
import "./chunk-TBUCZX4A.js";
|
|
18
|
+
import "./chunk-Y2KL55OG.js";
|
|
19
|
+
import "./chunk-5SWZDVOW.js";
|
|
20
|
+
import "./chunk-4BEJVZRK.js";
|
|
21
|
+
import "./chunk-S5KZQJJI.js";
|
|
22
|
+
import "./chunk-KZ2IXVQT.js";
|
|
23
|
+
import "./chunk-WHQZBUNY.js";
|
|
24
|
+
import "./chunk-FUSXMW3G.js";
|
|
25
|
+
|
|
26
|
+
// src/cli/commands/dom/checked.ts
|
|
27
|
+
function parseDomCheckedArgs(rawArgs) {
|
|
28
|
+
const parsed = {};
|
|
29
|
+
for (let i = 0; i < rawArgs.length; i += 1) {
|
|
30
|
+
const arg = rawArgs[i];
|
|
31
|
+
if (arg === "--session-id") {
|
|
32
|
+
const value = rawArgs[i + 1];
|
|
33
|
+
if (!value) throw createUsageError("Missing value for --session-id");
|
|
34
|
+
parsed.sessionId = value;
|
|
35
|
+
i += 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (arg?.startsWith("--session-id=")) {
|
|
39
|
+
parsed.sessionId = arg.split("=", 2)[1];
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (arg === "--ref") {
|
|
43
|
+
const value = rawArgs[i + 1];
|
|
44
|
+
if (!value) throw createUsageError("Missing value for --ref");
|
|
45
|
+
parsed.ref = value;
|
|
46
|
+
i += 1;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (arg?.startsWith("--ref=")) {
|
|
50
|
+
parsed.ref = arg.split("=", 2)[1];
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return parsed;
|
|
55
|
+
}
|
|
56
|
+
async function runDomChecked(args) {
|
|
57
|
+
const { sessionId, ref } = parseDomCheckedArgs(args.rawArgs);
|
|
58
|
+
const targetId = parseOptionalStringFlag(args.rawArgs, "--target-id");
|
|
59
|
+
if (!sessionId) throw createUsageError("Missing --session-id");
|
|
60
|
+
if (!ref) throw createUsageError("Missing --ref");
|
|
61
|
+
const result = await callDaemon("dom.isChecked", {
|
|
62
|
+
sessionId,
|
|
63
|
+
ref,
|
|
64
|
+
...typeof targetId === "string" ? { targetId } : {}
|
|
65
|
+
});
|
|
66
|
+
return { success: true, message: "Checked state reported.", data: result };
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
runDomChecked
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=checked-ZSOUKVYT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/dom/checked.ts"],"sourcesContent":["import type { ParsedArgs } from \"../../args\";\nimport { callDaemon } from \"../../client\";\nimport { createUsageError } from \"../../errors\";\nimport { parseOptionalStringFlag } from \"../../utils/parse\";\n\nfunction parseDomCheckedArgs(rawArgs: string[]): { sessionId?: string; ref?: string } {\n const parsed: { sessionId?: string; ref?: string } = {};\n for (let i = 0; i < rawArgs.length; i += 1) {\n const arg = rawArgs[i];\n if (arg === \"--session-id\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --session-id\");\n parsed.sessionId = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--session-id=\")) {\n parsed.sessionId = arg.split(\"=\", 2)[1];\n continue;\n }\n if (arg === \"--ref\") {\n const value = rawArgs[i + 1];\n if (!value) throw createUsageError(\"Missing value for --ref\");\n parsed.ref = value;\n i += 1;\n continue;\n }\n if (arg?.startsWith(\"--ref=\")) {\n parsed.ref = arg.split(\"=\", 2)[1];\n continue;\n }\n }\n return parsed;\n}\n\nexport async function runDomChecked(args: ParsedArgs) {\n const { sessionId, ref } = parseDomCheckedArgs(args.rawArgs);\n const targetId = parseOptionalStringFlag(args.rawArgs, \"--target-id\");\n if (!sessionId) throw createUsageError(\"Missing --session-id\");\n if (!ref) throw createUsageError(\"Missing --ref\");\n const result = await callDaemon(\"dom.isChecked\", {\n sessionId,\n ref,\n ...(typeof targetId === \"string\" ? { targetId } : {})\n });\n return { success: true, message: \"Checked state reported.\", data: result };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,oBAAoB,SAAyD;AACpF,QAAM,SAA+C,CAAC;AACtD,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;AAC1C,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,gCAAgC;AACnE,aAAO,YAAY;AACnB,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,eAAe,GAAG;AACpC,aAAO,YAAY,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AACtC;AAAA,IACF;AACA,QAAI,QAAQ,SAAS;AACnB,YAAM,QAAQ,QAAQ,IAAI,CAAC;AAC3B,UAAI,CAAC,MAAO,OAAM,iBAAiB,yBAAyB;AAC5D,aAAO,MAAM;AACb,WAAK;AACL;AAAA,IACF;AACA,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,aAAO,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AAChC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,cAAc,MAAkB;AACpD,QAAM,EAAE,WAAW,IAAI,IAAI,oBAAoB,KAAK,OAAO;AAC3D,QAAM,WAAW,wBAAwB,KAAK,SAAS,aAAa;AACpE,MAAI,CAAC,UAAW,OAAM,iBAAiB,sBAAsB;AAC7D,MAAI,CAAC,IAAK,OAAM,iBAAiB,eAAe;AAChD,QAAM,SAAS,MAAM,WAAW,iBAAiB;AAAA,IAC/C;AAAA,IACA;AAAA,IACA,GAAI,OAAO,aAAa,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EACrD,CAAC;AACD,SAAO,EAAE,SAAS,MAAM,SAAS,2BAA2B,MAAM,OAAO;AAC3E;","names":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseNumberFlag
|
|
3
|
+
} from "./chunk-RPXWUCQQ.js";
|
|
4
|
+
import {
|
|
5
|
+
createUsageError
|
|
6
|
+
} from "./chunk-IPE7TF2P.js";
|
|
7
|
+
|
|
8
|
+
// src/cli/commands/session/inspector-shared.ts
|
|
9
|
+
function parseSessionInspectorArgs(rawArgs) {
|
|
10
|
+
const parsed = {};
|
|
11
|
+
for (let index = 0; index < rawArgs.length; index += 1) {
|
|
12
|
+
const arg = rawArgs[index];
|
|
13
|
+
if (arg === "--include-urls") {
|
|
14
|
+
parsed.includeUrls = true;
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (arg === "--session-id" || arg?.startsWith("--session-id=")) {
|
|
18
|
+
parsed.sessionId = readStringFlag(rawArgs, index, "--session-id");
|
|
19
|
+
index += stepForValue(arg);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (arg === "--since-console-seq" || arg?.startsWith("--since-console-seq=")) {
|
|
23
|
+
parsed.sinceConsoleSeq = readNumberFlag(rawArgs, index, "--since-console-seq", { min: 0 });
|
|
24
|
+
index += stepForValue(arg);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (arg === "--since-network-seq" || arg?.startsWith("--since-network-seq=")) {
|
|
28
|
+
parsed.sinceNetworkSeq = readNumberFlag(rawArgs, index, "--since-network-seq", { min: 0 });
|
|
29
|
+
index += stepForValue(arg);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (arg === "--since-exception-seq" || arg?.startsWith("--since-exception-seq=")) {
|
|
33
|
+
parsed.sinceExceptionSeq = readNumberFlag(rawArgs, index, "--since-exception-seq", { min: 0 });
|
|
34
|
+
index += stepForValue(arg);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (arg === "--max" || arg?.startsWith("--max=")) {
|
|
38
|
+
parsed.max = readNumberFlag(rawArgs, index, "--max", { min: 1 });
|
|
39
|
+
index += stepForValue(arg);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (arg === "--request-id" || arg?.startsWith("--request-id=")) {
|
|
43
|
+
parsed.requestId = readStringFlag(rawArgs, index, "--request-id");
|
|
44
|
+
index += stepForValue(arg);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return parsed;
|
|
48
|
+
}
|
|
49
|
+
function stepForValue(flag) {
|
|
50
|
+
return flag.includes("=") ? 0 : 1;
|
|
51
|
+
}
|
|
52
|
+
function readNumberFlag(rawArgs, index, flag, options) {
|
|
53
|
+
return parseNumberFlag(readStringFlag(rawArgs, index, flag), flag, options);
|
|
54
|
+
}
|
|
55
|
+
function readStringFlag(rawArgs, index, flag) {
|
|
56
|
+
const arg = rawArgs[index];
|
|
57
|
+
const value = arg?.includes("=") ? arg.split("=", 2)[1] : rawArgs[index + 1];
|
|
58
|
+
if (!value) {
|
|
59
|
+
throw createUsageError(`Missing value for ${flag}`);
|
|
60
|
+
}
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export {
|
|
65
|
+
parseSessionInspectorArgs
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=chunk-2SIMIPLY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/session/inspector-shared.ts"],"sourcesContent":["import { createUsageError } from \"../../errors\";\nimport { parseNumberFlag } from \"../../utils/parse\";\n\nexport type SessionInspectorArgs = {\n sessionId?: string;\n includeUrls?: boolean;\n sinceConsoleSeq?: number;\n sinceNetworkSeq?: number;\n sinceExceptionSeq?: number;\n max?: number;\n requestId?: string;\n};\n\nexport function parseSessionInspectorArgs(rawArgs: string[]): SessionInspectorArgs {\n const parsed: SessionInspectorArgs = {};\n\n for (let index = 0; index < rawArgs.length; index += 1) {\n const arg = rawArgs[index];\n if (arg === \"--include-urls\") {\n parsed.includeUrls = true;\n continue;\n }\n if (arg === \"--session-id\" || arg?.startsWith(\"--session-id=\")) {\n parsed.sessionId = readStringFlag(rawArgs, index, \"--session-id\");\n index += stepForValue(arg);\n continue;\n }\n if (arg === \"--since-console-seq\" || arg?.startsWith(\"--since-console-seq=\")) {\n parsed.sinceConsoleSeq = readNumberFlag(rawArgs, index, \"--since-console-seq\", { min: 0 });\n index += stepForValue(arg);\n continue;\n }\n if (arg === \"--since-network-seq\" || arg?.startsWith(\"--since-network-seq=\")) {\n parsed.sinceNetworkSeq = readNumberFlag(rawArgs, index, \"--since-network-seq\", { min: 0 });\n index += stepForValue(arg);\n continue;\n }\n if (arg === \"--since-exception-seq\" || arg?.startsWith(\"--since-exception-seq=\")) {\n parsed.sinceExceptionSeq = readNumberFlag(rawArgs, index, \"--since-exception-seq\", { min: 0 });\n index += stepForValue(arg);\n continue;\n }\n if (arg === \"--max\" || arg?.startsWith(\"--max=\")) {\n parsed.max = readNumberFlag(rawArgs, index, \"--max\", { min: 1 });\n index += stepForValue(arg);\n continue;\n }\n if (arg === \"--request-id\" || arg?.startsWith(\"--request-id=\")) {\n parsed.requestId = readStringFlag(rawArgs, index, \"--request-id\");\n index += stepForValue(arg);\n }\n }\n\n return parsed;\n}\n\nfunction stepForValue(flag: string): number {\n return flag.includes(\"=\") ? 0 : 1;\n}\n\nfunction readNumberFlag(\n rawArgs: string[],\n index: number,\n flag: string,\n options: { min?: number }\n): number {\n return parseNumberFlag(readStringFlag(rawArgs, index, flag), flag, options);\n}\n\nfunction readStringFlag(rawArgs: string[], index: number, flag: string): string {\n const arg = rawArgs[index];\n const value = arg?.includes(\"=\")\n ? arg.split(\"=\", 2)[1]\n : rawArgs[index + 1];\n if (!value) {\n throw createUsageError(`Missing value for ${flag}`);\n }\n return value;\n}\n"],"mappings":";;;;;;;;AAaO,SAAS,0BAA0B,SAAyC;AACjF,QAAM,SAA+B,CAAC;AAEtC,WAAS,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;AACtD,UAAM,MAAM,QAAQ,KAAK;AACzB,QAAI,QAAQ,kBAAkB;AAC5B,aAAO,cAAc;AACrB;AAAA,IACF;AACA,QAAI,QAAQ,kBAAkB,KAAK,WAAW,eAAe,GAAG;AAC9D,aAAO,YAAY,eAAe,SAAS,OAAO,cAAc;AAChE,eAAS,aAAa,GAAG;AACzB;AAAA,IACF;AACA,QAAI,QAAQ,yBAAyB,KAAK,WAAW,sBAAsB,GAAG;AAC5E,aAAO,kBAAkB,eAAe,SAAS,OAAO,uBAAuB,EAAE,KAAK,EAAE,CAAC;AACzF,eAAS,aAAa,GAAG;AACzB;AAAA,IACF;AACA,QAAI,QAAQ,yBAAyB,KAAK,WAAW,sBAAsB,GAAG;AAC5E,aAAO,kBAAkB,eAAe,SAAS,OAAO,uBAAuB,EAAE,KAAK,EAAE,CAAC;AACzF,eAAS,aAAa,GAAG;AACzB;AAAA,IACF;AACA,QAAI,QAAQ,2BAA2B,KAAK,WAAW,wBAAwB,GAAG;AAChF,aAAO,oBAAoB,eAAe,SAAS,OAAO,yBAAyB,EAAE,KAAK,EAAE,CAAC;AAC7F,eAAS,aAAa,GAAG;AACzB;AAAA,IACF;AACA,QAAI,QAAQ,WAAW,KAAK,WAAW,QAAQ,GAAG;AAChD,aAAO,MAAM,eAAe,SAAS,OAAO,SAAS,EAAE,KAAK,EAAE,CAAC;AAC/D,eAAS,aAAa,GAAG;AACzB;AAAA,IACF;AACA,QAAI,QAAQ,kBAAkB,KAAK,WAAW,eAAe,GAAG;AAC9D,aAAO,YAAY,eAAe,SAAS,OAAO,cAAc;AAChE,eAAS,aAAa,GAAG;AAAA,IAC3B;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,aAAa,MAAsB;AAC1C,SAAO,KAAK,SAAS,GAAG,IAAI,IAAI;AAClC;AAEA,SAAS,eACP,SACA,OACA,MACA,SACQ;AACR,SAAO,gBAAgB,eAAe,SAAS,OAAO,IAAI,GAAG,MAAM,OAAO;AAC5E;AAEA,SAAS,eAAe,SAAmB,OAAe,MAAsB;AAC9E,QAAM,MAAM,QAAQ,KAAK;AACzB,QAAM,QAAQ,KAAK,SAAS,GAAG,IAC3B,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC,IACnB,QAAQ,QAAQ,CAAC;AACrB,MAAI,CAAC,OAAO;AACV,UAAM,iBAAiB,qBAAqB,IAAI,EAAE;AAAA,EACpD;AACA,SAAO;AACT;","names":[]}
|