Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions site/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.vercel/
dist/
.env.local
.env.*.local
107 changes: 107 additions & 0 deletions site/.well-known/agent.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{
"schema_version": "1.0",
"name": "agent-middleware-api",
"description": "This marketing host points machines to the Agent Middleware API transaction-integrity boundary for consequential autonomous actions on the configured upstream-MCP path: one logical action, bounded authority consumption, at-most-one gateway dispatch and debit, explicit delivery uncertainty, and linked gateway evidence for required external reconciliation.",
"primary_audience": "autonomous_agents",
"buyer_audience": [
"platform_engineering",
"ai_infrastructure",
"security_teams_operating_internal_mcp_tools",
"teams_operating_consequential_autonomous_actions"
],
"positioning": {
"schema_version": "1.0",
"effective_date": "2026-08-28",
"id": "transaction_integrity_for_consequential_autonomous_actions",
"label": "Transaction integrity for consequential autonomous actions",
"tagline": "Make consequential agent actions transactional.",
"legacy_aliases": [
"governed_mcp_trust_plane"
],
"legacy_protocol_identifiers": {
"mcp_server_name": "Agent Middleware MCP Trust Plane"
},
"supersedes": [
"product_wedge",
"product_loop"
],
"scope": {
"transaction_state_machine": "configured_upstream_mcp_tool_only",
"local_and_dogfood_tools": "not_covered_by_dispatch_uncertainty_semantics"
},
"semantics": [
"logical_action_identity",
"bounded_authority_consumption",
"at_most_one_gateway_dispatch_and_debit",
"delivery_uncertain_no_automatic_redispatch",
"linked_gateway_evidence",
"authoritative_external_reconciliation_required"
],
"canonical_loop": [
"logical_action_identity",
"authorize",
"reserve_configured_allowance",
"debit",
"claim_gateway_dispatch",
"confirmed_outcome_or_delivery_uncertain",
"linked_receipt_and_audit",
"authoritative_external_reconciliation_required"
],
"claim_boundary": "gateway_state_machine_not_distributed_acid_or_downstream_effect_proof"
},
"product_wedge": "governed_mcp_trust_plane",
"thesis": "Before an autonomous agent acts, it needs bounded authority and portable proof.",
"product_loop": [
"discover",
"authenticate",
"authorize",
"invoke",
"meter",
"receipt",
"audit",
"govern"
],
"canonical_api": "https://api.thisisatest.tech",
"human_site": "https://www.agentmiddleware.dev/",
"github": "https://github.com/agentmiddleware/agent-middleware",
"github_access": "public",
"discovery": {
"agent_manifest": "https://api.thisisatest.tech/.well-known/agent.json",
"llm_txt": "https://api.thisisatest.tech/llm.txt",
"llms_txt": "https://api.thisisatest.tech/llms.txt",
"mcp_tools": "https://api.thisisatest.tech/mcp/tools.json",
"openapi": "https://api.thisisatest.tech/openapi.json",
"capability_index": "https://api.thisisatest.tech/v1/discover",
"dependency_truth": "https://api.thisisatest.tech/health/dependencies"
},
"bootstrap_sequence": [
"https://api.thisisatest.tech/.well-known/agent.json",
"https://api.thisisatest.tech/llms.txt",
"https://api.thisisatest.tech/mcp/tools.json",
"https://api.thisisatest.tech/openapi.json"
],
"simulation_and_dependency_truth": "https://api.thisisatest.tech/health/dependencies",
"try_it": {
"mode": "local_self_hosted",
"repository": "https://github.com/agentmiddleware/agent-middleware",
"repository_access": "public",
"command": "make prove-trust-plane",
"live_access": "operator_issued",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
"requires_live_credentials": false,
"proves": [
"scoped_permit",
"metered_mcp_invoke",
"signed_receipt",
"replay_without_second_charge",
"out_of_scope_denial",
"offline_receipt_verification"
],
"note": "Runs the real FastAPI transaction-integrity path against a throwaway local SQLite database. This is a reproducible proof, not a production or settlement claim. The source repository is public and can be cloned to run the proof locally without live API credentials."
},
"authentication": {
"type": "api_key",
"header": "X-API-Key",
"note": "Free sandbox demo keys are self-serve on this marketing host. Live keys are operator-issued to design partners."
},
"note": "This file is a pointer only. Do not treat this marketing origin as the API base URL."
}
22 changes: 22 additions & 0 deletions site/.well-known/security.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Rendered by site/build_site.py. The contact address comes from
# PUBLIC_CONTACT_EMAIL and Expires is set one year past each build, so a
# deployed site never serves a lapsed file.

Contact: mailto:@@PUBLIC_CONTACT_EMAIL@@
Expires: @@SECURITY_TXT_EXPIRES@@
Preferred-Languages: en
Canonical: https://www.agentmiddleware.dev/.well-known/security.txt

# The source repository is public. The canonical API also serves product
# boundary and limitation documents at the URLs below.
#
# Scope
# www.agentmiddleware.dev: this static marketing and proof site
# api.thisisatest.tech — the governed gateway
Comment thread
cursor[bot] marked this conversation as resolved.
Resolved
#
# Known and already-published limitations are listed in
# https://api.thisisatest.tech/SECURITY_LIMITATIONS.md
# Please read that first; anything it already covers is not a new finding.
#
# This site is operated by a single accountable person, not a staffed security
# team. Expect a human acknowledgement rather than an automated triage SLA.
48 changes: 48 additions & 0 deletions site/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Page not found | Agent Middleware API</title>
<meta name="description" content="That page does not exist on this site." />
<meta name="robots" content="noindex, follow" />
<meta name="theme-color" content="#ffffff" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="stylesheet" href="/fonts.css?v=@@FONTS_CSS_VERSION@@" />
<link rel="stylesheet" href="/styles.css?v=@@STYLES_CSS_VERSION@@" />
<script src="/a11y-preload.js?v=gateway-19"></script>
@@VERCEL_ANALYTICS_SCRIPTS@@
<script defer src="/analytics.js?v=gateway-19"></script>
<script defer src="/utm-capture.js?v=utm-1"></script>
<script defer src="/a11y.js?v=gateway-19"></script>
</head>
<body class="site-light">
<a class="skip-link" href="#main">Skip to content</a>
@@SITE_NAV@@

<main id="main">
<section class="section" aria-labelledby="notfound-title">
<p class="section-kicker">404 / Not found</p>
<h1 id="notfound-title">That page is not here.</h1>
<p>
The URL you asked for does not exist on this site. Nothing was
denied and nothing failed.
</p>
<div class="machine-links">
<a href="/"><span>Overview</span><code>/</code></a>
<a href="/proof/"
><span>Receipt proof and offline verifier</span><code>/proof/</code></a
>
<a href="/#quickstart"
><span>Quickstart</span><code>/#quickstart</code></a
>
<a href="/llms.txt"
><span>Agent instructions</span><code>/llms.txt</code></a
>
</div>
</section>
</main>

@@SITE_FOOTER@@
</body>
</html>
Loading
Loading