{"ok":true,"site":{"host":"sentinental.vercel.app","url":"https://sentinental.vercel.app/","type":"live","desc":"SENTINEL reads your dependency tree, triages every advisory against the versions you actually ship, works out how risky each fix is, prepares the patch — and stops to ask a human before the pull…","tools":[{"name":"get_project_status","kind":"answer","impl":"imperative","description":"Report what this deployment can actually do: whether a model key, a Daytona sandbox key, a GitHub token and a TrueForge harness are configured, and whether remote writes are permitted. Returns booleans and names only — never a key.","title":"Project status","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"scan_dependencies","kind":"act","impl":"imperative","description":"Parse a package.json plus an optional lockfile into a flat dependency list with the versions that are actually installed. Pure computation; no network.","title":"Scan dependencies","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"manifest":{"type":"string","description":"The contents of package.json, verbatim."},"lockfile":{"type":"string","description":"Optional lockfile contents (package-lock.json v2/v3, yarn.lock or pnpm-lock.yaml)."},"lockfileName":{"type":"string","description":"Name of the lockfile that was supplied, for warnings."}},"required":["manifest"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"fetch_repository_manifest","kind":"answer","impl":"imperative","description":"Read package.json (and the lockfile if present) straight out of a public GitHub repository, so a scan needs no local checkout. Accepts 'owner/repo' or a github.com URL.","title":"Fetch a repository manifest","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"repo":{"type":"string","description":"'owner/repo' or https://github.com/owner/repo"},"branch":{"type":"string","description":"Optional branch; defaults to the repository default branch."}},"required":["repo"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"lookup_advisories","kind":"answer","impl":"imperative","description":"Query the GitHub Advisory Database for one package@version and keep only the advisories whose affected range actually contains that version. Falls back to OSV. This is the triage step that separates a real exposure from a page of noise.","title":"Look up advisories","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"packageName":{"type":"string","description":"npm package name, e.g. 'lodash' or '@adobe/css-tools'."},"installedVersion":{"type":"string","description":"Exact installed version, e.g. '4.17.20'."},"ecosystem":{"type":"string","description":"Ecosystem label; currently 'npm'."}},"required":["packageName","installedVersion"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"assess_blast_radius","kind":"act","impl":"imperative","description":"Classify an upgrade from installed to target version as patch/minor/major and say how risky it is to apply automatically.","title":"Assess blast radius","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"installedVersion":{"type":"string","description":"Version currently installed."},"targetVersion":{"type":"string","description":"Version the fix would move to."},"dependents":{"type":"integer","description":"How many places import the package, if known."}},"required":["installedVersion","targetVersion"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"summarise_triage","kind":"act","impl":"imperative","description":"Collapse advisory matches into one safe target version per package — the highest fix version, so no advisory is left open — ordered worst first.","title":"Summarise triage","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"matches":{"type":"array","description":"Advisory matches as returned by lookup_advisories.","items":{"type":"object"}}},"required":["matches"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"propose_patch","kind":"act","impl":"imperative","description":"Generate the patched package.json for a plan, preserving the project's existing range operators (^, ~, exact). Returns the new file content and a unified diff. Writes nothing anywhere.","title":"Propose patch","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"manifest":{"type":"string","description":"The current package.json contents."},"plan":{"type":"array","description":"Plan entries as returned by summarise_triage.","items":{"type":"object"}}},"required":["manifest","plan"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"list_tool_catalog","kind":"answer","impl":"imperative","description":"Return every tool this site exposes to agents, with its JSON Schema and safety annotations, plus how to reach the same tools over remote MCP.","title":"List tool catalog","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"group":{"type":"string","description":"Optional filter: 'sentinel', 'labs' or 'site'."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"search_docs","kind":"answer","impl":"imperative","description":"Search SENTINEL's documentation corpus (landing sections, docs pages, the tool contract) and return matching passages with a pointer you can hand to fetch_docs.","title":"Search docs","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Words to look for."},"limit":{"type":"integer","description":"Maximum hits, 1–20 (default 6)."}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"fetch_docs","kind":"answer","impl":"imperative","description":"Fetch one documentation passage by id, as returned by search_docs.","title":"Fetch docs passage","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Passage id, e.g. 'docs:approval'."}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"navigate_console","kind":"act","impl":"imperative","description":"Move the human's view to a station in this site's console (deck, scan, agent, labs, keys, bridge). In-page only — registered when a real tab is present, so an agent driving the page can show its work.","title":"Navigate the console","annotations":{"readOnlyHint":false,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"station":{"type":"string","enum":["deck","scan","agent","labs","keys","bridge"],"description":"Which console station to open."}},"required":["station"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"breachlab_analyze_cve_ast","kind":"act","impl":"imperative","description":"Deep static AST analysis for code and dependency manifests. Identifies zero-days, RCE sinks, credential theft, prototype pollution, and computes blast radius.","title":"breachlab analyze cve ast","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"codeOrManifest":{"type":"string"}},"required":["codeOrManifest"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"breachlab_detonate_sandbox","kind":"act","impl":"imperative","description":"Detonate suspicious code in an isolated simulated client-side sandbox container. Intercepts outbound network, eval, and subprocess commands.","title":"breachlab detonate sandbox","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"breachlab_trace_taint_flow","kind":"act","impl":"imperative","description":"Trace tainted data propagation from untrusted source inputs (e.g. req.query) to dangerous execution sinks.","title":"breachlab trace taint flow","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"breachlab_generate_hotpatch","kind":"act","impl":"imperative","description":"Synthesize automated cryptographic hot-patch diffs that replace dangerous sinks with safe, parameterized equivalents.","title":"breachlab generate hotpatch","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"biosynth_load_pdb_structure","kind":"act","impl":"imperative","description":"Load and parse 3D Protein Data Bank (PDB) atomic coordinates into structured 3D atom graph and sequence.","title":"biosynth load pdb structure","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"pdbContent":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"biosynth_mutate_residue","kind":"act","impl":"imperative","description":"Simulate in-silico point mutation (CRISPR / protein engineering) and predict stability change (ΔΔG) and steric clashes.","title":"biosynth mutate residue","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"chain":{"type":"string"},"resSeq":{"type":"number"},"targetResidue3":{"type":"string"}},"required":["chain","resSeq","targetResidue3"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"biosynth_highlight_binding_pockets","kind":"act","impl":"imperative","description":"Scan 3D atomic structure to discover druggable active catalytic cavities and binding pockets.","title":"biosynth highlight binding pockets","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"pdbContent":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"chrono_load_media_streams","kind":"act","impl":"imperative","description":"Retrieve multi-angle spatial and acoustic sensor streams (CCTV, bodycam, drone) for forensic reconstruction.","title":"chrono load media streams","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"incidentFilter":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"chrono_sync_flash_audio_markers","kind":"act","impl":"imperative","description":"Cross-correlate optical flash peaks and acoustic transients across video streams to compute millisecond time offsets.","title":"chrono sync flash audio markers","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"referenceFeedId":{"type":"string"},"targetFeedId":{"type":"string"}},"required":["referenceFeedId","targetFeedId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"chrono_triangulate_acoustic_source","kind":"act","impl":"imperative","description":"Triangulate 3D physical coordinates of an acoustic blast or gunshot origin using Time-Difference-Of-Arrival (TDOA).","title":"chrono triangulate acoustic source","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"feeds":{"type":"array"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"chrono_generate_forensic_dossier","kind":"act","impl":"imperative","description":"Assemble unified cryptographic forensic report with synchronized timeline sequence and SHA-256 evidence hash.","title":"chrono generate forensic dossier","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"incidentId":{"type":"string"}},"required":["incidentId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"metaloop_inspect_trace_tree","kind":"answer","impl":"imperative","description":"Inspect agent execution trace tree to detect infinite tool loops, token budget spikes, and cognitive drift.","title":"metaloop inspect trace tree","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"traceId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"metaloop_inject_synthetic_tool","kind":"act","impl":"imperative","description":"Inject synthetic mock tool response at a specific execution step to unblock trapped loops and fork execution.","title":"metaloop inject synthetic tool","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"forkPointStepId":{"type":"string"},"syntheticToolName":{"type":"string"},"syntheticOutput":{"type":"object"}},"required":["forkPointStepId","syntheticToolName","syntheticOutput"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"metaloop_mitigate_drift","kind":"act","impl":"imperative","description":"Synthesize corrective prompt steering guidelines to compensate for cognitive drift and token explosion.","title":"metaloop mitigate drift","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"traceId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"zkescrow_initiate_contract","kind":"act","impl":"imperative","description":"Create zero-backend cryptographic P2P escrow contract with verifiable milestone payout specifications.","title":"zkescrow initiate contract","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"contractorName":{"type":"string"},"clientName":{"type":"string"}},"required":["contractorName","clientName"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"zkescrow_verify_deliverable_hash","kind":"act","impl":"imperative","description":"Compute client-side SHA-256 deliverable fingerprint and verify compliance against cryptographic milestone spec.","title":"zkescrow verify deliverable hash","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"milestoneId":{"type":"string"},"submittedContent":{"type":"string"}},"required":["milestoneId","submittedContent"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]},{"name":"zkescrow_sign_escrow_release","kind":"act","impl":"imperative","description":"Generate an HMAC-SHA-256 arbiter release proof authorizing fund disbursement for a verified milestone.","title":"zkescrow sign escrow release","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"milestoneId":{"type":"string"}},"required":["milestoneId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/app","/docs"]}],"category":"Developer Tools","favicon":"/favicons/sentinental.vercel.app.svg","apiSurface":"spec","toolCount":28}}