853404c67a0a919a1406b1fcc8e599795ca8795a
Action Topology Engine
Small deterministic tool for building a website action topology graph.
The project intentionally does not include an LLM, a generic browser agent, or a large workflow platform. Its job is to observe a site, describe states and actionable elements, generate verifiable locator candidates, and record action edges with observable effects.
Current Scope
- Open a URL or local HTML file with Playwright.
- Capture one page state with DOM and visible-text fingerprints.
- Extract actionable elements: buttons, links, inputs, selects, textareas, roles, tab stops, and click handlers.
- Generate locator candidates with scores.
- Optionally explore low-risk click actions from the entry state.
- Record state nodes, elements, locators, action edges, and basic effects in JSON.
Non-Goals
- No LLM decision making.
- No natural-language task planner.
- No high-risk automatic actions.
- No attempt to fully recover frontend business functions in the first version.
Install
npm install
Commands
Static scan:
npm run scan -- --url ./examples/simple.html --out artifacts/simple-scan.json
Entry-state low-risk exploration:
npm run example
Build:
npm run build
Output Model
The output JSON follows the schema described in schemas/topology-graph.schema.md.
Key objects:
StateNode: URL, route, title, state hashes, modal stack, and entry metadata.ActionableElement: element semantics, visibility, bounding box, and locator candidates.LocatorCandidate: Playwright-friendly locator descriptors plus score and verification status.ActionEdge: action from one state to another through an element, with effects and risk.
Source Notes
The originating ChatGPT share conversation is preserved in docs/source/chatgpt-share-6a30e583.md.
Description
Languages
TypeScript
97.6%
JavaScript
2.4%