@tangle-network/browser-agent-driver 0.33.3 → 0.35.0
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 +42 -1
- package/discovery/llms.txt +27 -0
- package/discovery/tangle-agent.json +36 -0
- package/dist/brain/action-parse.d.ts +16 -0
- package/dist/brain/action-parse.d.ts.map +1 -0
- package/dist/brain/action-parse.js +191 -0
- package/dist/brain/action-parse.js.map +1 -0
- package/dist/brain/decide.d.ts +58 -0
- package/dist/brain/decide.d.ts.map +1 -0
- package/dist/brain/decide.js +418 -0
- package/dist/brain/decide.js.map +1 -0
- package/dist/brain/history-compact.d.ts +19 -0
- package/dist/brain/history-compact.d.ts.map +1 -0
- package/dist/brain/history-compact.js +153 -0
- package/dist/brain/history-compact.js.map +1 -0
- package/dist/brain/index.d.ts +78 -152
- package/dist/brain/index.d.ts.map +1 -1
- package/dist/brain/index.js +62 -2268
- package/dist/brain/index.js.map +1 -1
- package/dist/brain/model-client.d.ts +101 -0
- package/dist/brain/model-client.d.ts.map +1 -0
- package/dist/brain/model-client.js +391 -0
- package/dist/brain/model-client.js.map +1 -0
- package/dist/brain/plan.d.ts +57 -0
- package/dist/brain/plan.d.ts.map +1 -0
- package/dist/brain/plan.js +194 -0
- package/dist/brain/plan.js.map +1 -0
- package/dist/brain/prompts.d.ts +37 -0
- package/dist/brain/prompts.d.ts.map +1 -0
- package/dist/brain/prompts.js +455 -0
- package/dist/brain/prompts.js.map +1 -0
- package/dist/brain/provider-fetch.d.ts +26 -0
- package/dist/brain/provider-fetch.d.ts.map +1 -0
- package/dist/brain/provider-fetch.js +45 -0
- package/dist/brain/provider-fetch.js.map +1 -0
- package/dist/brain/snapshot-budget.d.ts +20 -0
- package/dist/brain/snapshot-budget.d.ts.map +1 -0
- package/dist/brain/snapshot-budget.js +202 -0
- package/dist/brain/snapshot-budget.js.map +1 -0
- package/dist/brain/system-prompt.d.ts +67 -0
- package/dist/brain/system-prompt.d.ts.map +1 -0
- package/dist/brain/system-prompt.js +128 -0
- package/dist/brain/system-prompt.js.map +1 -0
- package/dist/brain/tasks/design-audit.d.ts +33 -0
- package/dist/brain/tasks/design-audit.d.ts.map +1 -0
- package/dist/brain/tasks/design-audit.js +100 -0
- package/dist/brain/tasks/design-audit.js.map +1 -0
- package/dist/brain/tasks/evaluate.d.ts +25 -0
- package/dist/brain/tasks/evaluate.d.ts.map +1 -0
- package/dist/brain/tasks/evaluate.js +55 -0
- package/dist/brain/tasks/evaluate.js.map +1 -0
- package/dist/brain/tasks/goal-verification.d.ts +32 -0
- package/dist/brain/tasks/goal-verification.d.ts.map +1 -0
- package/dist/brain/tasks/goal-verification.js +68 -0
- package/dist/brain/tasks/goal-verification.js.map +1 -0
- package/dist/brain/tasks/knowledge.d.ts +26 -0
- package/dist/brain/tasks/knowledge.d.ts.map +1 -0
- package/dist/brain/tasks/knowledge.js +56 -0
- package/dist/brain/tasks/knowledge.js.map +1 -0
- package/dist/brain/tasks/link-scout.d.ts +37 -0
- package/dist/brain/tasks/link-scout.d.ts.map +1 -0
- package/dist/brain/tasks/link-scout.js +69 -0
- package/dist/brain/tasks/link-scout.js.map +1 -0
- package/dist/brain/types.d.ts +55 -0
- package/dist/brain/types.d.ts.map +1 -0
- package/dist/brain/types.js +7 -0
- package/dist/brain/types.js.map +1 -0
- package/dist/browser/stealth-init-script.d.ts +9 -0
- package/dist/browser/stealth-init-script.d.ts.map +1 -0
- package/dist/browser/stealth-init-script.js +128 -0
- package/dist/browser/stealth-init-script.js.map +1 -0
- package/dist/browser/storage-state.d.ts +29 -0
- package/dist/browser/storage-state.d.ts.map +1 -0
- package/dist/browser/storage-state.js +47 -0
- package/dist/browser/storage-state.js.map +1 -0
- package/dist/browser-launch.d.ts +6 -0
- package/dist/browser-launch.d.ts.map +1 -1
- package/dist/browser-launch.js +3 -0
- package/dist/browser-launch.js.map +1 -1
- package/dist/cli/args.d.ts +141 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +167 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/benchmark-sync.d.ts +9 -0
- package/dist/cli/benchmark-sync.d.ts.map +1 -0
- package/dist/cli/benchmark-sync.js +43 -0
- package/dist/cli/benchmark-sync.js.map +1 -0
- package/dist/cli/build-config.d.ts +11 -0
- package/dist/cli/build-config.d.ts.map +1 -0
- package/dist/cli/build-config.js +355 -0
- package/dist/cli/build-config.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +3 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +36 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/chrome-debug.d.ts +7 -0
- package/dist/cli/commands/chrome-debug.d.ts.map +1 -0
- package/dist/cli/commands/chrome-debug.js +11 -0
- package/dist/cli/commands/chrome-debug.js.map +1 -0
- package/dist/cli/commands/design-audit.d.ts +3 -0
- package/dist/cli/commands/design-audit.d.ts.map +1 -0
- package/dist/cli/commands/design-audit.js +68 -0
- package/dist/cli/commands/design-audit.js.map +1 -0
- package/dist/cli/commands/preview.d.ts +14 -0
- package/dist/cli/commands/preview.d.ts.map +1 -0
- package/dist/cli/commands/preview.js +31 -0
- package/dist/cli/commands/preview.js.map +1 -0
- package/dist/cli/commands/run.d.ts +3 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +740 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/runs.d.ts +8 -0
- package/dist/cli/commands/runs.d.ts.map +1 -0
- package/dist/cli/commands/runs.js +35 -0
- package/dist/cli/commands/runs.js.map +1 -0
- package/dist/cli/commands/share.d.ts +10 -0
- package/dist/cli/commands/share.d.ts.map +1 -0
- package/dist/cli/commands/share.js +32 -0
- package/dist/cli/commands/share.js.map +1 -0
- package/dist/cli/commands/showcase.d.ts +17 -0
- package/dist/cli/commands/showcase.d.ts.map +1 -0
- package/dist/cli/commands/showcase.js +20 -0
- package/dist/cli/commands/showcase.js.map +1 -0
- package/dist/cli/commands/snapshot.d.ts +12 -0
- package/dist/cli/commands/snapshot.d.ts.map +1 -0
- package/dist/cli/commands/snapshot.js +24 -0
- package/dist/cli/commands/snapshot.js.map +1 -0
- package/dist/cli/commands/view.d.ts +7 -0
- package/dist/cli/commands/view.d.ts.map +1 -0
- package/dist/cli/commands/view.js +23 -0
- package/dist/cli/commands/view.js.map +1 -0
- package/dist/cli/constants.d.ts +6 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/constants.js +3 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/version.d.ts +7 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +16 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli-design-audit.d.ts +44 -36
- package/dist/cli-design-audit.d.ts.map +1 -1
- package/dist/cli-design-audit.js +137 -1646
- package/dist/cli-design-audit.js.map +1 -1
- package/dist/cli-jobs.js +2 -1
- package/dist/cli-jobs.js.map +1 -1
- package/dist/cli.js +66 -1697
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -2
- package/dist/config.js.map +1 -1
- package/dist/design/audit/evolve/agent.d.ts +23 -0
- package/dist/design/audit/evolve/agent.d.ts.map +1 -0
- package/dist/design/audit/evolve/agent.js +273 -0
- package/dist/design/audit/evolve/agent.js.map +1 -0
- package/dist/design/audit/evolve/css.d.ts +10 -0
- package/dist/design/audit/evolve/css.d.ts.map +1 -0
- package/dist/design/audit/evolve/css.js +206 -0
- package/dist/design/audit/evolve/css.js.map +1 -0
- package/dist/design/audit/evolve/index.d.ts +13 -0
- package/dist/design/audit/evolve/index.d.ts.map +1 -0
- package/dist/design/audit/evolve/index.js +12 -0
- package/dist/design/audit/evolve/index.js.map +1 -0
- package/dist/design/audit/evolve/report.d.ts +3 -0
- package/dist/design/audit/evolve/report.d.ts.map +1 -0
- package/dist/design/audit/evolve/report.js +45 -0
- package/dist/design/audit/evolve/report.js.map +1 -0
- package/dist/design/audit/evolve/types.d.ts +14 -0
- package/dist/design/audit/evolve/types.d.ts.map +1 -0
- package/dist/design/audit/evolve/types.js +2 -0
- package/dist/design/audit/evolve/types.js.map +1 -0
- package/dist/design/audit/pipeline.d.ts +12 -0
- package/dist/design/audit/pipeline.d.ts.map +1 -1
- package/dist/design/audit/pipeline.js +43 -27
- package/dist/design/audit/pipeline.js.map +1 -1
- package/dist/design/audit/reference/artifact/build.d.ts +33 -0
- package/dist/design/audit/reference/artifact/build.d.ts.map +1 -0
- package/dist/design/audit/reference/artifact/build.js +64 -0
- package/dist/design/audit/reference/artifact/build.js.map +1 -0
- package/dist/design/audit/reference/artifact/render.d.ts +39 -0
- package/dist/design/audit/reference/artifact/render.d.ts.map +1 -0
- package/dist/design/audit/reference/artifact/render.js +213 -0
- package/dist/design/audit/reference/artifact/render.js.map +1 -0
- package/dist/design/audit/reference/artifact/text.d.ts +11 -0
- package/dist/design/audit/reference/artifact/text.d.ts.map +1 -0
- package/dist/design/audit/reference/artifact/text.js +20 -0
- package/dist/design/audit/reference/artifact/text.js.map +1 -0
- package/dist/design/audit/reference/artifact/to-findings.d.ts +57 -0
- package/dist/design/audit/reference/artifact/to-findings.d.ts.map +1 -0
- package/dist/design/audit/reference/artifact/to-findings.js +314 -0
- package/dist/design/audit/reference/artifact/to-findings.js.map +1 -0
- package/dist/design/audit/reference/config.d.ts +50 -0
- package/dist/design/audit/reference/config.d.ts.map +1 -0
- package/dist/design/audit/reference/config.js +108 -0
- package/dist/design/audit/reference/config.js.map +1 -0
- package/dist/design/audit/reference/contracts.d.ts +1030 -0
- package/dist/design/audit/reference/contracts.d.ts.map +1 -0
- package/dist/design/audit/reference/contracts.js +28 -0
- package/dist/design/audit/reference/contracts.js.map +1 -0
- package/dist/design/audit/reference/corpus/build.d.ts +115 -0
- package/dist/design/audit/reference/corpus/build.d.ts.map +1 -0
- package/dist/design/audit/reference/corpus/build.js +152 -0
- package/dist/design/audit/reference/corpus/build.js.map +1 -0
- package/dist/design/audit/reference/corpus/schema.d.ts +33 -0
- package/dist/design/audit/reference/corpus/schema.d.ts.map +1 -0
- package/dist/design/audit/reference/corpus/schema.js +249 -0
- package/dist/design/audit/reference/corpus/schema.js.map +1 -0
- package/dist/design/audit/reference/corpus/store.d.ts +26 -0
- package/dist/design/audit/reference/corpus/store.d.ts.map +1 -0
- package/dist/design/audit/reference/corpus/store.js +104 -0
- package/dist/design/audit/reference/corpus/store.js.map +1 -0
- package/dist/design/audit/reference/dna/delta.d.ts +21 -0
- package/dist/design/audit/reference/dna/delta.d.ts.map +1 -0
- package/dist/design/audit/reference/dna/delta.js +126 -0
- package/dist/design/audit/reference/dna/delta.js.map +1 -0
- package/dist/design/audit/reference/dna/derive.d.ts +31 -0
- package/dist/design/audit/reference/dna/derive.d.ts.map +1 -0
- package/dist/design/audit/reference/dna/derive.js +381 -0
- package/dist/design/audit/reference/dna/derive.js.map +1 -0
- package/dist/design/audit/reference/dna/descriptor.d.ts +36 -0
- package/dist/design/audit/reference/dna/descriptor.d.ts.map +1 -0
- package/dist/design/audit/reference/dna/descriptor.js +209 -0
- package/dist/design/audit/reference/dna/descriptor.js.map +1 -0
- package/dist/design/audit/reference/dna/page-adapter.d.ts +17 -0
- package/dist/design/audit/reference/dna/page-adapter.d.ts.map +1 -0
- package/dist/design/audit/reference/dna/page-adapter.js +35 -0
- package/dist/design/audit/reference/dna/page-adapter.js.map +1 -0
- package/dist/design/audit/reference/dna/scroll-capture.d.ts +93 -0
- package/dist/design/audit/reference/dna/scroll-capture.d.ts.map +1 -0
- package/dist/design/audit/reference/dna/scroll-capture.js +374 -0
- package/dist/design/audit/reference/dna/scroll-capture.js.map +1 -0
- package/dist/design/audit/reference/engine/budget.d.ts +63 -0
- package/dist/design/audit/reference/engine/budget.d.ts.map +1 -0
- package/dist/design/audit/reference/engine/budget.js +110 -0
- package/dist/design/audit/reference/engine/budget.js.map +1 -0
- package/dist/design/audit/reference/engine/core.d.ts +32 -0
- package/dist/design/audit/reference/engine/core.d.ts.map +1 -0
- package/dist/design/audit/reference/engine/core.js +261 -0
- package/dist/design/audit/reference/engine/core.js.map +1 -0
- package/dist/design/audit/reference/engine/guard.d.ts +43 -0
- package/dist/design/audit/reference/engine/guard.d.ts.map +1 -0
- package/dist/design/audit/reference/engine/guard.js +43 -0
- package/dist/design/audit/reference/engine/guard.js.map +1 -0
- package/dist/design/audit/reference/engine/score-core.d.ts +48 -0
- package/dist/design/audit/reference/engine/score-core.d.ts.map +1 -0
- package/dist/design/audit/reference/engine/score-core.js +134 -0
- package/dist/design/audit/reference/engine/score-core.js.map +1 -0
- package/dist/design/audit/reference/engine/wiring.d.ts +35 -0
- package/dist/design/audit/reference/engine/wiring.d.ts.map +1 -0
- package/dist/design/audit/reference/engine/wiring.js +80 -0
- package/dist/design/audit/reference/engine/wiring.js.map +1 -0
- package/dist/design/audit/reference/eval/taste-core.d.ts +77 -0
- package/dist/design/audit/reference/eval/taste-core.d.ts.map +1 -0
- package/dist/design/audit/reference/eval/taste-core.js +95 -0
- package/dist/design/audit/reference/eval/taste-core.js.map +1 -0
- package/dist/design/audit/reference/generate/generator.d.ts +49 -0
- package/dist/design/audit/reference/generate/generator.d.ts.map +1 -0
- package/dist/design/audit/reference/generate/generator.js +100 -0
- package/dist/design/audit/reference/generate/generator.js.map +1 -0
- package/dist/design/audit/reference/generate/parse.d.ts +28 -0
- package/dist/design/audit/reference/generate/parse.d.ts.map +1 -0
- package/dist/design/audit/reference/generate/parse.js +220 -0
- package/dist/design/audit/reference/generate/parse.js.map +1 -0
- package/dist/design/audit/reference/generate/prompt.d.ts +36 -0
- package/dist/design/audit/reference/generate/prompt.d.ts.map +1 -0
- package/dist/design/audit/reference/generate/prompt.js +172 -0
- package/dist/design/audit/reference/generate/prompt.js.map +1 -0
- package/dist/design/audit/reference/index.d.ts +26 -0
- package/dist/design/audit/reference/index.d.ts.map +1 -0
- package/dist/design/audit/reference/index.js +31 -0
- package/dist/design/audit/reference/index.js.map +1 -0
- package/dist/design/audit/reference/judge/image-clamp.d.ts +34 -0
- package/dist/design/audit/reference/judge/image-clamp.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/image-clamp.js +88 -0
- package/dist/design/audit/reference/judge/image-clamp.js.map +1 -0
- package/dist/design/audit/reference/judge/pairwise.d.ts +34 -0
- package/dist/design/audit/reference/judge/pairwise.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/pairwise.js +105 -0
- package/dist/design/audit/reference/judge/pairwise.js.map +1 -0
- package/dist/design/audit/reference/judge/parse.d.ts +31 -0
- package/dist/design/audit/reference/judge/parse.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/parse.js +113 -0
- package/dist/design/audit/reference/judge/parse.js.map +1 -0
- package/dist/design/audit/reference/judge/prompt.d.ts +38 -0
- package/dist/design/audit/reference/judge/prompt.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/prompt.js +123 -0
- package/dist/design/audit/reference/judge/prompt.js.map +1 -0
- package/dist/design/audit/reference/judge/quality.d.ts +28 -0
- package/dist/design/audit/reference/judge/quality.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/quality.js +62 -0
- package/dist/design/audit/reference/judge/quality.js.map +1 -0
- package/dist/design/audit/reference/judge/rank.d.ts +41 -0
- package/dist/design/audit/reference/judge/rank.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/rank.js +196 -0
- package/dist/design/audit/reference/judge/rank.js.map +1 -0
- package/dist/design/audit/reference/judge/text-judge.d.ts +31 -0
- package/dist/design/audit/reference/judge/text-judge.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/text-judge.js +43 -0
- package/dist/design/audit/reference/judge/text-judge.js.map +1 -0
- package/dist/design/audit/reference/judge/vision-judge.d.ts +59 -0
- package/dist/design/audit/reference/judge/vision-judge.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/vision-judge.js +150 -0
- package/dist/design/audit/reference/judge/vision-judge.js.map +1 -0
- package/dist/design/audit/reference/judge/vision-model.d.ts +65 -0
- package/dist/design/audit/reference/judge/vision-model.d.ts.map +1 -0
- package/dist/design/audit/reference/judge/vision-model.js +110 -0
- package/dist/design/audit/reference/judge/vision-model.js.map +1 -0
- package/dist/design/audit/reference/pipeline/evaluate-reference.d.ts +68 -0
- package/dist/design/audit/reference/pipeline/evaluate-reference.d.ts.map +1 -0
- package/dist/design/audit/reference/pipeline/evaluate-reference.js +52 -0
- package/dist/design/audit/reference/pipeline/evaluate-reference.js.map +1 -0
- package/dist/design/audit/reference/reference-context.d.ts +31 -0
- package/dist/design/audit/reference/reference-context.d.ts.map +1 -0
- package/dist/design/audit/reference/reference-context.js +73 -0
- package/dist/design/audit/reference/reference-context.js.map +1 -0
- package/dist/design/audit/reference/retrieval/embedding-hash.d.ts +30 -0
- package/dist/design/audit/reference/retrieval/embedding-hash.d.ts.map +1 -0
- package/dist/design/audit/reference/retrieval/embedding-hash.js +87 -0
- package/dist/design/audit/reference/retrieval/embedding-hash.js.map +1 -0
- package/dist/design/audit/reference/retrieval/embedding-openai.d.ts +38 -0
- package/dist/design/audit/reference/retrieval/embedding-openai.d.ts.map +1 -0
- package/dist/design/audit/reference/retrieval/embedding-openai.js +73 -0
- package/dist/design/audit/reference/retrieval/embedding-openai.js.map +1 -0
- package/dist/design/audit/reference/retrieval/matcher.d.ts +34 -0
- package/dist/design/audit/reference/retrieval/matcher.d.ts.map +1 -0
- package/dist/design/audit/reference/retrieval/matcher.js +107 -0
- package/dist/design/audit/reference/retrieval/matcher.js.map +1 -0
- package/dist/design/audit/reference/run.d.ts +59 -0
- package/dist/design/audit/reference/run.d.ts.map +1 -0
- package/dist/design/audit/reference/run.js +99 -0
- package/dist/design/audit/reference/run.js.map +1 -0
- package/dist/design/audit/report.d.ts +35 -0
- package/dist/design/audit/report.d.ts.map +1 -0
- package/dist/design/audit/report.js +195 -0
- package/dist/design/audit/report.js.map +1 -0
- package/dist/design/audit/tokens/extract.d.ts +71 -0
- package/dist/design/audit/tokens/extract.d.ts.map +1 -0
- package/dist/design/audit/tokens/extract.js +1034 -0
- package/dist/design/audit/tokens/extract.js.map +1 -0
- package/dist/design/audit/types.d.ts +8 -0
- package/dist/design/audit/types.d.ts.map +1 -1
- package/dist/design/compare.d.ts.map +1 -1
- package/dist/design/compare.js +2 -6
- package/dist/design/compare.js.map +1 -1
- package/dist/design/cookie-consent.d.ts +3 -0
- package/dist/design/cookie-consent.d.ts.map +1 -0
- package/dist/design/cookie-consent.js +26 -0
- package/dist/design/cookie-consent.js.map +1 -0
- package/dist/design/viewports.d.ts +18 -0
- package/dist/design/viewports.d.ts.map +1 -0
- package/dist/design/viewports.js +10 -0
- package/dist/design/viewports.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/memory/store.d.ts +19 -1
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +47 -0
- package/dist/memory/store.js.map +1 -1
- package/dist/provider-defaults.d.ts +18 -0
- package/dist/provider-defaults.d.ts.map +1 -1
- package/dist/provider-defaults.js +33 -0
- package/dist/provider-defaults.js.map +1 -1
- package/dist/runner/allowed-domains.d.ts +11 -0
- package/dist/runner/allowed-domains.d.ts.map +1 -0
- package/dist/runner/allowed-domains.js +14 -0
- package/dist/runner/allowed-domains.js.map +1 -0
- package/dist/runner/batch-fill.d.ts +28 -0
- package/dist/runner/batch-fill.d.ts.map +1 -0
- package/dist/runner/batch-fill.js +80 -0
- package/dist/runner/batch-fill.js.map +1 -0
- package/dist/runner/completion-policy.d.ts +26 -0
- package/dist/runner/completion-policy.d.ts.map +1 -0
- package/dist/runner/completion-policy.js +76 -0
- package/dist/runner/completion-policy.js.map +1 -0
- package/dist/runner/constants.d.ts +14 -0
- package/dist/runner/constants.d.ts.map +1 -0
- package/dist/runner/constants.js +23 -0
- package/dist/runner/constants.js.map +1 -0
- package/dist/runner/decision-screenshot.d.ts +24 -0
- package/dist/runner/decision-screenshot.d.ts.map +1 -0
- package/dist/runner/decision-screenshot.js +23 -0
- package/dist/runner/decision-screenshot.js.map +1 -0
- package/dist/runner/domain-boundary.d.ts +36 -0
- package/dist/runner/domain-boundary.d.ts.map +1 -0
- package/dist/runner/domain-boundary.js +81 -0
- package/dist/runner/domain-boundary.js.map +1 -0
- package/dist/runner/effect-verify.d.ts +28 -0
- package/dist/runner/effect-verify.d.ts.map +1 -0
- package/dist/runner/effect-verify.js +42 -0
- package/dist/runner/effect-verify.js.map +1 -0
- package/dist/runner/execute-plan.d.ts +58 -0
- package/dist/runner/execute-plan.d.ts.map +1 -0
- package/dist/runner/execute-plan.js +426 -0
- package/dist/runner/execute-plan.js.map +1 -0
- package/dist/runner/max-turns-extension.d.ts +19 -0
- package/dist/runner/max-turns-extension.d.ts.map +1 -0
- package/dist/runner/max-turns-extension.js +25 -0
- package/dist/runner/max-turns-extension.js.map +1 -0
- package/dist/runner/micro-plan.d.ts +11 -0
- package/dist/runner/micro-plan.d.ts.map +1 -0
- package/dist/runner/micro-plan.js +29 -0
- package/dist/runner/micro-plan.js.map +1 -0
- package/dist/runner/prompt-snippets.d.ts +5 -0
- package/dist/runner/prompt-snippets.d.ts.map +1 -0
- package/dist/runner/prompt-snippets.js +13 -0
- package/dist/runner/prompt-snippets.js.map +1 -0
- package/dist/runner/replay/contracts.d.ts +300 -0
- package/dist/runner/replay/contracts.d.ts.map +1 -0
- package/dist/runner/replay/contracts.js +42 -0
- package/dist/runner/replay/contracts.js.map +1 -0
- package/dist/runner/replay/controller.d.ts +27 -0
- package/dist/runner/replay/controller.d.ts.map +1 -0
- package/dist/runner/replay/controller.js +197 -0
- package/dist/runner/replay/controller.js.map +1 -0
- package/dist/runner/replay/guard.d.ts +28 -0
- package/dist/runner/replay/guard.d.ts.map +1 -0
- package/dist/runner/replay/guard.js +100 -0
- package/dist/runner/replay/guard.js.map +1 -0
- package/dist/runner/runner.d.ts +44 -51
- package/dist/runner/runner.d.ts.map +1 -1
- package/dist/runner/runner.js +155 -851
- package/dist/runner/runner.js.map +1 -1
- package/dist/runner/scout-feedback.d.ts +51 -0
- package/dist/runner/scout-feedback.d.ts.map +1 -0
- package/dist/runner/scout-feedback.js +149 -0
- package/dist/runner/scout-feedback.js.map +1 -0
- package/dist/skills/macro-loader.d.ts +1 -1
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +27 -1
- package/dist/test-runner.js.map +1 -1
- package/dist/types/actions.d.ts +241 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +5 -0
- package/dist/types/actions.js.map +1 -0
- package/dist/types/config.d.ts +211 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/design-audit.d.ts +92 -0
- package/dist/types/design-audit.d.ts.map +1 -0
- package/dist/types/design-audit.js +5 -0
- package/dist/types/design-audit.js.map +1 -0
- package/dist/types/design-tokens.d.ts +138 -0
- package/dist/types/design-tokens.d.ts.map +1 -0
- package/dist/types/design-tokens.js +5 -0
- package/dist/types/design-tokens.js.map +1 -0
- package/dist/types/page.d.ts +16 -0
- package/dist/types/page.d.ts.map +1 -0
- package/dist/types/page.js +2 -0
- package/dist/types/page.js.map +1 -0
- package/dist/types/plan.d.ts +50 -0
- package/dist/types/plan.d.ts.map +1 -0
- package/dist/types/plan.js +2 -0
- package/dist/types/plan.js.map +1 -0
- package/dist/types/preview.d.ts +9 -0
- package/dist/types/preview.d.ts.map +1 -0
- package/dist/types/preview.js +5 -0
- package/dist/types/preview.js.map +1 -0
- package/dist/types/result.d.ts +62 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +2 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/scenario.d.ts +20 -0
- package/dist/types/scenario.d.ts.map +1 -0
- package/dist/types/scenario.js +5 -0
- package/dist/types/scenario.js.map +1 -0
- package/dist/types/test-runner.d.ts +145 -0
- package/dist/types/test-runner.d.ts.map +1 -0
- package/dist/types/test-runner.js +10 -0
- package/dist/types/test-runner.js.map +1 -0
- package/dist/types/trajectory.d.ts +38 -0
- package/dist/types/trajectory.d.ts.map +1 -0
- package/dist/types/trajectory.js +2 -0
- package/dist/types/trajectory.js.map +1 -0
- package/dist/types/turn.d.ts +50 -0
- package/dist/types/turn.d.ts.map +1 -0
- package/dist/types/turn.js +2 -0
- package/dist/types/turn.js.map +1 -0
- package/dist/types.d.ts +16 -1017
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -8
- package/dist/types.js.map +1 -1
- package/dist/wallet/rpc-interception.d.ts +15 -0
- package/dist/wallet/rpc-interception.d.ts.map +1 -0
- package/dist/wallet/rpc-interception.js +95 -0
- package/dist/wallet/rpc-interception.js.map +1 -0
- package/package.json +23 -5
package/README.md
CHANGED
|
@@ -39,10 +39,29 @@ Installs the `bad` command, downloads Chromium, adds PATH. Requires Node.js 20+.
|
|
|
39
39
|
Or via npm:
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
npm
|
|
42
|
+
npm install -g @tangle-network/browser-agent-driver
|
|
43
43
|
npx playwright install chromium
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
+
Do not install the unscoped `bad` package from npm. It is unrelated to Tangle. The `bad` command is installed by `@tangle-network/browser-agent-driver`.
|
|
47
|
+
|
|
48
|
+
## Agent Discovery
|
|
49
|
+
|
|
50
|
+
Agents should read the product manifest before generating Browser Agent integration code:
|
|
51
|
+
|
|
52
|
+
- Manifest: https://tangle.tools/.well-known/tangle-browser-agent.json
|
|
53
|
+
- Product page: https://tangle.tools/services/browser-agent
|
|
54
|
+
- Scoped npm package: `@tangle-network/browser-agent-driver`
|
|
55
|
+
- CLI binary: `bad`
|
|
56
|
+
|
|
57
|
+
Safe discovery commands:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
bad --help
|
|
61
|
+
bad run --help
|
|
62
|
+
bad snapshot --help
|
|
63
|
+
```
|
|
64
|
+
|
|
46
65
|
### As a library
|
|
47
66
|
|
|
48
67
|
```bash
|
|
@@ -488,6 +507,28 @@ bad view audit-results/stripe.com-1775502457141
|
|
|
488
507
|
|
|
489
508
|
Web UI with per-turn screenshots, action JSON, reasoning, element highlights. Pair with `--show-cursor` for animated cursor recordings.
|
|
490
509
|
|
|
510
|
+
### Shareable run videos
|
|
511
|
+
|
|
512
|
+
A run's `report.json` is a complete trace — per-turn screenshot, action, and reasoning — so it renders directly into a shareable video via [`run-capsule`](https://github.com/tangle-network/run-capsule), no extra capture step:
|
|
513
|
+
|
|
514
|
+
```bash
|
|
515
|
+
npx run-capsule --playwright agent-results/report.json --no-upload
|
|
516
|
+
# → screen.mp4 (real product frames, each captioned with the agent's 💭 reasoning + action + URL)
|
|
517
|
+
# → replay.mp4 (the unified storyboard)
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
For the **animated cursor**, run with `--show-cursor` (bakes the cursor + reasoning overlay into the run's own `recording.webm`) and hand that recording to `run-capsule` as the screen capsule — it's reused as-is rather than rebuilt, so the real cursor motion survives, with the reasoning storyboard rendered from the trace alongside:
|
|
521
|
+
|
|
522
|
+
```bash
|
|
523
|
+
bad run --goal "…" --url https://… --show-cursor
|
|
524
|
+
npx run-capsule --playwright agent-results/report.json \
|
|
525
|
+
--video agent-results/cli-task/recording.webm --no-upload
|
|
526
|
+
# → screen.mp4 (the real run recording — animated cursor + overlay)
|
|
527
|
+
# → replay.mp4 (reasoning storyboard from the trace)
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
Needs a `run-capsule` whose Playwright adapter understands this driver's suite-shaped `report.json` ([tangle-network/run-capsule#4](https://github.com/tangle-network/run-capsule/pull/4); earlier versions read a bare `TestResult` and render an empty capsule for a suite) and, for `--video`, the recording-ingest path ([#5](https://github.com/tangle-network/run-capsule/pull/5)). Without `--video`, the `screen` capsule replays the per-turn screenshots — real frames only when the run captured them (vision is on by default unless you pass `--no-vision` or a vision-off benchmark profile, which blocks images for speed). Drop `--no-upload` for a temporary public link.
|
|
531
|
+
|
|
491
532
|
## Guides
|
|
492
533
|
|
|
493
534
|
- [Configuration Reference](./docs/guides/configuration.md)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Tangle Browser Agent
|
|
2
|
+
|
|
3
|
+
Tangle Browser Agent is the `@tangle-network/browser-agent-driver` package and `bad` CLI for agentic browser automation, UI testing, wallet flows, extraction, and evidence capture.
|
|
4
|
+
|
|
5
|
+
## Canonical discovery
|
|
6
|
+
|
|
7
|
+
- Live manifest: https://tangle.tools/.well-known/tangle-browser-agent.json
|
|
8
|
+
- Product page: https://tangle.tools/services/browser-agent
|
|
9
|
+
- Source: https://github.com/tangle-network/browser-agent-driver
|
|
10
|
+
- npm: https://www.npmjs.com/package/@tangle-network/browser-agent-driver
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install -g @tangle-network/browser-agent-driver
|
|
16
|
+
npx playwright install chromium
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Do not install the unscoped `bad` package from npm. It is unrelated to Tangle.
|
|
20
|
+
|
|
21
|
+
## Safe discovery commands
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
bad --help
|
|
25
|
+
bad run --help
|
|
26
|
+
bad snapshot --help
|
|
27
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "2026-06-16",
|
|
3
|
+
"name": "Tangle Browser Agent",
|
|
4
|
+
"description": "Browser automation driver and bad CLI for agentic web tasks, UI regression testing, wallet flows, and evidence capture.",
|
|
5
|
+
"homepage": "https://tangle.tools/services/browser-agent",
|
|
6
|
+
"manifest": "https://tangle.tools/.well-known/tangle-browser-agent.json",
|
|
7
|
+
"llms": "https://tangle.tools/llms.txt",
|
|
8
|
+
"repo": "https://github.com/tangle-network/browser-agent-driver",
|
|
9
|
+
"npm": "@tangle-network/browser-agent-driver",
|
|
10
|
+
"install": [
|
|
11
|
+
"npm install -g @tangle-network/browser-agent-driver",
|
|
12
|
+
"npx playwright install chromium"
|
|
13
|
+
],
|
|
14
|
+
"cli": {
|
|
15
|
+
"bin": "bad",
|
|
16
|
+
"safe_discovery_commands": [
|
|
17
|
+
"bad --help",
|
|
18
|
+
"bad run --help",
|
|
19
|
+
"bad snapshot --help"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"sdk": {
|
|
23
|
+
"package": "@tangle-network/browser-agent-driver",
|
|
24
|
+
"exports": [
|
|
25
|
+
"BrowserAgent",
|
|
26
|
+
"PlaywrightDriver"
|
|
27
|
+
],
|
|
28
|
+
"peer_dependency": "playwright"
|
|
29
|
+
},
|
|
30
|
+
"environment": {
|
|
31
|
+
"openai_key": "OPENAI_API_KEY",
|
|
32
|
+
"anthropic_key": "ANTHROPIC_API_KEY",
|
|
33
|
+
"google_key": "GOOGLE_GENERATIVE_AI_API_KEY",
|
|
34
|
+
"proxy_url": "BAD_PROXY_URL"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action parsing + runtime validation for LLM-emitted action JSON.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions, no shared state — `parseNextActions` takes the valid-action
|
|
5
|
+
* set as a parameter so it stays decoupled from the Brain class.
|
|
6
|
+
*/
|
|
7
|
+
import type { Action } from '../types.js';
|
|
8
|
+
declare function parseNextActions(parsed: Record<string, unknown>, validActions: Set<string>): Action[] | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Runtime validation of LLM-parsed action objects.
|
|
11
|
+
* Ensures required fields are present and correctly typed per action variant.
|
|
12
|
+
* Throws on missing/invalid fields so the caller can abort gracefully.
|
|
13
|
+
*/
|
|
14
|
+
declare function validateAction(actionType: string, data: Record<string, unknown>): Action;
|
|
15
|
+
export { parseNextActions, validateAction };
|
|
16
|
+
//# sourceMappingURL=action-parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-parse.d.ts","sourceRoot":"","sources":["../../src/brain/action-parse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,iBAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAmB1G;AAED;;;;GAIG;AACH,iBAAS,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAiJjF;AAWD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action parsing + runtime validation for LLM-emitted action JSON.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions, no shared state — `parseNextActions` takes the valid-action
|
|
5
|
+
* set as a parameter so it stays decoupled from the Brain class.
|
|
6
|
+
*/
|
|
7
|
+
function parseNextActions(parsed, validActions) {
|
|
8
|
+
if (!Array.isArray(parsed.nextActions)) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const nextActions = [];
|
|
12
|
+
for (const entry of parsed.nextActions.slice(0, 3)) {
|
|
13
|
+
if (!entry || typeof entry !== 'object')
|
|
14
|
+
continue;
|
|
15
|
+
const rawEntry = entry;
|
|
16
|
+
const actionType = typeof rawEntry.action === 'string' ? rawEntry.action : undefined;
|
|
17
|
+
if (!actionType || !validActions.has(actionType))
|
|
18
|
+
continue;
|
|
19
|
+
try {
|
|
20
|
+
nextActions.push(validateAction(actionType, rawEntry));
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Best effort: ignore malformed follow-up action.
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return nextActions.length > 0 ? nextActions : undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Runtime validation of LLM-parsed action objects.
|
|
30
|
+
* Ensures required fields are present and correctly typed per action variant.
|
|
31
|
+
* Throws on missing/invalid fields so the caller can abort gracefully.
|
|
32
|
+
*/
|
|
33
|
+
function validateAction(actionType, data) {
|
|
34
|
+
const requireStr = (field) => {
|
|
35
|
+
const v = data[field];
|
|
36
|
+
if (typeof v !== 'string' || !v)
|
|
37
|
+
throw new Error(`${actionType} action requires "${field}" (string)`);
|
|
38
|
+
return v;
|
|
39
|
+
};
|
|
40
|
+
const optStr = (field) => {
|
|
41
|
+
const v = data[field];
|
|
42
|
+
return typeof v === 'string' ? v : '';
|
|
43
|
+
};
|
|
44
|
+
const num = (v, fallback) => (typeof v === 'number' ? v : fallback);
|
|
45
|
+
switch (actionType) {
|
|
46
|
+
case 'click':
|
|
47
|
+
return { action: 'click', selector: requireStr('selector') };
|
|
48
|
+
case 'type':
|
|
49
|
+
return { action: 'type', selector: requireStr('selector'), text: optStr('text') };
|
|
50
|
+
case 'press':
|
|
51
|
+
return { action: 'press', selector: requireStr('selector'), key: requireStr('key') };
|
|
52
|
+
case 'hover':
|
|
53
|
+
return { action: 'hover', selector: requireStr('selector') };
|
|
54
|
+
case 'select':
|
|
55
|
+
return { action: 'select', selector: requireStr('selector'), value: optStr('value') };
|
|
56
|
+
case 'scroll':
|
|
57
|
+
return {
|
|
58
|
+
action: 'scroll',
|
|
59
|
+
direction: data.direction === 'up' ? 'up' : 'down',
|
|
60
|
+
...(data.amount != null ? { amount: num(data.amount, 500) } : {}),
|
|
61
|
+
};
|
|
62
|
+
case 'navigate':
|
|
63
|
+
return { action: 'navigate', url: requireStr('url') };
|
|
64
|
+
case 'wait':
|
|
65
|
+
return { action: 'wait', ms: num(data.ms, 1000) };
|
|
66
|
+
case 'evaluate':
|
|
67
|
+
return { action: 'evaluate', criteria: optStr('criteria') };
|
|
68
|
+
case 'runScript':
|
|
69
|
+
return { action: 'runScript', script: requireStr('script') };
|
|
70
|
+
case 'extractWithIndex': {
|
|
71
|
+
const query = requireStr('query');
|
|
72
|
+
const contains = typeof data.contains === 'string' ? data.contains : '';
|
|
73
|
+
return {
|
|
74
|
+
action: 'extractWithIndex',
|
|
75
|
+
query,
|
|
76
|
+
...(contains ? { contains } : {}),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
case 'verifyPreview':
|
|
80
|
+
return { action: 'verifyPreview' };
|
|
81
|
+
case 'complete':
|
|
82
|
+
return { action: 'complete', result: optStr('result') };
|
|
83
|
+
case 'abort':
|
|
84
|
+
return { action: 'abort', reason: optStr('reason') || 'No reason provided' };
|
|
85
|
+
case 'fill': {
|
|
86
|
+
// Multi-field batch fill — at least one of fields/selects/checks must be non-empty
|
|
87
|
+
const fields = isStringRecord(data.fields) ? data.fields : undefined;
|
|
88
|
+
const selects = isStringRecord(data.selects) ? data.selects : undefined;
|
|
89
|
+
const checks = Array.isArray(data.checks) && data.checks.every((c) => typeof c === 'string')
|
|
90
|
+
? data.checks
|
|
91
|
+
: undefined;
|
|
92
|
+
const fieldCount = (fields ? Object.keys(fields).length : 0)
|
|
93
|
+
+ (selects ? Object.keys(selects).length : 0)
|
|
94
|
+
+ (checks ? checks.length : 0);
|
|
95
|
+
if (fieldCount === 0) {
|
|
96
|
+
throw new Error('fill action requires at least one of "fields" (object), "selects" (object), or "checks" (string[])');
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
action: 'fill',
|
|
100
|
+
...(fields ? { fields } : {}),
|
|
101
|
+
...(selects ? { selects } : {}),
|
|
102
|
+
...(checks ? { checks } : {}),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
case 'clickSequence': {
|
|
106
|
+
const refs = Array.isArray(data.refs) && data.refs.every((r) => typeof r === 'string')
|
|
107
|
+
? data.refs
|
|
108
|
+
: null;
|
|
109
|
+
if (!refs || refs.length === 0) {
|
|
110
|
+
throw new Error('clickSequence action requires "refs" (string[]) with at least one entry');
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
action: 'clickSequence',
|
|
114
|
+
refs,
|
|
115
|
+
...(typeof data.intervalMs === 'number' ? { intervalMs: data.intervalMs } : {}),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// Vision-first coordinate actions.
|
|
119
|
+
case 'clickAt':
|
|
120
|
+
return { action: 'clickAt', x: num(data.x, 0), y: num(data.y, 0) };
|
|
121
|
+
case 'typeAt':
|
|
122
|
+
return { action: 'typeAt', x: num(data.x, 0), y: num(data.y, 0), text: optStr('text') };
|
|
123
|
+
// Set-of-Marks label-based actions.
|
|
124
|
+
case 'clickLabel':
|
|
125
|
+
return { action: 'clickLabel', label: num(data.label, 0) };
|
|
126
|
+
case 'typeLabel':
|
|
127
|
+
return { action: 'typeLabel', label: num(data.label, 0), text: optStr('text') };
|
|
128
|
+
// Macro invocation. The driver validates the name and required args at
|
|
129
|
+
// execute time; macros without params may omit args.
|
|
130
|
+
case 'macro': {
|
|
131
|
+
const args = {};
|
|
132
|
+
if (data.args && typeof data.args === 'object' && !Array.isArray(data.args)) {
|
|
133
|
+
for (const [k, v] of Object.entries(data.args)) {
|
|
134
|
+
if (typeof v === 'string')
|
|
135
|
+
args[k] = v;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
action: 'macro',
|
|
140
|
+
name: requireStr('name'),
|
|
141
|
+
...(Object.keys(args).length > 0 ? { args } : {}),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
case 'fanOut': {
|
|
145
|
+
// Accept either explicit subGoals[] or the shorthand
|
|
146
|
+
// baseUrl+goalTemplate+items trio. resolveSubGoals() in
|
|
147
|
+
// runner/fan-out.ts expands shorthand → subGoals at execute time.
|
|
148
|
+
const subGoals = Array.isArray(data.subGoals)
|
|
149
|
+
? data.subGoals
|
|
150
|
+
.filter((s) => s && typeof s === 'object')
|
|
151
|
+
.map((s) => ({
|
|
152
|
+
url: typeof s.url === 'string' ? s.url : '',
|
|
153
|
+
goal: typeof s.goal === 'string' ? s.goal : '',
|
|
154
|
+
...(typeof s.label === 'string' ? { label: s.label } : {}),
|
|
155
|
+
...(typeof s.maxTurns === 'number' ? { maxTurns: s.maxTurns } : {}),
|
|
156
|
+
}))
|
|
157
|
+
.filter((s) => s.url && s.goal)
|
|
158
|
+
: undefined;
|
|
159
|
+
const baseUrl = typeof data.baseUrl === 'string' ? data.baseUrl : undefined;
|
|
160
|
+
const goalTemplate = typeof data.goalTemplate === 'string' ? data.goalTemplate : undefined;
|
|
161
|
+
const items = Array.isArray(data.items) && data.items.every((i) => typeof i === 'string')
|
|
162
|
+
? data.items
|
|
163
|
+
: undefined;
|
|
164
|
+
const hasExplicit = subGoals && subGoals.length > 0;
|
|
165
|
+
const hasShorthand = baseUrl && goalTemplate && items && items.length > 0;
|
|
166
|
+
if (!hasExplicit && !hasShorthand) {
|
|
167
|
+
throw new Error('fanOut action requires either "subGoals" (array of {url,goal}) or the shorthand trio "baseUrl" + "goalTemplate" + "items" (non-empty string[])');
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
action: 'fanOut',
|
|
171
|
+
...(hasExplicit ? { subGoals } : {}),
|
|
172
|
+
...(hasShorthand ? { baseUrl, goalTemplate, items } : {}),
|
|
173
|
+
...(typeof data.summarize === 'string' ? { summarize: data.summarize } : {}),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
default:
|
|
177
|
+
throw new Error(`Unknown action type: ${actionType}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/** Type guard: value is a Record<string, string> */
|
|
181
|
+
function isStringRecord(value) {
|
|
182
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
183
|
+
return false;
|
|
184
|
+
for (const v of Object.values(value)) {
|
|
185
|
+
if (typeof v !== 'string')
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
export { parseNextActions, validateAction };
|
|
191
|
+
//# sourceMappingURL=action-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-parse.js","sourceRoot":"","sources":["../../src/brain/action-parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hot-loop decision methods for the Brain engine: the DOM-first `decide`
|
|
3
|
+
* path, the vision-first / hybrid `decideVision` path, the navigation-model
|
|
4
|
+
* routing classifier they share, and the tolerant JSON decision parser.
|
|
5
|
+
*
|
|
6
|
+
* Extracted from brain/index.ts via the delegate + host-interface pattern.
|
|
7
|
+
* The Brain class keeps thin delegators (`decide`, `decideVision`, `parse`);
|
|
8
|
+
* these free functions hold the method bodies verbatim and read/write Brain
|
|
9
|
+
* state through {@link BrainDecideHost}, which Brain `implements` so tsc proves
|
|
10
|
+
* the host surface is complete. Behavior is byte-identical to the inlined
|
|
11
|
+
* versions — same ordering, thresholds, retries, and prompt text.
|
|
12
|
+
*/
|
|
13
|
+
import type { ModelMessage, SystemModelMessage } from 'ai';
|
|
14
|
+
import type { PageState } from '../types.js';
|
|
15
|
+
import type { BrainDecision, UserContent } from './types.js';
|
|
16
|
+
import type { BrainProvider, ModelSelection, GenerateResult } from './model-client.js';
|
|
17
|
+
/**
|
|
18
|
+
* The slice of Brain state the decision hot loop reads/writes. Brain declares
|
|
19
|
+
* `implements BrainDecideHost`, so a missing or mistyped member is a compile
|
|
20
|
+
* error — this interface IS the safety gate for the extraction. All members
|
|
21
|
+
* are public on Brain by construction.
|
|
22
|
+
*/
|
|
23
|
+
export interface BrainDecideHost {
|
|
24
|
+
provider: BrainProvider;
|
|
25
|
+
modelName: string;
|
|
26
|
+
navProvider?: BrainProvider;
|
|
27
|
+
navModelName?: string;
|
|
28
|
+
adaptiveModelRouting: boolean;
|
|
29
|
+
observationMode: 'dom' | 'vision' | 'hybrid';
|
|
30
|
+
visionStrategy: 'always' | 'never' | 'auto';
|
|
31
|
+
compactFirstTurn: boolean;
|
|
32
|
+
lastDecisionUrl?: string;
|
|
33
|
+
history: ModelMessage[];
|
|
34
|
+
maxHistoryTurns: number;
|
|
35
|
+
debug: boolean;
|
|
36
|
+
baseUrl?: string;
|
|
37
|
+
buildUserContent(text: string, screenshot?: string, forceVision?: boolean): UserContent;
|
|
38
|
+
buildSystemForDecide(goal: string, state: PageState, turn: number, providerName: BrainProvider): string | SystemModelMessage[];
|
|
39
|
+
generate(system: string | SystemModelMessage[], messages: ModelMessage[], selection?: ModelSelection, maxOutputTokens?: number): Promise<GenerateResult>;
|
|
40
|
+
}
|
|
41
|
+
export declare function decideImpl(self: BrainDecideHost, goal: string, state: PageState, extraContext?: string, turnInfo?: {
|
|
42
|
+
current: number;
|
|
43
|
+
max: number;
|
|
44
|
+
}, options?: {
|
|
45
|
+
forceVision?: boolean;
|
|
46
|
+
}): Promise<BrainDecision>;
|
|
47
|
+
/**
|
|
48
|
+
* Vision-first decision path. The screenshot is the primary
|
|
49
|
+
* observation; DOM snapshot is minimal context (URL, title only in pure
|
|
50
|
+
* vision mode, or compact DOM in hybrid mode). The LLM outputs
|
|
51
|
+
* coordinate-based actions (clickAt, typeAt) in 1024×768 virtual space.
|
|
52
|
+
*/
|
|
53
|
+
export declare function decideVisionImpl(self: BrainDecideHost, goal: string, state: PageState, extraContext?: string, turnInfo?: {
|
|
54
|
+
current: number;
|
|
55
|
+
max: number;
|
|
56
|
+
}): Promise<BrainDecision>;
|
|
57
|
+
export declare function parseDecision(raw: string): Omit<BrainDecision, 'raw' | 'tokensUsed'>;
|
|
58
|
+
//# sourceMappingURL=decide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../../src/brain/decide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,cAAc,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACxF,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,aAAa,GAC1B,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACjC,QAAQ,CACN,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,EACrC,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,CAAC,EAAE,cAAc,EAC1B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AA4BD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC3C,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,OAAO,CAAC,aAAa,CAAC,CAkMxB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,aAAa,CAAC,CA6HxB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,YAAY,CAAC,CAoFpF"}
|