opmsec 0.1.4 → 0.1.5

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 (139) hide show
  1. package/.env.example +1 -0
  2. package/README.md +71 -275
  3. package/bun.lock +3 -3
  4. package/docs/architecture/agents.mdx +11 -59
  5. package/docs/architecture/benchmarks.mdx +20 -46
  6. package/docs/architecture/overview.mdx +31 -38
  7. package/docs/architecture/scanner.mdx +11 -37
  8. package/docs/cli/audit.mdx +9 -12
  9. package/docs/cli/check.mdx +12 -26
  10. package/docs/cli/fix.mdx +10 -30
  11. package/docs/cli/info.mdx +12 -19
  12. package/docs/cli/install.mdx +27 -39
  13. package/docs/cli/push.mdx +40 -57
  14. package/docs/cli/register-agent.mdx +21 -53
  15. package/docs/cli/view.mdx +12 -29
  16. package/docs/concepts/ens-records.mdx +44 -0
  17. package/docs/concepts/multi-agent-consensus.mdx +18 -36
  18. package/docs/concepts/on-chain-registry.mdx +22 -49
  19. package/docs/concepts/security-model.mdx +20 -52
  20. package/docs/concepts/zk-agent-verification.mdx +26 -64
  21. package/docs/contract/events.mdx +13 -74
  22. package/docs/contract/functions.mdx +40 -126
  23. package/docs/contract/overview.mdx +17 -36
  24. package/docs/introduction.mdx +22 -25
  25. package/docs/mint.json +1 -0
  26. package/docs/quickstart.mdx +34 -70
  27. package/docs/system-design.png +0 -0
  28. package/package.json +5 -5
  29. package/packages/cli/src/commands/author-view.tsx +87 -2
  30. package/packages/cli/src/commands/check.tsx +18 -5
  31. package/packages/cli/src/commands/fix.tsx +25 -12
  32. package/packages/cli/src/commands/info.tsx +92 -4
  33. package/packages/cli/src/commands/install.tsx +54 -8
  34. package/packages/cli/src/commands/push.tsx +112 -0
  35. package/packages/cli/src/commands/register-agent.tsx +72 -31
  36. package/packages/cli/src/index.tsx +4 -4
  37. package/packages/cli/src/services/ens-records.ts +525 -0
  38. package/packages/core/src/benchmarks.ts +116 -0
  39. package/packages/core/src/constants.ts +18 -6
  40. package/packages/core/src/model-rankings.ts +40 -15
  41. package/packages/core/src/types.ts +10 -0
  42. package/packages/core/src/utils.ts +3 -3
  43. package/packages/scanner/src/index.ts +2 -1
  44. package/packages/scanner/src/queue/memory-queue.ts +7 -2
  45. package/packages/scanner/src/services/benchmark-runner.ts +86 -1
  46. package/packages/scanner/src/services/fileverse.ts +61 -12
  47. package/packages/web/.next/BUILD_ID +1 -1
  48. package/packages/web/.next/app-build-manifest.json +7 -18
  49. package/packages/web/.next/build-manifest.json +6 -19
  50. package/packages/web/.next/images-manifest.json +1 -1
  51. package/packages/web/.next/required-server-files.json +2 -2
  52. package/packages/web/.next/server/app/_not-found/page.js +2 -2
  53. package/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  54. package/packages/web/.next/server/app/_not-found.html +1 -1
  55. package/packages/web/.next/server/app/_not-found.rsc +4 -2
  56. package/packages/web/.next/server/app/index.html +6 -1
  57. package/packages/web/.next/server/app/index.rsc +5 -3
  58. package/packages/web/.next/server/app/page.js +272 -2
  59. package/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  60. package/packages/web/.next/server/app-paths-manifest.json +0 -1
  61. package/packages/web/.next/server/middleware-build-manifest.js +22 -1
  62. package/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  63. package/packages/web/.next/server/next-font-manifest.js +1 -1
  64. package/packages/web/.next/server/next-font-manifest.json +1 -1
  65. package/packages/web/.next/server/pages/404.html +1 -1
  66. package/packages/web/.next/server/pages/500.html +1 -1
  67. package/packages/web/.next/server/pages-manifest.json +1 -6
  68. package/packages/web/.next/server/server-reference-manifest.js +1 -1
  69. package/packages/web/.next/server/server-reference-manifest.json +5 -1
  70. package/packages/web/.next/server/webpack-runtime.js +209 -1
  71. package/packages/web/.next/static/chunks/174-5b5efcb3b8efcc01.js +1 -0
  72. package/packages/web/.next/static/chunks/app/layout-de8e841104500505.js +1 -0
  73. package/packages/web/.next/static/chunks/app/layout.js +69 -0
  74. package/packages/web/.next/static/chunks/app/page-7e086379698b9fb0.js +1 -0
  75. package/packages/web/.next/static/chunks/app/page.js +357 -0
  76. package/packages/web/.next/static/chunks/{main-ee293fa6aa18bdd1.js → main-4e8d71b5ef7ee7e3.js} +1 -1
  77. package/packages/web/.next/static/chunks/webpack-0dcd67569eb46132.js +1 -0
  78. package/packages/web/.next/static/chunks/webpack.js +1393 -0
  79. package/packages/web/.next/static/css/102562cf2d0ae9b0.css +3 -0
  80. package/packages/web/.next/static/development/_buildManifest.js +1 -0
  81. package/packages/web/.next/static/development/_ssgManifest.js +1 -0
  82. package/packages/web/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  83. package/packages/web/.next/static/media/747892c23ea88013-s.woff2 +0 -0
  84. package/packages/web/.next/static/media/8d697b304b401681-s.woff2 +0 -0
  85. package/packages/web/.next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
  86. package/packages/web/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
  87. package/packages/web/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  88. package/packages/web/.next/static/webpack/16f18baa938a434c.webpack.hot-update.json +1 -0
  89. package/packages/web/.next/static/webpack/5fe9fe8578f9c3d2.webpack.hot-update.json +1 -0
  90. package/packages/web/.next/static/webpack/653e365406c0d9ac.webpack.hot-update.json +1 -0
  91. package/packages/web/.next/static/webpack/6800169a899e3a8b.webpack.hot-update.json +1 -0
  92. package/packages/web/.next/static/webpack/73c7d02260cc80e4.webpack.hot-update.json +1 -0
  93. package/packages/web/.next/static/webpack/a2d85d19aa028de1.webpack.hot-update.json +1 -0
  94. package/packages/web/.next/static/webpack/app/layout.16f18baa938a434c.hot-update.js +22 -0
  95. package/packages/web/.next/static/webpack/app/layout.5fe9fe8578f9c3d2.hot-update.js +22 -0
  96. package/packages/web/.next/static/webpack/app/layout.653e365406c0d9ac.hot-update.js +22 -0
  97. package/packages/web/.next/static/webpack/app/layout.6800169a899e3a8b.hot-update.js +22 -0
  98. package/packages/web/.next/static/webpack/app/layout.73c7d02260cc80e4.hot-update.js +22 -0
  99. package/packages/web/.next/static/webpack/app/layout.a2d85d19aa028de1.hot-update.js +22 -0
  100. package/packages/web/.next/static/webpack/app/page.653e365406c0d9ac.hot-update.js +22 -0
  101. package/packages/web/.next/static/webpack/app/page.6800169a899e3a8b.hot-update.js +22 -0
  102. package/packages/web/.next/static/webpack/app/page.73c7d02260cc80e4.hot-update.js +22 -0
  103. package/packages/web/.next/static/webpack/app/page.a2d85d19aa028de1.hot-update.js +22 -0
  104. package/packages/web/.next/static/webpack/webpack.16f18baa938a434c.hot-update.js +12 -0
  105. package/packages/web/.next/static/webpack/webpack.5fe9fe8578f9c3d2.hot-update.js +12 -0
  106. package/packages/web/.next/static/webpack/webpack.653e365406c0d9ac.hot-update.js +12 -0
  107. package/packages/web/.next/static/webpack/webpack.6800169a899e3a8b.hot-update.js +12 -0
  108. package/packages/web/.next/static/webpack/webpack.73c7d02260cc80e4.hot-update.js +12 -0
  109. package/packages/web/.next/static/webpack/webpack.a2d85d19aa028de1.hot-update.js +12 -0
  110. package/packages/web/.next/trace +2 -2
  111. package/packages/web/app/globals.css +197 -51
  112. package/packages/web/app/layout.tsx +6 -3
  113. package/packages/web/app/page.tsx +791 -312
  114. package/packages/web/bun.lock +66 -105
  115. package/packages/web/next.config.ts +8 -1
  116. package/packages/web/package.json +5 -2
  117. package/packages/web/postcss.config.mjs +2 -2
  118. package/packages/web/public/apple-icon.png +1 -0
  119. package/packages/web/public/dependency-bottleneck.png +0 -0
  120. package/packages/web/public/icon-dark-32x32.png +1 -0
  121. package/packages/web/public/icon-light-32x32.png +1 -0
  122. package/packages/web/public/icon.svg +1 -0
  123. package/packages/web/public/nextjs-cve-announcement.png +0 -0
  124. package/packages/web/public/phantomraven-npm-attack.png +0 -0
  125. package/packages/web/public/placeholder-logo.png +1 -0
  126. package/packages/web/public/placeholder-logo.svg +1 -0
  127. package/packages/web/public/placeholder-user.jpg +1 -0
  128. package/packages/web/public/placeholder.jpg +1 -0
  129. package/packages/web/public/placeholder.svg +1 -0
  130. package/packages/web/public/react-cve-meme.png +0 -0
  131. package/packages/web/public/wallet-drain-exploit.png +0 -0
  132. package/packages/web/styles/globals.css +125 -0
  133. package/packages/web/.next/static/chunks/app/layout-28a489fb4398663f.js +0 -1
  134. package/packages/web/.next/static/chunks/app/page-e58ccdb78625bce6.js +0 -1
  135. package/packages/web/.next/static/chunks/webpack-e1ae44446e7f7355.js +0 -1
  136. package/packages/web/.next/static/css/21d69157e271f2ab.css +0 -3
  137. package/packages/web/tailwind.config.ts +0 -48
  138. /package/packages/web/.next/static/{2XIFCTTKVZwN_RsNE-Rrr → 0esGzFBCzREfVwijEGDfL}/_buildManifest.js +0 -0
  139. /package/packages/web/.next/static/{2XIFCTTKVZwN_RsNE-Rrr → 0esGzFBCzREfVwijEGDfL}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><!--2XIFCTTKVZwN_RsNE_Rrr--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/21d69157e271f2ab.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e1ae44446e7f7355.js"/><script src="/_next/static/chunks/4bd1b696-382748cc942d8a14.js" async=""></script><script src="/_next/static/chunks/255-0dc49b7a6e8e5c05.js" async=""></script><script src="/_next/static/chunks/main-app-dd261207182e5a23.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>OPM | On-chain Package Manager</title><meta name="description" content="Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem."/><meta property="og:title" content="OPM | On-chain Package Manager"/><meta property="og:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="OPM | On-chain Package Manager"/><meta name="twitter:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><link rel="icon" href="/favicon.svg"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-bg text-accent antialiased"><div hidden=""><!--$--><!--/$--></div><div class="noise-overlay"></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-e1ae44446e7f7355.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[4431,[],\"OutletBoundary\"]\n6:I[5278,[],\"AsyncMetadataOutlet\"]\n8:I[4431,[],\"ViewportBoundary\"]\na:I[4431,[],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[7150,[],\"\"]\n:HL[\"/_next/static/css/21d69157e271f2ab.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2XIFCTTKVZwN_RsNE-Rrr\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/21d69157e271f2ab.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-bg text-accent antialiased\",\"children\":[[\"$\",\"div\",null,{\"className\":\"noise-overlay\"}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],null],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"e:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem.\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$Le\",\"9\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--0esGzFBCzREfVwijEGDfL--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/102562cf2d0ae9b0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0dcd67569eb46132.js"/><script src="/_next/static/chunks/4bd1b696-382748cc942d8a14.js" async=""></script><script src="/_next/static/chunks/255-0dc49b7a6e8e5c05.js" async=""></script><script src="/_next/static/chunks/main-app-dd261207182e5a23.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>OPM | On-chain Package Manager</title><meta name="description" content="Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem."/><meta property="og:title" content="OPM | On-chain Package Manager"/><meta property="og:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="OPM | On-chain Package Manager"/><meta name="twitter:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><link rel="icon" href="/favicon.svg"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-0dcd67569eb46132.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[4431,[],\"OutletBoundary\"]\n6:I[5278,[],\"AsyncMetadataOutlet\"]\n8:I[4431,[],\"ViewportBoundary\"]\na:I[4431,[],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[7150,[],\"\"]\n:HL[\"/_next/static/media/4cf2300e9c8272f7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/102562cf2d0ae9b0.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"0esGzFBCzREfVwijEGDfL\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/102562cf2d0ae9b0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"e:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem.\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$Le\",\"9\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
@@ -7,8 +7,10 @@
7
7
  a:I[4431,[],"MetadataBoundary"]
8
8
  b:"$Sreact.suspense"
9
9
  d:I[7150,[],""]
10
- :HL["/_next/static/css/21d69157e271f2ab.css","style"]
11
- 0:{"P":null,"b":"2XIFCTTKVZwN_RsNE-Rrr","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/21d69157e271f2ab.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"className":"bg-bg text-accent antialiased","children":[["$","div",null,{"className":"noise-overlay"}],["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}]}]]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","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."}]}]]}]}]],null,["$","$L4",null,{"children":["$L5",["$","$L6",null,{"promise":"$@7"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$L8",null,{"children":"$L9"}],null],["$","$La",null,{"children":["$","div",null,{"hidden":true,"children":["$","$b",null,{"fallback":null,"children":"$Lc"}]}]}]]}],false]],"m":"$undefined","G":["$d",[]],"s":false,"S":true}
10
+ :HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
11
+ :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
12
+ :HL["/_next/static/css/102562cf2d0ae9b0.css","style"]
13
+ 0:{"P":null,"b":"0esGzFBCzREfVwijEGDfL","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/102562cf2d0ae9b0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","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."}]}]]}]}]],null,["$","$L4",null,{"children":["$L5",["$","$L6",null,{"promise":"$@7"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$L8",null,{"children":"$L9"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$La",null,{"children":["$","div",null,{"hidden":true,"children":["$","$b",null,{"fallback":null,"children":"$Lc"}]}]}]]}],false]],"m":"$undefined","G":["$d",[]],"s":false,"S":true}
12
14
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
13
15
  5:null
14
16
  e:I[622,[],"IconMark"]
@@ -1 +1,6 @@
1
- <!DOCTYPE html><!--2XIFCTTKVZwN_RsNE_Rrr--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/21d69157e271f2ab.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e1ae44446e7f7355.js"/><script src="/_next/static/chunks/4bd1b696-382748cc942d8a14.js" async=""></script><script src="/_next/static/chunks/255-0dc49b7a6e8e5c05.js" async=""></script><script src="/_next/static/chunks/main-app-dd261207182e5a23.js" async=""></script><script src="/_next/static/chunks/app/page-e58ccdb78625bce6.js" async=""></script><title>OPM | On-chain Package Manager</title><meta name="description" content="Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem."/><meta property="og:title" content="OPM | On-chain Package Manager"/><meta property="og:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="OPM | On-chain Package Manager"/><meta name="twitter:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><link rel="icon" href="/favicon.svg"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-bg text-accent antialiased"><div hidden=""><!--$--><!--/$--></div><div class="noise-overlay"></div><main><nav class="fixed top-0 left-0 right-0 z-40 transition-all duration-300 "><div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between"><a href="/" class="flex items-center gap-2.5 hover:opacity-80 transition-opacity"><svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" width="24" height="24"><rect width="32" height="32" rx="6" fill="#ededed"></rect><path d="M8 10L12 22L16 13L20 22L24 10" stroke="#0a0a0a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><circle cx="16" cy="24" r="1.5" fill="#16a34a"></circle></svg><span class="text-lg font-semibold tracking-tight">opm</span><span class="text-[10px] font-mono text-muted bg-surface px-1.5 py-0.5 rounded border border-border">v0.1.3</span></a><div class="flex items-center gap-8"><a href="#features" class="text-sm text-muted hover:text-accent transition-colors">Features</a><a href="#cli" class="text-sm text-muted hover:text-accent transition-colors">CLI</a><a href="https://opm.mintlify.app" target="_blank" rel="noopener" class="text-sm text-muted hover:text-accent transition-colors">Docs</a><a href="https://www.npmjs.com/package/opmsec" target="_blank" rel="noopener" class="text-sm text-muted hover:text-accent transition-colors">npm</a><a href="https://github.com/dhananjaypai08/opm" target="_blank" rel="noopener" class="text-sm text-muted hover:text-accent transition-colors">GitHub</a><a href="https://sepolia.basescan.org/address/0x16684391fc9bf48246B08Afe16d1a57BFa181d48" target="_blank" rel="noopener" class="text-sm font-mono text-muted hover:text-accent transition-colors flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse"></span>Base Sepolia</a></div></div></nav><section class="relative min-h-screen flex items-center justify-center grid-bg overflow-hidden"><div class="absolute inset-0"><div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] rounded-full bg-gradient-radial from-white/[0.02] to-transparent animate-glow-pulse"></div></div><div class="relative z-10 max-w-4xl mx-auto px-6 text-center"><div class="animate-fade-in"><div class="inline-flex items-center gap-2 text-xs font-mono text-muted mb-8 px-3 py-1.5 rounded-full border border-border bg-surface/50"><span class="w-1.5 h-1.5 rounded-full bg-green-500"></span>Secured by multi-agent consensus on Base L2</div></div><h1 class="text-6xl md:text-8xl font-bold tracking-tighter leading-[0.9] mb-6 animate-slide-up" style="animation-delay:0.1s;animation-fill-mode:backwards">On-chain<br/><span class="text-transparent bg-clip-text bg-gradient-to-r from-white via-white/90 to-white/40">Package Security</span></h1><p class="text-lg md:text-xl text-muted max-w-2xl mx-auto mb-12 leading-relaxed animate-slide-up" style="animation-delay:0.3s;animation-fill-mode:backwards">Cryptographic attestation, multi-model AI auditing, and immutable risk scoring for every npm package. All verified on-chain.</p><div class="flex flex-col sm:flex-row items-center justify-center gap-4 animate-slide-up" style="animation-delay:0.5s;animation-fill-mode:backwards"><div class="group relative"><div class="absolute -inset-0.5 bg-gradient-to-r from-white/20 to-white/5 rounded-lg opacity-0 group-hover:opacity-100 transition-opacity blur-sm"></div><code class="relative flex items-center gap-3 bg-surface border border-border rounded-lg px-5 py-3 font-mono text-sm cursor-pointer hover:border-border-light transition-colors"><span class="text-muted">$</span><span>npm i -g opmsec</span><span class="text-muted/50">|</span><span class="text-muted text-xs">then: opm install <!-- -->&lt;pkg&gt;</span></code></div><a href="https://opm.mintlify.app" target="_blank" rel="noopener" class="px-5 py-3 text-sm font-medium text-bg bg-accent rounded-lg hover:bg-white transition-colors">Read the docs</a></div></div><div class="absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-bg to-transparent"></div></section><section id="features" class="py-32 px-6"><div class="max-w-6xl mx-auto"><div class="text-center mb-20"><p class="text-xs font-mono text-muted mb-4 tracking-widest uppercase">Security Primitives</p><h2 class="text-4xl md:text-5xl font-bold tracking-tight">Defense in depth,<br/>by default.</h2></div><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-px bg-border rounded-2xl overflow-hidden"><div class="bg-surface p-8 hover:bg-surface-hover transition-colors group"><span class="text-2xl mb-4 block opacity-40 group-hover:opacity-100 transition-opacity">⬡</span><h3 class="text-lg font-semibold mb-3">Multi-Agent Consensus</h3><p class="text-sm text-muted leading-relaxed mb-4">Three independent LLMs (Claude, Gemini, DeepSeek) analyze every package in parallel. Risk scores are intelligence-weighted using live Artificial Analysis benchmarks.</p><p class="text-xs font-mono text-muted/60 leading-relaxed">No single model failure point. Weighted aggregate scoring with model intelligence and coding indices.</p></div><div class="bg-surface p-8 hover:bg-surface-hover transition-colors group"><span class="text-2xl mb-4 block opacity-40 group-hover:opacity-100 transition-opacity">◈</span><h3 class="text-lg font-semibold mb-3">Cryptographic Attestation</h3><p class="text-sm text-muted leading-relaxed mb-4">Every package is checksummed, signed with the author&#x27;s wallet, and registered on Base L2. Signatures are verified at install time.</p><p class="text-xs font-mono text-muted/60 leading-relaxed">SHA-256 checksum, ECDSA signature, on-chain registration. Tamper-evident by design.</p></div><div class="bg-surface p-8 hover:bg-surface-hover transition-colors group"><span class="text-2xl mb-4 block opacity-40 group-hover:opacity-100 transition-opacity">◎</span><h3 class="text-lg font-semibold mb-3">ZK-Verified Agent Registration</h3><p class="text-sm text-muted leading-relaxed mb-4">Permissionless agent onboarding with zero-knowledge proof of benchmark accuracy. Agents must achieve 100% on labeled security datasets to participate.</p><p class="text-xs font-mono text-muted/60 leading-relaxed">Hash-commitment scheme with circom circuit reference. Accuracy proven without revealing test data.</p></div><div class="bg-surface p-8 hover:bg-surface-hover transition-colors group"><span class="text-2xl mb-4 block opacity-40 group-hover:opacity-100 transition-opacity">▣</span><h3 class="text-lg font-semibold mb-3">On-chain Risk Registry</h3><p class="text-sm text-muted leading-relaxed mb-4">Immutable risk scores, author profiles, and audit reports stored on Base Sepolia. Every security assessment is a verifiable public record.</p><p class="text-xs font-mono text-muted/60 leading-relaxed">OPMRegistry.sol: authorizedAgents, packages, versionData, AgentScores. Fully queryable.</p></div><div class="bg-surface p-8 hover:bg-surface-hover transition-colors group"><span class="text-2xl mb-4 block opacity-40 group-hover:opacity-100 transition-opacity">◬</span><h3 class="text-lg font-semibold mb-3">CVE + Typosquat Detection</h3><p class="text-sm text-muted leading-relaxed mb-4">OSV database integration for known vulnerabilities. Levenshtein-distance typosquat detection against the top 10,000 npm packages.</p><p class="text-xs font-mono text-muted/60 leading-relaxed">Real-time CVE lookups, automated fix suggestions, dependency confusion detection.</p></div><div class="bg-surface p-8 hover:bg-surface-hover transition-colors group"><span class="text-2xl mb-4 block opacity-40 group-hover:opacity-100 transition-opacity">◯</span><h3 class="text-lg font-semibold mb-3">Drop-in npm Replacement</h3><p class="text-sm text-muted leading-relaxed mb-4">Full CLI compatibility: install, audit, check, push, fix. Every npm command works transparently with security verification layered on top.</p><p class="text-xs font-mono text-muted/60 leading-relaxed">opm install = npm install + on-chain verification + signature check + CVE scan.</p></div></div></div></section><section id="architecture" class="py-32 px-6 border-t border-border"><div class="max-w-6xl mx-auto"><div class="text-center mb-20"><p class="text-xs font-mono text-muted mb-4 tracking-widest uppercase">System Design</p><h2 class="text-4xl md:text-5xl font-bold tracking-tight">Verification pipeline</h2></div><div class="relative"><div class="grid grid-cols-1 md:grid-cols-5 gap-4"><div class="relative"><div class="bg-gradient-to-b from-white/5 to-transparent border border-border rounded-xl p-6 h-full"><span class="text-xs font-mono text-muted block mb-3">01</span><h3 class="text-sm font-semibold mb-2">Pack &amp; Sign</h3><p class="text-xs text-muted leading-relaxed">SHA-256 checksum, ECDSA signature via author wallet</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-border"></div></div><div class="relative"><div class="bg-gradient-to-b from-white/5 to-transparent border border-border rounded-xl p-6 h-full"><span class="text-xs font-mono text-muted block mb-3">02</span><h3 class="text-sm font-semibold mb-2">Multi-Agent Scan</h3><p class="text-xs text-muted leading-relaxed">3 LLMs analyze source in parallel, each submits risk score</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-border"></div></div><div class="relative"><div class="bg-gradient-to-b from-white/5 to-transparent border border-border rounded-xl p-6 h-full"><span class="text-xs font-mono text-muted block mb-3">03</span><h3 class="text-sm font-semibold mb-2">Weighted Consensus</h3><p class="text-xs text-muted leading-relaxed">Intelligence-weighted aggregate via Artificial Analysis indices</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-border"></div></div><div class="relative"><div class="bg-gradient-to-b from-white/5 to-transparent border border-border rounded-xl p-6 h-full"><span class="text-xs font-mono text-muted block mb-3">04</span><h3 class="text-sm font-semibold mb-2">On-chain Registry</h3><p class="text-xs text-muted leading-relaxed">Package, scores, report URI registered on Base Sepolia</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-border"></div></div><div class="relative"><div class="bg-gradient-to-b from-white/5 to-transparent border border-border rounded-xl p-6 h-full"><span class="text-xs font-mono text-muted block mb-3">05</span><h3 class="text-sm font-semibold mb-2">Install Verify</h3><p class="text-xs text-muted leading-relaxed">Signature + on-chain score + CVE check at install time</p></div></div></div></div><div class="mt-20 grid grid-cols-1 md:grid-cols-3 gap-8"><div class="border border-border rounded-xl p-6 bg-surface/50"><p class="text-xs font-mono text-green-500/80 mb-3">CHAIN</p><p class="text-sm font-semibold mb-1">Base Sepolia (L2)</p><p class="text-xs text-muted">Low-cost, high-throughput settlement for agent score submissions and package registrations.</p></div><div class="border border-border rounded-xl p-6 bg-surface/50"><p class="text-xs font-mono text-blue-400/80 mb-3">STORAGE</p><p class="text-sm font-semibold mb-1">Fileverse (IPFS)</p><p class="text-xs text-muted">Full audit reports uploaded to decentralized storage. URI stored on-chain for permanent reference.</p></div><div class="border border-border rounded-xl p-6 bg-surface/50"><p class="text-xs font-mono text-purple-400/80 mb-3">IDENTITY</p><p class="text-sm font-semibold mb-1">ENS Resolution</p><p class="text-xs text-muted">Author addresses resolved to ENS names. On-chain author profiles with reputation scoring.</p></div></div></div></section><section id="cli" class="py-32 px-6 border-t border-border"><div class="max-w-6xl mx-auto"><div class="grid grid-cols-1 lg:grid-cols-2 gap-16"><div><p class="text-xs font-mono text-muted mb-4 tracking-widest uppercase">CLI Reference</p><h2 class="text-4xl font-bold tracking-tight mb-6">Every command,<br/>security-first.</h2><p class="text-muted leading-relaxed mb-8">Drop-in replacement for npm. Every operation gains cryptographic verification, AI-powered auditing, and on-chain attestation transparently.</p><a href="https://opm.mintlify.app" target="_blank" rel="noopener" class="inline-flex items-center gap-2 text-sm font-medium px-4 py-2 border border-border rounded-lg hover:bg-surface transition-colors">Full CLI documentation</a></div><div class="terminal-glow rounded-xl border border-border bg-surface overflow-hidden"><div class="flex items-center gap-2 px-4 py-3 border-b border-border"><div class="w-3 h-3 rounded-full bg-[#ff5f57]"></div><div class="w-3 h-3 rounded-full bg-[#febc2e]"></div><div class="w-3 h-3 rounded-full bg-[#28c840]"></div><span class="ml-2 text-xs text-muted font-mono">terminal</span></div><div class="p-5 font-mono text-sm space-y-3"><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm push</span><span class="text-muted/50 text-xs block mt-0.5">Sign, scan with 3 AI agents, publish, register on-chain</span></div></div><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm install &lt;pkg&gt;</span><span class="text-muted/50 text-xs block mt-0.5">Install with signature + on-chain + CVE verification</span></div></div><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm check</span><span class="text-muted/50 text-xs block mt-0.5">Scan all deps: typosquats, CVEs, AI analysis, Fileverse report</span></div></div><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm fix</span><span class="text-muted/50 text-xs block mt-0.5">Auto-fix typosquats and vulnerable versions</span></div></div><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm audit</span><span class="text-muted/50 text-xs block mt-0.5">On-chain + CVE audit for entire dependency tree</span></div></div><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm info &lt;pkg&gt;</span><span class="text-muted/50 text-xs block mt-0.5">On-chain metadata, agent scores, safest version</span></div></div><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm register-agent</span><span class="text-muted/50 text-xs block mt-0.5">Register a new security agent (ZK-verified)</span></div></div><div class="flex gap-3"><span class="text-muted shrink-0">$</span><div><span class="text-green-400">opm view &lt;name.eth&gt;</span><span class="text-muted/50 text-xs block mt-0.5">ENS author profile, reputation, published packages</span></div></div></div></div></div></div></section><section class="py-32 px-6 border-t border-border"><div class="max-w-4xl mx-auto text-center"><p class="text-xs font-mono text-muted mb-4 tracking-widest uppercase">Smart Contract</p><h2 class="text-4xl font-bold tracking-tight mb-6">Fully on-chain. Fully verifiable.</h2><p class="text-muted max-w-2xl mx-auto mb-12">OPMRegistry.sol deployed on Base Sepolia. Every package registration, agent score submission, and author profile is an immutable on-chain record.</p><div class="grid grid-cols-2 md:grid-cols-4 gap-px bg-border rounded-xl overflow-hidden mb-12"><div class="bg-surface p-6"><p class="text-xs text-muted mb-1">Registered</p><p class="text-sm font-semibold">Packages</p></div><div class="bg-surface p-6"><p class="text-xs text-muted mb-1">Submitted</p><p class="text-sm font-semibold">Agent Scores</p></div><div class="bg-surface p-6"><p class="text-xs text-muted mb-1">Verified</p><p class="text-sm font-semibold">Authors</p></div><div class="bg-surface p-6"><p class="text-xs text-muted mb-1">On IPFS</p><p class="text-sm font-semibold">Reports</p></div></div><div class="inline-flex items-center gap-3"><a href="https://sepolia.basescan.org/address/0x16684391fc9bf48246B08Afe16d1a57BFa181d48" target="_blank" rel="noopener" class="flex items-center gap-2 text-sm font-mono text-muted hover:text-accent transition-colors px-4 py-2 border border-border rounded-lg"><span class="w-2 h-2 rounded-full bg-green-500"></span>View on BaseScan</a><a href="https://github.com/dhananjaypai08/opm/blob/main/packages/contracts/contracts/OPMRegistry.sol" target="_blank" rel="noopener" class="flex items-center gap-2 text-sm text-muted hover:text-accent transition-colors px-4 py-2 border border-border rounded-lg">Source Code</a></div></div></section><footer class="border-t border-border py-12 px-6"><div class="max-w-6xl mx-auto flex flex-col md:flex-row items-center justify-between gap-6"><a href="/" class="flex items-center gap-2.5 hover:opacity-80 transition-opacity"><svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" width="18" height="18"><rect width="32" height="32" rx="6" fill="#ededed"></rect><path d="M8 10L12 22L16 13L20 22L24 10" stroke="#0a0a0a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><circle cx="16" cy="24" r="1.5" fill="#16a34a"></circle></svg><span class="font-semibold tracking-tight">opm</span><span class="text-xs text-muted">On-chain Package Manager</span></a><div class="flex items-center gap-6 text-sm text-muted"><a href="https://opm.mintlify.app" target="_blank" rel="noopener" class="hover:text-accent transition-colors">Docs</a><a href="https://github.com/dhananjaypai08/opm" target="_blank" rel="noopener" class="hover:text-accent transition-colors">GitHub</a><a href="https://www.npmjs.com/package/opmsec" target="_blank" rel="noopener" class="hover:text-accent transition-colors">npm</a><a href="https://sepolia.basescan.org/address/0x16684391fc9bf48246B08Afe16d1a57BFa181d48" target="_blank" rel="noopener" class="hover:text-accent transition-colors">Contract</a></div><p class="text-xs text-muted/50">MIT License</p></div></footer></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-e1ae44446e7f7355.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[1959,[],\"ClientPageRoot\"]\n5:I[7322,[\"974\",\"static/chunks/app/page-e58ccdb78625bce6.js\"],\"default\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/css/21d69157e271f2ab.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2XIFCTTKVZwN_RsNE-Rrr\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/21d69157e271f2ab.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-bg text-accent antialiased\",\"children\":[[\"$\",\"div\",null,{\"className\":\"noise-overlay\"}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}],null,[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem.\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L12\",\"9\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--0esGzFBCzREfVwijEGDfL--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/102562cf2d0ae9b0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0dcd67569eb46132.js"/><script src="/_next/static/chunks/4bd1b696-382748cc942d8a14.js" async=""></script><script src="/_next/static/chunks/255-0dc49b7a6e8e5c05.js" async=""></script><script src="/_next/static/chunks/main-app-dd261207182e5a23.js" async=""></script><script src="/_next/static/chunks/174-5b5efcb3b8efcc01.js" async=""></script><script src="/_next/static/chunks/app/page-7e086379698b9fb0.js" async=""></script><meta name="next-size-adjust" content=""/><title>OPM | On-chain Package Manager</title><meta name="description" content="Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem."/><meta property="og:title" content="OPM | On-chain Package Manager"/><meta property="og:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="OPM | On-chain Package Manager"/><meta name="twitter:description" content="Cryptographically signed, AI-audited, on-chain verified package security."/><link rel="icon" href="/favicon.svg"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-black text-white font-mono overflow-hidden relative"><nav class="border-b border-gray-800 bg-gray-950/95 backdrop-blur-sm p-4 relative z-10 sticky top-0"><div class="flex items-center justify-between max-w-7xl mx-auto"><div class="flex items-center gap-6"><div class="flex items-center gap-3"><div class="flex gap-2"><div class="w-3 h-3 bg-red-500 hover:bg-red-400 transition-colors cursor-pointer"></div><div class="w-3 h-3 bg-yellow-500 hover:bg-yellow-400 transition-colors cursor-pointer"></div><div class="w-3 h-3 bg-green-500 hover:bg-green-400 transition-colors cursor-pointer"></div></div><div class="flex items-center gap-2"><span class="text-white font-bold text-lg">OPM</span><span class="text-gray-400 text-sm">on-chain package manager</span></div></div><div class="hidden md:flex items-center gap-8 ml-8"><a href="#why" class="text-gray-400 hover:text-white transition-colors cursor-pointer relative group"><span>Why OPM?</span><div class="absolute bottom-0 left-0 w-0 h-0.5 bg-white transition-all duration-300 group-hover:w-full"></div></a><a href="#features" class="text-gray-400 hover:text-white transition-colors cursor-pointer relative group"><span>Features</span><div class="absolute bottom-0 left-0 w-0 h-0.5 bg-white transition-all duration-300 group-hover:w-full"></div></a><a href="#agents" class="text-gray-400 hover:text-white transition-colors cursor-pointer relative group"><span>AI Agents</span><div class="absolute bottom-0 left-0 w-0 h-0.5 bg-white transition-all duration-300 group-hover:w-full"></div></a><a href="#cli" class="text-gray-400 hover:text-white transition-colors cursor-pointer relative group"><span>CLI</span><div class="absolute bottom-0 left-0 w-0 h-0.5 bg-white transition-all duration-300 group-hover:w-full"></div></a><a href="https://opm.mintlify.app" target="_blank" rel="noopener" class="text-gray-400 hover:text-white transition-colors cursor-pointer relative group"><span>Docs</span><div class="absolute bottom-0 left-0 w-0 h-0.5 bg-white transition-all duration-300 group-hover:w-full"></div></a><a href="https://sepolia.basescan.org/address/0x16684391fc9bf48246B08Afe16d1a57BFa181d48" target="_blank" rel="noopener" class="text-gray-400 hover:text-white transition-colors cursor-pointer relative group flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse"></span><span>Base Sepolia</span><div class="absolute bottom-0 left-0 w-0 h-0.5 bg-white transition-all duration-300 group-hover:w-full"></div></a></div></div><div class="flex items-center gap-4"><div class="hidden sm:flex items-center gap-2 text-gray-500 text-xs"><div class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div><span>v0.1.3</span></div><div class="group relative cursor-pointer"><div class="absolute inset-0 border border-gray-600 bg-gray-900/20 transition-all duration-300 group-hover:border-white group-hover:shadow-lg group-hover:shadow-white/20"></div><div class="relative border border-gray-400 bg-transparent text-white font-medium px-6 py-2 text-sm transition-all duration-300 group-hover:border-white group-hover:bg-gray-900/30 transform translate-x-0.5 translate-y-0.5 group-hover:translate-x-0 group-hover:translate-y-0"><div class="flex items-center gap-2"><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-copy w-4 h-4 text-gray-400" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg><span class="text-gray-400">$</span><span>Install</span></div></div></div></div></div></nav><div class="fixed inset-0 opacity-10 pointer-events-none"><div class="grid grid-cols-25 gap-1 h-full"></div></div><section class="relative px-6 py-20 lg:px-12"><div class="max-w-7xl mx-auto"><div class="text-center mb-16"><div class="mb-8"><pre class="text-white text-[10px] sm:text-sm md:text-xl lg:text-2xl font-bold leading-tight inline-block tracking-wide drop-shadow-[0_0_12px_rgba(255,255,255,0.3)]">██████╗ ██████╗ ███╗ ███╗
2
+ ██╔═══██╗██╔══██╗████╗ ████║
3
+ ██║ ██║██████╔╝██╔████╔██║
4
+ ██║ ██║██╔═══╝ ██║╚██╔╝██║
5
+ ╚██████╔╝██║ ██║ ╚═╝ ██║
6
+ ╚═════╝ ╚═╝ ╚═╝ ╚═╝</pre></div><h1 class="text-4xl lg:text-6xl font-bold mb-6 leading-tight">On-chain<br/><span class="bg-gradient-to-r from-white to-gray-400 bg-clip-text text-transparent">Package Security</span></h1><p class="text-lg text-gray-300 leading-relaxed max-w-3xl mx-auto mb-8">Cryptographic attestation via ECDSA-signed manifests, multi-model AI auditing through intelligence-weighted LLM consensus, and immutable risk scoring anchored to Base L2. Zero-knowledge agent verification. Tamper-evident by design.</p><div class="flex flex-col sm:flex-row gap-6 justify-center items-center"><div class="group relative cursor-pointer w-full sm:w-auto"><div class="absolute inset-0 border border-gray-600 bg-gray-900/20 transition-all duration-300 group-hover:border-white group-hover:shadow-lg group-hover:shadow-white/20"></div><div class="relative border border-white bg-white text-black font-bold px-6 sm:px-10 py-4 text-base sm:text-lg transition-all duration-300 group-hover:bg-gray-100 group-hover:text-black transform translate-x-1 translate-y-1 group-hover:translate-x-0 group-hover:translate-y-0 text-center"><div class="flex items-center justify-center gap-2 sm:gap-3"><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-copy w-4 h-4 sm:w-5 sm:h-5 text-gray-600" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg><span class="text-gray-600 text-sm sm:text-base">$</span><span class="text-sm sm:text-base">npm install -g opmsec</span></div></div></div><a href="https://opm.mintlify.app" target="_blank" rel="noopener" class="group relative cursor-pointer w-full sm:w-auto"><div class="absolute inset-0 border-2 border-dashed border-gray-600 bg-gray-900/20 transition-all duration-300 group-hover:border-white group-hover:shadow-lg group-hover:shadow-white/20"></div><div class="relative border-2 border-dashed border-gray-400 bg-transparent text-white font-bold px-10 py-4 text-lg transition-all duration-300 group-hover:border-white group-hover:bg-gray-900/30 transform translate-x-1 translate-y-1 group-hover:translate-x-0 group-hover:translate-y-0"><div class="flex items-center gap-3"><span class="text-gray-400">→</span><span>Read the Docs</span></div></div></a></div></div><div class="max-w-4xl mx-auto"><div class="bg-gray-950 border border-gray-700 shadow-2xl backdrop-blur-sm"><div class="flex items-center justify-between px-6 py-4 bg-gray-900 border-b border-gray-700"><div class="flex items-center gap-3"><div class="flex gap-2"><div class="w-3 h-3 bg-red-500 hover:bg-red-400 transition-colors cursor-pointer"></div><div class="w-3 h-3 bg-yellow-500 hover:bg-yellow-400 transition-colors cursor-pointer"></div><div class="w-3 h-3 bg-green-500 hover:bg-green-400 transition-colors cursor-pointer"></div></div><span class="text-gray-400 text-sm">opm-terminal</span></div><div class="flex items-center gap-2"><div class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div><span class="text-gray-500 text-xs">LIVE</span></div></div><div class="p-6 min-h-[300px] bg-black"><div class="space-y-2 text-sm"><div class="text-white"><span class="text-green-400">user@dev</span><span class="text-gray-500">:</span><span class="text-blue-400">~/project</span><span class="text-white">$ </span><span class="text-white"></span><span class="text-white opacity-100 transition-opacity">█</span></div></div><div class="mt-6 pt-4 border-t border-gray-800 flex justify-between text-xs text-gray-500"><div class="flex items-center gap-4"><span class="text-gray-500">Commands:</span><span class="text-white">1<!-- -->/<!-- -->3</span></div><div class="flex items-center gap-4"><span class="text-gray-500">Agents:</span><span class="text-gray-500">3 Active</span></div><div class="flex items-center gap-4"><span class="text-gray-500">Chain:</span><span class="text-gray-500">Base Sepolia</span></div></div></div></div></div><div class="text-center mt-12 mb-10 max-w-4xl mx-auto"><h2 class="text-3xl lg:text-4xl font-bold mb-4">Every command, security-first.</h2><p class="text-lg text-gray-400 max-w-3xl mx-auto">Drop-in replacement for npm. Every operation gains cryptographic verification, AI-powered auditing, and on-chain attestation transparently.</p></div><div class="grid grid-cols-1 md:grid-cols-3 gap-6 max-w-4xl mx-auto mt-10"><div class="group relative h-full"><div class="absolute inset-0 bg-gradient-to-br from-gray-800 to-gray-900 transform rotate-1 group-hover:rotate-2 transition-transform duration-300"></div><div class="relative bg-black border border-gray-700 p-6 h-full flex flex-col justify-between hover:border-white transition-all duration-300 group-hover:shadow-xl group-hover:shadow-white/10"><div class="text-center flex-1 flex flex-col justify-between"><div><div class="w-12 h-12 mx-auto mb-4 bg-gray-900 border border-gray-600 flex items-center justify-center group-hover:border-white transition-colors group-hover:bg-gray-800"><span class="text-lg font-mono text-white group-hover:text-gray-100">01</span></div><h3 class="text-lg font-bold mb-3 text-white group-hover:text-gray-100">Push</h3><p class="text-gray-400 mb-4 group-hover:text-gray-300 text-sm leading-relaxed">ECDSA-sign package manifest, dispatch to 3 independent LLM agents for parallel static analysis, aggregate weighted risk scores, register immutable attestation on Base L2</p></div><div class="bg-gray-900 border border-gray-700 p-2.5 font-mono text-xs text-left group-hover:border-gray-500 transition-colors group-hover:bg-gray-800 cursor-pointer flex items-center justify-between"><div class="flex items-center gap-2"><span class="text-gray-500">$ </span><span class="text-white group-hover:text-gray-100">opm push</span></div><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-copy w-3 h-3 text-gray-400 hover:text-white transition-colors" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></div></div></div></div><div class="group relative h-full"><div class="absolute inset-0 bg-gradient-to-br from-gray-800 to-gray-900 transform rotate-1 group-hover:rotate-2 transition-transform duration-300"></div><div class="relative bg-black border border-gray-700 p-6 h-full flex flex-col justify-between hover:border-white transition-all duration-300 group-hover:shadow-xl group-hover:shadow-white/10"><div class="text-center flex-1 flex flex-col justify-between"><div><div class="w-12 h-12 mx-auto mb-4 bg-gray-900 border border-gray-600 flex items-center justify-center group-hover:border-white transition-colors group-hover:bg-gray-800"><span class="text-lg font-mono text-white group-hover:text-gray-100">02</span></div><h3 class="text-lg font-bold mb-3 text-white group-hover:text-gray-100">Install</h3><p class="text-gray-400 mb-4 group-hover:text-gray-300 text-sm leading-relaxed">Resolve ENS identity, verify ECDSA signature against on-chain registry, validate SHA-256 checksum, cross-reference OSV CVE database before extraction</p></div><div class="bg-gray-900 border border-gray-700 p-2.5 font-mono text-xs text-left group-hover:border-gray-500 transition-colors group-hover:bg-gray-800 cursor-pointer flex items-center justify-between"><div class="flex items-center gap-2"><span class="text-gray-500">$ </span><span class="text-white group-hover:text-gray-100">opm install &lt;pkg&gt;</span></div><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-copy w-3 h-3 text-gray-400 hover:text-white transition-colors" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></div></div></div></div><div class="group relative h-full"><div class="absolute inset-0 bg-gradient-to-br from-gray-800 to-gray-900 transform rotate-1 group-hover:rotate-2 transition-transform duration-300"></div><div class="relative bg-black border border-gray-700 p-6 h-full flex flex-col justify-between hover:border-white transition-all duration-300 group-hover:shadow-xl group-hover:shadow-white/10"><div class="text-center flex-1 flex flex-col justify-between"><div><div class="w-12 h-12 mx-auto mb-4 bg-gray-900 border border-gray-600 flex items-center justify-center group-hover:border-white transition-colors group-hover:bg-gray-800"><span class="text-lg font-mono text-white group-hover:text-gray-100">03</span></div><h3 class="text-lg font-bold mb-3 text-white group-hover:text-gray-100">Check</h3><p class="text-gray-400 mb-4 group-hover:text-gray-300 text-sm leading-relaxed">Traverse full dependency DAG, run Levenshtein-distance typosquat detection against top 10k packages, OSV CVE lookup, upload report to Fileverse (IPFS)</p></div><div class="bg-gray-900 border border-gray-700 p-2.5 font-mono text-xs text-left group-hover:border-gray-500 transition-colors group-hover:bg-gray-800 cursor-pointer flex items-center justify-between"><div class="flex items-center gap-2"><span class="text-gray-500">$ </span><span class="text-white group-hover:text-gray-100">opm check</span></div><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-copy w-3 h-3 text-gray-400 hover:text-white transition-colors" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></div></div></div></div></div></div></section><section class="px-6 py-24 lg:px-12 border-t border-gray-800 relative overflow-hidden" id="why"><div class="absolute inset-0 bg-gradient-to-b from-red-950/10 via-transparent to-transparent pointer-events-none"></div><div class="max-w-7xl mx-auto relative z-10"><div class="text-center mb-8"><div class="inline-flex items-center gap-2 px-4 py-1.5 border border-red-900/60 bg-red-950/30 text-red-400 text-xs font-mono tracking-widest uppercase mb-6"><span class="w-1.5 h-1.5 rounded-full bg-red-500 animate-pulse"></span>Active Threat Landscape</div><h2 class="text-4xl lg:text-6xl font-bold mb-6 leading-tight">This is happening<br/><span class="text-red-400">right now.</span></h2><p class="text-lg text-gray-400 max-w-2xl mx-auto">Supply chain attacks on npm aren&#x27;t theoretical. Developers are losing money, shipping CVEs, and installing malware — every single week.</p></div><div class="grid grid-cols-2 md:grid-cols-4 gap-px bg-gray-800 max-w-4xl mx-auto mb-16"><div class="bg-black p-6 text-center group hover:bg-gray-950 transition-colors"><p class="text-2xl lg:text-3xl font-bold text-white mb-1 group-hover:text-red-400 transition-colors">6,847</p><p class="text-sm text-gray-300 font-medium">Malicious packages</p><p class="text-xs text-gray-600 mt-1">removed from npm in 2025</p></div><div class="bg-black p-6 text-center group hover:bg-gray-950 transition-colors"><p class="text-2xl lg:text-3xl font-bold text-white mb-1 group-hover:text-red-400 transition-colors">$15M+</p><p class="text-sm text-gray-300 font-medium">Developer losses</p><p class="text-xs text-gray-600 mt-1">from wallet drainer packages</p></div><div class="bg-black p-6 text-center group hover:bg-gray-950 transition-colors"><p class="text-2xl lg:text-3xl font-bold text-white mb-1 group-hover:text-red-400 transition-colors">23%</p><p class="text-sm text-gray-300 font-medium">Projects affected</p><p class="text-xs text-gray-600 mt-1">by known CVEs in deps</p></div><div class="bg-black p-6 text-center group hover:bg-gray-950 transition-colors"><p class="text-2xl lg:text-3xl font-bold text-white mb-1 group-hover:text-red-400 transition-colors">4 hrs</p><p class="text-sm text-gray-300 font-medium">Avg time to detect</p><p class="text-xs text-gray-600 mt-1">a supply chain attack</p></div></div><div class="grid grid-cols-1 md:grid-cols-12 gap-4 max-w-6xl mx-auto"><div class="md:col-span-7 group relative"><div class="absolute inset-0 bg-red-950/20 transform rotate-[0.5deg] group-hover:rotate-0 transition-transform duration-500"></div><div class="relative bg-gray-950 border border-gray-800 group-hover:border-red-900/50 transition-all duration-500 overflow-hidden"><div class="px-4 py-2.5 bg-gray-900 border-b border-gray-800 flex items-center justify-between"><div class="flex items-center gap-2"><span class="w-2 h-2 rounded-full bg-red-500"></span><span class="text-xs text-gray-400 font-mono">cyberpress.org — March 2026</span></div><span class="text-[10px] text-red-400 font-mono tracking-wider uppercase">Supply Chain Attack</span></div><div class="relative aspect-[16/9] overflow-hidden"><img alt="PhantomRaven malware targeting npm supply chain" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-top opacity-90 group-hover:opacity-100 group-hover:scale-[1.02] transition-all duration-700" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/phantomraven-npm-attack.png"/><div class="absolute inset-0 bg-gradient-to-t from-gray-950 via-transparent to-transparent"></div></div><div class="p-5"><h3 class="text-lg font-bold text-white mb-1">PhantomRaven Targets npm Supply Chain</h3><p class="text-sm text-gray-400">Malware campaign targeting developer secrets through typosquatted packages. Thousands of downloads before detection.</p></div></div></div><div class="md:col-span-5 flex flex-col gap-4"><div class="group relative flex-1"><div class="relative bg-gray-950 border border-gray-800 group-hover:border-red-900/50 transition-all duration-500 overflow-hidden h-full"><div class="px-4 py-2.5 bg-gray-900 border-b border-gray-800 flex items-center justify-between"><div class="flex items-center gap-2"><span class="w-2 h-2 rounded-full bg-red-500"></span><span class="text-xs text-gray-400 font-mono">@imanishbarnwal</span></div><span class="text-[10px] text-red-400 font-mono tracking-wider uppercase">Funds Lost</span></div><div class="relative aspect-[16/10] overflow-hidden"><img alt="Developer lost money from silent dev environment exploit" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-top opacity-90 group-hover:opacity-100 group-hover:scale-[1.02] transition-all duration-700" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/wallet-drain-exploit.png"/><div class="absolute inset-0 bg-gradient-to-t from-gray-950 via-transparent to-transparent"></div></div><div class="p-4"><p class="text-sm text-gray-300 font-medium">“I lost a significant amount of money due to a silent, zero-interaction dev environment exploit.”</p></div></div></div></div><div class="md:col-span-4 group relative"><div class="relative bg-gray-950 border border-gray-800 group-hover:border-orange-900/50 transition-all duration-500 overflow-hidden"><div class="px-4 py-2.5 bg-gray-900 border-b border-gray-800 flex items-center justify-between"><div class="flex items-center gap-2"><span class="w-2 h-2 rounded-full bg-orange-500"></span><span class="text-xs text-gray-400 font-mono">@nextjs — 213K views</span></div><span class="text-[10px] text-orange-400 font-mono tracking-wider uppercase">CVE</span></div><div class="relative aspect-[4/3] overflow-hidden"><img alt="Next.js critical CVE-2025-66478 announcement" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-top opacity-90 group-hover:opacity-100 group-hover:scale-[1.02] transition-all duration-700" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/nextjs-cve-announcement.png"/><div class="absolute inset-0 bg-gradient-to-t from-gray-950 via-transparent to-transparent"></div></div><div class="p-4"><p class="text-xs text-gray-400">Critical vulnerability in React Server Components affecting Next.js. 213K+ views.</p></div></div></div><div class="md:col-span-4 group relative"><div class="relative bg-gray-950 border border-gray-800 group-hover:border-yellow-900/50 transition-all duration-500 overflow-hidden"><div class="px-4 py-2.5 bg-gray-900 border-b border-gray-800 flex items-center justify-between"><div class="flex items-center gap-2"><span class="w-2 h-2 rounded-full bg-yellow-500"></span><span class="text-xs text-gray-400 font-mono">@trashh_dev</span></div><span class="text-[10px] text-yellow-400 font-mono tracking-wider uppercase">React CVE</span></div><div class="relative aspect-[4/3] overflow-hidden"><img alt="Developer reaction to React CVE announcement" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-top opacity-90 group-hover:opacity-100 group-hover:scale-[1.02] transition-all duration-700" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/react-cve-meme.png"/><div class="absolute inset-0 bg-gradient-to-t from-gray-950 via-transparent to-transparent"></div></div><div class="p-4"><p class="text-xs text-gray-400">How developers react to yet another critical CVE in their dependency tree.</p></div></div></div><div class="md:col-span-4 group relative"><div class="relative bg-gray-950 border border-gray-800 group-hover:border-gray-600 transition-all duration-500 overflow-hidden"><div class="px-4 py-2.5 bg-gray-900 border-b border-gray-800 flex items-center justify-between"><div class="flex items-center gap-2"><span class="w-2 h-2 rounded-full bg-blue-500"></span><span class="text-xs text-gray-400 font-mono">@arsh_goyal</span></div><span class="text-[10px] text-gray-400 font-mono tracking-wider uppercase">Reality Check</span></div><div class="relative aspect-[4/3] overflow-hidden"><img alt="Dependency management is the bottleneck" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-top opacity-90 group-hover:opacity-100 group-hover:scale-[1.02] transition-all duration-700" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" src="/dependency-bottleneck.png"/><div class="absolute inset-0 bg-gradient-to-t from-gray-950 via-transparent to-transparent"></div></div><div class="p-4"><p class="text-xs text-gray-400">“Code generation isn&#x27;t the bottleneck anymore. Dependency management is.”</p></div></div></div></div><div class="text-center mt-16"><div class="inline-flex flex-col items-center gap-4"><p class="text-lg text-gray-400">OPM catches these before they reach your <span class="text-white font-mono">node_modules</span>.</p><div class="flex items-center gap-3 text-sm font-mono text-gray-500"><span class="text-green-400">$</span><span class="text-white">npm install -g opmsec</span><span class="text-gray-600">&amp;&amp;</span><span class="text-white">opm install</span></div></div></div></div></section><section class="px-6 py-20 lg:px-12 border-t border-gray-800" id="features"><div class="max-w-7xl mx-auto"><div class="text-center mb-16"><h2 class="text-4xl lg:text-5xl font-bold mb-6">Security Primitives</h2><p class="text-xl text-gray-400">Defense in depth, by default.</p></div><div class="max-w-4xl mx-auto"><div class="bg-gray-950 border border-gray-800 shadow-2xl"><div class="flex items-center justify-between px-6 py-4 bg-gray-900 border-b border-gray-700"><div class="flex items-center gap-3"><div class="flex gap-2"><div class="w-3 h-3 bg-red-500"></div><div class="w-3 h-3 bg-yellow-500"></div><div class="w-3 h-3 bg-green-500"></div></div><span class="text-gray-400 text-sm">opm features --list</span></div><div class="flex items-center gap-2"><div class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div><span class="text-gray-500 text-xs">6 ACTIVE</span></div></div><div class="p-6 bg-black"><div class="text-sm text-gray-400 mb-4">$ opm features --scan</div><div class="grid grid-cols-1 md:grid-cols-2 gap-4 font-mono text-sm mb-6"><div class="flex items-center justify-between py-2 px-3 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-3"><span class="text-green-400 group-hover:text-white transition-colors w-4">✓</span><span class="text-white group-hover:text-gray-200 transition-colors">multi-agent-consensus</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs max-w-[250px] text-right">N-of-M parallel LLM dispatch with intelligence-weighted aggregation via Artificial Analysis benchmarks. No single-model failure point.</div></div><div class="flex items-center justify-between py-2 px-3 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-3"><span class="text-green-400 group-hover:text-white transition-colors w-4">✓</span><span class="text-white group-hover:text-gray-200 transition-colors">cryptographic-attestation</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs max-w-[250px] text-right">SHA-256 content-addressable checksums + secp256k1 ECDSA signatures. Tamper-evident supply chain attestation.</div></div><div class="flex items-center justify-between py-2 px-3 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-3"><span class="text-green-400 group-hover:text-white transition-colors w-4">✓</span><span class="text-white group-hover:text-gray-200 transition-colors">zk-agent-verification</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs max-w-[250px] text-right">Hash-commitment ZK scheme with circom circuit reference. Accuracy proven without revealing labeled test data.</div></div><div class="flex items-center justify-between py-2 px-3 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-3"><span class="text-green-400 group-hover:text-white transition-colors w-4">✓</span><span class="text-white group-hover:text-gray-200 transition-colors">on-chain-registry</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs max-w-[250px] text-right">OPMRegistry.sol: authorizedAgents, packages, versionData, AgentScores mappings. Fully queryable immutable state.</div></div><div class="flex items-center justify-between py-2 px-3 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-3"><span class="text-green-400 group-hover:text-white transition-colors w-4">✓</span><span class="text-white group-hover:text-gray-200 transition-colors">cve-typosquat-detection</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs max-w-[250px] text-right">OSV advisory database integration + Levenshtein-distance analysis against top 10k npm packages. Dependency confusion detection.</div></div><div class="flex items-center justify-between py-2 px-3 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-3"><span class="text-green-400 group-hover:text-white transition-colors w-4">✓</span><span class="text-white group-hover:text-gray-200 transition-colors">drop-in-npm-replacement</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs max-w-[250px] text-right">Transparent npm CLI interop: install, audit, check, push, fix — each operation layered with cryptographic verification.</div></div></div><div class="pt-4 border-t border-gray-800"><div class="flex items-center gap-4 text-xs text-gray-500 justify-center"><div class="flex items-center gap-2"><div class="w-2 h-2 bg-green-500 rounded-full"></div><span>6 Active</span></div><div class="flex items-center gap-2"><div class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div><span>Zero config</span></div></div></div></div></div></div></div></section><section class="px-6 py-20 lg:px-12 border-t border-gray-800" id="agents"><div class="max-w-7xl mx-auto"><div class="text-center mb-16"><h2 class="text-4xl lg:text-5xl font-bold mb-6">Multi-Agent Consensus</h2><p class="text-xl text-gray-400">N-of-M heterogeneous LLM ensemble with intelligence-weighted scoring derived from live Artificial Analysis quality and coding indices. Byzantine fault-tolerant by design.</p></div><div class="max-w-4xl mx-auto"><div class="bg-gray-950 border border-gray-800 shadow-2xl"><div class="flex items-center justify-between px-6 py-4 bg-gray-900 border-b border-gray-700"><div class="flex items-center gap-3"><div class="flex gap-2"><div class="w-3 h-3 bg-red-500"></div><div class="w-3 h-3 bg-yellow-500"></div><div class="w-3 h-3 bg-green-500"></div></div><span class="text-gray-400 text-sm">opm agents --status</span></div><div class="flex items-center gap-2"><div class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div><span class="text-gray-500 text-xs">3 AUTHORIZED</span></div></div><div class="p-6 bg-black"><div class="text-sm text-gray-400 mb-4">$ opm agents --list</div><div class="space-y-2 font-mono text-sm"><div class="flex items-center justify-between py-2 px-4 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-4"><span class="text-gray-500 w-6">[<!-- -->1<!-- -->]</span><span class="text-green-400 group-hover:text-white transition-colors">●</span><span class="text-white group-hover:text-gray-200 transition-colors">claude-sonnet-4</span><span class="text-gray-500 text-xs">(<!-- -->anthropic<!-- -->)</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs">Primary scanner</div></div><div class="flex items-center justify-between py-2 px-4 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-4"><span class="text-gray-500 w-6">[<!-- -->2<!-- -->]</span><span class="text-green-400 group-hover:text-white transition-colors">●</span><span class="text-white group-hover:text-gray-200 transition-colors">gemini-2.5-flash</span><span class="text-gray-500 text-xs">(<!-- -->google<!-- -->)</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs">Secondary analysis</div></div><div class="flex items-center justify-between py-2 px-4 hover:bg-gray-900 cursor-pointer group transition-all duration-200 border border-transparent hover:border-gray-700"><div class="flex items-center gap-4"><span class="text-gray-500 w-6">[<!-- -->3<!-- -->]</span><span class="text-green-400 group-hover:text-white transition-colors">●</span><span class="text-white group-hover:text-gray-200 transition-colors">deepseek-chat</span><span class="text-gray-500 text-xs">(<!-- -->deepseek<!-- -->)</span></div><div class="opacity-0 group-hover:opacity-100 transition-opacity text-gray-500 text-xs">Tertiary verification</div></div></div><div class="mt-6 pt-4 border-t border-gray-800"><div class="flex flex-col md:flex-row justify-between items-start md:items-center gap-4"><div class="text-sm text-gray-400"><div class="font-mono text-xs text-gray-500 space-y-1"><div>$ opm register-agent --name my-agent --model gpt-5.4</div><div>$ opm info express # View agent scores</div></div></div><div class="flex items-center gap-6 text-xs text-gray-500"><div class="flex items-center gap-2"><div class="w-2 h-2 bg-green-500 rounded-full"></div><span>3 Active</span></div><div class="flex items-center gap-2"><div class="w-2 h-2 bg-gray-500 rounded-full animate-pulse"></div><span>ZK-verified</span></div></div></div></div></div></div><div class="mt-6 text-center"><div class="inline-flex items-center gap-2 text-gray-400 text-sm"><span class="text-green-400">●</span><span>Permissionless registration • 100% benchmark accuracy required • Scores on-chain</span></div></div></div></div></section><section class="px-6 py-16 lg:px-12 border-t border-gray-800" id="pipeline"><div class="max-w-7xl mx-auto"><div class="text-center mb-12"><h2 class="text-3xl lg:text-4xl font-bold mb-4">Verification Pipeline</h2><p class="text-lg text-gray-400 max-w-2xl mx-auto">Five-stage cryptographic attestation pipeline: from ECDSA signing through multi-agent consensus to on-chain settlement. Every package is verified before extraction to node_modules.</p></div><div class="max-w-4xl mx-auto"><div class="bg-gray-950 border border-gray-800 shadow-xl"><div class="flex items-center justify-between px-6 py-3 bg-gray-900 border-b border-gray-700"><div class="flex items-center gap-3"><div class="flex gap-2"><div class="w-3 h-3 bg-red-500"></div><div class="w-3 h-3 bg-yellow-500"></div><div class="w-3 h-3 bg-green-500"></div></div><span class="text-gray-400 text-sm">opm pipeline --visualize</span></div></div><div class="p-6 bg-black"><div class="grid grid-cols-1 md:grid-cols-5 gap-4 font-mono text-sm"><div class="relative group"><div class="border border-gray-700 p-4 hover:border-white transition-all duration-300 group-hover:bg-gray-900"><span class="text-xs text-gray-500 block mb-2">01</span><h3 class="text-sm font-semibold mb-1 text-white">Pack &amp; Sign</h3><p class="text-xs text-gray-500">SHA-256 content-addressable checksum + secp256k1 ECDSA signature via author wallet</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-gray-700"></div></div><div class="relative group"><div class="border border-gray-700 p-4 hover:border-white transition-all duration-300 group-hover:bg-gray-900"><span class="text-xs text-gray-500 block mb-2">02</span><h3 class="text-sm font-semibold mb-1 text-white">Multi-Agent Scan</h3><p class="text-xs text-gray-500">Parallel dispatch to N heterogeneous LLMs; each submits independent risk vector</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-gray-700"></div></div><div class="relative group"><div class="border border-gray-700 p-4 hover:border-white transition-all duration-300 group-hover:bg-gray-900"><span class="text-xs text-gray-500 block mb-2">03</span><h3 class="text-sm font-semibold mb-1 text-white">Weighted Consensus</h3><p class="text-xs text-gray-500">Intelligence-weighted aggregate via Artificial Analysis quality + coding indices</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-gray-700"></div></div><div class="relative group"><div class="border border-gray-700 p-4 hover:border-white transition-all duration-300 group-hover:bg-gray-900"><span class="text-xs text-gray-500 block mb-2">04</span><h3 class="text-sm font-semibold mb-1 text-white">On-chain Registry</h3><p class="text-xs text-gray-500">Package metadata, agent scores, Fileverse report URI settled on Base Sepolia L2</p></div><div class="hidden md:block absolute top-1/2 -right-2.5 w-5 h-px bg-gray-700"></div></div><div class="relative group"><div class="border border-gray-700 p-4 hover:border-white transition-all duration-300 group-hover:bg-gray-900"><span class="text-xs text-gray-500 block mb-2">05</span><h3 class="text-sm font-semibold mb-1 text-white">Install Verify</h3><p class="text-xs text-gray-500">ECDSA signature + on-chain score lookup + OSV CVE cross-reference at extraction time</p></div></div></div></div></div></div></div></section><section class="px-6 py-16 lg:px-12 border-t border-gray-800"><div class="max-w-4xl mx-auto text-center"><h2 class="text-3xl font-bold mb-4">Fully on-chain. Fully verifiable.</h2><p class="text-gray-400 mb-8">OPMRegistry.sol deployed on Base Sepolia L2. Every package registration, agent score submission, ZK-verified agent authorization, and ENS-resolved author profile is an immutable on-chain record. Fully queryable, fully verifiable.</p><div class="grid grid-cols-2 md:grid-cols-4 gap-px bg-gray-800 mb-8"><div class="bg-black p-6"><p class="text-xs text-gray-500 mb-1">Registered</p><p class="text-sm font-semibold">Packages</p></div><div class="bg-black p-6"><p class="text-xs text-gray-500 mb-1">Submitted</p><p class="text-sm font-semibold">Agent Scores</p></div><div class="bg-black p-6"><p class="text-xs text-gray-500 mb-1">Verified</p><p class="text-sm font-semibold">Authors</p></div><div class="bg-black p-6"><p class="text-xs text-gray-500 mb-1">On IPFS</p><p class="text-sm font-semibold">Reports</p></div></div><div class="inline-flex items-center gap-4"><a href="https://sepolia.basescan.org/address/0x16684391fc9bf48246B08Afe16d1a57BFa181d48" target="_blank" rel="noopener" class="flex items-center gap-2 text-sm font-mono text-gray-400 hover:text-white transition-colors px-4 py-2 border border-gray-700 hover:border-white"><span class="w-2 h-2 rounded-full bg-green-500"></span>View on BaseScan</a><a href="https://github.com/dhananjaypai08/opm/blob/main/packages/contracts/contracts/OPMRegistry.sol" target="_blank" rel="noopener" class="flex items-center gap-2 text-sm text-gray-400 hover:text-white transition-colors px-4 py-2 border border-gray-700 hover:border-white">Source Code</a></div></div></section><footer class="border-t border-gray-800 px-6 py-12 lg:px-12 bg-gray-950"><div class="max-w-7xl mx-auto"><div class="flex flex-col md:flex-row items-center justify-between gap-6"><div class="flex items-center gap-2.5"><span class="font-bold">OPM</span><span class="text-xs text-gray-500">On-chain Package Manager</span></div><div class="flex items-center gap-6 text-sm text-gray-500"><a href="https://opm.mintlify.app" target="_blank" rel="noopener" class="hover:text-white transition-colors">Docs</a><a href="https://github.com/dhananjaypai08/opm" target="_blank" rel="noopener" class="hover:text-white transition-colors">GitHub</a><a href="https://www.npmjs.com/package/opmsec" target="_blank" rel="noopener" class="hover:text-white transition-colors">npm</a><a href="https://sepolia.basescan.org/address/0x16684391fc9bf48246B08Afe16d1a57BFa181d48" target="_blank" rel="noopener" class="hover:text-white transition-colors">Contract</a></div><p class="text-xs text-gray-700">MIT License</p></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-0dcd67569eb46132.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[1959,[],\"ClientPageRoot\"]\n5:I[7322,[\"174\",\"static/chunks/174-5b5efcb3b8efcc01.js\",\"974\",\"static/chunks/app/page-7e086379698b9fb0.js\"],\"default\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/media/4cf2300e9c8272f7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/102562cf2d0ae9b0.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"0esGzFBCzREfVwijEGDfL\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/102562cf2d0ae9b0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}],null,[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security for the npm ecosystem.\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"OPM | On-chain Package Manager\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Cryptographically signed, AI-audited, on-chain verified package security.\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L12\",\"9\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
@@ -2,15 +2,17 @@
2
2
  2:I[9766,[],""]
3
3
  3:I[8924,[],""]
4
4
  4:I[1959,[],"ClientPageRoot"]
5
- 5:I[7322,["974","static/chunks/app/page-e58ccdb78625bce6.js"],"default"]
5
+ 5:I[7322,["174","static/chunks/174-5b5efcb3b8efcc01.js","974","static/chunks/app/page-7e086379698b9fb0.js"],"default"]
6
6
  8:I[4431,[],"OutletBoundary"]
7
7
  a:I[5278,[],"AsyncMetadataOutlet"]
8
8
  c:I[4431,[],"ViewportBoundary"]
9
9
  e:I[4431,[],"MetadataBoundary"]
10
10
  f:"$Sreact.suspense"
11
11
  11:I[7150,[],""]
12
- :HL["/_next/static/css/21d69157e271f2ab.css","style"]
13
- 0:{"P":null,"b":"2XIFCTTKVZwN_RsNE-Rrr","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/21d69157e271f2ab.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"className":"bg-bg text-accent antialiased","children":[["$","div",null,{"className":"noise-overlay"}],["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":["__PAGE__",["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","searchParams":{},"params":{},"promises":["$@6","$@7"]}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],null],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
12
+ :HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
13
+ :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
14
+ :HL["/_next/static/css/102562cf2d0ae9b0.css","style"]
15
+ 0:{"P":null,"b":"0esGzFBCzREfVwijEGDfL","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/102562cf2d0ae9b0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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":["__PAGE__",["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","searchParams":{},"params":{},"promises":["$@6","$@7"]}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
14
16
  6:{}
15
17
  7:"$0:f:0:1:2:children:1:props:children:0:props:params"
16
18
  d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]