@agent-receipts/dashboard 0.2.7 → 0.2.8

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.
Files changed (98) hide show
  1. package/package.json +5 -6
  2. package/standalone/apps/web/.env.production +2 -0
  3. package/standalone/apps/web/.next/BUILD_ID +1 -1
  4. package/standalone/apps/web/.next/app-build-manifest.json +53 -53
  5. package/standalone/apps/web/.next/app-path-routes-manifest.json +13 -13
  6. package/standalone/apps/web/.next/build-manifest.json +2 -2
  7. package/standalone/apps/web/.next/prerender-manifest.json +27 -27
  8. package/standalone/apps/web/.next/required-server-files.json +3 -1
  9. package/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/standalone/apps/web/.next/server/app/_not-found.html +2 -2
  11. package/standalone/apps/web/.next/server/app/_not-found.rsc +3 -3
  12. package/standalone/apps/web/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  13. package/standalone/apps/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  14. package/standalone/apps/web/.next/server/app/agents.html +2 -2
  15. package/standalone/apps/web/.next/server/app/agents.rsc +3 -3
  16. package/standalone/apps/web/.next/server/app/api/agents/route.js +1 -1
  17. package/standalone/apps/web/.next/server/app/api/agents/route.js.nft.json +1 -1
  18. package/standalone/apps/web/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  19. package/standalone/apps/web/.next/server/app/api/chains/[id]/route.js +1 -1
  20. package/standalone/apps/web/.next/server/app/api/chains/[id]/route.js.nft.json +1 -1
  21. package/standalone/apps/web/.next/server/app/api/chains/[id]/route_client-reference-manifest.js +1 -1
  22. package/standalone/apps/web/.next/server/app/api/cleanup/route.js +1 -1
  23. package/standalone/apps/web/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  24. package/standalone/apps/web/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  25. package/standalone/apps/web/.next/server/app/api/config/route.js +1 -1
  26. package/standalone/apps/web/.next/server/app/api/config/route.js.nft.json +1 -1
  27. package/standalone/apps/web/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  28. package/standalone/apps/web/.next/server/app/api/invoices/route.js +1 -1
  29. package/standalone/apps/web/.next/server/app/api/invoices/route.js.nft.json +1 -1
  30. package/standalone/apps/web/.next/server/app/api/invoices/route_client-reference-manifest.js +1 -1
  31. package/standalone/apps/web/.next/server/app/api/judgments/route.js +1 -1
  32. package/standalone/apps/web/.next/server/app/api/judgments/route.js.nft.json +1 -1
  33. package/standalone/apps/web/.next/server/app/api/judgments/route_client-reference-manifest.js +1 -1
  34. package/standalone/apps/web/.next/server/app/api/receipts/[id]/route.js +1 -1
  35. package/standalone/apps/web/.next/server/app/api/receipts/[id]/route.js.nft.json +1 -1
  36. package/standalone/apps/web/.next/server/app/api/receipts/[id]/route_client-reference-manifest.js +1 -1
  37. package/standalone/apps/web/.next/server/app/api/receipts/route.js +1 -1
  38. package/standalone/apps/web/.next/server/app/api/receipts/route.js.nft.json +1 -1
  39. package/standalone/apps/web/.next/server/app/api/receipts/route_client-reference-manifest.js +1 -1
  40. package/standalone/apps/web/.next/server/app/api/search/route.js +1 -1
  41. package/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -1
  42. package/standalone/apps/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  43. package/standalone/apps/web/.next/server/app/api/stats/route.js +1 -1
  44. package/standalone/apps/web/.next/server/app/api/stats/route.js.nft.json +1 -1
  45. package/standalone/apps/web/.next/server/app/api/stats/route_client-reference-manifest.js +1 -1
  46. package/standalone/apps/web/.next/server/app/api/verify/route.js +1 -1
  47. package/standalone/apps/web/.next/server/app/api/verify/route.js.nft.json +1 -1
  48. package/standalone/apps/web/.next/server/app/api/verify/route_client-reference-manifest.js +1 -1
  49. package/standalone/apps/web/.next/server/app/chains/[id]/page_client-reference-manifest.js +1 -1
  50. package/standalone/apps/web/.next/server/app/chains/page_client-reference-manifest.js +1 -1
  51. package/standalone/apps/web/.next/server/app/chains.html +2 -2
  52. package/standalone/apps/web/.next/server/app/chains.rsc +3 -3
  53. package/standalone/apps/web/.next/server/app/constraints/page_client-reference-manifest.js +1 -1
  54. package/standalone/apps/web/.next/server/app/constraints.html +2 -2
  55. package/standalone/apps/web/.next/server/app/constraints.rsc +3 -3
  56. package/standalone/apps/web/.next/server/app/index.html +2 -2
  57. package/standalone/apps/web/.next/server/app/index.rsc +3 -3
  58. package/standalone/apps/web/.next/server/app/invoices/page_client-reference-manifest.js +1 -1
  59. package/standalone/apps/web/.next/server/app/invoices.html +2 -2
  60. package/standalone/apps/web/.next/server/app/invoices.rsc +3 -3
  61. package/standalone/apps/web/.next/server/app/judgments/page_client-reference-manifest.js +1 -1
  62. package/standalone/apps/web/.next/server/app/judgments.html +2 -2
  63. package/standalone/apps/web/.next/server/app/judgments.rsc +3 -3
  64. package/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  65. package/standalone/apps/web/.next/server/app/receipts/[id]/page_client-reference-manifest.js +1 -1
  66. package/standalone/apps/web/.next/server/app/receipts/page_client-reference-manifest.js +1 -1
  67. package/standalone/apps/web/.next/server/app/receipts.html +2 -2
  68. package/standalone/apps/web/.next/server/app/receipts.rsc +3 -3
  69. package/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  70. package/standalone/apps/web/.next/server/app/settings.html +2 -2
  71. package/standalone/apps/web/.next/server/app/settings.rsc +3 -3
  72. package/standalone/apps/web/.next/server/app/verify/page_client-reference-manifest.js +1 -1
  73. package/standalone/apps/web/.next/server/app/verify.html +2 -2
  74. package/standalone/apps/web/.next/server/app/verify.rsc +3 -3
  75. package/standalone/apps/web/.next/server/app-paths-manifest.json +13 -13
  76. package/standalone/apps/web/.next/server/chunks/236.js +1 -0
  77. package/standalone/apps/web/.next/server/chunks/578.js +1 -0
  78. package/standalone/apps/web/.next/server/chunks/798.js +1 -0
  79. package/standalone/apps/web/.next/server/chunks/{615.js → 803.js} +1 -1
  80. package/standalone/apps/web/.next/server/chunks/870.js +2 -2
  81. package/standalone/apps/web/.next/server/chunks/872.js +1 -0
  82. package/standalone/apps/web/.next/server/chunks/99.js +1 -0
  83. package/standalone/apps/web/.next/server/pages/404.html +2 -2
  84. package/standalone/apps/web/.next/server/pages/500.html +1 -1
  85. package/standalone/apps/web/.next/server/pages-manifest.json +1 -1
  86. package/standalone/apps/web/.next/static/chunks/app/layout-53a87fc182f46ce0.js +1 -0
  87. package/standalone/apps/web/.next/static/css/{acaddf5367ce801c.css → c89a04ca9481014a.css} +1 -1
  88. package/standalone/apps/web/server.js +1 -1
  89. package/standalone/apps/web/src/lib/demo-store.ts +121 -0
  90. package/standalone/apps/web/src/lib/sdk-server.ts +46 -0
  91. package/standalone/node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/package.json +0 -0
  92. package/standalone/packages/crypto/package.json +1 -1
  93. package/standalone/packages/mcp-server/dist/index.js +1738 -0
  94. package/standalone/packages/mcp-server/package.json +1 -1
  95. package/standalone/apps/web/.next/server/chunks/196.js +0 -1
  96. package/standalone/apps/web/.next/static/chunks/app/layout-66d4997939026d7c.js +0 -1
  97. /package/standalone/apps/web/.next/static/{PR01YFr8r3jMbfS8pPz1u → QFwgmBDt10h_GclOFqIUT}/_buildManifest.js +0 -0
  98. /package/standalone/apps/web/.next/static/{PR01YFr8r3jMbfS8pPz1u → QFwgmBDt10h_GclOFqIUT}/_ssgManifest.js +0 -0
@@ -2,4 +2,4 @@
2
2
 
3
3
  /*
4
4
  ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
5
- */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:IBM Plex Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:IBM Plex Mono,Fira Code,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}body{background-color:var(--bg-primary);font-family:IBM Plex Sans,system-ui,sans-serif;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;background-color:var(--border-default)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.card{border-radius:.5rem;border-width:1px;border-color:var(--border-default);background-color:var(--bg-elevated)}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[120px\]{min-width:120px}.min-w-\[200px\]{min-width:200px}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-32{max-width:8rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border-subtle>:not([hidden])~:not([hidden]){border-color:var(--border-subtle)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-border{border-color:var(--border-default)}.border-border-subtle{border-color:var(--border-subtle)}.bg-bg-elevated{background-color:var(--bg-elevated)}.bg-bg-primary{background-color:var(--bg-primary)}.bg-bg-secondary{background-color:var(--bg-secondary)}.bg-bg-tertiary{background-color:var(--bg-tertiary)}.bg-black\/50{background-color:rgb(0 0 0/.5)}.bg-border{background-color:var(--border-default)}.bg-danger{background-color:var(--danger)}.bg-danger-subtle{background-color:var(--danger-subtle)}.bg-primary{background-color:var(--primary)}.bg-primary-subtle{background-color:var(--primary-subtle)}.bg-success{background-color:var(--success)}.bg-success-subtle{background-color:var(--success-subtle)}.bg-text-muted{background-color:var(--text-muted)}.bg-transparent{background-color:transparent}.bg-warning{background-color:var(--warning)}.bg-warning-subtle{background-color:var(--warning-subtle)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-20{padding-bottom:5rem}.pt-0\.5{padding-top:.125rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-\[20vh\]{padding-top:20vh}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:IBM Plex Mono,Fira Code,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.text-danger{color:var(--danger)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-text-muted{color:var(--text-muted)}.text-text-primary{color:var(--text-primary)}.text-text-secondary{color:var(--text-secondary)}.text-warning{color:var(--warning)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-30{opacity:.3}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0/0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}:root{--bg-primary:#ffffff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-elevated:#ffffff;--border-default:#e2e8f0;--border-subtle:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-subtle:#eff6ff;--success:#16a34a;--success-subtle:#f0fdf4;--danger:#dc2626;--danger-subtle:#fef2f2;--warning:#d97706;--warning-subtle:#fffbeb;--info:#2563eb;--info-subtle:#eff6ff}.dark{--bg-primary:#09090b;--bg-secondary:#0f0f12;--bg-tertiary:#18181b;--bg-elevated:#1c1c20;--border-default:#27272a;--border-subtle:#1c1c20;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#52525b;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-subtle:#172554;--success:#22c55e;--success-subtle:#052e16;--danger:#ef4444;--danger-subtle:#450a0a;--warning:#f59e0b;--warning-subtle:#451a03}.placeholder\:text-text-muted::-moz-placeholder{color:var(--text-muted)}.placeholder\:text-text-muted::placeholder{color:var(--text-muted)}.last\:border-0:last-child{border-width:0}.hover\:border-primary:hover{border-color:var(--primary)}.hover\:border-text-muted:hover{border-color:var(--text-muted)}.hover\:bg-bg-secondary:hover{background-color:var(--bg-secondary)}.hover\:bg-bg-tertiary:hover{background-color:var(--bg-tertiary)}.hover\:bg-danger-subtle:hover{background-color:var(--danger-subtle)}.hover\:bg-primary-hover:hover{background-color:var(--primary-hover)}.hover\:bg-primary-subtle:hover{background-color:var(--primary-subtle)}.hover\:bg-success-subtle:hover{background-color:var(--success-subtle)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-text-primary:hover{color:var(--text-primary)}.hover\:text-text-secondary:hover{color:var(--text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}}@media (min-width:768px){.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:w-80{width:20rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pb-6{padding-bottom:1.5rem}}@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
5
+ */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:IBM Plex Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:IBM Plex Mono,Fira Code,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}body{background-color:var(--bg-primary);font-family:IBM Plex Sans,system-ui,sans-serif;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;background-color:var(--border-default)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.card{border-radius:.5rem;border-width:1px;border-color:var(--border-default);background-color:var(--bg-elevated)}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[120px\]{min-width:120px}.min-w-\[200px\]{min-width:200px}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-32{max-width:8rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border-subtle>:not([hidden])~:not([hidden]){border-color:var(--border-subtle)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-500\/20{border-color:rgb(245 158 11/.2)}.border-border{border-color:var(--border-default)}.border-border-subtle{border-color:var(--border-subtle)}.bg-amber-500\/10{background-color:rgb(245 158 11/.1)}.bg-bg-elevated{background-color:var(--bg-elevated)}.bg-bg-primary{background-color:var(--bg-primary)}.bg-bg-secondary{background-color:var(--bg-secondary)}.bg-bg-tertiary{background-color:var(--bg-tertiary)}.bg-black\/50{background-color:rgb(0 0 0/.5)}.bg-border{background-color:var(--border-default)}.bg-danger{background-color:var(--danger)}.bg-danger-subtle{background-color:var(--danger-subtle)}.bg-primary{background-color:var(--primary)}.bg-primary-subtle{background-color:var(--primary-subtle)}.bg-success{background-color:var(--success)}.bg-success-subtle{background-color:var(--success-subtle)}.bg-text-muted{background-color:var(--text-muted)}.bg-transparent{background-color:transparent}.bg-warning{background-color:var(--warning)}.bg-warning-subtle{background-color:var(--warning-subtle)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-20{padding-bottom:5rem}.pt-0\.5{padding-top:.125rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-\[20vh\]{padding-top:20vh}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:IBM Plex Mono,Fira Code,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-danger{color:var(--danger)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-text-muted{color:var(--text-muted)}.text-text-primary{color:var(--text-primary)}.text-text-secondary{color:var(--text-secondary)}.text-warning{color:var(--warning)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.opacity-30{opacity:.3}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0/0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}:root{--bg-primary:#ffffff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-elevated:#ffffff;--border-default:#e2e8f0;--border-subtle:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-subtle:#eff6ff;--success:#16a34a;--success-subtle:#f0fdf4;--danger:#dc2626;--danger-subtle:#fef2f2;--warning:#d97706;--warning-subtle:#fffbeb;--info:#2563eb;--info-subtle:#eff6ff}.dark{--bg-primary:#09090b;--bg-secondary:#0f0f12;--bg-tertiary:#18181b;--bg-elevated:#1c1c20;--border-default:#27272a;--border-subtle:#1c1c20;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#52525b;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-subtle:#172554;--success:#22c55e;--success-subtle:#052e16;--danger:#ef4444;--danger-subtle:#450a0a;--warning:#f59e0b;--warning-subtle:#451a03}.placeholder\:text-text-muted::-moz-placeholder{color:var(--text-muted)}.placeholder\:text-text-muted::placeholder{color:var(--text-muted)}.last\:border-0:last-child{border-width:0}.hover\:border-primary:hover{border-color:var(--primary)}.hover\:border-text-muted:hover{border-color:var(--text-muted)}.hover\:bg-bg-secondary:hover{background-color:var(--bg-secondary)}.hover\:bg-bg-tertiary:hover{background-color:var(--bg-tertiary)}.hover\:bg-danger-subtle:hover{background-color:var(--danger-subtle)}.hover\:bg-primary-hover:hover{background-color:var(--primary-hover)}.hover\:bg-primary-subtle:hover{background-color:var(--primary-subtle)}.hover\:bg-success-subtle:hover{background-color:var(--success-subtle)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-text-primary:hover{color:var(--text-primary)}.hover\:text-text-secondary:hover{color:var(--text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}}@media (min-width:768px){.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:w-80{width:20rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pb-6{padding-bottom:1.5rem}}@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{"PORT":"3274"},"webpack":null,"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"maximumResponseBody":50000000,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","remotePatterns":[],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts","experimental":{"useSkewCookie":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":4294967294}},"cacheHandlers":{},"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientSegmentCache":false,"clientParamParsing":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":9,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"routerBFCache":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"cacheComponents":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"devtoolSegmentExplorer":true,"browserDebugInfoInTerminal":false,"optimizeRouterScrolling":false,"middlewareClientMaxBodySize":10485760,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","transpilePackages":["@agent-receipts/schema","@agent-receipts/crypto","@agent-receipts/mcp-server","@agent-receipts/sdk"],"turbopack":{"root":"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts"}}
12
+ const nextConfig = {"env":{"PORT":"3274"},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"maximumResponseBody":50000000,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","remotePatterns":[],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts","experimental":{"useSkewCookie":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":4294967294}},"cacheHandlers":{},"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientSegmentCache":false,"clientParamParsing":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":9,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"routerBFCache":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"cacheComponents":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"devtoolSegmentExplorer":true,"browserDebugInfoInTerminal":false,"optimizeRouterScrolling":false,"middlewareClientMaxBodySize":10485760,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","transpilePackages":["@agent-receipts/schema","@agent-receipts/crypto","@agent-receipts/mcp-server","@agent-receipts/sdk"],"serverExternalPackages":["better-sqlite3"],"turbopack":{"root":"/Users/aminsuleiman/Dropbox/client app builds/agent-receipts"}}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
@@ -0,0 +1,121 @@
1
+ import { DEMO_RECEIPTS, DEMO_PUBLIC_KEY, DEMO_CONFIG } from './demo-data'
2
+ import type { ActionReceipt } from '@agent-receipts/schema'
3
+
4
+ interface PaginatedResult<T> {
5
+ data: T[]
6
+ pagination: {
7
+ page: number
8
+ limit: number
9
+ total: number
10
+ total_pages: number
11
+ has_next: boolean
12
+ has_prev: boolean
13
+ }
14
+ }
15
+
16
+ interface DemoFilter {
17
+ agent_id?: string
18
+ action?: string
19
+ status?: string
20
+ environment?: string
21
+ receipt_type?: string
22
+ chain_id?: string
23
+ parent_receipt_id?: string
24
+ tag?: string
25
+ from?: string
26
+ to?: string
27
+ }
28
+
29
+ export class DemoStore {
30
+ private receipts = DEMO_RECEIPTS
31
+
32
+ async list(
33
+ filter?: DemoFilter,
34
+ page = 1,
35
+ limit = 50,
36
+ sort = 'timestamp:desc'
37
+ ): Promise<PaginatedResult<ActionReceipt>> {
38
+ let filtered = [...this.receipts]
39
+
40
+ if (filter) {
41
+ if (filter.agent_id) filtered = filtered.filter(r => r.agent_id === filter.agent_id)
42
+ if (filter.action) filtered = filtered.filter(r => r.action === filter.action)
43
+ if (filter.status) filtered = filtered.filter(r => r.status === filter.status)
44
+ if (filter.environment) filtered = filtered.filter(r => r.environment === filter.environment)
45
+ if (filter.receipt_type) filtered = filtered.filter(r => r.receipt_type === filter.receipt_type)
46
+ if (filter.chain_id) filtered = filtered.filter(r => r.chain_id === filter.chain_id)
47
+ if (filter.parent_receipt_id) filtered = filtered.filter(r => r.parent_receipt_id === filter.parent_receipt_id)
48
+ if (filter.tag) filtered = filtered.filter(r => r.tags?.includes(filter.tag!))
49
+ if (filter.from) filtered = filtered.filter(r => r.timestamp >= filter.from!)
50
+ if (filter.to) filtered = filtered.filter(r => r.timestamp <= filter.to!)
51
+ }
52
+
53
+ const [sortField, sortDir] = sort.split(':')
54
+ const col = sortField === 'created_at' ? 'timestamp' : sortField!
55
+ filtered.sort((a, b) => {
56
+ const aVal = (a as Record<string, unknown>)[col] ?? ''
57
+ const bVal = (b as Record<string, unknown>)[col] ?? ''
58
+ const cmp = aVal < bVal ? -1 : aVal > bVal ? 1 : 0
59
+ return sortDir === 'asc' ? cmp : -cmp
60
+ })
61
+
62
+ const total = filtered.length
63
+ const total_pages = Math.max(1, Math.ceil(total / limit))
64
+ const offset = (page - 1) * limit
65
+ const data = filtered.slice(offset, offset + limit)
66
+
67
+ return {
68
+ data,
69
+ pagination: {
70
+ page,
71
+ limit,
72
+ total,
73
+ total_pages,
74
+ has_next: page < total_pages,
75
+ has_prev: page > 1,
76
+ },
77
+ }
78
+ }
79
+
80
+ async get(receiptId: string): Promise<ActionReceipt | null> {
81
+ return this.receipts.find(r => r.receipt_id === receiptId) ?? null
82
+ }
83
+
84
+ async exists(receiptId: string): Promise<boolean> {
85
+ return this.receipts.some(r => r.receipt_id === receiptId)
86
+ }
87
+
88
+ async getChain(chainId: string): Promise<ActionReceipt[]> {
89
+ return this.receipts
90
+ .filter(r => r.chain_id === chainId)
91
+ .sort((a, b) => a.timestamp.localeCompare(b.timestamp))
92
+ }
93
+
94
+ async count(filter?: DemoFilter): Promise<number> {
95
+ if (!filter) return this.receipts.length
96
+ const result = await this.list(filter, 1, 1)
97
+ return result.pagination.total
98
+ }
99
+
100
+ async delete(_receiptId: string): Promise<boolean> {
101
+ return false // Demo mode: no-op
102
+ }
103
+
104
+ async cleanup(): Promise<{ deleted: number; total: number }> {
105
+ return { deleted: 0, total: this.receipts.length } // Demo mode: no-op
106
+ }
107
+
108
+ getPublicKey(): string {
109
+ return DEMO_PUBLIC_KEY
110
+ }
111
+
112
+ getConfig() {
113
+ return { ...DEMO_CONFIG }
114
+ }
115
+
116
+ async update(_partial: Record<string, unknown>): Promise<void> {
117
+ // Demo mode: no-op
118
+ }
119
+ }
120
+
121
+ export const demoStore = new DemoStore()
@@ -0,0 +1,46 @@
1
+ import { AgentReceipts } from '@agent-receipts/sdk'
2
+ import { ReceiptStore, KeyManager, ConfigManager } from '@agent-receipts/mcp-server'
3
+
4
+ let sdkInstance: AgentReceipts | null = null
5
+ let storeInstance: ReceiptStore | null = null
6
+ let keyManagerInstance: KeyManager | null = null
7
+ let configManagerInstance: ConfigManager | null = null
8
+
9
+ function getDataDir(): string {
10
+ return process.env.AGENT_RECEIPTS_DATA_DIR ?? ConfigManager.getDefaultDataDir()
11
+ }
12
+
13
+ export function getSDK(): AgentReceipts {
14
+ if (!sdkInstance) {
15
+ sdkInstance = new AgentReceipts({
16
+ dataDir: process.env.AGENT_RECEIPTS_DATA_DIR || undefined,
17
+ })
18
+ }
19
+ return sdkInstance
20
+ }
21
+
22
+ export async function getStore(): Promise<ReceiptStore> {
23
+ if (!storeInstance) {
24
+ storeInstance = new ReceiptStore(getDataDir())
25
+ await storeInstance.init()
26
+ }
27
+ return storeInstance
28
+ }
29
+
30
+ export async function getKeyManager(): Promise<KeyManager> {
31
+ if (!keyManagerInstance) {
32
+ keyManagerInstance = new KeyManager(getDataDir())
33
+ await keyManagerInstance.init()
34
+ }
35
+ return keyManagerInstance
36
+ }
37
+
38
+ export async function getConfigManager(): Promise<ConfigManager> {
39
+ if (!configManagerInstance) {
40
+ configManagerInstance = new ConfigManager(getDataDir())
41
+ await configManagerInstance.init()
42
+ }
43
+ return configManagerInstance
44
+ }
45
+
46
+ export { getDataDir }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-receipts/crypto",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Ed25519 signing and verification for the Action Receipt Protocol",
5
5
  "license": "MIT",
6
6
  "author": "Amin <amin@webaes.co> (https://webaes.co)",