{
  "markdown": "# Sentinel Recovery Support\n\nAsynchronous Node/TypeScript evidence work, free local agent-payment preflights,\nand separate voluntary support for Sentinel Recovery.\n\n**Live site:** <https://terminallylazy.github.io/sentinel-recovery-support/>\n\n**Start a no-login $750 release-blocker request:** <https://docs.google.com/forms/d/e/1FAIpQLSforl4TZfhhn9YJXSydD32bNtEPjdte32ckhaogksosbQ9OIQ/viewform>\n\nSubmit an opaque, non-identifying request reference, one public Node.js or\nTypeScript repository URL, one public failing CI log URL, a reply email, and an\noptional failure summary. No sign-in or meeting is required. The request moves\nno funds, authorizes no payment, and starts no work; a separately human-approved\nwritten SOW is required before payment or work. Google Forms processes the\nsubmitted reference, public URLs, and reply email privately for the form owner.\n\n**Paid services:** <https://terminallylazy.github.io/sentinel-recovery-support/#services>\n\n**Agent manifest:** <https://terminallylazy.github.io/sentinel-recovery-support/.well-known/sentinel-agent.json>\n\nThe site now leads with a public Node/TypeScript request-only `$750` 24-Hour Release-Blocker Reproduction, followed by `$49/$99/$199` public-data services, a protocol-agnostic request-only `$1,500` 48-Hour Agent Payment Failure Reproduction Sprint, voluntary support, and framework-neutral agent resources. Both sprints are fully asynchronous and require no meeting or call. The $750 offering accepts one public repository and one public failing CI log through email, a public GitHub issue, or a no-login Google Form, then delivers a deterministic reproducer or source-pinned `NOT_REPRODUCIBLE` dossier; the $1,500 offering uses [MatchFlight](https://terminallylazy.github.io/matchflight/) as public deterministic proof. The form uses third-party Google processing and remains request-only. ACH, Wise, or Zelle invoice terms are available only through a separately human-approved SOW, and the public listings contain no payment instructions or banking details. Zelle is available only after a signed SOW and invoice and buyer acknowledgement that it has no purchase protection. Neither sprint is a certification or penetration test. A payer agent may send within its own delegated financial policy, and inbound receipts need no recipient-side human acceptance. Every outbound action from Sentinel's receiving wallet requires human authorization. Sentinel never takes custody, requests private keys or signature material, or promises recovery.\n\n## Public resources\n\n- `/` — funding purpose, exact Ethereum Mainnet tuple, terms, and verification links\n- `/.well-known/sentinel-agent.json` — agent capability and safety manifest\n- `/support.json` — exact wallet, network, assets, and funding terms\n- `/support-intent.json` — direction-specific payer and receiving-wallet policy\n- `/services.json` — fixed-price scope, deliverable, and turnaround catalog\n- `/service-request.json` — canonical agent input schema, email and public GitHub issue transports, the release-blocker-only no-login Google Form, and copyable quote-request template: <https://terminallylazy.github.io/sentinel-recovery-support/service-request.json>\n- `/sample-agent-payment-boundary-review.json` and `.md` — inspectable `$49` self-review demonstration: [JSON](https://terminallylazy.github.io/sentinel-recovery-support/sample-agent-payment-boundary-review.json), [Markdown](https://terminallylazy.github.io/sentinel-recovery-support/sample-agent-payment-boundary-review.md)\n- [`/sample-service-quote.json`](https://terminallylazy.github.io/sentinel-recovery-support/sample-service-quote.json) — complete but expired and explicitly nonpayable quote-shape demonstration\n- `/sample-evidence-preview.json` and `.md` — inspectable `$99` format demonstration\n- `/service-payment.json` — canonical recipient, assets, quote fields, and verification rules\n- `/privacy.json` — minimal inputs, optional context, retention, and do-not-send rules\n- `/agent-guide.md` — mandatory agent authority boundaries\n- `/impact.json` — historical receipt and contribution-funded-work snapshot\n- `/llms.txt` — short discovery index\n- `mcp/` — read-only stdio MCP server with deterministic agent-payment and x402 `PaymentRequired` preflights, a local public quote-request draft preparer, and the live service and quote-request resources; install from source or the checksummed [`v0.4.1` GitHub Release](https://github.com/TerminallyLazy/sentinel-recovery-support/releases/tag/v0.4.1), not from the static Pages site\n\n## Local MCP preflight and resources\n\nThe source checkout is version `0.4.1` and exposes three deterministic read-only\ntools:\n\n- `preflight_agent_payment_boundary` — checks one or two inline public\n  documents against 11 fixed payment-authority boundaries, without fetching\n  requester URLs, executing supplied text, submitting a request, or moving\n  funds\n- `preflight_x402_v2_payment_required` — checks one decoded inline x402 v2\n  `PaymentRequired` JSON document under a pinned, closed-world exact-EVM\n  EIP-3009 Sentinel safety profile, without decoding headers, evaluating payer\n  policy, verifying signatures or receipts, settling, connecting a wallet, or\n  moving funds\n- `prepare_agent_payment_boundary_quote_request` — prepares a complete,\n  unsubmitted public GitHub issue draft for the fixed-scope Agent Payment\n  Boundary Review from one or two caller-supplied public HTTPS document URLs\n  without credentials, query strings, fragments, or non-public hosts; it does\n  not fetch or verify those URLs, make a network request, use credentials,\n  submit the issue, authorize payment, or create service entitlement\n\nIt also exposes exactly two read-only resources:\n\n- `sentinel://services/catalog`\n- `sentinel://services/quote-request-contract`\n\nOnly resource reads fetch the two hard-coded canonical live JSON contracts.\nBoth preflights run locally on inline content, and the request-draft preparer\nformats its inputs locally without fetching supplied URLs. All three tools make\nno network request and cannot submit a request, move funds, authorize payment,\nrequest credentials, connect a wallet, or create service entitlement. The\nrequester decides whether to submit the public draft within its own communication\nauthority; a Sentinel human controls issuance of the complete written quote, and\nany later payment remains controlled by the payer's own policy.\n\nThe checksummed `v0.4.1` MCPB and its SHA-256 sidecar are published on the\n[GitHub Release](https://github.com/TerminallyLazy/sentinel-recovery-support/releases/tag/v0.4.1).\nThe official MCP Registry lists version `0.4.1` as active and latest under\n`io.github.TerminallyLazy/sentinel-recovery-services`; verify the exact\n[Registry record](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.TerminallyLazy%2Fsentinel-recovery-services/versions/0.4.1)\nbefore relying on availability.\n\nInstall and verify it from the repository root:\n\n```bash\nnpm ci --prefix mcp --ignore-scripts\nnpm test --prefix mcp\nnpm audit --prefix mcp --audit-level=high\nnpm run pack:check --prefix mcp\n```\n\nConfigure an MCP client to launch the source checkout over stdio, replacing the\npath with the absolute path on that machine:\n\n```json\n{\n  \"mcpServers\": {\n    \"sentinel-recovery-services\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/sentinel-recovery-support/mcp/server.mjs\"]\n    }\n  }\n}\n```\n\nDirect launch uses `node mcp/server.mjs`. Do not configure the GitHub Pages URL\nas an MCP endpoint: the static site does not implement Streamable HTTP. The npm\npackage is not published yet, so no `npx` installation is advertised.\n\n## Human-approved service quotes\n\nThe quote path is deliberately local and human-triggered. The\n`scripts/prepare-service-quote.mjs` helper accepts public-only request JSON, but\nonly runs after the operator supplies `SENTINEL_HUMAN_APPROVAL=APPROVE`. It\ncreates a mode-`0600` local artifact for human review. It does not issue or\npublish the quote, comment on an issue, request payment, or expand a payer\nagent's authority. There is intentionally no public GitHub Actions quote\nworkflow because a live payable quote ID and payment reference should not be\nexposed as a public-repository artifact.\n\nPrepare a live local quote and append its exact digest to a local approval\nregistry (keep both paths outside the repository):\n\n```bash\nmkdir -p \"$HOME/.local/state/sentinel-recovery\"\nchmod 700 \"$HOME/.local/state/sentinel-recovery\"\nSENTINEL_HUMAN_APPROVAL=APPROVE \\\nSENTINEL_REQUEST_JSON=\"$(jq -c . /absolute/path/request.json)\" \\\nSENTINEL_ASSET=USDC \\\nSENTINEL_VALIDITY_DAYS=7 \\\nSENTINEL_QUOTE_OUTPUT=\"$HOME/.local/state/sentinel-recovery/approved-quote.json\" \\\nSENTINEL_QUOTE_REGISTRY=\"$HOME/.local/state/sentinel-recovery/approved-quotes.jsonl\" \\\nnpm run quote:prepare\n```\n\nThe same deterministic formatter can run locally with operator-supplied UUID v4\nidentifiers and timestamps:\n\n```bash\nnode scripts/create-service-quote.mjs \\\n  --request /absolute/path/request.json \\\n  --asset USDC \\\n  --quote-id 11111111-1111-4111-8111-111111111111 \\\n  --payment-reference 22222222-2222-4222-8222-222222222222 \\\n  --issued-at 2026-07-10T20:00:00.000Z \\\n  --expires-at 2026-07-17T20:00:00.000Z\n```\n\nPaid quotes support canonical USDC and canonical USDT only; their base-unit\namounts are derived from the fixed integer USD catalog price. ETH remains a\nvoluntary-support asset, not a quoted USD-denominated service asset. The raw\nformatter emits a nonpayable draft to standard output so a human can inspect it.\nOnly the approval-gated local preparer emits a payable quote and records its\ndigest in the operator's approved-quote registry.\n\nAfter the requester returns a transaction hash, the read-only receipt checker\ncan compare the confirmed canonical ERC-20 `Transfer` log to the exact approved\nquote tuple and reconcile it against an append-only local receipt ledger:\n\n```bash\nnode scripts/verify-service-receipt.mjs \\\n  --quote /absolute/path/approved-quote.json \\\n  --quote-registry \"$HOME/.local/state/sentinel-recovery/approved-quotes.jsonl\" \\\n  --receipt-ledger \"$HOME/.local/state/sentinel-recovery/service-receipts.jsonl\" \\\n  --transaction-hash 0x... \\\n  --rpc-url \"$SENTINEL_ETH_RPC_URL\" \\\n  --confirmations 12\n```\n\nUse a trusted HTTPS Ethereum Mainnet JSON-RPC endpoint and keep credentialed RPC\nURLs out of issues, logs, and quote artifacts. The checker does not sign,\nbroadcast, spend, or move funds; it requests no keys, signatures, or wallet\nconnection. The local ledger makes repeated checks idempotent and routes a\nreceipt reused across quotes to manual review instead of crediting it twice.\nThe complete manual operator checklist is in\n[`docs/service-operations.md`](docs/service-operations.md).\n\n## Local development\n\n```bash\nnpm ci\nnpm run dev\n```\n\nTo inspect the exact GitHub Pages artifact at its production base path:\n\n```bash\nnpm run preview:pages\n```\n\n## Validation\n\n```bash\nnpm test\nnpm run lint\nnpm audit --audit-level=high\nnpm run export:pages\n```\n",
  "bytes": 10995,
  "sha": "143c61c503a920e5d320aa81a4dab9a30b20970726b98dde77ea175249e82a9b",
  "repo_slug": "terminallylazy/sentinel-recovery-support",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_terminallylazy_sentinel_recove_e59d02ff/readme"
}