@contextware/openshellpolicy 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/404/index.html +1 -1
- package/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +1 -1
- package/out/__next._full.txt +3 -3
- package/out/__next._head.txt +1 -1
- package/out/__next._index.txt +2 -2
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/{0q5sv1c3~f~6_.js → 00oso7-p10j4s.js} +2 -2
- package/out/_next/static/chunks/{1053mtp06d184.js → 06nbqselbcg3s.js} +1 -1
- package/out/_next/static/chunks/0u4pcq0~e4eqs.css +3 -0
- package/out/_not-found/__next._full.txt +2 -2
- package/out/_not-found/__next._head.txt +1 -1
- package/out/_not-found/__next._index.txt +2 -2
- package/out/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/out/_not-found/__next._not-found.txt +1 -1
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found/index.html +1 -1
- package/out/_not-found/index.txt +2 -2
- package/out/editor/__next._full.txt +3 -3
- package/out/editor/__next._head.txt +1 -1
- package/out/editor/__next._index.txt +2 -2
- package/out/editor/__next._tree.txt +2 -2
- package/out/editor/__next.editor.__PAGE__.txt +2 -2
- package/out/editor/__next.editor.txt +1 -1
- package/out/editor/index.html +1 -1
- package/out/editor/index.txt +3 -3
- package/out/index.html +1 -1
- package/out/index.txt +3 -3
- package/package.json +1 -1
- package/out/_next/static/chunks/0.427cuqgjq95.css +0 -3
- /package/out/_next/static/{qtKVjw_mFYJmKTUDPeHHa → wNYCfqgSdekpP7qQKgXwZ}/_buildManifest.js +0 -0
- /package/out/_next/static/{qtKVjw_mFYJmKTUDPeHHa → wNYCfqgSdekpP7qQKgXwZ}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{qtKVjw_mFYJmKTUDPeHHa → wNYCfqgSdekpP7qQKgXwZ}/_ssgManifest.js +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[47257,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ClientPageRoot"]
|
|
3
|
-
3:I[40104,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/
|
|
3
|
+
3:I[40104,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/06nbqselbcg3s.js","/_next/static/chunks/00jcrw0uekmz-.js"],"default"]
|
|
4
4
|
6:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
5
5
|
7:"$Sreact.suspense"
|
|
6
|
-
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/06nbqselbcg3s.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/00jcrw0uekmz-.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"wNYCfqgSdekpP7qQKgXwZ"}
|
|
7
7
|
4:{}
|
|
8
8
|
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
9
|
8:null
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
3
3
|
3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
4
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
4
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"wNYCfqgSdekpP7qQKgXwZ"}
|
package/out/editor/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/0.427cuqgjq95.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_2ox82jto2h3.js"/><script src="/_next/static/chunks/0tszvp5wpnn-t.js" async=""></script><script src="/_next/static/chunks/0bogtdbh.dcu1.js" async=""></script><script src="/_next/static/chunks/0tlb5_mn-zgq2.js" async=""></script><script src="/_next/static/chunks/turbopack-14vqg6xhaniyn.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/1053mtp06d184.js" async=""></script><script src="/_next/static/chunks/00jcrw0uekmz-.js" async=""></script><meta name="next-size-adjust" content=""/><title>OpenShell Policy Editor</title><meta name="description" content="Visual policy editor for NVIDIA OpenShell sandbox policies"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full flex flex-col"><div hidden=""><!--$--><!--/$--></div><div class="flex flex-col h-screen bg-gray-900 text-gray-100 overflow-hidden"><header class="h-12 flex-shrink-0 border-b border-gray-800 flex items-center justify-between px-4 bg-gray-950"><div class="flex items-center gap-3"><a class="flex items-center gap-2 hover:opacity-80 transition-opacity" href="/"><div class="w-6 h-6 rounded-sm flex items-center justify-center font-bold text-gray-950 text-xs" style="background-color:#76b900">OS</div><span class="font-semibold text-sm text-gray-100 tracking-tight">OpenShell Policy Editor</span></a><span class="text-gray-700 text-xs hidden sm:block">— NVIDIA OpenShell v1</span></div><div class="flex items-center gap-2"><input type="file" accept=".yaml,.yml" class="hidden"/><button class="px-3 py-1 text-xs font-medium text-gray-300 border border-gray-700 rounded hover:border-gray-500 hover:text-white transition-colors">Import YAML</button><button class="px-3 py-1 text-xs font-medium text-gray-950 rounded transition-opacity hover:opacity-90" style="background-color:#76b900">Download</button><a href="https://docs.nvidia.com/openshell/latest/reference/policy-schema.html" target="_blank" rel="noopener noreferrer" class="px-3 py-1 text-xs text-gray-500 hover:text-gray-300 transition-colors hidden sm:block">Schema Docs</a></div></header><div class="flex flex-1 overflow-hidden"><div class="w-[280px] flex-shrink-0 bg-gray-950 border-r border-gray-800 flex flex-col overflow-hidden"><div class="flex flex-col h-full"><div class="flex border-b border-gray-800 flex-shrink-0"><button class="flex-1 py-2 text-xs font-medium transition-colors text-white border-b-2 -mb-px" style="border-bottom-color:#76b900">Network</button><button class="flex-1 py-2 text-xs font-medium transition-colors text-gray-500 hover:text-gray-300">Filesystem</button><button class="flex-1 py-2 text-xs font-medium transition-colors text-gray-500 hover:text-gray-300">Process</button></div><div class="flex-1 overflow-y-auto"><div><div class="px-3 py-2 flex justify-between items-center border-b border-gray-800"><span class="text-xs text-gray-400 font-medium">0<!-- --> entr<!-- -->ies</span><button class="text-xs px-2 py-1 rounded text-gray-950 font-semibold transition-opacity hover:opacity-80" style="background-color:#76b900">+ Add Policy</button></div><div class="px-3 py-6 text-center"><p class="text-xs text-gray-600">No network policies yet.</p><p class="text-xs text-gray-600 mt-1">All outbound traffic is <span class="text-red-500">denied</span> by default.</p><button class="mt-3 text-xs underline underline-offset-2 hover:text-white transition-colors" style="color:#76b900">Add your first policy →</button></div></div></div></div></div><div class="flex-1 relative overflow-hidden"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex-1 bg-gray-900"></div><!--/$--></div><div class="w-[350px] flex-shrink-0 bg-gray-950 border-l border-gray-800 flex flex-col overflow-hidden relative"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="w-[350px] bg-gray-950"></div><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0_2ox82jto2h3.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[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[47257,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n5:I[40104,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/1053mtp06d184.js\",\"/_next/static/chunks/00jcrw0uekmz-.js\"],\"default\"]\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0.427cuqgjq95.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"editor\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"editor\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0.427cuqgjq95.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/01xlw8hd842-c.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col\",\"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\":[[\"$\",\"$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\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1053mtp06d184.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/00jcrw0uekmz-.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0.427cuqgjq95.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"qtKVjw_mFYJmKTUDPeHHa\"}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\na:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"OpenShell Policy Editor\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visual policy editor for NVIDIA OpenShell sandbox policies\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L10\",\"3\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/0u4pcq0~e4eqs.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_2ox82jto2h3.js"/><script src="/_next/static/chunks/0tszvp5wpnn-t.js" async=""></script><script src="/_next/static/chunks/0bogtdbh.dcu1.js" async=""></script><script src="/_next/static/chunks/0tlb5_mn-zgq2.js" async=""></script><script src="/_next/static/chunks/turbopack-14vqg6xhaniyn.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/06nbqselbcg3s.js" async=""></script><script src="/_next/static/chunks/00jcrw0uekmz-.js" async=""></script><meta name="next-size-adjust" content=""/><title>OpenShell Policy Editor</title><meta name="description" content="Visual policy editor for NVIDIA OpenShell sandbox policies"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full flex flex-col"><div hidden=""><!--$--><!--/$--></div><div class="flex flex-col h-screen bg-gray-900 text-gray-100 overflow-hidden"><header class="h-12 flex-shrink-0 border-b border-gray-800 flex items-center justify-between px-4 bg-gray-950"><div class="flex items-center gap-3"><a class="flex items-center gap-2 hover:opacity-80 transition-opacity" href="/"><div class="w-6 h-6 rounded-sm flex items-center justify-center font-bold text-gray-950 text-xs" style="background-color:#76b900">OS</div><span class="font-semibold text-sm text-gray-100 tracking-tight">OpenShell Policy Editor</span></a><span class="text-gray-700 text-xs hidden sm:block">— NVIDIA OpenShell v1</span></div><div class="flex items-center gap-2"><input type="file" accept=".yaml,.yml" class="hidden"/><button class="px-3 py-1 text-xs font-medium text-gray-300 border border-gray-700 rounded hover:border-gray-500 hover:text-white transition-colors">Import YAML</button><button class="px-3 py-1 text-xs font-medium text-gray-950 rounded transition-opacity hover:opacity-90" style="background-color:#76b900">Download</button><a href="https://docs.nvidia.com/openshell/latest/reference/policy-schema.html" target="_blank" rel="noopener noreferrer" class="px-3 py-1 text-xs text-gray-500 hover:text-gray-300 transition-colors hidden sm:block">Schema Docs</a></div></header><div class="flex flex-1 overflow-hidden"><div class="w-[280px] flex-shrink-0 bg-gray-950 border-r border-gray-800 flex flex-col overflow-hidden"><div class="flex flex-col h-full"><div class="flex border-b border-gray-800 flex-shrink-0"><button class="flex-1 py-2 text-xs font-medium transition-colors text-white border-b-2 -mb-px" style="border-bottom-color:#76b900">Network</button><button class="flex-1 py-2 text-xs font-medium transition-colors text-gray-500 hover:text-gray-300">Filesystem</button><button class="flex-1 py-2 text-xs font-medium transition-colors text-gray-500 hover:text-gray-300">Process</button></div><div class="flex-1 overflow-y-auto"><div><div class="px-3 py-2 flex justify-between items-center border-b border-gray-800"><span class="text-xs text-gray-400 font-medium">0<!-- --> entr<!-- -->ies</span><button class="text-xs px-2 py-1 rounded text-gray-950 font-semibold transition-opacity hover:opacity-80" style="background-color:#76b900">+ Add Policy</button></div><div class="px-3 py-6 text-center"><p class="text-xs text-gray-600">No network policies yet.</p><p class="text-xs text-gray-600 mt-1">All outbound traffic is <span class="text-red-500">denied</span> by default.</p><button class="mt-3 text-xs underline underline-offset-2 hover:text-white transition-colors" style="color:#76b900">Add your first policy →</button></div></div></div></div></div><div class="flex-1 relative overflow-hidden"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="flex-1 bg-gray-900"></div><!--/$--></div><div class="w-[350px] flex-shrink-0 bg-gray-950 border-l border-gray-800 flex flex-col overflow-hidden relative"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="w-[350px] bg-gray-950"></div><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0_2ox82jto2h3.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[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[47257,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n5:I[40104,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/06nbqselbcg3s.js\",\"/_next/static/chunks/00jcrw0uekmz-.js\"],\"default\"]\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0u4pcq0~e4eqs.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"editor\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"editor\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0u4pcq0~e4eqs.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/01xlw8hd842-c.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col\",\"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\":[[\"$\",\"$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\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/06nbqselbcg3s.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/00jcrw0uekmz-.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0u4pcq0~e4eqs.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"wNYCfqgSdekpP7qQKgXwZ\"}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\na:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"OpenShell Policy Editor\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visual policy editor for NVIDIA OpenShell sandbox policies\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L10\",\"3\",{}]]\n"])</script></body></html>
|
package/out/editor/index.txt
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
3
3
|
3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
4
4
|
4:I[47257,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ClientPageRoot"]
|
|
5
|
-
5:I[40104,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/
|
|
5
|
+
5:I[40104,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/06nbqselbcg3s.js","/_next/static/chunks/00jcrw0uekmz-.js"],"default"]
|
|
6
6
|
8:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
7
7
|
9:"$Sreact.suspense"
|
|
8
8
|
b:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
|
9
9
|
d:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
|
10
10
|
f:I[68027,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
|
11
|
-
:HL["/_next/static/chunks/
|
|
11
|
+
:HL["/_next/static/chunks/0u4pcq0~e4eqs.css","style"]
|
|
12
12
|
:HL["/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
13
13
|
:HL["/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
|
-
0:{"P":null,"c":["","editor",""],"q":"","i":false,"f":[[["",{"children":["editor",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
14
|
+
0:{"P":null,"c":["","editor",""],"q":"","i":false,"f":[[["",{"children":["editor",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0u4pcq0~e4eqs.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/01xlw8hd842-c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col","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":[["$","$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":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/06nbqselbcg3s.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/00jcrw0uekmz-.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0u4pcq0~e4eqs.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"wNYCfqgSdekpP7qQKgXwZ"}
|
|
15
15
|
6:{}
|
|
16
16
|
7:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
17
17
|
c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/out/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/0.427cuqgjq95.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_2ox82jto2h3.js"/><script src="/_next/static/chunks/0tszvp5wpnn-t.js" async=""></script><script src="/_next/static/chunks/0bogtdbh.dcu1.js" async=""></script><script src="/_next/static/chunks/0tlb5_mn-zgq2.js" async=""></script><script src="/_next/static/chunks/turbopack-14vqg6xhaniyn.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0ka051yepewro.js" async=""></script><meta name="next-size-adjust" content=""/><title>Create Next App</title><meta name="description" content="Generated by create next app"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full flex flex-col"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-gray-950 text-gray-100 font-sans"><nav class="border-b border-gray-800 px-6 py-4 flex items-center justify-between max-w-7xl mx-auto"><div class="flex items-center gap-3"><div class="w-8 h-8 rounded-sm flex items-center justify-center font-bold text-gray-950 text-sm" style="background-color:#76b900">OS</div><span class="font-semibold text-lg tracking-tight">OpenShell Policy</span></div><div class="flex items-center gap-6 text-sm text-gray-400"><a href="https://docs.nvidia.com/openshell/latest/reference/policy-schema.html" target="_blank" rel="noopener noreferrer" class="hover:text-white transition-colors">Docs</a><a href="https://github.com/NVIDIA/OpenShell" target="_blank" rel="noopener noreferrer" class="hover:text-white transition-colors">GitHub</a><a class="px-4 py-2 rounded-md text-gray-950 font-semibold text-sm transition-opacity hover:opacity-90" style="background-color:#76b900" href="/editor/">Open Editor</a></div></nav><section class="max-w-4xl mx-auto px-6 pt-24 pb-20 text-center"><div class="inline-block text-xs font-semibold px-3 py-1 rounded-full mb-6 tracking-wider uppercase" style="background-color:#76b90020;color:#76b900">NVIDIA OpenShell</div><h1 class="text-5xl font-bold leading-tight tracking-tight mb-6">Visual Policy Editor<br/>for<!-- --> <span style="color:#76b900">NVIDIA OpenShell</span></h1><p class="text-xl text-gray-400 max-w-2xl mx-auto leading-relaxed mb-10">Build, visualize, and validate OpenShell sandbox policies without hand-editing YAML. Inspired by<!-- --> <a href="https://networkpolicy.io" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-gray-200 transition-colors">networkpolicy.io</a> <!-- -->for Kubernetes.</p><div class="flex items-center justify-center gap-4"><a class="px-8 py-3 rounded-md font-semibold text-gray-950 text-base transition-opacity hover:opacity-90" style="background-color:#76b900" href="/editor/">Open Editor</a><a href="https://docs.nvidia.com/openshell/latest/sandboxes/policies.html" target="_blank" rel="noopener noreferrer" class="px-8 py-3 rounded-md border border-gray-700 font-semibold text-gray-300 text-base hover:border-gray-500 hover:text-white transition-colors">Read the Docs</a></div></section><section class="max-w-4xl mx-auto px-6 pb-20"><div class="bg-gray-900 border border-gray-800 rounded-xl p-8"><h2 class="text-2xl font-semibold mb-4">What is NVIDIA OpenShell?</h2><p class="text-gray-400 leading-relaxed mb-4">OpenShell is an open-source sandbox runtime (Apache 2.0) for safely executing autonomous AI agents. It provides kernel-level isolation using Linux containers, Landlock LSM, and seccomp filters. Policies are declarative YAML files that control exactly what an agent can access — filesystem paths, network endpoints, and process identity.</p><p class="text-gray-400 leading-relaxed mb-4">The default stance is <span class="text-white font-medium">deny-all</span> outbound traffic. You explicitly allow what each agent binary needs using named network policy entries. The network policy section is hot-reloadable at runtime; filesystem, landlock, and process settings are locked at sandbox creation.</p><div class="flex gap-4 mt-6 flex-wrap"><a href="https://docs.nvidia.com/openshell/latest/reference/policy-schema.html" target="_blank" rel="noopener noreferrer" class="text-sm underline underline-offset-2 hover:text-white transition-colors" style="color:#76b900">Policy Schema Reference →</a><a href="https://github.com/NVIDIA/OpenShell" target="_blank" rel="noopener noreferrer" class="text-sm underline underline-offset-2 hover:text-white transition-colors" style="color:#76b900">GitHub — NVIDIA/OpenShell →</a></div></div></section><section class="max-w-6xl mx-auto px-6 pb-24"><h2 class="text-3xl font-semibold text-center mb-12">Everything you need to build safe agent policies</h2><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6"><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">⬡</div><h3 class="font-semibold text-lg mb-2">Visual Editor</h3><p class="text-gray-400 text-sm leading-relaxed">Drag-and-drop policy graph built with React Flow. See your sandbox, endpoints, and binaries at a glance.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">⇄</div><h3 class="font-semibold text-lg mb-2">YAML Sync</h3><p class="text-gray-400 text-sm leading-relaxed">Every visual change is instantly reflected in the Monaco YAML editor — and vice versa. Full bidirectional sync.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">✓</div><h3 class="font-semibold text-lg mb-2">Live Validation</h3><p class="text-gray-400 text-sm leading-relaxed">Zod-powered schema validation catches invalid paths, root users, and access/rules conflicts in real time.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">◈</div><h3 class="font-semibold text-lg mb-2">Tutorials</h3><p class="text-gray-400 text-sm leading-relaxed">Step-by-step walkthroughs: allow GitHub API, write L7 path rules, iterate safely with audit mode.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">↑</div><h3 class="font-semibold text-lg mb-2">Import / Export</h3><p class="text-gray-400 text-sm leading-relaxed">Upload an existing policy YAML file or download your work with one click. No account required.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">⊞</div><h3 class="font-semibold text-lg mb-2">L7 Rules</h3><p class="text-gray-400 text-sm leading-relaxed">Craft per-path HTTP rules (method + glob path + query params) when access presets aren't granular enough.</p></div></div></section><footer class="border-t border-gray-800 px-6 py-8 text-center text-sm text-gray-600"><p>OpenShell Policy Editor — not affiliated with NVIDIA Corporation. For official support see<!-- --> <a href="https://docs.nvidia.com/openshell" target="_blank" rel="noopener noreferrer" class="underline hover:text-gray-400 transition-colors">docs.nvidia.com/openshell</a>.</p></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/0_2ox82jto2h3.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[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[22016,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0ka051yepewro.js\"],\"\"]\nd:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0.427cuqgjq95.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0.427cuqgjq95.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/01xlw8hd842-c.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col\",\"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\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-gray-950 text-gray-100 font-sans\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"border-b border-gray-800 px-6 py-4 flex items-center justify-between max-w-7xl mx-auto\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-8 h-8 rounded-sm flex items-center justify-center font-bold text-gray-950 text-sm\",\"style\":{\"backgroundColor\":\"#76b900\"},\"children\":\"OS\"}],[\"$\",\"span\",null,{\"className\":\"font-semibold text-lg tracking-tight\",\"children\":\"OpenShell Policy\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6 text-sm text-gray-400\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell/latest/reference/policy-schema.html\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-white transition-colors\",\"children\":\"Docs\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/NVIDIA/OpenShell\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-white transition-colors\",\"children\":\"GitHub\"}],[\"$\",\"$L4\",null,{\"href\":\"/editor\",\"className\":\"px-4 py-2 rounded-md text-gray-950 font-semibold text-sm transition-opacity hover:opacity-90\",\"style\":{\"backgroundColor\":\"#76b900\"},\"children\":\"Open Editor\"}]]}]]}],[\"$\",\"section\",null,{\"className\":\"max-w-4xl mx-auto px-6 pt-24 pb-20 text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-block text-xs font-semibold px-3 py-1 rounded-full mb-6 tracking-wider uppercase\",\"style\":{\"backgroundColor\":\"#76b90020\",\"color\":\"#76b900\"},\"children\":\"NVIDIA OpenShell\"}],[\"$\",\"h1\",null,{\"className\":\"text-5xl font-bold leading-tight tracking-tight mb-6\",\"children\":[\"Visual Policy Editor\",[\"$\",\"br\",null,{}],\"for\",\" \",[\"$\",\"span\",null,{\"style\":{\"color\":\"#76b900\"},\"children\":\"NVIDIA OpenShell\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-xl text-gray-400 max-w-2xl mx-auto leading-relaxed mb-10\",\"children\":[\"Build, visualize, and validate OpenShell sandbox policies without hand-editing YAML. Inspired by\",\" \",[\"$\",\"a\",null,{\"href\":\"https://networkpolicy.io\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"underline underline-offset-2 hover:text-gray-200 transition-colors\",\"children\":\"networkpolicy.io\"}],\" \",\"for Kubernetes.\"]}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-4\",\"children\":[\"$L5\",\"$L6\"]}]]}],\"$L7\",\"$L8\",\"$L9\"]}],[\"$La\"],\"$Lb\"]}],{},null,false,null]},null,false,null],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[\"$Le\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"qtKVjw_mFYJmKTUDPeHHa\"}\n"])</script><script>self.__next_f.push([1,"f:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\n14:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n5:[\"$\",\"$L4\",null,{\"href\":\"/editor\",\"className\":\"px-8 py-3 rounded-md font-semibold text-gray-950 text-base transition-opacity hover:opacity-90\",\"style\":{\"backgroundColor\":\"#76b900\"},\"children\":\"Open Editor\"}]\n6:[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell/latest/sandboxes/policies.html\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-8 py-3 rounded-md border border-gray-700 font-semibold text-gray-300 text-base hover:border-gray-500 hover:text-white transition-colors\",\"children\":\"Read the Docs\"}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"section\",null,{\"className\":\"max-w-4xl mx-auto px-6 pb-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-8\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-4\",\"children\":\"What is NVIDIA OpenShell?\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 leading-relaxed mb-4\",\"children\":\"OpenShell is an open-source sandbox runtime (Apache 2.0) for safely executing autonomous AI agents. It provides kernel-level isolation using Linux containers, Landlock LSM, and seccomp filters. Policies are declarative YAML files that control exactly what an agent can access — filesystem paths, network endpoints, and process identity.\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 leading-relaxed mb-4\",\"children\":[\"The default stance is \",[\"$\",\"span\",null,{\"className\":\"text-white font-medium\",\"children\":\"deny-all\"}],\" outbound traffic. You explicitly allow what each agent binary needs using named network policy entries. The network policy section is hot-reloadable at runtime; filesystem, landlock, and process settings are locked at sandbox creation.\"]}],[\"$\",\"div\",null,{\"className\":\"flex gap-4 mt-6 flex-wrap\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell/latest/reference/policy-schema.html\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm underline underline-offset-2 hover:text-white transition-colors\",\"style\":{\"color\":\"#76b900\"},\"children\":\"Policy Schema Reference →\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/NVIDIA/OpenShell\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm underline underline-offset-2 hover:text-white transition-colors\",\"style\":{\"color\":\"#76b900\"},\"children\":\"GitHub — NVIDIA/OpenShell →\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"section\",null,{\"className\":\"max-w-6xl mx-auto px-6 pb-24\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-3xl font-semibold text-center mb-12\",\"children\":\"Everything you need to build safe agent policies\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6\",\"children\":[[\"$\",\"div\",\"Visual Editor\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"⬡\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Visual Editor\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Drag-and-drop policy graph built with React Flow. See your sandbox, endpoints, and binaries at a glance.\"}]]}],[\"$\",\"div\",\"YAML Sync\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"⇄\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"YAML Sync\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Every visual change is instantly reflected in the Monaco YAML editor — and vice versa. Full bidirectional sync.\"}]]}],[\"$\",\"div\",\"Live Validation\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"✓\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Live Validation\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Zod-powered schema validation catches invalid paths, root users, and access/rules conflicts in real time.\"}]]}],[\"$\",\"div\",\"Tutorials\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"◈\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Tutorials\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Step-by-step walkthroughs: allow GitHub API, write L7 path rules, iterate safely with audit mode.\"}]]}],[\"$\",\"div\",\"Import / Export\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"↑\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Import / Export\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Upload an existing policy YAML file or download your work with one click. No account required.\"}]]}],[\"$\",\"div\",\"L7 Rules\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"⊞\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"L7 Rules\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Craft per-path HTTP rules (method + glob path + query params) when access presets aren't granular enough.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"footer\",null,{\"className\":\"border-t border-gray-800 px-6 py-8 text-center text-sm text-gray-600\",\"children\":[\"$\",\"p\",null,{\"children\":[\"OpenShell Policy Editor — not affiliated with NVIDIA Corporation. For official support see\",\" \",[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"underline hover:text-gray-400 transition-colors\",\"children\":\"docs.nvidia.com/openshell\"}],\".\"]}]}]\na:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0ka051yepewro.js\",\"async\":true,\"nonce\":\"$undefined\"}]\nb:[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@11\"}]}]\nc:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L15\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\ne:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0.427cuqgjq95.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"16:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\n11:null\n15:[[\"$\",\"title\",\"0\",{\"children\":\"Create Next App\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Generated by create next app\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L16\",\"3\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/0u4pcq0~e4eqs.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_2ox82jto2h3.js"/><script src="/_next/static/chunks/0tszvp5wpnn-t.js" async=""></script><script src="/_next/static/chunks/0bogtdbh.dcu1.js" async=""></script><script src="/_next/static/chunks/0tlb5_mn-zgq2.js" async=""></script><script src="/_next/static/chunks/turbopack-14vqg6xhaniyn.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0ka051yepewro.js" async=""></script><meta name="next-size-adjust" content=""/><title>Create Next App</title><meta name="description" content="Generated by create next app"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full flex flex-col"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-gray-950 text-gray-100 font-sans"><nav class="border-b border-gray-800 px-6 py-4 flex items-center justify-between max-w-7xl mx-auto"><div class="flex items-center gap-3"><div class="w-8 h-8 rounded-sm flex items-center justify-center font-bold text-gray-950 text-sm" style="background-color:#76b900">OS</div><span class="font-semibold text-lg tracking-tight">OpenShell Policy</span></div><div class="flex items-center gap-6 text-sm text-gray-400"><a href="https://docs.nvidia.com/openshell/latest/reference/policy-schema.html" target="_blank" rel="noopener noreferrer" class="hover:text-white transition-colors">Docs</a><a href="https://github.com/NVIDIA/OpenShell" target="_blank" rel="noopener noreferrer" class="hover:text-white transition-colors">GitHub</a><a class="px-4 py-2 rounded-md text-gray-950 font-semibold text-sm transition-opacity hover:opacity-90" style="background-color:#76b900" href="/editor/">Open Editor</a></div></nav><section class="max-w-4xl mx-auto px-6 pt-24 pb-20 text-center"><div class="inline-block text-xs font-semibold px-3 py-1 rounded-full mb-6 tracking-wider uppercase" style="background-color:#76b90020;color:#76b900">NVIDIA OpenShell</div><h1 class="text-5xl font-bold leading-tight tracking-tight mb-6">Visual Policy Editor<br/>for<!-- --> <span style="color:#76b900">NVIDIA OpenShell</span></h1><p class="text-xl text-gray-400 max-w-2xl mx-auto leading-relaxed mb-10">Build, visualize, and validate OpenShell sandbox policies without hand-editing YAML. Inspired by<!-- --> <a href="https://networkpolicy.io" target="_blank" rel="noopener noreferrer" class="underline underline-offset-2 hover:text-gray-200 transition-colors">networkpolicy.io</a> <!-- -->for Kubernetes.</p><div class="flex items-center justify-center gap-4"><a class="px-8 py-3 rounded-md font-semibold text-gray-950 text-base transition-opacity hover:opacity-90" style="background-color:#76b900" href="/editor/">Open Editor</a><a href="https://docs.nvidia.com/openshell/latest/sandboxes/policies.html" target="_blank" rel="noopener noreferrer" class="px-8 py-3 rounded-md border border-gray-700 font-semibold text-gray-300 text-base hover:border-gray-500 hover:text-white transition-colors">Read the Docs</a></div></section><section class="max-w-4xl mx-auto px-6 pb-20"><div class="bg-gray-900 border border-gray-800 rounded-xl p-8"><h2 class="text-2xl font-semibold mb-4">What is NVIDIA OpenShell?</h2><p class="text-gray-400 leading-relaxed mb-4">OpenShell is an open-source sandbox runtime (Apache 2.0) for safely executing autonomous AI agents. It provides kernel-level isolation using Linux containers, Landlock LSM, and seccomp filters. Policies are declarative YAML files that control exactly what an agent can access — filesystem paths, network endpoints, and process identity.</p><p class="text-gray-400 leading-relaxed mb-4">The default stance is <span class="text-white font-medium">deny-all</span> outbound traffic. You explicitly allow what each agent binary needs using named network policy entries. The network policy section is hot-reloadable at runtime; filesystem, landlock, and process settings are locked at sandbox creation.</p><div class="flex gap-4 mt-6 flex-wrap"><a href="https://docs.nvidia.com/openshell/latest/reference/policy-schema.html" target="_blank" rel="noopener noreferrer" class="text-sm underline underline-offset-2 hover:text-white transition-colors" style="color:#76b900">Policy Schema Reference →</a><a href="https://github.com/NVIDIA/OpenShell" target="_blank" rel="noopener noreferrer" class="text-sm underline underline-offset-2 hover:text-white transition-colors" style="color:#76b900">GitHub — NVIDIA/OpenShell →</a></div></div></section><section class="max-w-6xl mx-auto px-6 pb-24"><h2 class="text-3xl font-semibold text-center mb-12">Everything you need to build safe agent policies</h2><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6"><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">⬡</div><h3 class="font-semibold text-lg mb-2">Visual Editor</h3><p class="text-gray-400 text-sm leading-relaxed">Drag-and-drop policy graph built with React Flow. See your sandbox, endpoints, and binaries at a glance.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">⇄</div><h3 class="font-semibold text-lg mb-2">YAML Sync</h3><p class="text-gray-400 text-sm leading-relaxed">Every visual change is instantly reflected in the Monaco YAML editor — and vice versa. Full bidirectional sync.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">✓</div><h3 class="font-semibold text-lg mb-2">Live Validation</h3><p class="text-gray-400 text-sm leading-relaxed">Zod-powered schema validation catches invalid paths, root users, and access/rules conflicts in real time.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">◈</div><h3 class="font-semibold text-lg mb-2">Tutorials</h3><p class="text-gray-400 text-sm leading-relaxed">Step-by-step walkthroughs: allow GitHub API, write L7 path rules, iterate safely with audit mode.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">↑</div><h3 class="font-semibold text-lg mb-2">Import / Export</h3><p class="text-gray-400 text-sm leading-relaxed">Upload an existing policy YAML file or download your work with one click. No account required.</p></div><div class="bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors"><div class="text-2xl mb-4 font-mono" style="color:#76b900">⊞</div><h3 class="font-semibold text-lg mb-2">L7 Rules</h3><p class="text-gray-400 text-sm leading-relaxed">Craft per-path HTTP rules (method + glob path + query params) when access presets aren't granular enough.</p></div></div></section><footer class="border-t border-gray-800 px-6 py-8 text-center text-sm text-gray-600"><p>OpenShell Policy Editor — not affiliated with NVIDIA Corporation. For official support see<!-- --> <a href="https://docs.nvidia.com/openshell" target="_blank" rel="noopener noreferrer" class="underline hover:text-gray-400 transition-colors">docs.nvidia.com/openshell</a>.</p></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/0_2ox82jto2h3.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[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[22016,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0ka051yepewro.js\"],\"\"]\nd:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0u4pcq0~e4eqs.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0u4pcq0~e4eqs.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/01xlw8hd842-c.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col\",\"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\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-gray-950 text-gray-100 font-sans\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"border-b border-gray-800 px-6 py-4 flex items-center justify-between max-w-7xl mx-auto\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-8 h-8 rounded-sm flex items-center justify-center font-bold text-gray-950 text-sm\",\"style\":{\"backgroundColor\":\"#76b900\"},\"children\":\"OS\"}],[\"$\",\"span\",null,{\"className\":\"font-semibold text-lg tracking-tight\",\"children\":\"OpenShell Policy\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6 text-sm text-gray-400\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell/latest/reference/policy-schema.html\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-white transition-colors\",\"children\":\"Docs\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/NVIDIA/OpenShell\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-white transition-colors\",\"children\":\"GitHub\"}],[\"$\",\"$L4\",null,{\"href\":\"/editor\",\"className\":\"px-4 py-2 rounded-md text-gray-950 font-semibold text-sm transition-opacity hover:opacity-90\",\"style\":{\"backgroundColor\":\"#76b900\"},\"children\":\"Open Editor\"}]]}]]}],[\"$\",\"section\",null,{\"className\":\"max-w-4xl mx-auto px-6 pt-24 pb-20 text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-block text-xs font-semibold px-3 py-1 rounded-full mb-6 tracking-wider uppercase\",\"style\":{\"backgroundColor\":\"#76b90020\",\"color\":\"#76b900\"},\"children\":\"NVIDIA OpenShell\"}],[\"$\",\"h1\",null,{\"className\":\"text-5xl font-bold leading-tight tracking-tight mb-6\",\"children\":[\"Visual Policy Editor\",[\"$\",\"br\",null,{}],\"for\",\" \",[\"$\",\"span\",null,{\"style\":{\"color\":\"#76b900\"},\"children\":\"NVIDIA OpenShell\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-xl text-gray-400 max-w-2xl mx-auto leading-relaxed mb-10\",\"children\":[\"Build, visualize, and validate OpenShell sandbox policies without hand-editing YAML. Inspired by\",\" \",[\"$\",\"a\",null,{\"href\":\"https://networkpolicy.io\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"underline underline-offset-2 hover:text-gray-200 transition-colors\",\"children\":\"networkpolicy.io\"}],\" \",\"for Kubernetes.\"]}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-4\",\"children\":[\"$L5\",\"$L6\"]}]]}],\"$L7\",\"$L8\",\"$L9\"]}],[\"$La\"],\"$Lb\"]}],{},null,false,null]},null,false,null],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[\"$Le\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"wNYCfqgSdekpP7qQKgXwZ\"}\n"])</script><script>self.__next_f.push([1,"f:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\n14:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n5:[\"$\",\"$L4\",null,{\"href\":\"/editor\",\"className\":\"px-8 py-3 rounded-md font-semibold text-gray-950 text-base transition-opacity hover:opacity-90\",\"style\":{\"backgroundColor\":\"#76b900\"},\"children\":\"Open Editor\"}]\n6:[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell/latest/sandboxes/policies.html\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-8 py-3 rounded-md border border-gray-700 font-semibold text-gray-300 text-base hover:border-gray-500 hover:text-white transition-colors\",\"children\":\"Read the Docs\"}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"section\",null,{\"className\":\"max-w-4xl mx-auto px-6 pb-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-8\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-4\",\"children\":\"What is NVIDIA OpenShell?\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 leading-relaxed mb-4\",\"children\":\"OpenShell is an open-source sandbox runtime (Apache 2.0) for safely executing autonomous AI agents. It provides kernel-level isolation using Linux containers, Landlock LSM, and seccomp filters. Policies are declarative YAML files that control exactly what an agent can access — filesystem paths, network endpoints, and process identity.\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 leading-relaxed mb-4\",\"children\":[\"The default stance is \",[\"$\",\"span\",null,{\"className\":\"text-white font-medium\",\"children\":\"deny-all\"}],\" outbound traffic. You explicitly allow what each agent binary needs using named network policy entries. The network policy section is hot-reloadable at runtime; filesystem, landlock, and process settings are locked at sandbox creation.\"]}],[\"$\",\"div\",null,{\"className\":\"flex gap-4 mt-6 flex-wrap\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell/latest/reference/policy-schema.html\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm underline underline-offset-2 hover:text-white transition-colors\",\"style\":{\"color\":\"#76b900\"},\"children\":\"Policy Schema Reference →\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/NVIDIA/OpenShell\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-sm underline underline-offset-2 hover:text-white transition-colors\",\"style\":{\"color\":\"#76b900\"},\"children\":\"GitHub — NVIDIA/OpenShell →\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"section\",null,{\"className\":\"max-w-6xl mx-auto px-6 pb-24\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-3xl font-semibold text-center mb-12\",\"children\":\"Everything you need to build safe agent policies\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6\",\"children\":[[\"$\",\"div\",\"Visual Editor\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"⬡\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Visual Editor\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Drag-and-drop policy graph built with React Flow. See your sandbox, endpoints, and binaries at a glance.\"}]]}],[\"$\",\"div\",\"YAML Sync\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"⇄\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"YAML Sync\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Every visual change is instantly reflected in the Monaco YAML editor — and vice versa. Full bidirectional sync.\"}]]}],[\"$\",\"div\",\"Live Validation\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"✓\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Live Validation\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Zod-powered schema validation catches invalid paths, root users, and access/rules conflicts in real time.\"}]]}],[\"$\",\"div\",\"Tutorials\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"◈\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Tutorials\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Step-by-step walkthroughs: allow GitHub API, write L7 path rules, iterate safely with audit mode.\"}]]}],[\"$\",\"div\",\"Import / Export\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"↑\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"Import / Export\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Upload an existing policy YAML file or download your work with one click. No account required.\"}]]}],[\"$\",\"div\",\"L7 Rules\",{\"className\":\"bg-gray-900 border border-gray-800 rounded-xl p-6 hover:border-gray-600 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-2xl mb-4 font-mono\",\"style\":{\"color\":\"#76b900\"},\"children\":\"⊞\"}],[\"$\",\"h3\",null,{\"className\":\"font-semibold text-lg mb-2\",\"children\":\"L7 Rules\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm leading-relaxed\",\"children\":\"Craft per-path HTTP rules (method + glob path + query params) when access presets aren't granular enough.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"footer\",null,{\"className\":\"border-t border-gray-800 px-6 py-8 text-center text-sm text-gray-600\",\"children\":[\"$\",\"p\",null,{\"children\":[\"OpenShell Policy Editor — not affiliated with NVIDIA Corporation. For official support see\",\" \",[\"$\",\"a\",null,{\"href\":\"https://docs.nvidia.com/openshell\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"underline hover:text-gray-400 transition-colors\",\"children\":\"docs.nvidia.com/openshell\"}],\".\"]}]}]\na:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0ka051yepewro.js\",\"async\":true,\"nonce\":\"$undefined\"}]\nb:[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@11\"}]}]\nc:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L15\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\ne:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0u4pcq0~e4eqs.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"16:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\n11:null\n15:[[\"$\",\"title\",\"0\",{\"children\":\"Create Next App\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Generated by create next app\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L16\",\"3\",{}]]\n"])</script></body></html>
|
package/out/index.txt
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
4
4
|
4:I[22016,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0ka051yepewro.js"],""]
|
|
5
5
|
d:I[68027,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
|
6
|
-
:HL["/_next/static/chunks/
|
|
6
|
+
:HL["/_next/static/chunks/0u4pcq0~e4eqs.css","style"]
|
|
7
7
|
:HL["/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
8
8
|
:HL["/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
9
|
-
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
9
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0u4pcq0~e4eqs.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/01xlw8hd842-c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased","children":["$","body",null,{"className":"min-h-full flex flex-col","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":[["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-gray-950 text-gray-100 font-sans","children":[["$","nav",null,{"className":"border-b border-gray-800 px-6 py-4 flex items-center justify-between max-w-7xl mx-auto","children":[["$","div",null,{"className":"flex items-center gap-3","children":[["$","div",null,{"className":"w-8 h-8 rounded-sm flex items-center justify-center font-bold text-gray-950 text-sm","style":{"backgroundColor":"#76b900"},"children":"OS"}],["$","span",null,{"className":"font-semibold text-lg tracking-tight","children":"OpenShell Policy"}]]}],["$","div",null,{"className":"flex items-center gap-6 text-sm text-gray-400","children":[["$","a",null,{"href":"https://docs.nvidia.com/openshell/latest/reference/policy-schema.html","target":"_blank","rel":"noopener noreferrer","className":"hover:text-white transition-colors","children":"Docs"}],["$","a",null,{"href":"https://github.com/NVIDIA/OpenShell","target":"_blank","rel":"noopener noreferrer","className":"hover:text-white transition-colors","children":"GitHub"}],["$","$L4",null,{"href":"/editor","className":"px-4 py-2 rounded-md text-gray-950 font-semibold text-sm transition-opacity hover:opacity-90","style":{"backgroundColor":"#76b900"},"children":"Open Editor"}]]}]]}],["$","section",null,{"className":"max-w-4xl mx-auto px-6 pt-24 pb-20 text-center","children":[["$","div",null,{"className":"inline-block text-xs font-semibold px-3 py-1 rounded-full mb-6 tracking-wider uppercase","style":{"backgroundColor":"#76b90020","color":"#76b900"},"children":"NVIDIA OpenShell"}],["$","h1",null,{"className":"text-5xl font-bold leading-tight tracking-tight mb-6","children":["Visual Policy Editor",["$","br",null,{}],"for"," ",["$","span",null,{"style":{"color":"#76b900"},"children":"NVIDIA OpenShell"}]]}],["$","p",null,{"className":"text-xl text-gray-400 max-w-2xl mx-auto leading-relaxed mb-10","children":["Build, visualize, and validate OpenShell sandbox policies without hand-editing YAML. Inspired by"," ",["$","a",null,{"href":"https://networkpolicy.io","target":"_blank","rel":"noopener noreferrer","className":"underline underline-offset-2 hover:text-gray-200 transition-colors","children":"networkpolicy.io"}]," ","for Kubernetes."]}],["$","div",null,{"className":"flex items-center justify-center gap-4","children":["$L5","$L6"]}]]}],"$L7","$L8","$L9"]}],["$La"],"$Lb"]}],{},null,false,null]},null,false,null],"$Lc",false]],"m":"$undefined","G":["$d",["$Le"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"wNYCfqgSdekpP7qQKgXwZ"}
|
|
10
10
|
f:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
11
11
|
10:"$Sreact.suspense"
|
|
12
12
|
12:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
|
@@ -19,7 +19,7 @@ f:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmw
|
|
|
19
19
|
a:["$","script","script-0",{"src":"/_next/static/chunks/0ka051yepewro.js","async":true,"nonce":"$undefined"}]
|
|
20
20
|
b:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]
|
|
21
21
|
c:["$","$1","h",{"children":[null,["$","$L12",null,{"children":"$L13"}],["$","div",null,{"hidden":true,"children":["$","$L14",null,{"children":["$","$10",null,{"name":"Next.Metadata","children":"$L15"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
|
|
22
|
-
e:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
22
|
+
e:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0u4pcq0~e4eqs.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
|
|
23
23
|
13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
24
24
|
16:I[27201,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
|
|
25
25
|
11:null
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contextware/openshellpolicy",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Visual policy editor for NVIDIA OpenShell sandbox policies — build, visualize, and validate agent sandbox policies without hand-editing YAML",
|
|
5
5
|
"private": false,
|
|
6
6
|
"keywords": [
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
|
|
2
|
-
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
|
|
3
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial}}}@layer theme{:root,:host{--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-700:#bf000f;--color-red-800:#9f0712;--color-red-900:#82181a;--color-red-950:#460809;--color-orange-400:#ff8b1a;--color-orange-900:#7e2a0c;--color-amber-400:#fcbb00;--color-amber-800:#953d00;--color-amber-950:#461901;--color-green-400:#05df72;--color-green-500:#00c758;--color-green-600:#00a544;--color-green-700:#008138;--color-green-900:#0d542b;--color-green-950:#032e15;--color-blue-300:#90c5ff;--color-blue-400:#54a2ff;--color-blue-700:#1447e6;--color-blue-900:#1c398e;--color-blue-950:#162456;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5dc;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-600:#4a5565;--color-gray-700:#364153;--color-gray-800:#1e2939;--color-gray-900:#101828;--color-gray-950:#030712;--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-4xl:56rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-red-800:lab(33.7174% 55.8993 41.0293);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-red-950:lab(13.003% 29.04 16.7519);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-900:lab(30.2951% 36.0434 37.671);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-800:lab(37.8822% 37.1699 52.2718);--color-amber-950:lab(15.8111% 20.9107 23.3752);--color-green-400:lab(78.503% -64.9265 39.7492);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-green-600:lab(59.0978% -58.6621 41.2579);--color-green-700:lab(47.0329% -47.0239 31.4788);--color-green-900:lab(30.797% -29.6927 17.382);--color-green-950:lab(15.6845% -20.4225 11.7249);--color-blue-300:lab(77.5052% -6.4629 -36.42);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-700:lab(36.9089% 35.0961 -85.6872);--color-blue-900:lab(26.1542% 15.7545 -51.5504);--color-blue-950:lab(15.6723% 8.86232 -32.2945);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-200:lab(91.6229% -.159115 -2.26791);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-600:lab(35.6337% -1.58697 -10.8425);--color-gray-700:lab(27.1134% -.956401 -12.3224);--color-gray-800:lab(16.1051% -1.18239 -11.7533);--color-gray-900:lab(8.11897% .811279 -12.254);--color-gray-950:lab(1.90334% .278696 -5.48866)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-3{bottom:calc(var(--spacing) * 3)}.z-20{z-index:20}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:calc(var(--spacing) * 1)}.-mb-px{margin-bottom:-1px}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[28px\]{min-height:28px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-24{width:calc(var(--spacing) * 24)}.w-80{width:calc(var(--spacing) * 80)}.w-\[280px\]{width:280px}.w-\[350px\]{width:350px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-tl-xl{border-top-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-amber-800\/50{border-color:#953d0080}@supports (color:color-mix(in lab, red, red)){.border-amber-800\/50{border-color:color-mix(in oklab, var(--color-amber-800) 50%, transparent)}}.border-blue-700{border-color:var(--color-blue-700)}.border-blue-900\/40{border-color:#1c398e66}@supports (color:color-mix(in lab, red, red)){.border-blue-900\/40{border-color:color-mix(in oklab, var(--color-blue-900) 40%, transparent)}}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-800{border-color:var(--color-gray-800)}.border-green-700{border-color:var(--color-green-700)}.border-green-900\/50{border-color:#0d542b80}@supports (color:color-mix(in lab, red, red)){.border-green-900\/50{border-color:color-mix(in oklab, var(--color-green-900) 50%, transparent)}}.border-red-800\/50{border-color:#9f071280}@supports (color:color-mix(in lab, red, red)){.border-red-800\/50{border-color:color-mix(in oklab, var(--color-red-800) 50%, transparent)}}.border-red-900{border-color:var(--color-red-900)}.border-red-900\/30{border-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.border-red-900\/30{border-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.border-red-900\/50{border-color:#82181a80}@supports (color:color-mix(in lab, red, red)){.border-red-900\/50{border-color:color-mix(in oklab, var(--color-red-900) 50%, transparent)}}.bg-amber-950\/40{background-color:#46190166}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/40{background-color:color-mix(in oklab, var(--color-amber-950) 40%, transparent)}}.bg-blue-900\/60{background-color:#1c398e99}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/60{background-color:color-mix(in oklab, var(--color-blue-900) 60%, transparent)}}.bg-blue-950\/30{background-color:#1624564d}@supports (color:color-mix(in lab, red, red)){.bg-blue-950\/30{background-color:color-mix(in oklab, var(--color-blue-950) 30%, transparent)}}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab, red, red)){.bg-gray-800\/50{background-color:color-mix(in oklab, var(--color-gray-800) 50%, transparent)}}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-950{background-color:var(--color-gray-950)}.bg-green-900\/40{background-color:#0d542b66}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/40{background-color:color-mix(in oklab, var(--color-green-900) 40%, transparent)}}.bg-green-900\/60{background-color:#0d542b99}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/60{background-color:color-mix(in oklab, var(--color-green-900) 60%, transparent)}}.bg-green-950\/40{background-color:#032e1566}@supports (color:color-mix(in lab, red, red)){.bg-green-950\/40{background-color:color-mix(in oklab, var(--color-green-950) 40%, transparent)}}.bg-orange-900\/40{background-color:#7e2a0c66}@supports (color:color-mix(in lab, red, red)){.bg-orange-900\/40{background-color:color-mix(in oklab, var(--color-orange-900) 40%, transparent)}}.bg-red-950\/20{background-color:#46080933}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/20{background-color:color-mix(in oklab, var(--color-red-950) 20%, transparent)}}.bg-red-950\/40{background-color:#46080966}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/40{background-color:color-mix(in oklab, var(--color-red-950) 40%, transparent)}}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-geist-mono)}.font-sans{font-family:var(--font-geist-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-950{color:var(--color-gray-950)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-orange-400{color:var(--color-orange-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-green-500{accent-color:var(--color-green-500)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}@media (hover:hover){.group-hover\:text-gray-400:is(:where(.group):hover *){color:var(--color-gray-400)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.hover\:border-gray-500:hover{border-color:var(--color-gray-500)}.hover\:border-gray-600:hover{border-color:var(--color-gray-600)}.hover\:border-red-700:hover{border-color:var(--color-red-700)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-800\/50:hover{background-color:#1e293980}@supports (color:color-mix(in lab, red, red)){.hover\:bg-gray-800\/50:hover{background-color:color-mix(in oklab, var(--color-gray-800) 50%, transparent)}}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-400:hover{color:var(--color-gray-400)}.hover\:text-green-400:hover{color:var(--color-green-400)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-white:hover{color:var(--color-white)}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}}.focus\:border-green-600:focus{border-color:var(--color-green-600)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}@media (min-width:40rem){.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|