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
|
@@ -1,8 +1,59 @@
|
|
|
1
1
|
{
|
|
2
2
|
"topic": "",
|
|
3
3
|
"timebox": {
|
|
4
|
-
"days": 30
|
|
4
|
+
"days": 30,
|
|
5
|
+
"from": null,
|
|
6
|
+
"to": null
|
|
5
7
|
},
|
|
8
|
+
"source_families": [],
|
|
9
|
+
"evidence_gate": {
|
|
10
|
+
"status": "pending_review",
|
|
11
|
+
"reviewed_artifacts": [],
|
|
12
|
+
"accepted_claims": [],
|
|
13
|
+
"tentative_claims": [],
|
|
14
|
+
"unsupported_claims": [],
|
|
15
|
+
"blockers": []
|
|
16
|
+
},
|
|
17
|
+
"artifact_files": [
|
|
18
|
+
"summary.md",
|
|
19
|
+
"report.md",
|
|
20
|
+
"records.json",
|
|
21
|
+
"context.json",
|
|
22
|
+
"meta.json",
|
|
23
|
+
"bundle-manifest.json"
|
|
24
|
+
],
|
|
25
|
+
"source_ledger": [],
|
|
26
|
+
"search_direction_notes": [],
|
|
27
|
+
"candidate_triage_schema": {
|
|
28
|
+
"url": "",
|
|
29
|
+
"rank": 0,
|
|
30
|
+
"engine": "",
|
|
31
|
+
"query": "",
|
|
32
|
+
"source_family": "",
|
|
33
|
+
"title": "",
|
|
34
|
+
"status": "pending|accepted|rejected",
|
|
35
|
+
"blocker_notes": "",
|
|
36
|
+
"rejection_reason": "",
|
|
37
|
+
"replacement_url": "",
|
|
38
|
+
"retrieval_notes": "",
|
|
39
|
+
"extraction_status": "pending|fetched|blocked|shell|stale|irrelevant"
|
|
40
|
+
},
|
|
41
|
+
"candidate_triage": {
|
|
42
|
+
"accepted_destination_records": 0,
|
|
43
|
+
"rejected_shell_or_dead_end_candidates": 0
|
|
44
|
+
},
|
|
45
|
+
"rejected_candidates": [],
|
|
46
|
+
"deep_dive_pages": [],
|
|
47
|
+
"iteration_log": [],
|
|
48
|
+
"synthesis_feedback": "",
|
|
49
|
+
"staleness_checks": [],
|
|
50
|
+
"provider_constraints": [],
|
|
51
|
+
"search_engine_passes": [],
|
|
52
|
+
"serp_candidates": [],
|
|
53
|
+
"selected_destination_pages": [],
|
|
54
|
+
"engine_failures": [],
|
|
55
|
+
"provenance": [],
|
|
56
|
+
"limitations": [],
|
|
6
57
|
"issue_ids": [
|
|
7
58
|
"ISSUE-06",
|
|
8
59
|
"ISSUE-09",
|
|
@@ -1,9 +1,62 @@
|
|
|
1
1
|
# Research Report
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Topic and Scope
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Evidence Gate Status
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
State whether the run passed evidence review. Do not publish shell-only, stale-only, login-only, not-found-only, or zero-source-evidence claims.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Claim Map
|
|
10
|
+
|
|
11
|
+
| Claim | Status | Evidence | Notes |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| | accepted, tentative, or excluded | destination URL or artifact record id | |
|
|
14
|
+
|
|
15
|
+
## Evidence
|
|
16
|
+
|
|
17
|
+
Summarize accepted destination-page evidence from `records.json`, with source date, fetch date, provider, and extraction quality.
|
|
18
|
+
|
|
19
|
+
## Confidence
|
|
20
|
+
|
|
21
|
+
Explain confidence by claim, including corroboration quality and independence.
|
|
22
|
+
|
|
23
|
+
## Provider Constraints and Limitations
|
|
24
|
+
|
|
25
|
+
Record provider blockers, rate limits, login walls, challenge pages, stale pages, extraction limits, and unsupported claims.
|
|
26
|
+
|
|
27
|
+
## Search Engine Discovery
|
|
28
|
+
|
|
29
|
+
If used, summarize search_engine_passes, serp_candidates, selected_destination_pages, engine_failures, provenance, and limitations. SERPs are discovery-only and cannot be final evidence.
|
|
30
|
+
|
|
31
|
+
## Search Direction
|
|
32
|
+
|
|
33
|
+
Summarize what the provider or search-engine pass suggested and which follow-up direction was chosen.
|
|
34
|
+
|
|
35
|
+
## Candidate Triage
|
|
36
|
+
|
|
37
|
+
List useful destinations, duplicates, privacy or terms pages, login or account pages, blocked pages, shells, stale pages, and off-topic pages.
|
|
38
|
+
|
|
39
|
+
## Rejected Candidates
|
|
40
|
+
|
|
41
|
+
Record rejected_candidates with URL, source, reason, and whether another candidate replaced it.
|
|
42
|
+
|
|
43
|
+
## Deep Dives
|
|
44
|
+
|
|
45
|
+
Summarize deep_dive_pages opened after triage, including destination URL, accepted evidence, and remaining uncertainty.
|
|
46
|
+
|
|
47
|
+
## Synthesis Feedback
|
|
48
|
+
|
|
49
|
+
Explain how the evidence changed the research direction, what gaps remain, and what the next query or source should be if more work is needed.
|
|
50
|
+
|
|
51
|
+
## Final Answer
|
|
52
|
+
|
|
53
|
+
Provide only claims supported by reviewed destination evidence. Label unresolved points as tentative or omit them.
|
|
54
|
+
|
|
55
|
+
## Artifact Paths
|
|
56
|
+
|
|
57
|
+
- `summary.md`:
|
|
58
|
+
- `report.md`:
|
|
59
|
+
- `records.json`:
|
|
60
|
+
- `context.json`:
|
|
61
|
+
- `meta.json`:
|
|
62
|
+
- `bundle-manifest.json`:
|
|
@@ -1,4 +1,29 @@
|
|
|
1
1
|
# Sample Output
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
## Search Direction
|
|
4
|
+
|
|
5
|
+
- Provider pass produced destination candidates; accepted evidence came from following usable destination pages before considering browser recovery.
|
|
6
|
+
|
|
7
|
+
## Candidate Triage
|
|
8
|
+
|
|
9
|
+
- Accepted: `https://example.com/browser-automation-evidence`
|
|
10
|
+
- Rejected: `https://example.com/login` as login_or_account; replacement destination followed: `https://example.com/browser-automation-evidence`
|
|
11
|
+
- Rejected: `https://example.com/privacy/choices` as privacy_or_terms; replacement destination followed: `https://example.com/browser-automation-evidence`
|
|
12
|
+
- Remaining candidate queue: `https://example.org/challenge-recovery-field-notes`
|
|
13
|
+
|
|
14
|
+
## Deep Dives
|
|
15
|
+
|
|
16
|
+
- Opened `https://example.com/browser-automation-evidence`; extracted destination-page evidence, blocker notes, and artifact review guidance.
|
|
17
|
+
|
|
18
|
+
## Synthesis Feedback
|
|
19
|
+
|
|
20
|
+
- The first accepted page shifted the next query toward challenge recovery handoff evidence.
|
|
21
|
+
- Next query or evidence gap: find corroborating field notes from an independent browser automation source.
|
|
22
|
+
|
|
23
|
+
## Evidence
|
|
24
|
+
|
|
25
|
+
- Accepted claim: Browser automation research needs destination-page evidence, blocker notes, and artifact review before synthesis.
|
|
26
|
+
|
|
27
|
+
## Limitations
|
|
28
|
+
|
|
29
|
+
- Reddit evidence was excluded when only login or shell pages were available.
|
|
@@ -2,24 +2,20 @@
|
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
4
|
if [[ $# -lt 1 ]]; then
|
|
5
|
-
echo "Usage: run-research.sh <topic> [days] [mode] [
|
|
5
|
+
echo "Usage: run-research.sh <topic> [days] [mode] [sources]"
|
|
6
6
|
exit 1
|
|
7
7
|
fi
|
|
8
8
|
|
|
9
9
|
TOPIC="$1"
|
|
10
10
|
DAYS="${2:-30}"
|
|
11
11
|
MODE="${3:-context}"
|
|
12
|
-
|
|
13
|
-
SOURCES="${5:-}"
|
|
12
|
+
SOURCES="${4:-}"
|
|
14
13
|
|
|
15
14
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
15
|
# shellcheck source=../../opendevbrowser-best-practices/scripts/resolve-odb-cli.sh
|
|
17
16
|
source "$script_dir/../../opendevbrowser-best-practices/scripts/resolve-odb-cli.sh"
|
|
18
17
|
|
|
19
18
|
cmd=("${ODB_CLI[@]}" research run --topic "$TOPIC" --days "$DAYS" --mode "$MODE")
|
|
20
|
-
if [[ -n "$SOURCE_SELECTION" ]]; then
|
|
21
|
-
cmd+=(--source-selection "$SOURCE_SELECTION")
|
|
22
|
-
fi
|
|
23
19
|
if [[ -n "$SOURCES" ]]; then
|
|
24
20
|
cmd+=(--sources "$SOURCES")
|
|
25
21
|
fi
|
|
@@ -15,6 +15,65 @@ required=(
|
|
|
15
15
|
"scripts/validate-skill-assets.sh"
|
|
16
16
|
)
|
|
17
17
|
|
|
18
|
+
posture_files=(
|
|
19
|
+
"SKILL.md"
|
|
20
|
+
"artifacts/research-workflows.md"
|
|
21
|
+
"assets/templates/compact.md"
|
|
22
|
+
"assets/templates/context.json"
|
|
23
|
+
"assets/templates/report.md"
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
required_markers=(
|
|
27
|
+
"evidence-gated"
|
|
28
|
+
"provider-constrained"
|
|
29
|
+
"discovery-only"
|
|
30
|
+
"candidate_triage"
|
|
31
|
+
"rejected_candidates"
|
|
32
|
+
"deep_dive_pages"
|
|
33
|
+
"synthesis_feedback"
|
|
34
|
+
"search_engine_passes"
|
|
35
|
+
"summary.md"
|
|
36
|
+
"report.md"
|
|
37
|
+
"records.json"
|
|
38
|
+
"context.json"
|
|
39
|
+
"meta.json"
|
|
40
|
+
"bundle-manifest.json"
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
required_file_markers=(
|
|
44
|
+
"SKILL.md|Search Engine Discovery Lane"
|
|
45
|
+
"SKILL.md|Guided Research Loop"
|
|
46
|
+
"SKILL.md|privacy"
|
|
47
|
+
"SKILL.md|login"
|
|
48
|
+
"SKILL.md|Keep SERPs discovery-only"
|
|
49
|
+
"SKILL.md|bundle-manifest.json"
|
|
50
|
+
"artifacts/research-workflows.md|Search Engine Discovery Lane"
|
|
51
|
+
"artifacts/research-workflows.md|Iterative destination-follow workflow"
|
|
52
|
+
"artifacts/research-workflows.md|candidate queue"
|
|
53
|
+
"artifacts/research-workflows.md|Keep SERPs discovery-only"
|
|
54
|
+
"artifacts/research-workflows.md|search_engine_passes"
|
|
55
|
+
"assets/templates/context.json|bundle-manifest.json"
|
|
56
|
+
"assets/templates/context.json|rejected_candidates"
|
|
57
|
+
"assets/templates/context.json|deep_dive_pages"
|
|
58
|
+
"assets/templates/context.json|search_engine_passes"
|
|
59
|
+
"assets/templates/context.json|blocker_notes"
|
|
60
|
+
"assets/templates/context.json|retrieval_notes"
|
|
61
|
+
"assets/templates/report.md|SERPs are discovery-only"
|
|
62
|
+
"assets/templates/report.md|Deep Dives"
|
|
63
|
+
"assets/templates/report.md|Synthesis Feedback"
|
|
64
|
+
"assets/templates/report.md|bundle-manifest.json"
|
|
65
|
+
"assets/templates/compact.md|deep-dive pages"
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
forbidden_markers=(
|
|
69
|
+
"research_reliable"
|
|
70
|
+
"auto is the recommended default"
|
|
71
|
+
"generic topical research is currently safest"
|
|
72
|
+
"privacy pages can support final claims"
|
|
73
|
+
"login pages can support final claims"
|
|
74
|
+
"SERP snippets are evidence"
|
|
75
|
+
)
|
|
76
|
+
|
|
18
77
|
status=0
|
|
19
78
|
validator_cli="$root/../opendevbrowser-best-practices/scripts/validator-fixture-cli.sh"
|
|
20
79
|
export ODB_CLI_VALIDATOR_OVERRIDE="$validator_cli"
|
|
@@ -28,6 +87,44 @@ require_marker() {
|
|
|
28
87
|
status=1
|
|
29
88
|
fi
|
|
30
89
|
}
|
|
90
|
+
|
|
91
|
+
require_file_marker() {
|
|
92
|
+
local marker="$1"
|
|
93
|
+
local found=0
|
|
94
|
+
local rel
|
|
95
|
+
for rel in "${posture_files[@]}"; do
|
|
96
|
+
if [[ -f "$root/$rel" ]] && grep -Fq "$marker" "$root/$rel"; then
|
|
97
|
+
found=1
|
|
98
|
+
break
|
|
99
|
+
fi
|
|
100
|
+
done
|
|
101
|
+
if [[ $found -eq 0 ]]; then
|
|
102
|
+
echo "Research assets missing required marker: $marker" >&2
|
|
103
|
+
status=1
|
|
104
|
+
fi
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
require_marker_in_file() {
|
|
108
|
+
local entry="$1"
|
|
109
|
+
local rel="${entry%%|*}"
|
|
110
|
+
local marker="${entry#*|}"
|
|
111
|
+
if [[ ! -f "$root/$rel" ]] || ! grep -Fq "$marker" "$root/$rel"; then
|
|
112
|
+
echo "Research asset $rel missing required marker: $marker" >&2
|
|
113
|
+
status=1
|
|
114
|
+
fi
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
reject_forbidden_marker() {
|
|
118
|
+
local marker="$1"
|
|
119
|
+
local rel
|
|
120
|
+
for rel in "${posture_files[@]}"; do
|
|
121
|
+
if [[ -f "$root/$rel" ]] && tr -d '`' < "$root/$rel" | grep -Fq "$marker"; then
|
|
122
|
+
echo "Research assets contain forbidden marker in $rel: $marker" >&2
|
|
123
|
+
status=1
|
|
124
|
+
fi
|
|
125
|
+
done
|
|
126
|
+
}
|
|
127
|
+
|
|
31
128
|
for rel in "${required[@]}"; do
|
|
32
129
|
if [[ ! -f "$root/$rel" ]]; then
|
|
33
130
|
echo "Missing required asset: $rel" >&2
|
|
@@ -59,6 +156,18 @@ for rel in scripts/run-research.sh scripts/render-output.sh scripts/write-artifa
|
|
|
59
156
|
fi
|
|
60
157
|
done
|
|
61
158
|
|
|
159
|
+
for marker in "${required_markers[@]}"; do
|
|
160
|
+
require_file_marker "$marker"
|
|
161
|
+
done
|
|
162
|
+
|
|
163
|
+
for marker in "${required_file_markers[@]}"; do
|
|
164
|
+
require_marker_in_file "$marker"
|
|
165
|
+
done
|
|
166
|
+
|
|
167
|
+
for marker in "${forbidden_markers[@]}"; do
|
|
168
|
+
reject_forbidden_marker "$marker"
|
|
169
|
+
done
|
|
170
|
+
|
|
62
171
|
if [[ -f "$root/assets/templates/context.json" ]]; then
|
|
63
172
|
if ! node -e 'const fs=require("fs"); JSON.parse(fs.readFileSync(process.argv[1], "utf8"));' "$root/assets/templates/context.json" >/dev/null 2>&1; then
|
|
64
173
|
echo "Invalid JSON template: assets/templates/context.json" >&2
|
|
@@ -66,13 +175,18 @@ if [[ -f "$root/assets/templates/context.json" ]]; then
|
|
|
66
175
|
fi
|
|
67
176
|
fi
|
|
68
177
|
|
|
69
|
-
context_output="$("$root/scripts/run-research.sh" "ai browser automation" 30 context
|
|
178
|
+
context_output="$("$root/scripts/run-research.sh" "ai browser automation" 30 context "web,docs")"
|
|
70
179
|
require_marker "run-research context" "$context_output" "# Research Context"
|
|
71
180
|
require_marker "run-research context" "$context_output" "ISSUE-09"
|
|
72
181
|
|
|
73
182
|
report_output="$("$root/scripts/render-output.sh" "ai browser automation" report)"
|
|
74
183
|
require_marker "render-output report" "$report_output" "# Research Report"
|
|
75
184
|
require_marker "render-output report" "$report_output" "Source selection"
|
|
185
|
+
require_marker "render-output report" "$report_output" "Search Direction"
|
|
186
|
+
require_marker "render-output report" "$report_output" "Candidate Triage"
|
|
187
|
+
require_marker "render-output report" "$report_output" "Rejected Candidates"
|
|
188
|
+
require_marker "render-output report" "$report_output" "Deep Dives"
|
|
189
|
+
require_marker "render-output report" "$report_output" "Synthesis Feedback"
|
|
76
190
|
|
|
77
191
|
tmpdir="$(mktemp -d)"
|
|
78
192
|
trap 'rm -rf "$tmpdir"' EXIT
|