Generic consumer of AOM example outputs. Same behavior as Python demo-agent. Run from repository root.
Requirements: Node 18+. No dependencies.
Required: --folder and --test-case. Use full stem (e.g. _login.success.output) or a prefix that matches exactly one (e.g. _login.success, login.captcha_required). Use listTestCases(folder) to see valid ids.
node examples/v0.1.0/demo-agents/node/demo_agent.js --folder v0.1.0/login-single --test-case _login.success.output
node examples/v0.1.0/demo-agents/node/demo_agent.js --folder v0.1.0/ecom-flow --test-case _step01_product.success.output
Ensure examples/<folder>/outputs/ exist (run create-outputs first). For example, --folder v0.1.0/login-single expects examples/v0.1.0/login-single/outputs/.
When resolving outputs, the Node demo agent prefers <stem>.output.json, but if that file does not exist it will fall back to <stem>.json.skip (hand-edited outputs that create-outputs will not overwrite).
From code: import { run, listFolders, listTestCases } from './demo_agent.js'
The runner run_tests.js parses --folder and --test-case and runs the test file with the right scope. Same CLI as Python; no env vars to set.
| Layer | Command | What runs |
|---|---|---|
| all + all | node run_tests.js or npm test |
All folders × all test cases (49) |
| 1 + all | node run_tests.js --folder v0.1.0/login-single |
One folder × all its test cases (21) |
| 1 + 1 | node run_tests.js --folder v0.1.0/login-single --test-case _login.success.output |
One folder × one test case (1) |
From repo root: node examples/v0.1.0/demo-agents/node/run_tests.js [--folder NAME] [--test-case STEM]
From this folder: node run_tests.js [--folder NAME] [--test-case STEM] or npm test [-- --folder NAME] [-- --test-case STEM]