2026-06-16 14:26:08 +08:00
2026-06-16 14:26:08 +08:00
2026-06-16 14:26:08 +08:00
2026-06-16 14:26:08 +08:00
2026-06-16 14:26:08 +08:00
2026-06-16 14:26:08 +08:00
2026-06-16 14:26:08 +08:00
2026-06-16 14:26:08 +08:00

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
Deterministic website action topology engine
Readme 137 KiB
Languages
TypeScript 97.6%
JavaScript 2.4%