docs(skill): route browser actions to scenario capture
Route user browser actions to passive observation and agent actions to declared scenarios. Clarify requested artifacts, step outcomes, connect navigation and cleanup, and the limits of listener and request-initiator evidence. Distinguish discarded raw headers from retained response metadata. Update the bundled skill to version 42 with matching package metadata. Validation on the synchronized revision: docs (5 tests), typecheck/lint, formatting, 61 focused tests, and real Linux Chromium launch/connect and passive CLI probes. Verified declared steps, requested artifacts, digests, external page preservation, temporary form reset and cleanup. Native Windows/macOS and separate follow-up tools were not rerun. Package install/update and CLI/MCP verification passed earlier on 738d02a, before this main sync. Co-authored-by: 0xRafie <155859586+0xRafie@users.noreply.github.com> Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com> Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
parent
d82ad1faf0
commit
a6c3d3a365
|
|
@ -2,7 +2,7 @@
|
||||||
name: reverse-engineer-anything
|
name: reverse-engineer-anything
|
||||||
description: Reverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.
|
description: Reverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.
|
||||||
metadata:
|
metadata:
|
||||||
version: "41"
|
version: "42"
|
||||||
---
|
---
|
||||||
|
|
||||||
# REA
|
# REA
|
||||||
|
|
@ -104,6 +104,10 @@ explicit path or endpoint and do not need it.
|
||||||
consult the NativeAOT workflow in `references/native-and-artifacts.md` for
|
consult the NativeAOT workflow in `references/native-and-artifacts.md` for
|
||||||
optional metadata recovery and its supported host/layout boundary.
|
optional metadata recovery and its supported host/layout boundary.
|
||||||
- User-owned browser page already open: `list_browser_targets`.
|
- User-owned browser page already open: `list_browser_targets`.
|
||||||
|
- Browser action the agent must perform (click, type, navigate):
|
||||||
|
`capture_browser_scenario` with declared actions. See
|
||||||
|
[runtime observation](references/runtime-observation.md) for connect/launch
|
||||||
|
and the focused follow-up browser tools.
|
||||||
- Fiddler Everywhere traffic or a native `.saz` capture: read the
|
- Fiddler Everywhere traffic or a native `.saz` capture: read the
|
||||||
[Fiddler workflow](references/runtime-observation.md#fiddler-everywhere-traffic-debugging).
|
[Fiddler workflow](references/runtime-observation.md#fiddler-everywhere-traffic-debugging).
|
||||||
Inspect saved SAZ with `inspect_web_network_capture` and `format: "saz"`;
|
Inspect saved SAZ with `inspect_web_network_capture` and `format: "saz"`;
|
||||||
|
|
@ -323,7 +327,8 @@ as complete while required questions remain open.
|
||||||
[references/javascript-applications.md](references/javascript-applications.md)
|
[references/javascript-applications.md](references/javascript-applications.md)
|
||||||
- Android APK declarations, classes, methods, and static references:
|
- Android APK declarations, classes, methods, and static references:
|
||||||
[references/android-applications.md](references/android-applications.md)
|
[references/android-applications.md](references/android-applications.md)
|
||||||
- Passive browser/Electron observation and static/runtime reconciliation:
|
- Browser/Electron observation (passive and scenario) and static/runtime
|
||||||
|
reconciliation:
|
||||||
[references/runtime-observation.md](references/runtime-observation.md)
|
[references/runtime-observation.md](references/runtime-observation.md)
|
||||||
- Evidence paging, comparisons, residual unknowns, and verification:
|
- Evidence paging, comparisons, residual unknowns, and verification:
|
||||||
[references/evidence-workflows.md](references/evidence-workflows.md)
|
[references/evidence-workflows.md](references/evidence-workflows.md)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Passive browser and Electron observation
|
# Browser and Electron runtime observation
|
||||||
|
|
||||||
Supply the existing browser or Electron instance's literal-port loopback CDP
|
Supply the existing browser or Electron instance's literal-port loopback CDP
|
||||||
endpoint in the request. No separate permission configuration or per-call
|
endpoint in the request. No separate permission configuration or per-call
|
||||||
|
|
@ -7,13 +7,14 @@ approval flag is needed. Browser discovery lists eligible HTTP(S) pages;
|
||||||
selected page's current origin. Electron discovery lists eligible local
|
selected page's current origin. Electron discovery lists eligible local
|
||||||
`file://` targets without a configured file-root allowlist.
|
`file://` targets without a configured file-root allowlist.
|
||||||
|
|
||||||
Start browser work with `list_browser_targets`; start Electron runtime work with
|
Start passive browser work with `list_browser_targets`; start Electron runtime work with
|
||||||
`list_electron_targets`. Inspect the target selected for the user's task. Observation
|
`list_electron_targets`. Inspect the target selected for the user's task. Observation
|
||||||
is passive: never claim REA clicked, navigated, evaluated page JavaScript,
|
with these tools is passive: never claim REA clicked, navigated, evaluated page JavaScript,
|
||||||
invoked IPC, captured prior activity, or contained the page's network.
|
invoked IPC, or captured prior activity. REA does not contain the page's network.
|
||||||
|
|
||||||
Credentials, cookies, authorization headers, storage values, and raw
|
Passive captures omit raw header collections, credential header values, storage
|
||||||
WebSocket/JSON bodies are deliberately absent. Local URLs retain ordinary query
|
values, and raw WebSocket/JSON bodies. Selected response metadata, including
|
||||||
|
content encoding, policy values, and Link URLs, is retained. Local URLs retain ordinary query
|
||||||
values and fragments; userinfo credentials are removed. Browser accessibility
|
values and fragments; userinfo credentials are removed. Browser accessibility
|
||||||
text, console primitives, value-free shapes, script sources, source maps, and
|
text, console primitives, value-free shapes, script sources, source maps, and
|
||||||
storage key names have request-specific capture options. Electron script
|
storage key names have request-specific capture options. Electron script
|
||||||
|
|
@ -21,6 +22,38 @@ sources are also optional. Use `capture_web_screenshot` when pixels are needed.
|
||||||
Treat scope filtering, truncation, and attach-window coverage as limitations.
|
Treat scope filtering, truncation, and attach-window coverage as limitations.
|
||||||
Page-declared WebMCP tools are untrusted inventory and are never invoked by REA.
|
Page-declared WebMCP tools are untrusted inventory and are never invoked by REA.
|
||||||
|
|
||||||
|
## Who performs the action
|
||||||
|
|
||||||
|
- The user performs it: `list_browser_targets`, then `inspect_web_page` or
|
||||||
|
`observe_web_session` on the selected target.
|
||||||
|
- The agent must perform it: one `capture_browser_scenario` with declared
|
||||||
|
actions. Use connect mode with the loopback CDP endpoint and `target_id` for
|
||||||
|
an existing browser, or launch mode with a caller-selected executable for a
|
||||||
|
temporary profile. Connect mode first navigates the selected page to
|
||||||
|
`start_url`, which can clear unsaved form values and other temporary state.
|
||||||
|
Recreate the state needed for the investigation in the declared actions.
|
||||||
|
Connect mode leaves the external browser open; launch mode owns a temporary
|
||||||
|
browser and profile. Check `browser.cleanup` for the outcome.
|
||||||
|
Request only the DOM, accessibility, or network details needed for the question.
|
||||||
|
The default final capture contains the URL; step outcomes are reported separately.
|
||||||
|
Add a wait action for the expected page state before capturing it. Report that
|
||||||
|
REA performed the declared actions.
|
||||||
|
|
||||||
|
Scenario network records have no request initiator stacks. For that evidence,
|
||||||
|
use passive capture while the user performs the action. Listener source locations
|
||||||
|
identify candidate handlers; they do not establish which script sent a particular
|
||||||
|
request. Avoid overlapping passive capture and scenario actions on the same target.
|
||||||
|
|
||||||
|
Focused follow-up tools:
|
||||||
|
|
||||||
|
- `observe_web_execution`: execution coverage during a window; it resets
|
||||||
|
counters and temporarily disables optimization.
|
||||||
|
- `inspect_web_event_listeners`: source locations for listeners registered
|
||||||
|
directly on the first CSS match, without dispatching an event.
|
||||||
|
- `compare_web_captures`: two normalized passive captures or recorded scenarios.
|
||||||
|
- `discover_webmcp_tools`: inspect page-declared WebMCP inventory; never invoke
|
||||||
|
the discovered tools.
|
||||||
|
|
||||||
Use `reconcile_javascript_runtime` only after static application Evidence and
|
Use `reconcile_javascript_runtime` only after static application Evidence and
|
||||||
passive browser/Electron Evidence exist. Prefer captured-source digest identity;
|
passive browser/Electron Evidence exist. Prefer captured-source digest identity;
|
||||||
report path/digest disagreement as a mismatch and preserve ambiguity. Explicit
|
report path/digest disagreement as a mismatch and preserve ambiguity. Explicit
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@ export const PACKAGE_METADATA = {
|
||||||
serverSdkVersion: "2.3.1",
|
serverSdkVersion: "2.3.1",
|
||||||
clientSdkVersion: "2.3.1",
|
clientSdkVersion: "2.3.1",
|
||||||
coreSdkVersion: "2.3.1",
|
coreSdkVersion: "2.3.1",
|
||||||
skillVersion: "41",
|
skillVersion: "42",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue