/** * The names an agent calls Reticle by. * * Wire strings, and this package is where wire strings live: a name here crosses the boundary between * an agent and the daemon exactly as an event type crosses the one between the page and the bridge. * It sat under the server's tool directory because that is where the handlers are, and the result was * that every feature wanting to name a tool -- flows naming the steps it replays, crawl, runs -- had * to import from the tool surface to get at a string. Thirty-three of those imports were this one * table. * * MCP tool names exposed to the coding agent. No free strings. The three that appear in a persisted * flow (ACT / ACT_SEQUENCE / ACT_AND_WAIT) come from core's FlowStepTool — one source shared with the * browser recorder and the flow schema, so a rename can't desync the recorder from the replayer. */ export declare const ReticleTool: { readonly SESSIONS: "reticle_sessions"; /** * The merged read family — snapshot/query/inspect/state under one name, on the `merged` surface. * * A name of its own rather than reusing `reticle_snapshot`, because the merged tool answers four * different questions and calling it "snapshot" would make three of them undiscoverable. */ readonly LOOK: "reticle_look"; readonly SNAPSHOT: "reticle_snapshot"; readonly QUERY: "reticle_query"; readonly INSPECT: "reticle_inspect"; readonly ACT: "reticle_act"; readonly ACT_SEQUENCE: "reticle_act_sequence"; readonly ACT_AND_WAIT: "reticle_act_and_wait"; readonly OBSERVE: "reticle_observe"; readonly LINEAGE: "reticle_lineage"; readonly WAIT_FOR: "reticle_wait_for"; readonly NETWORK: "reticle_network"; readonly CONSOLE: "reticle_console"; readonly ANIMATIONS: "reticle_animations"; readonly ASSERT: "reticle_assert"; readonly RECONCILE: "reticle_reconcile"; readonly BASELINE_SAVE: "reticle_baseline_save"; readonly BASELINE_LIST: "reticle_baseline_list"; readonly DIFF: "reticle_diff"; readonly RECORD_START: "reticle_record_start"; readonly RECORD_STOP: "reticle_record_stop"; readonly REPLAY: "reticle_replay"; readonly EXPLORE: "reticle_explore"; readonly NARRATE: "reticle_narrate"; readonly CLOCK: "reticle_clock"; readonly STATE: "reticle_state"; readonly STORAGE: "reticle_storage"; readonly CAPABILITIES: "reticle_capabilities"; readonly CONTRACT_SAVE: "reticle_contract_save"; readonly DOMAIN: "reticle_domain"; readonly FLOW_SAVE: "reticle_flow_save"; readonly FLOW_LIST: "reticle_flow_list"; readonly FLOW_LOAD: "reticle_flow_load"; readonly FLOW_DELETE: "reticle_flow_delete"; readonly FLOW_REPLAY: "reticle_flow_replay"; /** replay EVERY saved flow → one consolidated suite verdict + prioritized fixes (the loop closer). */ readonly FLOW_VERIFY: "reticle_flow_verify"; /** persist the human-recorded flow from the live tab. */ readonly FLOW_SAVE_RECORDED: "reticle_flow_save_recorded"; /** propose (+ opt-in apply) a nearest-match rebind for a drifted flow. */ readonly FLOW_HEAL: "reticle_flow_heal"; /** Does this flow notice when the thing it depends on breaks? See flow-mutate-tools.ts. */ readonly FLOW_MUTATE: "reticle_flow_mutate"; /** structured annotation → compiles into the recording's expect/dynamic/success. */ readonly ANNOTATE: "reticle_annotate"; readonly AFFECTED: "reticle_affected"; readonly COVERAGE: "reticle_coverage"; readonly VERIFY_CHANGE: "reticle_verify_change"; /** drive the app with a model and SAVE what it drove, for a project with nothing to replay yet. */ readonly VERIFY_EXPLORE: "reticle_verify_explore"; /** Merged: change/flows/affected/coverage/crawl — "what is proved, and what is not". */ readonly INTENT: "reticle_intent"; /** what THIS run has established, proved, and not yet discharged — pulled when memory is gone. */ readonly CONTEXT: "reticle_context"; readonly VERIFY: "reticle_verify"; /** read cross-run history (.reticle/project.json) + diff-vs-last for a name. */ readonly PROJECT: "reticle_project"; /** The team's shared memory, read on demand — see memory/memory-tools.ts. */ readonly MEMORY: "reticle_memory"; /** explicitly record a run outcome (the manual companion to auto-recording). */ readonly RUN_RECORD: "reticle_run_record"; /** capture a pixel screenshot (CDP/driven browser) →.reticle/visual/.png. */ readonly SCREENSHOT: "reticle_screenshot"; /** stub/intercept network on the driven page (500, offline, delay) for error/edge-state testing. */ readonly NETWORK_MOCK: "reticle_network_mock"; /** pin the driven page's viewport to fixed pixels for reproducible visual baselines. */ readonly VIEWPORT: "reticle_viewport"; /** perceptual-diff the live page against a saved visual baseline. */ readonly VISUAL_DIFF: "reticle_visual_diff"; /** autonomously click every reachable control + report anomalies (no script). */ readonly CRAWL: "reticle_crawl"; /** scroll a virtualized list until a queried row mounts, then return it. */ readonly SCROLL_TO: "reticle_scroll_to"; /** Session lifecycle: tune the presenter session (e.g. idle-end window) for the app's needs. * Member of the consolidated reticle_session {action:"tune"} — no longer advertised alone. */ readonly SESSION_TUNE: "reticle_session_tune"; /** Live-control: end the session (→ ended + push PRESENTER). Handlers live in the tools facet. */ readonly END_SESSION: "reticle_end_session"; /** Live-control: hand the session back to the human between turns (→ waiting/ask, revivable). */ readonly YIELD: "reticle_yield"; /** Live-control: clear a pause (→ active). */ readonly RESUME: "reticle_resume"; /** Live-control: drain the human→agent inbox (explicit poll). */ readonly MESSAGES: "reticle_messages"; /** Human review: list the mistakes the human pinned to elements, and resolve them once fixed. */ readonly REVIEW: "reticle_review"; /** First-run readiness: block briefly until the app's SDK connects (smooths the init→connect race). */ readonly WAIT_READY: "reticle_wait_ready"; /** Navigate the connected browser tab to a URL. */ readonly NAVIGATE: "reticle_navigate"; /** Reload the connected browser tab (soft or hard). */ readonly REFRESH: "reticle_refresh"; /** Export a verification-run artifact (.reticle/runs/.json) — the OEM/CI-consumable verdict. */ readonly RUN_EXPORT: "reticle_run_export"; /** Consolidated families — one action-dispatched tool per family; members below stay * defined (handlers intact) but are no longer advertised separately. */ readonly BASELINE: "reticle_baseline"; readonly SESSION: "reticle_session"; readonly RECORD: "reticle_record"; readonly FLOW: "reticle_flow"; readonly LEASE: "reticle_lease"; /** Lease a fresh isolated headless context from the shared browser pool (one per flow). */ readonly LEASE_ACQUIRE: "reticle_lease_acquire"; /** Release a previously leased context, freeing the pool slot. */ readonly LEASE_RELEASE: "reticle_lease_release"; /** Meta: discover tool definitions on demand instead of paying for all of them every turn. */ readonly TOOLS: "reticle_tools"; /** Meta: invoke any tool by name — the escape hatch that keeps a trimmed profile a trim, not a removal. */ readonly RUN: "reticle_run"; /** Report that Reticle itself failed — the agent's only way to tell us what to fix. */ readonly FEEDBACK: "reticle_feedback"; }; export type ReticleTool = (typeof ReticleTool)[keyof typeof ReticleTool];