@agent-receipts/dashboard 0.2.8 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/standalone/apps/web/.env.production +1 -0
- package/standalone/apps/web/.next/BUILD_ID +1 -1
- package/standalone/apps/web/.next/app-build-manifest.json +70 -49
- package/standalone/apps/web/.next/app-path-routes-manifest.json +13 -10
- package/standalone/apps/web/.next/build-manifest.json +2 -2
- package/standalone/apps/web/.next/prerender-manifest.json +92 -15
- package/standalone/apps/web/.next/routes-manifest.json +18 -0
- package/standalone/apps/web/.next/server/app/_not-found/page.js +2 -2
- package/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/_not-found.html +2 -2
- package/standalone/apps/web/.next/server/app/_not-found.rsc +5 -4
- package/standalone/apps/web/.next/server/app/agents/[id]/page.js +2 -2
- package/standalone/apps/web/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/agents/page.js +2 -2
- package/standalone/apps/web/.next/server/app/agents/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/agents.html +2 -2
- package/standalone/apps/web/.next/server/app/agents.rsc +6 -5
- package/standalone/apps/web/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/chains/[id]/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/invoices/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/judgments/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/receipts/[id]/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/receipts/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/stats/route.js +1 -1
- package/standalone/apps/web/.next/server/app/api/stats/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/api/verify/route_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/chains/[id]/page.js +2 -2
- package/standalone/apps/web/.next/server/app/chains/[id]/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/chains/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/chains/page.js +2 -2
- package/standalone/apps/web/.next/server/app/chains/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/chains/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/chains.html +2 -2
- package/standalone/apps/web/.next/server/app/chains.rsc +6 -5
- package/standalone/apps/web/.next/server/app/constraints/page.js +2 -2
- package/standalone/apps/web/.next/server/app/constraints/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/constraints/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/constraints.html +2 -2
- package/standalone/apps/web/.next/server/app/constraints.rsc +6 -5
- package/standalone/apps/web/.next/server/app/get-started/page.js +9 -0
- package/standalone/apps/web/.next/server/app/get-started/page.js.nft.json +1 -0
- package/standalone/apps/web/.next/server/app/get-started/page_client-reference-manifest.js +1 -0
- package/standalone/apps/web/.next/server/app/get-started.html +15 -0
- package/standalone/apps/web/.next/server/app/get-started.meta +7 -0
- package/standalone/apps/web/.next/server/app/get-started.rsc +21 -0
- package/standalone/apps/web/.next/server/app/how-it-works/page.js +57 -0
- package/standalone/apps/web/.next/server/app/how-it-works/page.js.nft.json +1 -0
- package/standalone/apps/web/.next/server/app/how-it-works/page_client-reference-manifest.js +1 -0
- package/standalone/apps/web/.next/server/app/how-it-works.html +63 -0
- package/standalone/apps/web/.next/server/app/how-it-works.meta +7 -0
- package/standalone/apps/web/.next/server/app/how-it-works.rsc +21 -0
- package/standalone/apps/web/.next/server/app/icon.svg/route.js +1 -0
- package/standalone/apps/web/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/standalone/apps/web/.next/server/app/icon.svg.body +8 -0
- package/standalone/apps/web/.next/server/app/icon.svg.meta +1 -0
- package/standalone/apps/web/.next/server/app/index.html +2 -2
- package/standalone/apps/web/.next/server/app/index.rsc +6 -5
- package/standalone/apps/web/.next/server/app/invoices/page.js +30 -2
- package/standalone/apps/web/.next/server/app/invoices/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/invoices/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/invoices.html +30 -2
- package/standalone/apps/web/.next/server/app/invoices.rsc +6 -5
- package/standalone/apps/web/.next/server/app/judgments/page.js +2 -2
- package/standalone/apps/web/.next/server/app/judgments/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/judgments/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/judgments.html +2 -2
- package/standalone/apps/web/.next/server/app/judgments.rsc +6 -5
- package/standalone/apps/web/.next/server/app/page.js +2 -2
- package/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/receipts/[id]/page.js +2 -2
- package/standalone/apps/web/.next/server/app/receipts/[id]/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/receipts/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/receipts/page.js +2 -2
- package/standalone/apps/web/.next/server/app/receipts/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/receipts/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/receipts.html +2 -2
- package/standalone/apps/web/.next/server/app/receipts.rsc +6 -5
- package/standalone/apps/web/.next/server/app/settings/page.js +2 -2
- package/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/settings.html +2 -2
- package/standalone/apps/web/.next/server/app/settings.rsc +6 -5
- package/standalone/apps/web/.next/server/app/verify/page.js +2 -2
- package/standalone/apps/web/.next/server/app/verify/page.js.nft.json +1 -1
- package/standalone/apps/web/.next/server/app/verify/page_client-reference-manifest.js +1 -1
- package/standalone/apps/web/.next/server/app/verify.html +2 -2
- package/standalone/apps/web/.next/server/app/verify.rsc +6 -5
- package/standalone/apps/web/.next/server/app-paths-manifest.json +13 -10
- package/standalone/apps/web/.next/server/chunks/319.js +1 -1
- package/standalone/apps/web/.next/server/chunks/640.js +8 -0
- package/standalone/apps/web/.next/server/chunks/718.js +9 -0
- package/standalone/apps/web/.next/server/chunks/99.js +1 -1
- package/standalone/apps/web/.next/server/pages/404.html +2 -2
- package/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/standalone/apps/web/.next/static/chunks/app/agents/[id]/{page-c0e1718cad311434.js → page-fe1560a72adbddc7.js} +1 -1
- package/standalone/apps/web/.next/static/chunks/app/agents/page-ab0dfc5113e3ab45.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/agents/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/chains/[id]/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/cleanup/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/config/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/invoices/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/judgments/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/receipts/[id]/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/receipts/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/search/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/stats/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/api/verify/route-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/chains/[id]/{page-5fd31ca4cfa5d3e3.js → page-ba935d4fadcbc557.js} +1 -1
- package/standalone/apps/web/.next/static/chunks/app/chains/{page-d0b634ca7d0aa92d.js → page-a3f21d8d62ffa174.js} +1 -1
- package/standalone/apps/web/.next/static/chunks/app/constraints/{page-6baf6f176d4a9e3d.js → page-ebfd1721530940c7.js} +1 -1
- package/standalone/apps/web/.next/static/chunks/app/get-started/layout-3752a720184a6696.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/get-started/page-72febd5ba59689bb.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/how-it-works/page-46a028e3d817a15f.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/invoices/page-71a064dd2e94a214.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/judgments/{page-22c741e87fc41908.js → page-5062f4bb5a918305.js} +1 -1
- package/standalone/apps/web/.next/static/chunks/app/layout-43fe6d25823e2373.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/page-deece9e5e4e6c9dc.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/receipts/[id]/page-024badaf0b4aa9db.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/receipts/page-dfc039aadf7a6869.js +1 -0
- package/standalone/apps/web/.next/static/chunks/app/settings/{page-8f1d3f326821cc04.js → page-1f33c77dcca141ce.js} +1 -1
- package/standalone/apps/web/.next/static/chunks/app/verify/page-1631d147709caa76.js +1 -0
- package/standalone/apps/web/.next/static/css/b5d5599054174bf1.css +5 -0
- package/standalone/apps/web/.next/static/pkASOzaisH7Pm796xebp0/_buildManifest.js +1 -0
- package/standalone/packages/crypto/package.json +1 -1
- package/standalone/packages/mcp-server/package.json +1 -1
- package/standalone/apps/web/.next/server/chunks/409.js +0 -9
- package/standalone/apps/web/.next/server/chunks/870.js +0 -8
- package/standalone/apps/web/.next/static/QFwgmBDt10h_GclOFqIUT/_buildManifest.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/agents/page-3a081913406179bc.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/agents/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/chains/[id]/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/cleanup/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/config/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/invoices/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/judgments/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/receipts/[id]/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/receipts/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/search/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/stats/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/api/verify/route-e1f2dfd9b33538f4.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/invoices/page-df897ea68fdd966c.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/layout-53a87fc182f46ce0.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/page-d125633847597a5d.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/receipts/[id]/page-dbf5212f41e827cd.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/receipts/page-ef79c1140a9c42e6.js +0 -1
- package/standalone/apps/web/.next/static/chunks/app/verify/page-77b900ba7f88ce2f.js +0 -1
- package/standalone/apps/web/.next/static/css/c89a04ca9481014a.css +0 -5
- /package/standalone/apps/web/.next/static/{QFwgmBDt10h_GclOFqIUT → pkASOzaisH7Pm796xebp0}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[17703,["702","static/chunks/702-fda62c486b5bb5f8.js","935","static/chunks/935-f80c248ba99512e2.js","177","static/chunks/app/layout-43fe6d25823e2373.js"],"LayoutShell"]
|
|
3
|
+
3:I[78954,[],""]
|
|
4
|
+
4:I[85640,[],""]
|
|
5
|
+
5:I[3339,[],"ClientPageRoot"]
|
|
6
|
+
6:I[57848,["477","static/chunks/app/get-started/page-72febd5ba59689bb.js"],"default"]
|
|
7
|
+
9:I[62051,[],"OutletBoundary"]
|
|
8
|
+
b:I[96658,[],"AsyncMetadataOutlet"]
|
|
9
|
+
d:I[62051,[],"ViewportBoundary"]
|
|
10
|
+
f:I[62051,[],"MetadataBoundary"]
|
|
11
|
+
10:"$Sreact.suspense"
|
|
12
|
+
12:I[37698,[],""]
|
|
13
|
+
:HL["/_next/static/css/b5d5599054174bf1.css","style"]
|
|
14
|
+
0:{"P":null,"b":"pkASOzaisH7Pm796xebp0","p":"","c":["","get-started"],"i":false,"f":[[["",{"children":["get-started",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/b5d5599054174bf1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n try {\n const theme = localStorage.getItem('theme')\n if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {\n document.documentElement.classList.add('dark')\n }\n } catch {}\n "}}]}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":["get-started",["$","$1","c",{"children":[null,["$","div",null,{"className":"min-h-screen bg-white dark:bg-gray-950","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],null,["$","$L9",null,{"children":["$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Ld",null,{"children":"$Le"}],null],["$","$Lf",null,{"children":["$","div",null,{"hidden":true,"children":["$","$10",null,{"fallback":null,"children":"$L11"}]}]}]]}],false]],"m":"$undefined","G":["$12",[]],"s":false,"S":true}
|
|
15
|
+
7:{}
|
|
16
|
+
8:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
|
|
17
|
+
e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
18
|
+
a:null
|
|
19
|
+
13:I[14970,[],"IconMark"]
|
|
20
|
+
c:{"metadata":[["$","title","0",{"children":"Agent Receipts — Mission Control"}],["$","meta","1",{"name":"description","content":"Verifiable, signed, immutable proof that an autonomous action happened."}],["$","link","2",{"rel":"icon","href":"/icon.svg?766d04f8a781ae61","type":"image/svg+xml","sizes":"any"}],["$","$L13","3",{}]],"error":null,"digest":"$undefined"}
|
|
21
|
+
11:"$c:metadata"
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
(()=>{var a={};a.id=376,a.ids=[376],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1186:(a,b,c)=>{Promise.resolve().then(c.bind(c,52203))},1377:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(94026).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/how-it-works/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/how-it-works/page.tsx","default")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},52203:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(82164);let e=(0,c(17558).A)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);function f({id:a,title:b,children:c}){return(0,d.jsxs)("section",{id:a,className:"scroll-mt-8",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-primary mb-4 pb-2 border-b border-border",children:b}),(0,d.jsx)("div",{className:"space-y-4 text-sm text-text-secondary leading-relaxed",children:c})]})}function g({children:a}){return(0,d.jsx)("pre",{className:"bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto",children:a})}function h(){return(0,d.jsxs)("div",{className:"max-w-2xl mx-auto space-y-10",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-xl font-bold text-text-primary",children:"How Agent Receipts Works"}),(0,d.jsx)("p",{className:"mt-2 text-sm text-text-secondary",children:"Cryptographically signed, immutable proof of autonomous AI agent actions. Local-first. No server required."})]}),(0,d.jsxs)(f,{id:"what-is-a-receipt",title:"What Is a Receipt?",children:[(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{className:"text-text-primary",children:"Logs"})," are internal, mutable, developer-only, and unverifiable. Anyone can edit a log entry after the fact."]}),(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{className:"text-text-primary",children:"Receipts"})," are cryptographically signed, immutable, shareable, and independently verifiable. Once signed, tampering is detectable by anyone with the public key."]}),(0,d.jsx)(g,{children:`{
|
|
2
|
+
receipt_id: "rcpt_abc123" // unique identifier
|
|
3
|
+
agent_id: "my-agent" // who acted
|
|
4
|
+
action: "generate_code" // what they did
|
|
5
|
+
input_hash: "sha256:..." // what they received (hashed)
|
|
6
|
+
output_hash: "sha256:..." // what they produced (hashed)
|
|
7
|
+
status: "completed" // outcome
|
|
8
|
+
timestamp: "2026-04-02T..." // when
|
|
9
|
+
signature: "ed25519:..." // cryptographic proof
|
|
10
|
+
}`}),(0,d.jsx)("p",{children:"The full schema has 29 fields covering identity, timing, performance metrics, constraints, judgments, and cryptographic proof."})]}),(0,d.jsxs)(f,{id:"cryptographic-proof",title:"Cryptographic Proof",children:[(0,d.jsx)("p",{children:"Every receipt is signed with Ed25519 — the same algorithm used by SSH, Signal, and TLS 1.3."}),(0,d.jsx)(g,{children:`How signing works:
|
|
11
|
+
1. Generate a key pair (private + public) — stored locally
|
|
12
|
+
2. When an action completes, 12 fields are extracted into a signable payload
|
|
13
|
+
3. Fields are sorted alphabetically and JSON-serialized (canonical form)
|
|
14
|
+
4. The payload is signed with your private key using Ed25519
|
|
15
|
+
5. Signature stored on receipt as "ed25519:<base64>"
|
|
16
|
+
|
|
17
|
+
The 12 signed fields:
|
|
18
|
+
action, agent_id, chain_id, completed_at, environment,
|
|
19
|
+
input_hash, org_id, output_hash, receipt_id,
|
|
20
|
+
receipt_type, status, timestamp`}),(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{className:"text-text-primary",children:"To verify:"})," anyone with your public key can re-canonicalize the same 12 fields and check the signature — no server required."]}),(0,d.jsx)("p",{children:"Input and output data is never stored — only SHA-256 hashes. Prove what was processed without exposing the data itself."}),(0,d.jsx)("div",{className:"p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg border border-blue-200 dark:border-blue-700",children:(0,d.jsxs)("p",{className:"text-xs text-blue-700 dark:text-blue-300",children:["In this demo, signatures are placeholders (",(0,d.jsx)("code",{className:"bg-blue-100 dark:bg-blue-800 px-1 rounded",children:"ed25519:DEMO_..."}),"). In a real installation, every receipt is cryptographically signed using your locally-generated Ed25519 private key."]})})]}),(0,d.jsxs)(f,{id:"chains",title:"Receipt Chains",children:[(0,d.jsxs)("p",{children:["Multi-step workflows are linked together as chains. Each step references the previous via ",(0,d.jsx)("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 rounded text-xs",children:"parent_receipt_id"}),"."]}),(0,d.jsxs)("div",{className:"bg-gray-50 dark:bg-gray-800/50 rounded-lg p-4 border border-border font-mono text-xs space-y-1",children:[(0,d.jsx)("p",{className:"text-text-muted mb-2",children:"Example: Code review pipeline (chain_abc)"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-14 text-text-muted",children:"Step 1"}),(0,d.jsx)("span",{className:"w-32",children:"fetch_code"}),(0,d.jsx)("span",{className:"text-success",children:"completed"}),(0,d.jsx)("span",{className:"text-text-muted ml-auto",children:"0.8s \xb7 $0.01"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-14 text-text-muted",children:"Step 2"}),(0,d.jsx)("span",{className:"w-32",children:"analyze_code"}),(0,d.jsx)("span",{className:"text-success",children:"completed"}),(0,d.jsx)("span",{className:"text-text-muted ml-auto",children:"3.2s \xb7 $0.04"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-14 text-text-muted",children:"Step 3"}),(0,d.jsx)("span",{className:"w-32",children:"generate_report"}),(0,d.jsx)("span",{className:"text-success",children:"completed"}),(0,d.jsx)("span",{className:"text-text-muted ml-auto",children:"2.1s \xb7 $0.03"})]}),(0,d.jsx)("div",{className:"pt-2 border-t border-border/50 text-text-muted",children:"Total: 6.1s \xb7 $0.08 \xb7 3 receipts"})]}),(0,d.jsx)("p",{children:"Benefits: full history of complex workflows, identify which step caused a failure, total cost/duration across the workflow, track which agents were involved at each stage."})]}),(0,d.jsxs)(f,{id:"constraints",title:"Constraints",children:[(0,d.jsx)("p",{children:"Define rules that receipts must satisfy. Evaluated at creation/completion time. Results stored on the receipt — no re-evaluation needed."}),(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full text-xs",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)("th",{className:"text-left py-2 pr-4 font-medium text-text-primary",children:"Type"}),(0,d.jsx)("th",{className:"text-left py-2 font-medium text-text-primary",children:"Passes if"})]})}),(0,d.jsxs)("tbody",{className:"divide-y divide-border/50",children:[(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:"max_latency_ms"}),(0,d.jsx)("td",{className:"py-2",children:"latency_ms ≤ value"})]}),(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:"max_cost_usd"}),(0,d.jsx)("td",{className:"py-2",children:"cost_usd ≤ value"})]}),(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:"min_confidence"}),(0,d.jsx)("td",{className:"py-2",children:"confidence ≥ value"})]}),(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:"required_fields"}),(0,d.jsx)("td",{className:"py-2",children:"all named fields are non-null"})]}),(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:"status_must_be"}),(0,d.jsx)("td",{className:"py-2",children:"status is in the allowed list"})]}),(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:"output_schema"}),(0,d.jsx)("td",{className:"py-2",children:"output validates against JSON Schema"})]})]})]})}),(0,d.jsx)(g,{children:`constraints: [
|
|
21
|
+
{ type: "max_latency_ms", value: 5000 },
|
|
22
|
+
{ type: "max_cost_usd", value: 0.10 },
|
|
23
|
+
{ type: "min_confidence", value: 0.8 }
|
|
24
|
+
]`})]}),(0,d.jsxs)(f,{id:"ai-judgment",title:"AI Judgment",children:[(0,d.jsx)("p",{children:"An AI model can evaluate receipt outputs against a rubric — and the evaluation itself is stored as a signed receipt."}),(0,d.jsx)(g,{children:`Judgment flow:
|
|
25
|
+
1. Define a rubric (criteria with weights and thresholds)
|
|
26
|
+
2. Call judge_receipt with the receipt ID and rubric
|
|
27
|
+
3. A pending judgment receipt is created
|
|
28
|
+
4. An AI model evaluates the output against each criterion
|
|
29
|
+
5. Judgment completed with verdict (pass/fail/partial) and score (0-1)
|
|
30
|
+
|
|
31
|
+
Example rubric:
|
|
32
|
+
Accuracy weight: 0.4 threshold: 0.7
|
|
33
|
+
Completeness weight: 0.3 threshold: 0.6
|
|
34
|
+
Clarity weight: 0.3 threshold: 0.7`}),(0,d.jsxs)("p",{children:["Judgments are stored as receipts themselves (",(0,d.jsx)("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 rounded text-xs",children:'receipt_type: "judgment"'}),") — signed, immutable, and verifiable."]})]}),(0,d.jsxs)(f,{id:"getting-started",title:"Getting Started",children:[(0,d.jsx)("p",{className:"font-medium text-text-primary",children:"MCP Server (for Claude, Cursor, VS Code):"}),(0,d.jsx)(g,{children:`{
|
|
35
|
+
"mcpServers": {
|
|
36
|
+
"agent-receipts": {
|
|
37
|
+
"command": "npx",
|
|
38
|
+
"args": ["@agent-receipts/mcp-server"]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}`}),(0,d.jsx)("p",{className:"font-medium text-text-primary pt-2",children:"TypeScript SDK:"}),(0,d.jsx)(g,{children:`import { AgentReceipts } from '@agent-receipts/sdk'
|
|
42
|
+
|
|
43
|
+
const client = new AgentReceipts()
|
|
44
|
+
await client.track({
|
|
45
|
+
action: 'generate_code',
|
|
46
|
+
input: { prompt },
|
|
47
|
+
output: { code },
|
|
48
|
+
model: 'claude-sonnet-4-20250514',
|
|
49
|
+
tokens_in: 1200,
|
|
50
|
+
tokens_out: 400,
|
|
51
|
+
cost_usd: 0.008,
|
|
52
|
+
latency_ms: 2100,
|
|
53
|
+
})`}),(0,d.jsx)("p",{className:"font-medium text-text-primary pt-2",children:"CLI:"}),(0,d.jsx)(g,{children:`npx @agent-receipts/cli init
|
|
54
|
+
npx @agent-receipts/cli list
|
|
55
|
+
npx @agent-receipts/cli verify <receipt-id>
|
|
56
|
+
npx @agent-receipts/cli stats`}),(0,d.jsxs)("p",{children:["All receipts stored locally in ",(0,d.jsx)("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 rounded text-xs",children:"~/.agent-receipts/"}),". Your private key never leaves your machine."]}),(0,d.jsx)("div",{className:"pt-4",children:(0,d.jsxs)("a",{href:"https://github.com/webaesbyamin/agent-receipts",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-primary text-white rounded-lg hover:bg-primary-hover transition-colors",children:["View on GitHub ",(0,d.jsx)(e,{className:"w-4 h-4"})]})})]})]})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66906:(a,b,c)=>{Promise.resolve().then(c.bind(c,1377))},69377:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(48226),e=c(24085),f=c(69339),g=c(93292),h=c(11110),i=c(4120),j=c(60247),k=c(72548),l=c(74570),m=c(84880),n=c(38698),o=c(6085),p=c(35157),q=c(97854),r=c(261),s=c(39965),t=c(25794),u=c(26713),v=c(39172),w=c(5797),x=c(97769),y=c(7054),z=c(84002),A=c(3558),B=c(86439),C=c(2714),D=c.n(C),E=c(56130),F=c(72907),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["how-it-works",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,1377)),"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/how-it-works/page.tsx"]}]},{metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,21073))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,82648)),"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,2714,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,40428,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,22613,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,34312,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,21073))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,I=["/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/how-it-works/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/how-it-works/page",pathname:"/how-it-works",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/how-it-works/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
57
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[955,718,640],()=>b(b.s=69377));module.exports=c})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/constants.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/package.json","../../../../node_modules/next","../../../package.json","../../chunks/640.js","../../chunks/718.js","../../chunks/955.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/how-it-works/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3339":{"*":{"id":"60611","name":"*","chunks":[],"async":false}},"4461":{"*":{"id":"88386","name":"*","chunks":[],"async":false}},"9001":{"*":{"id":"52203","name":"*","chunks":[],"async":false}},"11448":{"*":{"id":"52834","name":"*","chunks":[],"async":false}},"14970":{"*":{"id":"84978","name":"*","chunks":[],"async":false}},"15088":{"*":{"id":"44562","name":"*","chunks":[],"async":false}},"15754":{"*":{"id":"54450","name":"*","chunks":[],"async":false}},"17703":{"*":{"id":"83962","name":"*","chunks":[],"async":false}},"21948":{"*":{"id":"15067","name":"*","chunks":[],"async":false}},"26097":{"*":{"id":"38590","name":"*","chunks":[],"async":false}},"37698":{"*":{"id":"20576","name":"*","chunks":[],"async":false}},"44033":{"*":{"id":"55519","name":"*","chunks":[],"async":false}},"52952":{"*":{"id":"44758","name":"*","chunks":[],"async":false}},"54634":{"*":{"id":"3272","name":"*","chunks":[],"async":false}},"57848":{"*":{"id":"36678","name":"*","chunks":[],"async":false}},"57920":{"*":{"id":"6954","name":"*","chunks":[],"async":false}},"61974":{"*":{"id":"19046","name":"*","chunks":[],"async":false}},"62051":{"*":{"id":"2455","name":"*","chunks":[],"async":false}},"78954":{"*":{"id":"56358","name":"*","chunks":[],"async":false}},"83355":{"*":{"id":"20309","name":"*","chunks":[],"async":false}},"85640":{"*":{"id":"25506","name":"*","chunks":[],"async":false}},"92846":{"*":{"id":"46750","name":"*","chunks":[],"async":false}},"96658":{"*":{"id":"67034","name":"*","chunks":[],"async":false}},"98177":{"*":{"id":"68273","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":37698,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":37698,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-page.js":{"id":3339,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":3339,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-segment.js":{"id":44033,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":44033,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":15754,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":15754,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/layout-router.js":{"id":78954,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":78954,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":96658,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":96658,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":85640,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":85640,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":62051,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":62051,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":14970,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":14970,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/globals.css":{"id":49469,"name":"*","chunks":["702","static/chunks/702-fda62c486b5bb5f8.js","935","static/chunks/935-f80c248ba99512e2.js","177","static/chunks/app/layout-43fe6d25823e2373.js"],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/components/layout/layout-shell.tsx":{"id":17703,"name":"*","chunks":["702","static/chunks/702-fda62c486b5bb5f8.js","935","static/chunks/935-f80c248ba99512e2.js","177","static/chunks/app/layout-43fe6d25823e2373.js"],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/agents/page.tsx":{"id":92846,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/agents/[id]/page.tsx":{"id":57920,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/chains/[id]/page.tsx":{"id":11448,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/how-it-works/page.tsx":{"id":9001,"name":"*","chunks":["376","static/chunks/app/how-it-works/page-46a028e3d817a15f.js"],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/chains/page.tsx":{"id":61974,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/judgments/page.tsx":{"id":21948,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/constraints/page.tsx":{"id":54634,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/invoices/page.tsx":{"id":26097,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/settings/page.tsx":{"id":4461,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/receipts/page.tsx":{"id":98177,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/receipts/[id]/page.tsx":{"id":15088,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/verify/page.tsx":{"id":52952,"name":"*","chunks":[],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/page.tsx":{"id":83355,"name":"*","chunks":["702","static/chunks/702-fda62c486b5bb5f8.js","935","static/chunks/935-f80c248ba99512e2.js","388","static/chunks/388-350fe7358149b937.js","493","static/chunks/493-829b6213ada29da8.js","577","static/chunks/577-d18d2ca2465d6f72.js","974","static/chunks/app/page-deece9e5e4e6c9dc.js"],"async":false},"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/get-started/page.tsx":{"id":57848,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/":[],"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/layout":[{"inlined":false,"path":"static/css/b5d5599054174bf1.css"}],"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/page":[],"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts/apps/web/src/app/how-it-works/page":[]},"rscModuleMapping":{"3339":{"*":{"id":"65701","name":"*","chunks":[],"async":false}},"4461":{"*":{"id":"14607","name":"*","chunks":[],"async":false}},"9001":{"*":{"id":"1377","name":"*","chunks":[],"async":false}},"11448":{"*":{"id":"37000","name":"*","chunks":[],"async":false}},"14970":{"*":{"id":"61824","name":"*","chunks":[],"async":false}},"15088":{"*":{"id":"35174","name":"*","chunks":[],"async":false}},"15754":{"*":{"id":"60492","name":"*","chunks":[],"async":false}},"17703":{"*":{"id":"10293","name":"*","chunks":[],"async":false}},"21948":{"*":{"id":"42213","name":"*","chunks":[],"async":false}},"26097":{"*":{"id":"88758","name":"*","chunks":[],"async":false}},"37698":{"*":{"id":"2714","name":"*","chunks":[],"async":false}},"44033":{"*":{"id":"68709","name":"*","chunks":[],"async":false}},"49469":{"*":{"id":"44267","name":"*","chunks":[],"async":false}},"52952":{"*":{"id":"74767","name":"*","chunks":[],"async":false}},"54634":{"*":{"id":"56424","name":"*","chunks":[],"async":false}},"57848":{"*":{"id":"58700","name":"*","chunks":[],"async":false}},"57920":{"*":{"id":"63952","name":"*","chunks":[],"async":false}},"61974":{"*":{"id":"66912","name":"*","chunks":[],"async":false}},"62051":{"*":{"id":"55273","name":"*","chunks":[],"async":false}},"78954":{"*":{"id":"13012","name":"*","chunks":[],"async":false}},"83355":{"*":{"id":"61727","name":"*","chunks":[],"async":false}},"85640":{"*":{"id":"11968","name":"*","chunks":[],"async":false}},"92846":{"*":{"id":"17272","name":"*","chunks":[],"async":false}},"96658":{"*":{"id":"65800","name":"*","chunks":[],"async":false}},"98177":{"*":{"id":"34739","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"3339":{"*":{"id":"60611","name":"*","chunks":[],"async":false}},"14970":{"*":{"id":"84978","name":"*","chunks":[],"async":false}},"15754":{"*":{"id":"54450","name":"*","chunks":[],"async":false}},"37698":{"*":{"id":"20576","name":"*","chunks":[],"async":false}},"44033":{"*":{"id":"55519","name":"*","chunks":[],"async":false}},"62051":{"*":{"id":"2455","name":"*","chunks":[],"async":false}},"78954":{"*":{"id":"56358","name":"*","chunks":[],"async":false}},"85640":{"*":{"id":"25506","name":"*","chunks":[],"async":false}},"96658":{"*":{"id":"67034","name":"*","chunks":[],"async":false}}}}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!DOCTYPE html><!--pkASOzaisH7Pm796xebp0--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/b5d5599054174bf1.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-acfef48110e09a0e.js"/><script src="/_next/static/chunks/8e6518bb-8ba80b673620744d.js" async=""></script><script src="/_next/static/chunks/743-1f01386e3a1c3b1c.js" async=""></script><script src="/_next/static/chunks/main-app-d3c171e7aef05d2f.js" async=""></script><script src="/_next/static/chunks/702-fda62c486b5bb5f8.js" async=""></script><script src="/_next/static/chunks/935-f80c248ba99512e2.js" async=""></script><script src="/_next/static/chunks/app/layout-43fe6d25823e2373.js" async=""></script><script src="/_next/static/chunks/app/how-it-works/page-46a028e3d817a15f.js" async=""></script><title>Agent Receipts — Mission Control</title><meta name="description" content="Verifiable, signed, immutable proof that an autonomous action happened."/><link rel="icon" href="/icon.svg?766d04f8a781ae61" type="image/svg+xml" sizes="any"/><script>
|
|
2
|
+
try {
|
|
3
|
+
const theme = localStorage.getItem('theme')
|
|
4
|
+
if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
5
|
+
document.documentElement.classList.add('dark')
|
|
6
|
+
}
|
|
7
|
+
} catch {}
|
|
8
|
+
</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="flex min-h-screen"><aside class="hidden md:flex flex-col bg-bg-primary border-r border-border h-screen sticky top-0 transition-all duration-200 w-56"><div class="flex items-center h-14 border-b border-border px-4"><a class="flex items-center gap-2 min-w-0" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database w-5 h-5 text-primary shrink-0"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="font-semibold text-sm text-text-primary truncate">Agent Receipts</span></a></div><nav class="flex-1 py-2 overflow-y-auto"><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard w-4 h-4 shrink-0"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span>Overview</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/receipts"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-receipt w-4 h-4 shrink-0"><path d="M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z"></path><path d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8"></path><path d="M12 17.5v-11"></path></svg><span>Receipts</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/chains"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link2 w-4 h-4 shrink-0"><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1="8" x2="16" y1="12" y2="12"></line></svg><span>Chains</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/agents"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot w-4 h-4 shrink-0"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><span>Agents</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/constraints"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-check-big w-4 h-4 shrink-0"><path d="M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5"></path><path d="m9 11 3 3L22 4"></path></svg><span>Constraints</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/judgments"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scale w-4 h-4 shrink-0"><path d="m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"></path><path d="m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"></path><path d="M7 21h10"></path><path d="M12 3v18"></path><path d="M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2"></path></svg><span>Judgments</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/invoices"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text w-4 h-4 shrink-0"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span>Invoices</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/verify"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check w-4 h-4 shrink-0"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span>Verify</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors text-text-secondary hover:bg-bg-tertiary hover:text-text-primary" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings w-4 h-4 shrink-0"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a><a class="flex items-center gap-3 px-4 py-2 mx-2 rounded-md text-sm transition-colors bg-primary-subtle text-primary font-medium" href="/how-it-works"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open w-4 h-4 shrink-0"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg><span>How It Works</span></a></nav><button class="flex items-center justify-center h-10 border-t border-border text-text-muted hover:text-text-secondary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left w-4 h-4"><path d="m15 18-6-6 6-6"></path></svg></button></aside><div class="flex-1 flex flex-col min-w-0"><div class="w-full bg-amber-500/10 dark:bg-amber-500/20 border-b border-amber-500/30 dark:border-amber-400/30 px-4 py-2 text-center text-sm text-amber-700 dark:text-amber-300">Demo mode — showing sample data.<!-- --> <a href="/get-started" class="underline font-semibold text-amber-800 dark:text-amber-200">Run locally with your own agents →</a></div><header class="h-14 border-b border-border bg-bg-primary flex items-center justify-between px-4 md:px-6 sticky top-0 z-30"><button class="flex items-center gap-2 px-3 py-1.5 rounded-md border border-border bg-bg-secondary text-text-muted text-sm hover:border-text-muted transition-colors max-w-md w-full md:w-80"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search w-4 h-4 shrink-0"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><span class="truncate">Search receipts, agents, chains...</span><kbd class="hidden md:inline-flex ml-auto text-xs border border-border rounded px-1.5 py-0.5 bg-bg-primary text-text-muted">⌘<!-- -->K</kbd></button><div class="flex items-center gap-2"><button class="p-2 rounded-md transition-colors text-success hover:bg-success-subtle" title="Auto-refresh on"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw w-4 h-4 animate-spin" style="animation-duration:3s"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></button><button class="p-2 rounded-md text-text-muted hover:bg-bg-tertiary transition-colors" title="Switch to dark mode"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon w-4 h-4"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></button></div></header><main class="flex-1 p-4 md:p-6 pb-20 md:pb-6"><div class="max-w-2xl mx-auto space-y-10"><div><h1 class="text-xl font-bold text-text-primary">How Agent Receipts Works</h1><p class="mt-2 text-sm text-text-secondary">Cryptographically signed, immutable proof of autonomous AI agent actions. Local-first. No server required.</p></div><section id="what-is-a-receipt" class="scroll-mt-8"><h2 class="text-lg font-semibold text-text-primary mb-4 pb-2 border-b border-border">What Is a Receipt?</h2><div class="space-y-4 text-sm text-text-secondary leading-relaxed"><p><strong class="text-text-primary">Logs</strong> are internal, mutable, developer-only, and unverifiable. Anyone can edit a log entry after the fact.</p><p><strong class="text-text-primary">Receipts</strong> are cryptographically signed, immutable, shareable, and independently verifiable. Once signed, tampering is detectable by anyone with the public key.</p><pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto">{
|
|
9
|
+
receipt_id: "rcpt_abc123" // unique identifier
|
|
10
|
+
agent_id: "my-agent" // who acted
|
|
11
|
+
action: "generate_code" // what they did
|
|
12
|
+
input_hash: "sha256:..." // what they received (hashed)
|
|
13
|
+
output_hash: "sha256:..." // what they produced (hashed)
|
|
14
|
+
status: "completed" // outcome
|
|
15
|
+
timestamp: "2026-04-02T..." // when
|
|
16
|
+
signature: "ed25519:..." // cryptographic proof
|
|
17
|
+
}</pre><p>The full schema has 29 fields covering identity, timing, performance metrics, constraints, judgments, and cryptographic proof.</p></div></section><section id="cryptographic-proof" class="scroll-mt-8"><h2 class="text-lg font-semibold text-text-primary mb-4 pb-2 border-b border-border">Cryptographic Proof</h2><div class="space-y-4 text-sm text-text-secondary leading-relaxed"><p>Every receipt is signed with Ed25519 — the same algorithm used by SSH, Signal, and TLS 1.3.</p><pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto">How signing works:
|
|
18
|
+
1. Generate a key pair (private + public) — stored locally
|
|
19
|
+
2. When an action completes, 12 fields are extracted into a signable payload
|
|
20
|
+
3. Fields are sorted alphabetically and JSON-serialized (canonical form)
|
|
21
|
+
4. The payload is signed with your private key using Ed25519
|
|
22
|
+
5. Signature stored on receipt as "ed25519:<base64>"
|
|
23
|
+
|
|
24
|
+
The 12 signed fields:
|
|
25
|
+
action, agent_id, chain_id, completed_at, environment,
|
|
26
|
+
input_hash, org_id, output_hash, receipt_id,
|
|
27
|
+
receipt_type, status, timestamp</pre><p><strong class="text-text-primary">To verify:</strong> anyone with your public key can re-canonicalize the same 12 fields and check the signature — no server required.</p><p>Input and output data is never stored — only SHA-256 hashes. Prove what was processed without exposing the data itself.</p><div class="p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg border border-blue-200 dark:border-blue-700"><p class="text-xs text-blue-700 dark:text-blue-300">In this demo, signatures are placeholders (<code class="bg-blue-100 dark:bg-blue-800 px-1 rounded">ed25519:DEMO_...</code>). In a real installation, every receipt is cryptographically signed using your locally-generated Ed25519 private key.</p></div></div></section><section id="chains" class="scroll-mt-8"><h2 class="text-lg font-semibold text-text-primary mb-4 pb-2 border-b border-border">Receipt Chains</h2><div class="space-y-4 text-sm text-text-secondary leading-relaxed"><p>Multi-step workflows are linked together as chains. Each step references the previous via <code class="bg-gray-100 dark:bg-gray-800 px-1 rounded text-xs">parent_receipt_id</code>.</p><div class="bg-gray-50 dark:bg-gray-800/50 rounded-lg p-4 border border-border font-mono text-xs space-y-1"><p class="text-text-muted mb-2">Example: Code review pipeline (chain_abc)</p><div class="flex items-center gap-2"><span class="w-14 text-text-muted">Step 1</span><span class="w-32">fetch_code</span><span class="text-success">completed</span><span class="text-text-muted ml-auto">0.8s · $0.01</span></div><div class="flex items-center gap-2"><span class="w-14 text-text-muted">Step 2</span><span class="w-32">analyze_code</span><span class="text-success">completed</span><span class="text-text-muted ml-auto">3.2s · $0.04</span></div><div class="flex items-center gap-2"><span class="w-14 text-text-muted">Step 3</span><span class="w-32">generate_report</span><span class="text-success">completed</span><span class="text-text-muted ml-auto">2.1s · $0.03</span></div><div class="pt-2 border-t border-border/50 text-text-muted">Total: 6.1s · $0.08 · 3 receipts</div></div><p>Benefits: full history of complex workflows, identify which step caused a failure, total cost/duration across the workflow, track which agents were involved at each stage.</p></div></section><section id="constraints" class="scroll-mt-8"><h2 class="text-lg font-semibold text-text-primary mb-4 pb-2 border-b border-border">Constraints</h2><div class="space-y-4 text-sm text-text-secondary leading-relaxed"><p>Define rules that receipts must satisfy. Evaluated at creation/completion time. Results stored on the receipt — no re-evaluation needed.</p><div class="overflow-x-auto"><table class="w-full text-xs"><thead><tr class="border-b border-border"><th class="text-left py-2 pr-4 font-medium text-text-primary">Type</th><th class="text-left py-2 font-medium text-text-primary">Passes if</th></tr></thead><tbody class="divide-y divide-border/50"><tr><td class="py-2 pr-4 font-mono">max_latency_ms</td><td class="py-2">latency_ms ≤ value</td></tr><tr><td class="py-2 pr-4 font-mono">max_cost_usd</td><td class="py-2">cost_usd ≤ value</td></tr><tr><td class="py-2 pr-4 font-mono">min_confidence</td><td class="py-2">confidence ≥ value</td></tr><tr><td class="py-2 pr-4 font-mono">required_fields</td><td class="py-2">all named fields are non-null</td></tr><tr><td class="py-2 pr-4 font-mono">status_must_be</td><td class="py-2">status is in the allowed list</td></tr><tr><td class="py-2 pr-4 font-mono">output_schema</td><td class="py-2">output validates against JSON Schema</td></tr></tbody></table></div><pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto">constraints: [
|
|
28
|
+
{ type: "max_latency_ms", value: 5000 },
|
|
29
|
+
{ type: "max_cost_usd", value: 0.10 },
|
|
30
|
+
{ type: "min_confidence", value: 0.8 }
|
|
31
|
+
]</pre></div></section><section id="ai-judgment" class="scroll-mt-8"><h2 class="text-lg font-semibold text-text-primary mb-4 pb-2 border-b border-border">AI Judgment</h2><div class="space-y-4 text-sm text-text-secondary leading-relaxed"><p>An AI model can evaluate receipt outputs against a rubric — and the evaluation itself is stored as a signed receipt.</p><pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto">Judgment flow:
|
|
32
|
+
1. Define a rubric (criteria with weights and thresholds)
|
|
33
|
+
2. Call judge_receipt with the receipt ID and rubric
|
|
34
|
+
3. A pending judgment receipt is created
|
|
35
|
+
4. An AI model evaluates the output against each criterion
|
|
36
|
+
5. Judgment completed with verdict (pass/fail/partial) and score (0-1)
|
|
37
|
+
|
|
38
|
+
Example rubric:
|
|
39
|
+
Accuracy weight: 0.4 threshold: 0.7
|
|
40
|
+
Completeness weight: 0.3 threshold: 0.6
|
|
41
|
+
Clarity weight: 0.3 threshold: 0.7</pre><p>Judgments are stored as receipts themselves (<code class="bg-gray-100 dark:bg-gray-800 px-1 rounded text-xs">receipt_type: "judgment"</code>) — signed, immutable, and verifiable.</p></div></section><section id="getting-started" class="scroll-mt-8"><h2 class="text-lg font-semibold text-text-primary mb-4 pb-2 border-b border-border">Getting Started</h2><div class="space-y-4 text-sm text-text-secondary leading-relaxed"><p class="font-medium text-text-primary">MCP Server (for Claude, Cursor, VS Code):</p><pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto">{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"agent-receipts": {
|
|
44
|
+
"command": "npx",
|
|
45
|
+
"args": ["@agent-receipts/mcp-server"]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}</pre><p class="font-medium text-text-primary pt-2">TypeScript SDK:</p><pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto">import { AgentReceipts } from '@agent-receipts/sdk'
|
|
49
|
+
|
|
50
|
+
const client = new AgentReceipts()
|
|
51
|
+
await client.track({
|
|
52
|
+
action: 'generate_code',
|
|
53
|
+
input: { prompt },
|
|
54
|
+
output: { code },
|
|
55
|
+
model: 'claude-sonnet-4-20250514',
|
|
56
|
+
tokens_in: 1200,
|
|
57
|
+
tokens_out: 400,
|
|
58
|
+
cost_usd: 0.008,
|
|
59
|
+
latency_ms: 2100,
|
|
60
|
+
})</pre><p class="font-medium text-text-primary pt-2">CLI:</p><pre class="bg-gray-100 dark:bg-gray-800 rounded-lg p-4 font-mono text-xs text-gray-800 dark:text-gray-200 overflow-x-auto">npx @agent-receipts/cli init
|
|
61
|
+
npx @agent-receipts/cli list
|
|
62
|
+
npx @agent-receipts/cli verify <receipt-id>
|
|
63
|
+
npx @agent-receipts/cli stats</pre><p>All receipts stored locally in <code class="bg-gray-100 dark:bg-gray-800 px-1 rounded text-xs">~/.agent-receipts/</code>. Your private key never leaves your machine.</p><div class="pt-4"><a href="https://github.com/webaesbyamin/agent-receipts" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-primary text-white rounded-lg hover:bg-primary-hover transition-colors">View on GitHub <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></section></div><!--$--><!--/$--></main></div><nav class="md:hidden fixed bottom-0 left-0 right-0 z-40 bg-bg-primary border-t border-border"><div class="flex items-center justify-around h-14"><a class="flex flex-col items-center gap-0.5 px-3 py-1 text-xs transition-colors text-text-muted" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard w-5 h-5"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span>Overview</span></a><a class="flex flex-col items-center gap-0.5 px-3 py-1 text-xs transition-colors text-text-muted" href="/receipts"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-receipt w-5 h-5"><path d="M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z"></path><path d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8"></path><path d="M12 17.5v-11"></path></svg><span>Receipts</span></a><a class="flex flex-col items-center gap-0.5 px-3 py-1 text-xs transition-colors text-text-muted" href="/agents"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot w-5 h-5"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><span>Agents</span></a><a class="flex flex-col items-center gap-0.5 px-3 py-1 text-xs transition-colors text-text-muted" href="/verify"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check w-5 h-5"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span>Verify</span></a><a class="flex flex-col items-center gap-0.5 px-3 py-1 text-xs transition-colors text-text-muted" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings w-5 h-5"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></nav></div><script src="/_next/static/chunks/webpack-acfef48110e09a0e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[17703,[\"702\",\"static/chunks/702-fda62c486b5bb5f8.js\",\"935\",\"static/chunks/935-f80c248ba99512e2.js\",\"177\",\"static/chunks/app/layout-43fe6d25823e2373.js\"],\"LayoutShell\"]\n3:I[78954,[],\"\"]\n4:I[85640,[],\"\"]\n5:I[3339,[],\"ClientPageRoot\"]\n6:I[9001,[\"376\",\"static/chunks/app/how-it-works/page-46a028e3d817a15f.js\"],\"default\"]\n9:I[62051,[],\"OutletBoundary\"]\nb:I[96658,[],\"AsyncMetadataOutlet\"]\nd:I[62051,[],\"ViewportBoundary\"]\nf:I[62051,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[37698,[],\"\"]\n:HL[\"/_next/static/css/b5d5599054174bf1.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"pkASOzaisH7Pm796xebp0\",\"p\":\"\",\"c\":[\"\",\"how-it-works\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"how-it-works\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b5d5599054174bf1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n try {\\n const theme = localStorage.getItem('theme')\\n if (theme === 'dark' || (!theme \u0026\u0026 window.matchMedia('(prefers-color-scheme: dark)').matches)) {\\n document.documentElement.classList.add('dark')\\n }\\n } catch {}\\n \"}}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[\"how-it-works\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}],null,[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"13:I[14970,[],\"IconMark\"]\nc:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Agent Receipts — Mission Control\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Verifiable, signed, immutable proof that an autonomous action happened.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?766d04f8a781ae61\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L13\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[17703,["702","static/chunks/702-fda62c486b5bb5f8.js","935","static/chunks/935-f80c248ba99512e2.js","177","static/chunks/app/layout-43fe6d25823e2373.js"],"LayoutShell"]
|
|
3
|
+
3:I[78954,[],""]
|
|
4
|
+
4:I[85640,[],""]
|
|
5
|
+
5:I[3339,[],"ClientPageRoot"]
|
|
6
|
+
6:I[9001,["376","static/chunks/app/how-it-works/page-46a028e3d817a15f.js"],"default"]
|
|
7
|
+
9:I[62051,[],"OutletBoundary"]
|
|
8
|
+
b:I[96658,[],"AsyncMetadataOutlet"]
|
|
9
|
+
d:I[62051,[],"ViewportBoundary"]
|
|
10
|
+
f:I[62051,[],"MetadataBoundary"]
|
|
11
|
+
10:"$Sreact.suspense"
|
|
12
|
+
12:I[37698,[],""]
|
|
13
|
+
:HL["/_next/static/css/b5d5599054174bf1.css","style"]
|
|
14
|
+
0:{"P":null,"b":"pkASOzaisH7Pm796xebp0","p":"","c":["","how-it-works"],"i":false,"f":[[["",{"children":["how-it-works",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/b5d5599054174bf1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n try {\n const theme = localStorage.getItem('theme')\n if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {\n document.documentElement.classList.add('dark')\n }\n } catch {}\n "}}]}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":["how-it-works",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],null,["$","$L9",null,{"children":["$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Ld",null,{"children":"$Le"}],null],["$","$Lf",null,{"children":["$","div",null,{"hidden":true,"children":["$","$10",null,{"fallback":null,"children":"$L11"}]}]}]]}],false]],"m":"$undefined","G":["$12",[]],"s":false,"S":true}
|
|
15
|
+
7:{}
|
|
16
|
+
8:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
|
|
17
|
+
e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
18
|
+
a:null
|
|
19
|
+
13:I[14970,[],"IconMark"]
|
|
20
|
+
c:{"metadata":[["$","title","0",{"children":"Agent Receipts — Mission Control"}],["$","meta","1",{"name":"description","content":"Verifiable, signed, immutable proof that an autonomous action happened."}],["$","link","2",{"rel":"icon","href":"/icon.svg?766d04f8a781ae61","type":"image/svg+xml","sizes":"any"}],["$","$L13","3",{}]],"error":null,"digest":"$undefined"}
|
|
21
|
+
11:"$c:metadata"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var a={};a.id=822,a.ids=[822],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1694:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>w,dynamic:()=>x});var e=c(35776),f=c(24085),g=c(29892),h=c(11110),i=c(93292),j=c(261),k=c(74570),l=c(95672),m=c(4120),n=c(69339),o=c(42805),p=c(99991),q=c(82329),r=c(7054),s=c(86439),t=c(39172),u=c(9145);let v=Buffer.from("PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgZmlsbD0ibm9uZSI+CiAgPHJlY3Qgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHJ4PSI5NiIgZmlsbD0iIzBmMTcyYSIvPgogIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyOCwgMTI4KSBzY2FsZSgxMC42NjcpIiBzdHJva2U9IiMzYjgyZjYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBmaWxsPSJub25lIj4KICAgIDxlbGxpcHNlIGN4PSIxMiIgY3k9IjUiIHJ4PSI5IiByeT0iMyIvPgogICAgPHBhdGggZD0iTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSIvPgogICAgPHBhdGggZD0iTTMgMTJBOSAzIDAgMCAwIDIxIDEyIi8+CiAgPC9nPgo8L3N2Zz4K","base64");function w(){return new u.NextResponse(v,{headers:{"Content-Type":"image/svg+xml","Cache-Control":"public, immutable, no-transform, max-age=31536000"}})}let x="force-static",y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/icon.svg/route",pathname:"/icon.svg",filename:"icon",bundlePath:"app/icon.svg/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"next-metadata-route-loader?filePath=%2FUsers%2Faminsuleiman%2FDropbox%2Fclient%20app%20builds%2Fagent-receipts%2Fapps%2Fweb%2Fsrc%2Fapp%2Ficon.svg&isDynamicRouteExtension=0!?__next_metadata_route__",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/icon.svg/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[955,872],()=>b(b.s=1694));module.exports=c})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/constants.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/package.json","../../../../../../package.json","../../../../node_modules/next","../../../../package.json","../../../package.json","../../chunks/872.js","../../chunks/955.js","../../webpack-runtime.js"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" fill="none">
|
|
2
|
+
<rect width="512" height="512" rx="96" fill="#0f172a"/>
|
|
3
|
+
<g transform="translate(128, 128) scale(10.667)" stroke="#3b82f6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none">
|
|
4
|
+
<ellipse cx="12" cy="5" rx="9" ry="3"/>
|
|
5
|
+
<path d="M3 5V19A9 3 0 0 0 21 19V5"/>
|
|
6
|
+
<path d="M3 12A9 3 0 0 0 21 12"/>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"status":200,"headers":{"cache-control":"public, immutable, no-transform, max-age=31536000","content-type":"image/svg+xml","x-next-cache-tags":"_N_T_/layout,_N_T_/icon.svg/layout,_N_T_/icon.svg/route,_N_T_/icon.svg"}}
|