@martin0309205/prism 0.2.1 → 0.2.3
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/assets/dashboard/.next/BUILD_ID +1 -1
- package/assets/dashboard/.next/app-build-manifest.json +22 -22
- package/assets/dashboard/.next/app-path-routes-manifest.json +1 -1
- package/assets/dashboard/.next/build-manifest.json +2 -2
- package/assets/dashboard/.next/prerender-manifest.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/claude-md/page.js +2 -2
- package/assets/dashboard/.next/server/app/(dash)/claude-md/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/claude-md/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/connectors/page.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/connectors/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/connectors/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/generate/page.js +3 -3
- package/assets/dashboard/.next/server/app/(dash)/generate/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/generate/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/jobs/[id]/page.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/jobs/[id]/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/jobs/[id]/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/jobs/page.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/jobs/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/jobs/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/logs/page.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/logs/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/logs/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/page.js +2 -2
- package/assets/dashboard/.next/server/app/(dash)/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/settings/page.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/settings/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/settings/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/skills/page.js +1 -1
- package/assets/dashboard/.next/server/app/(dash)/skills/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/(dash)/skills/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/_not-found/page.js +1 -1
- package/assets/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/_not-found.html +1 -1
- package/assets/dashboard/.next/server/app/_not-found.rsc +2 -2
- package/assets/dashboard/.next/server/app/api/claude-md/route.js +1 -1
- package/assets/dashboard/.next/server/app/api/healthz/route.js +1 -1
- package/assets/dashboard/.next/server/app/api/system/update/route.js +2 -2
- package/assets/dashboard/.next/server/app/api/system/version/route.js +1 -1
- package/assets/dashboard/.next/server/app/claude-md.html +1 -1
- package/assets/dashboard/.next/server/app/claude-md.rsc +3 -3
- package/assets/dashboard/.next/server/app/connectors.html +1 -1
- package/assets/dashboard/.next/server/app/connectors.rsc +3 -3
- package/assets/dashboard/.next/server/app/generate.html +1 -1
- package/assets/dashboard/.next/server/app/generate.rsc +3 -3
- package/assets/dashboard/.next/server/app/index.html +1 -1
- package/assets/dashboard/.next/server/app/index.rsc +4 -4
- package/assets/dashboard/.next/server/app/jobs.html +1 -1
- package/assets/dashboard/.next/server/app/jobs.rsc +3 -3
- package/assets/dashboard/.next/server/app/login/page.js +1 -1
- package/assets/dashboard/.next/server/app/login/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/login.html +1 -1
- package/assets/dashboard/.next/server/app/login.rsc +3 -3
- package/assets/dashboard/.next/server/app/logs.html +1 -1
- package/assets/dashboard/.next/server/app/logs.rsc +3 -3
- package/assets/dashboard/.next/server/app/settings.html +1 -1
- package/assets/dashboard/.next/server/app/settings.rsc +3 -3
- package/assets/dashboard/.next/server/app/setup/page.js +2 -2
- package/assets/dashboard/.next/server/app/setup/page.js.nft.json +1 -1
- package/assets/dashboard/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/app/setup.html +1 -1
- package/assets/dashboard/.next/server/app/setup.rsc +3 -3
- package/assets/dashboard/.next/server/app/skills.html +1 -1
- package/assets/dashboard/.next/server/app/skills.rsc +3 -3
- package/assets/dashboard/.next/server/app-paths-manifest.json +13 -13
- package/assets/dashboard/.next/server/chunks/565.js +1 -1
- package/assets/dashboard/.next/server/chunks/971.js +16 -0
- package/assets/dashboard/.next/server/middleware-build-manifest.js +1 -1
- package/assets/dashboard/.next/server/middleware-manifest.json +3 -3
- package/assets/dashboard/.next/server/pages/404.html +1 -1
- package/assets/dashboard/.next/server/pages/500.html +1 -1
- package/assets/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/assets/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/assets/dashboard/.next/static/chunks/app/(dash)/{layout-811aba273cfc2760.js → layout-b6c00b089d68684c.js} +4 -9
- package/assets/dashboard/.next/static/chunks/app/(dash)/page-4d95d6949e23f70a.js +21 -0
- package/assets/dashboard/.next/static/chunks/app/login/page-a86ba6749512fd5f.js +6 -0
- package/assets/dashboard/.next/static/chunks/app/setup/page-9ba0c05c0ee53518.js +6 -0
- package/assets/dashboard/.next/static/css/{27aea81e28f3c17d.css → d95c47155fb80ddd.css} +1 -1
- package/assets/dashboard/public/prism.svg +11 -0
- package/package.json +1 -1
- package/assets/dashboard/.next/server/chunks/100.js +0 -21
- package/assets/dashboard/.next/static/chunks/app/(dash)/page-3abefdb4e3abdac4.js +0 -26
- package/assets/dashboard/.next/static/chunks/app/login/page-0f56038c4425433c.js +0 -11
- package/assets/dashboard/.next/static/chunks/app/setup/page-dc2d1ccbfb73e8aa.js +0 -11
- package/assets/dashboard/public/PLACEHOLDER.txt +0 -2
- /package/assets/dashboard/.next/static/{SS_jgIWqXX2pp1oaVOjaQ → LtbBi3MHZ2YVsJMnPW3DH}/_buildManifest.js +0 -0
- /package/assets/dashboard/.next/static/{SS_jgIWqXX2pp1oaVOjaQ → LtbBi3MHZ2YVsJMnPW3DH}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e={};e.id=579,e.ids=[579],e.modules={7934:e=>{function t(e){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=7934,e.exports=t},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},4300:e=>{"use strict";e.exports=require("buffer")},7718:e=>{"use strict";e.exports=require("node:child_process")},7561:e=>{"use strict";e.exports=require("node:fs")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},612:e=>{"use strict";e.exports=require("node:os")},9411:e=>{"use strict";e.exports=require("node:path")},7282:e=>{"use strict";e.exports=require("process")},9356:(e,t,r)=>{"use strict";r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>x,requestAsyncStorage:()=>h,routeModule:()=>m,serverHooks:()=>g,staticGenerationAsyncStorage:()=>y});var n={};r.r(n),r.d(n,{GET:()=>d,dynamic:()=>p,runtime:()=>c});var i=r(9303),s=r(8716),o=r(670),a=r(7070),l=r(9903),u=r(5353);let c="nodejs",p="force-dynamic",f=Date.now();async function d(){let e=await (0,l.ME)().catch(()=>null),t=await (0,u.ym)().catch(()=>null);return a.NextResponse.json({ok:!0,name:"prism",version:t??null,instance:e?.instance??(0,l.Vc)(),uptime_s:Math.floor((Date.now()-f)/1e3),surfaces:{slack:e?.surfaces?.slack?.enabled??!1,http:e?.surfaces?.http?.enabled??!1,cli:e?.surfaces?.cli?.enabled??!1,web:!0}})}let m=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/healthz/route",pathname:"/api/healthz",filename:"route",bundlePath:"app/api/healthz/route"},resolvedPagePath:"/home/runner/work/prism/prism/web/src/app/api/healthz/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:h,staticGenerationAsyncStorage:y,serverHooks:g}=m,v="/api/healthz/route";function x(){return(0,o.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:y})}},9925:e=>{"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function o(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function a(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,i]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=i?i:"true"))}catch{}}return t}function l(e){var t,r;if(!e)return;let[[n,i],...s]=a(e),{domain:o,expires:l,httponly:p,maxage:f,path:d,samesite:m,secure:h,partitioned:y,priority:g}=Object.fromEntries(s.map(([e,t])=>[e.toLowerCase(),t]));return function(e){let t={};for(let r in e)e[r]&&(t[r]=e[r]);return t}({name:n,value:decodeURIComponent(i),domain:o,...l&&{expires:new Date(l)},...p&&{httpOnly:!0},..."string"==typeof f&&{maxAge:Number(f)},path:d,...m&&{sameSite:u.includes(t=(t=m).toLowerCase())?t:void 0},...h&&{secure:!0},...g&&{priority:c.includes(r=(r=g).toLowerCase())?r:void 0},...y&&{partitioned:!0}})}((e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:!0})})(s,{RequestCookies:()=>p,ResponseCookies:()=>f,parseCookie:()=>a,parseSetCookie:()=>l,stringifyCookie:()=>o}),e.exports=((e,s,o,a)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let o of n(s))i.call(e,o)||void 0===o||t(e,o,{get:()=>s[o],enumerable:!(a=r(s,o))||a.enumerable});return e})(t({},"__esModule",{value:!0}),s);var u=["strict","lax","none"],c=["low","medium","high"],p=class{constructor(e){this._parsed=new Map,this._headers=e;let t=e.get("cookie");if(t)for(let[e,r]of a(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>o(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>o(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;let i=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(let e of Array.isArray(i)?i:function(e){if(!e)return[];var t,r,n,i,s,o=[],a=0;function l(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,s=!1;l();)if(","===(r=e.charAt(a))){for(n=a,a+=1,l(),i=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(s=!0,a=i,o.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!s||a>=e.length)&&o.push(e.substring(t,e.length))}return o}(i)){let t=l(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,i=this._parsed;return i.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=o(r);t.append("set-cookie",e)}}(i,this._headers),this}delete(...e){let[t,r,n]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0].path,e[0].domain];return this.set({name:t,path:r,domain:n,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(o).join("; ")}}},9303:(e,t,r)=>{"use strict";e.exports=r(517)},2044:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RequestCookies:function(){return n.RequestCookies},ResponseCookies:function(){return n.ResponseCookies}});let n=r(9925)},5353:(e,t,r)=>{"use strict";r.d(t,{Fx:()=>m,Iu:()=>h,ym:()=>p,gn:()=>d});var n=r(7718),i=r(7561),s=r(9411);let o=require("node:util"),a="@martin0309205/prism",l=`https://registry.npmjs.org/${encodeURIComponent(a)}/latest`,u=(0,o.promisify)(n.execFile),c=null;async function p(){try{let{stdout:e}=await u("prism",["--version"],{timeout:5e3}),t=e.trim().split(/\s+/).pop()?.replace(/^v/,"")??"";if(/^\d+\.\d+\.\d+/.test(t))return t}catch{}return function(){let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,s.join)(e,"node_modules","@martin0309205","prism","package.json");if((0,i.existsSync)(t))try{let e=JSON.parse(i.readFileSync(t,"utf8"))?.version;if("string"==typeof e)return e}catch{}let r=(0,s.resolve)(e,"..");if(r===e)break;e=r}return null}()}async function f(){if(c&&Date.now()-c.ts<6e4)return c.version;try{let e=await fetch(l,{cache:"no-store"});if(!e.ok)return null;let t=await e.json();if("string"!=typeof t?.version)return null;return c={version:t.version,ts:Date.now()},t.version}catch{return null}}async function d(){let[e,t]=await Promise.all([p(),f()]),r=!!(e&&t&&function(e,t){let r=e.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0)),n=t.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0));for(let e=0;e<3;e+=1){let t=r[e]??0,i=n[e]??0;if(t!==i)return t-i}return 0}(t,e)>0);return{installed:e,latest:t,upgrade_available:r,name:a}}let m=a;function h(){try{let e=r(7934).resolve(`${a}/package.json`),t=(0,s.join)((0,s.dirname)(e),"assets","claude-md","CLAUDE.md");if((0,i.existsSync)(t))return t}catch{}let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,s.join)(e,"node_modules","@martin0309205","prism","assets","claude-md","CLAUDE.md");if((0,i.existsSync)(t))return t;let r=(0,s.resolve)(e,"..");if(r===e)break;e=r}return null}},9903:(e,t,r)=>{"use strict";r.d(t,{Kp:()=>u,ME:()=>p,Oh:()=>f,Vc:()=>l,hL:()=>d});var n=r(7561),i=r(3977),s=r(9411),o=r(612),a=r(9262);function l(){return process.env.PRISM_INSTANCE||"default"}function u(){return process.env.PRISM_INSTANCE_DIR||(0,s.join)((0,o.homedir)(),".prism","instances",l())}function c(){return(0,s.join)(u(),"config.yaml")}async function p(){let e={instance:l(),surfaces:{slack:{enabled:!1,allowlist_channels:[]},http:{enabled:!0,bind:"127.0.0.1",port:18790},cli:{enabled:!0}},claude:{bin:"claude",timeout_ms:6e5,workdir_root:"/tmp"},artifacts:{retention_days:7},logging:{level:"info",decision_log:!0}},t=c();if(!(0,n.existsSync)(t))return e;try{let r=await (0,i.readFile)(t,"utf8"),n=a.parse(r);if(!n)return e;return function e(t,r){if(null==r)return t;if("object"!=typeof t||"object"!=typeof r)return r??t;let n={...t};for(let[i,s]of Object.entries(r)){if(null==s)continue;let r=t[i];"object"!=typeof r||null===r||Array.isArray(r)||"object"!=typeof s||Array.isArray(s)?n[i]=s:n[i]=e(r,s)}return n}(e,n)}catch{return e}}async function f(e){let t=c();(0,n.mkdirSync)((0,s.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,i.writeFile)(r,a.stringify(e)),await (0,i.rename)(r,t)}async function d(){let e=(0,s.join)(u(),".env");if(!(0,n.existsSync)(e))return{raw:"",parsed:{}};let t=await (0,i.readFile)(e,"utf8"),r={};for(let e of t.split(/\r?\n/)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n<0)continue;let i=t.slice(0,n).trim(),s=t.slice(n+1).trim();(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1)),r[i]=s}return{raw:t,parsed:r}}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[948,70,262],()=>r(9356));module.exports=n})();
|
|
1
|
+
(()=>{var e={};e.id=579,e.ids=[579],e.modules={7934:e=>{function t(e){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=7934,e.exports=t},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},4300:e=>{"use strict";e.exports=require("buffer")},7718:e=>{"use strict";e.exports=require("node:child_process")},7561:e=>{"use strict";e.exports=require("node:fs")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},612:e=>{"use strict";e.exports=require("node:os")},9411:e=>{"use strict";e.exports=require("node:path")},7282:e=>{"use strict";e.exports=require("process")},9356:(e,t,r)=>{"use strict";r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>x,requestAsyncStorage:()=>h,routeModule:()=>m,serverHooks:()=>g,staticGenerationAsyncStorage:()=>y});var n={};r.r(n),r.d(n,{GET:()=>d,dynamic:()=>p,runtime:()=>c});var i=r(9303),s=r(8716),o=r(670),a=r(7070),l=r(9903),u=r(5353);let c="nodejs",p="force-dynamic",f=Date.now();async function d(){let e=await (0,l.ME)().catch(()=>null),t=await (0,u.ym)().catch(()=>null);return a.NextResponse.json({ok:!0,name:"prism",version:t??null,instance:e?.instance??(0,l.Vc)(),uptime_s:Math.floor((Date.now()-f)/1e3),surfaces:{slack:e?.surfaces?.slack?.enabled??!1,http:e?.surfaces?.http?.enabled??!1,cli:e?.surfaces?.cli?.enabled??!1,web:!0}})}let m=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/healthz/route",pathname:"/api/healthz",filename:"route",bundlePath:"app/api/healthz/route"},resolvedPagePath:"/home/runner/work/prism/prism/web/src/app/api/healthz/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:h,staticGenerationAsyncStorage:y,serverHooks:g}=m,v="/api/healthz/route";function x(){return(0,o.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:y})}},9925:e=>{"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function o(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function a(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,i]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=i?i:"true"))}catch{}}return t}function l(e){var t,r;if(!e)return;let[[n,i],...s]=a(e),{domain:o,expires:l,httponly:p,maxage:f,path:d,samesite:m,secure:h,partitioned:y,priority:g}=Object.fromEntries(s.map(([e,t])=>[e.toLowerCase(),t]));return function(e){let t={};for(let r in e)e[r]&&(t[r]=e[r]);return t}({name:n,value:decodeURIComponent(i),domain:o,...l&&{expires:new Date(l)},...p&&{httpOnly:!0},..."string"==typeof f&&{maxAge:Number(f)},path:d,...m&&{sameSite:u.includes(t=(t=m).toLowerCase())?t:void 0},...h&&{secure:!0},...g&&{priority:c.includes(r=(r=g).toLowerCase())?r:void 0},...y&&{partitioned:!0}})}((e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:!0})})(s,{RequestCookies:()=>p,ResponseCookies:()=>f,parseCookie:()=>a,parseSetCookie:()=>l,stringifyCookie:()=>o}),e.exports=((e,s,o,a)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let o of n(s))i.call(e,o)||void 0===o||t(e,o,{get:()=>s[o],enumerable:!(a=r(s,o))||a.enumerable});return e})(t({},"__esModule",{value:!0}),s);var u=["strict","lax","none"],c=["low","medium","high"],p=class{constructor(e){this._parsed=new Map,this._headers=e;let t=e.get("cookie");if(t)for(let[e,r]of a(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>o(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>o(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;let i=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(let e of Array.isArray(i)?i:function(e){if(!e)return[];var t,r,n,i,s,o=[],a=0;function l(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,s=!1;l();)if(","===(r=e.charAt(a))){for(n=a,a+=1,l(),i=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(s=!0,a=i,o.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!s||a>=e.length)&&o.push(e.substring(t,e.length))}return o}(i)){let t=l(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,i=this._parsed;return i.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=o(r);t.append("set-cookie",e)}}(i,this._headers),this}delete(...e){let[t,r,n]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0].path,e[0].domain];return this.set({name:t,path:r,domain:n,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(o).join("; ")}}},9303:(e,t,r)=>{"use strict";e.exports=r(517)},2044:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RequestCookies:function(){return n.RequestCookies},ResponseCookies:function(){return n.ResponseCookies}});let n=r(9925)},5353:(e,t,r)=>{"use strict";r.d(t,{Iu:()=>m,ym:()=>p,gn:()=>d});var n=r(7718),i=r(7561),s=r(9411);let o=require("node:util"),a="@martin0309205/prism",l=`https://registry.npmjs.org/${encodeURIComponent(a)}/latest`,u=(0,o.promisify)(n.execFile),c=null;async function p(){try{let{stdout:e}=await u("prism",["--version"],{timeout:5e3}),t=e.trim().split(/\s+/).pop()?.replace(/^v/,"")??"";if(/^\d+\.\d+\.\d+/.test(t))return t}catch{}return function(){let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,s.join)(e,"node_modules","@martin0309205","prism","package.json");if((0,i.existsSync)(t))try{let e=JSON.parse(i.readFileSync(t,"utf8"))?.version;if("string"==typeof e)return e}catch{}let r=(0,s.resolve)(e,"..");if(r===e)break;e=r}return null}()}async function f(){if(c&&Date.now()-c.ts<6e4)return c.version;try{let e=await fetch(l,{cache:"no-store"});if(!e.ok)return null;let t=await e.json();if("string"!=typeof t?.version)return null;return c={version:t.version,ts:Date.now()},t.version}catch{return null}}async function d(){let[e,t]=await Promise.all([p(),f()]),r=!!(e&&t&&function(e,t){let r=e.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0)),n=t.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0));for(let e=0;e<3;e+=1){let t=r[e]??0,i=n[e]??0;if(t!==i)return t-i}return 0}(t,e)>0);return{installed:e,latest:t,upgrade_available:r,name:a}}function m(){try{let e=r(7934).resolve(`${a}/package.json`),t=(0,s.join)((0,s.dirname)(e),"assets","claude-md","CLAUDE.md");if((0,i.existsSync)(t))return t}catch{}let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,s.join)(e,"node_modules","@martin0309205","prism","assets","claude-md","CLAUDE.md");if((0,i.existsSync)(t))return t;let r=(0,s.resolve)(e,"..");if(r===e)break;e=r}return null}},9903:(e,t,r)=>{"use strict";r.d(t,{Kp:()=>u,ME:()=>p,Oh:()=>f,Vc:()=>l,hL:()=>d});var n=r(7561),i=r(3977),s=r(9411),o=r(612),a=r(9262);function l(){return process.env.PRISM_INSTANCE||"default"}function u(){return process.env.PRISM_INSTANCE_DIR||(0,s.join)((0,o.homedir)(),".prism","instances",l())}function c(){return(0,s.join)(u(),"config.yaml")}async function p(){let e={instance:l(),surfaces:{slack:{enabled:!1,allowlist_channels:[]},http:{enabled:!0,bind:"127.0.0.1",port:18790},cli:{enabled:!0}},claude:{bin:"claude",timeout_ms:6e5,workdir_root:"/tmp"},artifacts:{retention_days:7},logging:{level:"info",decision_log:!0}},t=c();if(!(0,n.existsSync)(t))return e;try{let r=await (0,i.readFile)(t,"utf8"),n=a.parse(r);if(!n)return e;return function e(t,r){if(null==r)return t;if("object"!=typeof t||"object"!=typeof r)return r??t;let n={...t};for(let[i,s]of Object.entries(r)){if(null==s)continue;let r=t[i];"object"!=typeof r||null===r||Array.isArray(r)||"object"!=typeof s||Array.isArray(s)?n[i]=s:n[i]=e(r,s)}return n}(e,n)}catch{return e}}async function f(e){let t=c();(0,n.mkdirSync)((0,s.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,i.writeFile)(r,a.stringify(e)),await (0,i.rename)(r,t)}async function d(){let e=(0,s.join)(u(),".env");if(!(0,n.existsSync)(e))return{raw:"",parsed:{}};let t=await (0,i.readFile)(e,"utf8"),r={};for(let e of t.split(/\r?\n/)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n<0)continue;let i=t.slice(0,n).trim(),s=t.slice(n+1).trim();(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1)),r[i]=s}return{raw:t,parsed:r}}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[948,70,262],()=>r(9356));module.exports=n})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{var e={};e.id=918,e.ids=[918],e.modules={
|
|
1
|
+
"use strict";(()=>{var e={};e.id=918,e.ids=[918],e.modules={2934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},4300:e=>{e.exports=require("buffer")},6113:e=>{e.exports=require("crypto")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},7282:e=>{e.exports=require("process")},8652:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>S,patchFetch:()=>_,requestAsyncStorage:()=>m,routeModule:()=>f,serverHooks:()=>w,staticGenerationAsyncStorage:()=>y});var n={};r.r(n),r.d(n,{POST:()=>p,dynamic:()=>d,runtime:()=>c});var s=r(9303),i=r(8716),a=r(670),o=r(7718),u=r(5456),l=r(9903);let c="nodejs",d="force-dynamic";async function p(e){if(!await (0,u.MH)("admin"))return new Response(JSON.stringify({error:"admin required"}),{status:403,headers:{"Content-Type":"application/json"}});let t=(0,l.Vc)();return new Response(new ReadableStream({async start(e){let r=new TextEncoder,n=(t,n)=>{for(let s of(e.enqueue(r.encode(`event: ${t}
|
|
2
2
|
`)),n.split("\n")))e.enqueue(r.encode(`data: ${s}
|
|
3
|
-
`));e.enqueue(r.encode("\n"))};n("log",`[prism] installing ${c.Fx}@latest...`);let s=(0,o.spawn)("npm",["install","-g",`${c.Fx}@latest`],{env:process.env});s.stdout.on("data",e=>n("log",e.toString("utf8").trimEnd())),s.stderr.on("data",e=>n("log",e.toString("utf8").trimEnd()));let i=await new Promise(e=>{s.on("exit",t=>e(t??-1)),s.on("error",t=>{n("log",`[error] ${t.message}`),e(-1)})});if(0!==i){n("done",JSON.stringify({ok:!1,exit_code:i,stage:"npm"})),e.close();return}n("log","[prism] npm install completed (exit 0)"),n("log",`[prism] restarting prism-web@${t}.service...`),(0,o.spawn)("systemctl",["--user","restart",`prism-web@${t}.service`],{env:process.env,detached:!0,stdio:"ignore"}).unref(),n("done",JSON.stringify({ok:!0,exit_code:0,stage:"restart"})),e.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"}})}let m=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/system/update/route",pathname:"/api/system/update",filename:"route",bundlePath:"app/api/system/update/route"},resolvedPagePath:"/home/runner/work/prism/prism/web/src/app/api/system/update/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:y,staticGenerationAsyncStorage:w,serverHooks:S}=m,_="/api/system/update/route";function g(){return(0,a.patchFetch)({serverHooks:S,staticGenerationAsyncStorage:w})}},5456:(e,t,r)=>{"use strict";r.d(t,{MH:()=>d,Ov:()=>m,Uj:()=>p,Vc:()=>c,c:()=>f,ts:()=>l});var n=r(1615),s=r(9902),i=r(2153);let a=process.env.ASTRY_COOKIE_NAME||"astry_session",o=process.env.ASTRY_AUTH_DOMAIN||void 0;function u(){return process.env.PRISM_DASHBOARD_TOKEN||null}async function l(){let e=(0,n.cookies)().get(a);if(!e)return null;let t=await (0,s.je)(e.value);if(t){let e=await (0,i.GA)(t.user_id);if(e&&!e.disabled)return e}let r=u();return r&&e.value===r?{id:"usr_legacy_admin",email:"admin@legacy",name:"Legacy admin (token)",role:"admin",created_at:new Date(0).toISOString(),created_by:null,last_login_at:null,disabled:!1}:null}async function c(){return l()}async function d(e){let t=await l();return t&&("admin"!==e||"admin"===t.role)?t:null}async function p(e){(0,n.cookies)().set(a,e,{httpOnly:!0,secure:function(){try{let e=(0,n.headers)().get("x-forwarded-proto");return"https"===e}catch{return!1}}(),sameSite:"lax",maxAge:5184e3,path:"/",...o?{domain:o}:{}})}async function f(e){let t=u();return!!t&&e===t&&(await p(e),!0)}async function m(){let e=(0,n.cookies)().get(a);return(0,n.cookies)().delete(a),e?.value??null}},5353:(e,t,r)=>{"use strict";r.d(t,{Fx:()=>m,Iu:()=>y,ym:()=>d,gn:()=>f});var n=r(7718),s=r(7561),i=r(9411);let a=require("node:util"),o="@martin0309205/prism",u=`https://registry.npmjs.org/${encodeURIComponent(o)}/latest`,l=(0,a.promisify)(n.execFile),c=null;async function d(){try{let{stdout:e}=await l("prism",["--version"],{timeout:5e3}),t=e.trim().split(/\s+/).pop()?.replace(/^v/,"")??"";if(/^\d+\.\d+\.\d+/.test(t))return t}catch{}return function(){let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,i.join)(e,"node_modules","@martin0309205","prism","package.json");if((0,s.existsSync)(t))try{let e=JSON.parse(s.readFileSync(t,"utf8"))?.version;if("string"==typeof e)return e}catch{}let r=(0,i.resolve)(e,"..");if(r===e)break;e=r}return null}()}async function p(){if(c&&Date.now()-c.ts<6e4)return c.version;try{let e=await fetch(u,{cache:"no-store"});if(!e.ok)return null;let t=await e.json();if("string"!=typeof t?.version)return null;return c={version:t.version,ts:Date.now()},t.version}catch{return null}}async function f(){let[e,t]=await Promise.all([d(),p()]),r=!!(e&&t&&function(e,t){let r=e.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0)),n=t.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0));for(let e=0;e<3;e+=1){let t=r[e]??0,s=n[e]??0;if(t!==s)return t-s}return 0}(t,e)>0);return{installed:e,latest:t,upgrade_available:r,name:o}}let m=o;function y(){try{let e=r(7934).resolve(`${o}/package.json`),t=(0,i.join)((0,i.dirname)(e),"assets","claude-md","CLAUDE.md");if((0,s.existsSync)(t))return t}catch{}let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,i.join)(e,"node_modules","@martin0309205","prism","assets","claude-md","CLAUDE.md");if((0,s.existsSync)(t))return t;let r=(0,i.resolve)(e,"..");if(r===e)break;e=r}return null}},9903:(e,t,r)=>{"use strict";r.d(t,{Kp:()=>l,ME:()=>d,Oh:()=>p,Vc:()=>u,hL:()=>f});var n=r(7561),s=r(3977),i=r(9411),a=r(612),o=r(9262);function u(){return process.env.PRISM_INSTANCE||"default"}function l(){return process.env.PRISM_INSTANCE_DIR||(0,i.join)((0,a.homedir)(),".prism","instances",u())}function c(){return(0,i.join)(l(),"config.yaml")}async function d(){let e={instance:u(),surfaces:{slack:{enabled:!1,allowlist_channels:[]},http:{enabled:!0,bind:"127.0.0.1",port:18790},cli:{enabled:!0}},claude:{bin:"claude",timeout_ms:6e5,workdir_root:"/tmp"},artifacts:{retention_days:7},logging:{level:"info",decision_log:!0}},t=c();if(!(0,n.existsSync)(t))return e;try{let r=await (0,s.readFile)(t,"utf8"),n=o.parse(r);if(!n)return e;return function e(t,r){if(null==r)return t;if("object"!=typeof t||"object"!=typeof r)return r??t;let n={...t};for(let[s,i]of Object.entries(r)){if(null==i)continue;let r=t[s];"object"!=typeof r||null===r||Array.isArray(r)||"object"!=typeof i||Array.isArray(i)?n[s]=i:n[s]=e(r,i)}return n}(e,n)}catch{return e}}async function p(e){let t=c();(0,n.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,s.writeFile)(r,o.stringify(e)),await (0,s.rename)(r,t)}async function f(){let e=(0,i.join)(l(),".env");if(!(0,n.existsSync)(e))return{raw:"",parsed:{}};let t=await (0,s.readFile)(e,"utf8"),r={};for(let e of t.split(/\r?\n/)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n<0)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),r[s]=i}return{raw:t,parsed:r}}},9902:(e,t,r)=>{"use strict";r.d(t,{ed:()=>p,je:()=>f,w$:()=>m});var n=r(7561),s=r(3977),i=r(9411),a=r(6005),o=r(2153);function u(){let e=process.env.ASTRY_SESSIONS_PATH;if(e){let t=(0,i.dirname)(e);return(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0}),e}let t=process.env.PRISM_INSTANCE_DIR;if(!t)throw Error("PRISM_INSTANCE_DIR or ASTRY_SESSIONS_PATH must be set");let r=(0,i.join)(t,"data");return(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0}),(0,i.join)(r,"sessions.json")}function l(e){return(0,a.createHash)("sha256").update(e,"utf8").digest("hex")}async function c(){let e=u();if(!(0,n.existsSync)(e))return{version:1,sessions:[]};try{let t=await (0,s.readFile)(e,"utf8"),r=JSON.parse(t);if(r?.version!==1||!Array.isArray(r.sessions))return{version:1,sessions:[]};return r}catch{return{version:1,sessions:[]}}}async function d(e){let t=u();(0,n.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,s.writeFile)(r,JSON.stringify(e,null,2),{mode:384}),await (0,s.rename)(r,t)}async function p(e){let{session_lifetime_days:t}=await (0,o.Gw)(),r=(0,a.randomBytes)(32).toString("base64url"),n=new Date,s=new Date(n.getTime()+864e5*t),i={id:"sess_"+(0,a.randomBytes)(8).toString("base64url"),token_hash:l(r),user_id:e.user_id,created_at:n.toISOString(),expires_at:s.toISOString(),last_used_at:n.toISOString(),ip:e.ip??null,user_agent:e.user_agent??null},u=await c();return u.sessions=function(e){let t=Date.now();return e.filter(e=>new Date(e.expires_at).getTime()>t)}(u.sessions),u.sessions.push(i),await d(u),{token:r,session:i}}async function f(e){if(!e)return null;let t=l(e),r=await c(),n=r.sessions.find(e=>e.token_hash===t);return!n||new Date(n.expires_at).getTime()<Date.now()?null:(n.last_used_at=new Date().toISOString(),d(r).catch(()=>{}),n)}async function m(e){let t=l(e),r=await c(),n=r.sessions.length;return r.sessions=r.sessions.filter(e=>e.token_hash!==t),r.sessions.length!==n&&(await d(r),!0)}},2153:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>v,GA:()=>y,Gv:()=>h,Gw:()=>S,Re:()=>_,r4:()=>g,ve:()=>m});var n=r(7561),s=r(3977),i=r(9411),a=r(6005),o=r(2023),u=r.n(o);function l(){let e=process.env.ASTRY_USERS_PATH;if(e){let t=(0,i.dirname)(e);return(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0}),e}let t=process.env.PRISM_INSTANCE_DIR;if(!t)throw Error("PRISM_INSTANCE_DIR or ASTRY_USERS_PATH must be set");let r=(0,i.join)(t,"config");return(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0}),(0,i.join)(r,"users.json")}async function c(){let e=l();if(!(0,n.existsSync)(e))return{version:1,users:[]};try{let t=await (0,s.readFile)(e,"utf8"),r=JSON.parse(t);if(r?.version!==1||!Array.isArray(r.users))return{version:1,users:[]};return r}catch{return{version:1,users:[]}}}async function d(e){let t=l();(0,n.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,s.writeFile)(r,JSON.stringify(e,null,2),{mode:384}),await (0,s.rename)(r,t)}function p(e){let{password_hash:t,...r}=e;return r}function f(e){return e.trim().toLowerCase()}async function m(){return(await c()).users.filter(e=>!e.disabled).length}async function y(e){let t=(await c()).users.find(t=>t.id===e);return t?p(t):null}async function w(e){let t=await c(),r=f(e);return t.users.find(e=>e.email===r)??null}async function S(){let e=await c();return{session_lifetime_days:e.settings?.session_lifetime_days??30}}async function _(e){let t=await c();if(!Number.isFinite(e)||e<1||e>365)throw Error("session_lifetime_days must be 1-365");t.settings={...t.settings??{},session_lifetime_days:Math.round(e)},await d(t)}async function g(e){let t=await c(),r=f(e.email);if(!r.includes("@"))throw Error("invalid email");if(e.password.length<8)throw Error("password must be at least 8 characters");if(t.users.find(e=>e.email===r))throw Error("email already exists");let n={id:"usr_"+(0,a.randomBytes)(8).toString("base64url"),email:r,name:e.name.trim()||r,password_hash:await u().hash(e.password,12),role:e.role,created_at:new Date().toISOString(),created_by:e.created_by,last_login_at:null,disabled:!1};return t.users.push(n),await d(t),p(n)}async function h(e,t){let r=await w(e);return!r||r.disabled?null:await u().compare(t,r.password_hash)?r:null}async function v(e){let t=await c(),r=t.users.find(t=>t.id===e);r&&(r.last_login_at=new Date().toISOString(),await d(t))}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[948,277,262],()=>r(8652));module.exports=n})();
|
|
3
|
+
`));e.enqueue(r.encode("\n"))};n("log","[prism] running prism update (npm install + claude-md + skills) + web upgrade...");let s=`prism-update-${Date.now()}`,i=`prism update --no-restart && prism web -i ${t} --restart upgrade && systemctl --user restart prism@${t}.service`,a=(0,o.spawn)("systemd-run",["--user","--collect","--pipe","--unit",s,"bash","-c",i],{env:process.env});a.stdout.on("data",e=>n("log",e.toString("utf8").trimEnd())),a.stderr.on("data",e=>n("log",e.toString("utf8").trimEnd()));let u=await new Promise(e=>{a.on("exit",t=>e(t??-1)),a.on("error",t=>{n("log",`[error] ${t.message}`),e(-1)})});n("done",JSON.stringify({ok:0===u,exit_code:u,stage:"all"})),e.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"}})}let f=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/system/update/route",pathname:"/api/system/update",filename:"route",bundlePath:"app/api/system/update/route"},resolvedPagePath:"/home/runner/work/prism/prism/web/src/app/api/system/update/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:m,staticGenerationAsyncStorage:y,serverHooks:w}=f,S="/api/system/update/route";function _(){return(0,a.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:y})}},5456:(e,t,r)=>{r.d(t,{MH:()=>d,Ov:()=>m,Uj:()=>p,Vc:()=>c,c:()=>f,ts:()=>l});var n=r(1615),s=r(9902),i=r(2153);let a=process.env.ASTRY_COOKIE_NAME||"astry_session",o=process.env.ASTRY_AUTH_DOMAIN||void 0;function u(){return process.env.PRISM_DASHBOARD_TOKEN||null}async function l(){let e=(0,n.cookies)().get(a);if(!e)return null;let t=await (0,s.je)(e.value);if(t){let e=await (0,i.GA)(t.user_id);if(e&&!e.disabled)return e}let r=u();return r&&e.value===r?{id:"usr_legacy_admin",email:"admin@legacy",name:"Legacy admin (token)",role:"admin",created_at:new Date(0).toISOString(),created_by:null,last_login_at:null,disabled:!1}:null}async function c(){return l()}async function d(e){let t=await l();return t&&("admin"!==e||"admin"===t.role)?t:null}async function p(e){(0,n.cookies)().set(a,e,{httpOnly:!0,secure:function(){try{let e=(0,n.headers)().get("x-forwarded-proto");return"https"===e}catch{return!1}}(),sameSite:"lax",maxAge:5184e3,path:"/",...o?{domain:o}:{}})}async function f(e){let t=u();return!!t&&e===t&&(await p(e),!0)}async function m(){let e=(0,n.cookies)().get(a);return(0,n.cookies)().delete(a),e?.value??null}},9903:(e,t,r)=>{r.d(t,{Kp:()=>l,ME:()=>d,Oh:()=>p,Vc:()=>u,hL:()=>f});var n=r(7561),s=r(3977),i=r(9411),a=r(612),o=r(9262);function u(){return process.env.PRISM_INSTANCE||"default"}function l(){return process.env.PRISM_INSTANCE_DIR||(0,i.join)((0,a.homedir)(),".prism","instances",u())}function c(){return(0,i.join)(l(),"config.yaml")}async function d(){let e={instance:u(),surfaces:{slack:{enabled:!1,allowlist_channels:[]},http:{enabled:!0,bind:"127.0.0.1",port:18790},cli:{enabled:!0}},claude:{bin:"claude",timeout_ms:6e5,workdir_root:"/tmp"},artifacts:{retention_days:7},logging:{level:"info",decision_log:!0}},t=c();if(!(0,n.existsSync)(t))return e;try{let r=await (0,s.readFile)(t,"utf8"),n=o.parse(r);if(!n)return e;return function e(t,r){if(null==r)return t;if("object"!=typeof t||"object"!=typeof r)return r??t;let n={...t};for(let[s,i]of Object.entries(r)){if(null==i)continue;let r=t[s];"object"!=typeof r||null===r||Array.isArray(r)||"object"!=typeof i||Array.isArray(i)?n[s]=i:n[s]=e(r,i)}return n}(e,n)}catch{return e}}async function p(e){let t=c();(0,n.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,s.writeFile)(r,o.stringify(e)),await (0,s.rename)(r,t)}async function f(){let e=(0,i.join)(l(),".env");if(!(0,n.existsSync)(e))return{raw:"",parsed:{}};let t=await (0,s.readFile)(e,"utf8"),r={};for(let e of t.split(/\r?\n/)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n<0)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),r[s]=i}return{raw:t,parsed:r}}},9902:(e,t,r)=>{r.d(t,{ed:()=>p,je:()=>f,w$:()=>m});var n=r(7561),s=r(3977),i=r(9411),a=r(6005),o=r(2153);function u(){let e=process.env.ASTRY_SESSIONS_PATH;if(e){let t=(0,i.dirname)(e);return(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0}),e}let t=process.env.PRISM_INSTANCE_DIR;if(!t)throw Error("PRISM_INSTANCE_DIR or ASTRY_SESSIONS_PATH must be set");let r=(0,i.join)(t,"data");return(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0}),(0,i.join)(r,"sessions.json")}function l(e){return(0,a.createHash)("sha256").update(e,"utf8").digest("hex")}async function c(){let e=u();if(!(0,n.existsSync)(e))return{version:1,sessions:[]};try{let t=await (0,s.readFile)(e,"utf8"),r=JSON.parse(t);if(r?.version!==1||!Array.isArray(r.sessions))return{version:1,sessions:[]};return r}catch{return{version:1,sessions:[]}}}async function d(e){let t=u();(0,n.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,s.writeFile)(r,JSON.stringify(e,null,2),{mode:384}),await (0,s.rename)(r,t)}async function p(e){let{session_lifetime_days:t}=await (0,o.Gw)(),r=(0,a.randomBytes)(32).toString("base64url"),n=new Date,s=new Date(n.getTime()+864e5*t),i={id:"sess_"+(0,a.randomBytes)(8).toString("base64url"),token_hash:l(r),user_id:e.user_id,created_at:n.toISOString(),expires_at:s.toISOString(),last_used_at:n.toISOString(),ip:e.ip??null,user_agent:e.user_agent??null},u=await c();return u.sessions=function(e){let t=Date.now();return e.filter(e=>new Date(e.expires_at).getTime()>t)}(u.sessions),u.sessions.push(i),await d(u),{token:r,session:i}}async function f(e){if(!e)return null;let t=l(e),r=await c(),n=r.sessions.find(e=>e.token_hash===t);return!n||new Date(n.expires_at).getTime()<Date.now()?null:(n.last_used_at=new Date().toISOString(),d(r).catch(()=>{}),n)}async function m(e){let t=l(e),r=await c(),n=r.sessions.length;return r.sessions=r.sessions.filter(e=>e.token_hash!==t),r.sessions.length!==n&&(await d(r),!0)}},2153:(e,t,r)=>{r.d(t,{Cf:()=>v,GA:()=>y,Gv:()=>h,Gw:()=>S,Re:()=>_,r4:()=>g,ve:()=>m});var n=r(7561),s=r(3977),i=r(9411),a=r(6005),o=r(2023),u=r.n(o);function l(){let e=process.env.ASTRY_USERS_PATH;if(e){let t=(0,i.dirname)(e);return(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0}),e}let t=process.env.PRISM_INSTANCE_DIR;if(!t)throw Error("PRISM_INSTANCE_DIR or ASTRY_USERS_PATH must be set");let r=(0,i.join)(t,"config");return(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0}),(0,i.join)(r,"users.json")}async function c(){let e=l();if(!(0,n.existsSync)(e))return{version:1,users:[]};try{let t=await (0,s.readFile)(e,"utf8"),r=JSON.parse(t);if(r?.version!==1||!Array.isArray(r.users))return{version:1,users:[]};return r}catch{return{version:1,users:[]}}}async function d(e){let t=l();(0,n.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,s.writeFile)(r,JSON.stringify(e,null,2),{mode:384}),await (0,s.rename)(r,t)}function p(e){let{password_hash:t,...r}=e;return r}function f(e){return e.trim().toLowerCase()}async function m(){return(await c()).users.filter(e=>!e.disabled).length}async function y(e){let t=(await c()).users.find(t=>t.id===e);return t?p(t):null}async function w(e){let t=await c(),r=f(e);return t.users.find(e=>e.email===r)??null}async function S(){let e=await c();return{session_lifetime_days:e.settings?.session_lifetime_days??30}}async function _(e){let t=await c();if(!Number.isFinite(e)||e<1||e>365)throw Error("session_lifetime_days must be 1-365");t.settings={...t.settings??{},session_lifetime_days:Math.round(e)},await d(t)}async function g(e){let t=await c(),r=f(e.email);if(!r.includes("@"))throw Error("invalid email");if(e.password.length<8)throw Error("password must be at least 8 characters");if(t.users.find(e=>e.email===r))throw Error("email already exists");let n={id:"usr_"+(0,a.randomBytes)(8).toString("base64url"),email:r,name:e.name.trim()||r,password_hash:await u().hash(e.password,12),role:e.role,created_at:new Date().toISOString(),created_by:e.created_by,last_login_at:null,disabled:!1};return t.users.push(n),await d(t),p(n)}async function h(e,t){let r=await w(e);return!r||r.disabled?null:await u().compare(t,r.password_hash)?r:null}async function v(e){let t=await c(),r=t.users.find(t=>t.id===e);r&&(r.last_login_at=new Date().toISOString(),await d(t))}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[948,277,262],()=>r(8652));module.exports=n})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e={};e.id=128,e.ids=[128],e.modules={7934:e=>{function t(e){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=7934,e.exports=t},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6113:e=>{"use strict";e.exports=require("crypto")},7718:e=>{"use strict";e.exports=require("node:child_process")},6005:e=>{"use strict";e.exports=require("node:crypto")},7561:e=>{"use strict";e.exports=require("node:fs")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},9411:e=>{"use strict";e.exports=require("node:path")},3769:(e,t,r)=>{"use strict";r.r(t),r.d(t,{originalPathname:()=>_,patchFetch:()=>S,requestAsyncStorage:()=>f,routeModule:()=>m,serverHooks:()=>w,staticGenerationAsyncStorage:()=>y});var s={};r.r(s),r.d(s,{GET:()=>p,dynamic:()=>d,runtime:()=>c});var n=r(9303),i=r(8716),a=r(670),o=r(7070),u=r(5456),l=r(5353);let c="nodejs",d="force-dynamic";async function p(){if(!await (0,u.Vc)())return o.NextResponse.json({error:"unauthorized"},{status:401});let e=await (0,l.gn)();return o.NextResponse.json(e)}let m=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/system/version/route",pathname:"/api/system/version",filename:"route",bundlePath:"app/api/system/version/route"},resolvedPagePath:"/home/runner/work/prism/prism/web/src/app/api/system/version/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:f,staticGenerationAsyncStorage:y,serverHooks:w}=m,_="/api/system/version/route";function S(){return(0,a.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:y})}},5456:(e,t,r)=>{"use strict";r.d(t,{MH:()=>d,Ov:()=>f,Uj:()=>p,Vc:()=>c,c:()=>m,ts:()=>l});var s=r(1615),n=r(9902),i=r(2153);let a=process.env.ASTRY_COOKIE_NAME||"astry_session",o=process.env.ASTRY_AUTH_DOMAIN||void 0;function u(){return process.env.PRISM_DASHBOARD_TOKEN||null}async function l(){let e=(0,s.cookies)().get(a);if(!e)return null;let t=await (0,n.je)(e.value);if(t){let e=await (0,i.GA)(t.user_id);if(e&&!e.disabled)return e}let r=u();return r&&e.value===r?{id:"usr_legacy_admin",email:"admin@legacy",name:"Legacy admin (token)",role:"admin",created_at:new Date(0).toISOString(),created_by:null,last_login_at:null,disabled:!1}:null}async function c(){return l()}async function d(e){let t=await l();return t&&("admin"!==e||"admin"===t.role)?t:null}async function p(e){(0,s.cookies)().set(a,e,{httpOnly:!0,secure:function(){try{let e=(0,s.headers)().get("x-forwarded-proto");return"https"===e}catch{return!1}}(),sameSite:"lax",maxAge:5184e3,path:"/",...o?{domain:o}:{}})}async function m(e){let t=u();return!!t&&e===t&&(await p(e),!0)}async function f(){let e=(0,s.cookies)().get(a);return(0,s.cookies)().delete(a),e?.value??null}},5353:(e,t,r)=>{"use strict";r.d(t,{
|
|
1
|
+
(()=>{var e={};e.id=128,e.ids=[128],e.modules={7934:e=>{function t(e){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=7934,e.exports=t},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6113:e=>{"use strict";e.exports=require("crypto")},7718:e=>{"use strict";e.exports=require("node:child_process")},6005:e=>{"use strict";e.exports=require("node:crypto")},7561:e=>{"use strict";e.exports=require("node:fs")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},9411:e=>{"use strict";e.exports=require("node:path")},3769:(e,t,r)=>{"use strict";r.r(t),r.d(t,{originalPathname:()=>_,patchFetch:()=>S,requestAsyncStorage:()=>f,routeModule:()=>m,serverHooks:()=>w,staticGenerationAsyncStorage:()=>y});var s={};r.r(s),r.d(s,{GET:()=>p,dynamic:()=>d,runtime:()=>c});var n=r(9303),i=r(8716),a=r(670),o=r(7070),u=r(5456),l=r(5353);let c="nodejs",d="force-dynamic";async function p(){if(!await (0,u.Vc)())return o.NextResponse.json({error:"unauthorized"},{status:401});let e=await (0,l.gn)();return o.NextResponse.json(e)}let m=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/system/version/route",pathname:"/api/system/version",filename:"route",bundlePath:"app/api/system/version/route"},resolvedPagePath:"/home/runner/work/prism/prism/web/src/app/api/system/version/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:f,staticGenerationAsyncStorage:y,serverHooks:w}=m,_="/api/system/version/route";function S(){return(0,a.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:y})}},5456:(e,t,r)=>{"use strict";r.d(t,{MH:()=>d,Ov:()=>f,Uj:()=>p,Vc:()=>c,c:()=>m,ts:()=>l});var s=r(1615),n=r(9902),i=r(2153);let a=process.env.ASTRY_COOKIE_NAME||"astry_session",o=process.env.ASTRY_AUTH_DOMAIN||void 0;function u(){return process.env.PRISM_DASHBOARD_TOKEN||null}async function l(){let e=(0,s.cookies)().get(a);if(!e)return null;let t=await (0,n.je)(e.value);if(t){let e=await (0,i.GA)(t.user_id);if(e&&!e.disabled)return e}let r=u();return r&&e.value===r?{id:"usr_legacy_admin",email:"admin@legacy",name:"Legacy admin (token)",role:"admin",created_at:new Date(0).toISOString(),created_by:null,last_login_at:null,disabled:!1}:null}async function c(){return l()}async function d(e){let t=await l();return t&&("admin"!==e||"admin"===t.role)?t:null}async function p(e){(0,s.cookies)().set(a,e,{httpOnly:!0,secure:function(){try{let e=(0,s.headers)().get("x-forwarded-proto");return"https"===e}catch{return!1}}(),sameSite:"lax",maxAge:5184e3,path:"/",...o?{domain:o}:{}})}async function m(e){let t=u();return!!t&&e===t&&(await p(e),!0)}async function f(){let e=(0,s.cookies)().get(a);return(0,s.cookies)().delete(a),e?.value??null}},5353:(e,t,r)=>{"use strict";r.d(t,{Iu:()=>f,ym:()=>d,gn:()=>m});var s=r(7718),n=r(7561),i=r(9411);let a=require("node:util"),o="@martin0309205/prism",u=`https://registry.npmjs.org/${encodeURIComponent(o)}/latest`,l=(0,a.promisify)(s.execFile),c=null;async function d(){try{let{stdout:e}=await l("prism",["--version"],{timeout:5e3}),t=e.trim().split(/\s+/).pop()?.replace(/^v/,"")??"";if(/^\d+\.\d+\.\d+/.test(t))return t}catch{}return function(){let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,i.join)(e,"node_modules","@martin0309205","prism","package.json");if((0,n.existsSync)(t))try{let e=JSON.parse(n.readFileSync(t,"utf8"))?.version;if("string"==typeof e)return e}catch{}let r=(0,i.resolve)(e,"..");if(r===e)break;e=r}return null}()}async function p(){if(c&&Date.now()-c.ts<6e4)return c.version;try{let e=await fetch(u,{cache:"no-store"});if(!e.ok)return null;let t=await e.json();if("string"!=typeof t?.version)return null;return c={version:t.version,ts:Date.now()},t.version}catch{return null}}async function m(){let[e,t]=await Promise.all([d(),p()]),r=!!(e&&t&&function(e,t){let r=e.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0)),s=t.split(".").map(e=>Number(e.replace(/[^0-9].*/,"")||0));for(let e=0;e<3;e+=1){let t=r[e]??0,n=s[e]??0;if(t!==n)return t-n}return 0}(t,e)>0);return{installed:e,latest:t,upgrade_available:r,name:o}}function f(){try{let e=r(7934).resolve(`${o}/package.json`),t=(0,i.join)((0,i.dirname)(e),"assets","claude-md","CLAUDE.md");if((0,n.existsSync)(t))return t}catch{}let e=process.cwd();for(let t=0;t<8;t+=1){let t=(0,i.join)(e,"node_modules","@martin0309205","prism","assets","claude-md","CLAUDE.md");if((0,n.existsSync)(t))return t;let r=(0,i.resolve)(e,"..");if(r===e)break;e=r}return null}},9902:(e,t,r)=>{"use strict";r.d(t,{ed:()=>p,je:()=>m,w$:()=>f});var s=r(7561),n=r(3977),i=r(9411),a=r(6005),o=r(2153);function u(){let e=process.env.ASTRY_SESSIONS_PATH;if(e){let t=(0,i.dirname)(e);return(0,s.existsSync)(t)||(0,s.mkdirSync)(t,{recursive:!0}),e}let t=process.env.PRISM_INSTANCE_DIR;if(!t)throw Error("PRISM_INSTANCE_DIR or ASTRY_SESSIONS_PATH must be set");let r=(0,i.join)(t,"data");return(0,s.existsSync)(r)||(0,s.mkdirSync)(r,{recursive:!0}),(0,i.join)(r,"sessions.json")}function l(e){return(0,a.createHash)("sha256").update(e,"utf8").digest("hex")}async function c(){let e=u();if(!(0,s.existsSync)(e))return{version:1,sessions:[]};try{let t=await (0,n.readFile)(e,"utf8"),r=JSON.parse(t);if(r?.version!==1||!Array.isArray(r.sessions))return{version:1,sessions:[]};return r}catch{return{version:1,sessions:[]}}}async function d(e){let t=u();(0,s.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,n.writeFile)(r,JSON.stringify(e,null,2),{mode:384}),await (0,n.rename)(r,t)}async function p(e){let{session_lifetime_days:t}=await (0,o.Gw)(),r=(0,a.randomBytes)(32).toString("base64url"),s=new Date,n=new Date(s.getTime()+864e5*t),i={id:"sess_"+(0,a.randomBytes)(8).toString("base64url"),token_hash:l(r),user_id:e.user_id,created_at:s.toISOString(),expires_at:n.toISOString(),last_used_at:s.toISOString(),ip:e.ip??null,user_agent:e.user_agent??null},u=await c();return u.sessions=function(e){let t=Date.now();return e.filter(e=>new Date(e.expires_at).getTime()>t)}(u.sessions),u.sessions.push(i),await d(u),{token:r,session:i}}async function m(e){if(!e)return null;let t=l(e),r=await c(),s=r.sessions.find(e=>e.token_hash===t);return!s||new Date(s.expires_at).getTime()<Date.now()?null:(s.last_used_at=new Date().toISOString(),d(r).catch(()=>{}),s)}async function f(e){let t=l(e),r=await c(),s=r.sessions.length;return r.sessions=r.sessions.filter(e=>e.token_hash!==t),r.sessions.length!==s&&(await d(r),!0)}},2153:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>g,GA:()=>y,Gv:()=>h,Gw:()=>_,Re:()=>S,r4:()=>v,ve:()=>f});var s=r(7561),n=r(3977),i=r(9411),a=r(6005),o=r(2023),u=r.n(o);function l(){let e=process.env.ASTRY_USERS_PATH;if(e){let t=(0,i.dirname)(e);return(0,s.existsSync)(t)||(0,s.mkdirSync)(t,{recursive:!0}),e}let t=process.env.PRISM_INSTANCE_DIR;if(!t)throw Error("PRISM_INSTANCE_DIR or ASTRY_USERS_PATH must be set");let r=(0,i.join)(t,"config");return(0,s.existsSync)(r)||(0,s.mkdirSync)(r,{recursive:!0}),(0,i.join)(r,"users.json")}async function c(){let e=l();if(!(0,s.existsSync)(e))return{version:1,users:[]};try{let t=await (0,n.readFile)(e,"utf8"),r=JSON.parse(t);if(r?.version!==1||!Array.isArray(r.users))return{version:1,users:[]};return r}catch{return{version:1,users:[]}}}async function d(e){let t=l();(0,s.mkdirSync)((0,i.dirname)(t),{recursive:!0});let r=`${t}.tmp.${process.pid}.${Date.now()}`;await (0,n.writeFile)(r,JSON.stringify(e,null,2),{mode:384}),await (0,n.rename)(r,t)}function p(e){let{password_hash:t,...r}=e;return r}function m(e){return e.trim().toLowerCase()}async function f(){return(await c()).users.filter(e=>!e.disabled).length}async function y(e){let t=(await c()).users.find(t=>t.id===e);return t?p(t):null}async function w(e){let t=await c(),r=m(e);return t.users.find(e=>e.email===r)??null}async function _(){let e=await c();return{session_lifetime_days:e.settings?.session_lifetime_days??30}}async function S(e){let t=await c();if(!Number.isFinite(e)||e<1||e>365)throw Error("session_lifetime_days must be 1-365");t.settings={...t.settings??{},session_lifetime_days:Math.round(e)},await d(t)}async function v(e){let t=await c(),r=m(e.email);if(!r.includes("@"))throw Error("invalid email");if(e.password.length<8)throw Error("password must be at least 8 characters");if(t.users.find(e=>e.email===r))throw Error("email already exists");let s={id:"usr_"+(0,a.randomBytes)(8).toString("base64url"),email:r,name:e.name.trim()||r,password_hash:await u().hash(e.password,12),role:e.role,created_at:new Date().toISOString(),created_by:e.created_by,last_login_at:null,disabled:!1};return t.users.push(s),await d(t),p(s)}async function h(e,t){let r=await w(e);return!r||r.disabled?null:await u().compare(t,r.password_hash)?r:null}async function g(e){let t=await c(),r=t.users.find(t=>t.id===e);r&&(r.last_login_at=new Date().toISOString(),await d(t))}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[948,277,70],()=>r(3769));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/27aea81e28f3c17d.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1796d5ecd61cbd74.js"/><script src="/_next/static/chunks/fd9d1056-7a5475c63f298b84.js" async=""></script><script src="/_next/static/chunks/23-5e0d0f54bc756891.js" async=""></script><script src="/_next/static/chunks/main-app-cc6be8282c80a1f4.js" async=""></script><script src="/_next/static/chunks/502-73bc96153ad171ad.js" async=""></script><script src="/_next/static/chunks/app/(dash)/claude-md/page-27d0c51001a3a4b2.js" async=""></script><script src="/_next/static/chunks/138-1f2ddea72037c974.js" async=""></script><script src="/_next/static/chunks/app/(dash)/layout-811aba273cfc2760.js" async=""></script><title>Prism</title><meta name="description" content="Operate your prism instance from the browser."/><link rel="shortcut icon" href="/favicon.png"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="apple-touch-icon" href="/favicon.png"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div class="flex min-h-screen"><aside class="fixed left-0 top-0 z-40 flex h-screen w-[240px] flex-col border-r border-border bg-background"><div class="flex items-center gap-2.5 px-5 py-5"><div class="relative flex h-9 w-9 flex-none items-center justify-center bg-brand text-text-on-brand"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg></div><div><div class="text-sm font-semibold tracking-tight">Prism</div><div class="text-[10px] text-muted-foreground">claude on tap</div></div></div><nav class="flex-1 space-y-5 overflow-y-auto px-3 py-2"><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Prism</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house flex-none"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg><span class="truncate">Overview</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/generate"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles flex-none"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="truncate">Playground</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Runs</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/jobs"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list-checks flex-none"><path d="m3 17 2 2 4-4"></path><path d="m3 7 2 2 4-4"></path><path d="M13 6h8"></path><path d="M13 12h8"></path><path d="M13 18h8"></path></svg><span class="truncate">Jobs</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/artifacts"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open flex-none"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span class="truncate">Artifacts</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Operations</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/skills"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-puzzle flex-none"><path d="M19.439 7.85c-.049.322.059.648.289.878l1.568 1.568c.47.47.706 1.087.706 1.704s-.235 1.233-.706 1.704l-1.611 1.611a.98.98 0 0 1-.837.276c-.47-.07-.802-.48-.968-.925a2.501 2.501 0 1 0-3.214 3.214c.446.166.855.497.925.968a.979.979 0 0 1-.276.837l-1.61 1.61a2.404 2.404 0 0 1-1.705.707 2.402 2.402 0 0 1-1.704-.706l-1.568-1.568a1.026 1.026 0 0 0-.877-.29c-.493.074-.84.504-1.02.968a2.5 2.5 0 1 1-3.237-3.237c.464-.18.894-.527.967-1.02a1.026 1.026 0 0 0-.289-.877l-1.568-1.568A2.402 2.402 0 0 1 1.998 12c0-.617.236-1.234.706-1.704L4.23 8.77c.24-.24.581-.353.917-.303.515.077.877.528 1.073 1.01a2.5 2.5 0 1 0 3.259-3.259c-.482-.196-.933-.558-1.01-1.073-.05-.336.062-.676.303-.917l1.525-1.525A2.402 2.402 0 0 1 12 1.998c.617 0 1.234.236 1.704.706l1.568 1.568c.23.23.556.338.877.29.493-.074.84-.504 1.02-.968a2.5 2.5 0 1 1 3.237 3.237c-.464.18-.894.527-.967 1.02Z"></path></svg><span class="truncate">Skills</span></a></div></div></nav><div class="border-t border-border px-3 py-3"><div class="px-2 py-2 text-[10px] text-muted-foreground">Not signed in</div></div></aside><main class="ml-[240px] flex-1 px-8 py-8"><div class="space-y-6"><header><h1 class="flex items-center gap-2 text-2xl font-semibold tracking-tightest"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg> CLAUDE.md</h1><p class="text-sm text-text-muted">Le CLAUDE.md global (<!-- -->) est appliqué par Claude Code à chaque session.</p></header><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="space-y-1.5 p-6 flex flex-row items-center justify-between"><div><div class="font-semibold tracking-tightest text-sm">Restore from bundle</div><div class="text-sm text-text-muted">Réécrit ~/.claude/CLAUDE.md avec la version livrée dans le package prism.</div></div><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-brand text-text-on-brand hover:bg-brand-hover h-8 px-3 text-xs" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg>Restore</button></div></div><div class="grid gap-4 md:grid-cols-2"><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold tracking-tightest text-sm">Bundled</div><div class="text-sm text-text-muted">Package not resolvable from this process.</div></div><div class="p-6 pt-0"><pre class="max-h-[420px] overflow-auto whitespace-pre-wrap break-words border border-border bg-bg-subtle p-3 text-xs font-mono">(not found)</pre></div></div><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold tracking-tightest text-sm">Installed</div><div class="text-sm text-text-muted"></div></div><div class="p-6 pt-0"><pre class="max-h-[420px] overflow-auto whitespace-pre-wrap break-words border border-border bg-bg-subtle p-3 text-xs font-mono">(not installed)</pre></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-1796d5ecd61cbd74.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/27aea81e28f3c17d.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[6513,[],\"ClientPageRoot\"]\n5:I[5474,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"961\",\"static/chunks/app/(dash)/claude-md/page-27d0c51001a3a4b2.js\"],\"default\"]\n6:I[9275,[],\"\"]\n7:I[1343,[],\"\"]\n8:I[6882,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"138\",\"static/chunks/138-1f2ddea72037c974.js\",\"117\",\"static/chunks/app/(dash)/layout-811aba273cfc2760.js\"],\"Sidebar\"]\ne:I[6130,[],\"\"]\n9:{\"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\"}\na:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nb:{\"display\":\"inline-block\"}\nc:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nf:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/27aea81e28f3c17d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"SS_jgIWqXX2pp1oaVOjaQ\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/claude-md\",\"initialTree\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"claude-md\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"claude-md\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}]],null],null]},[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\",\"claude-md\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen\",\"children\":[[\"$\",\"$L8\",null,{}],[\"$\",\"main\",null,{\"className\":\"ml-[240px] flex-1 px-8 py-8\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$9\",\"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\":\"$a\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$c\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]]\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Prism\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Operate your prism instance from the browser.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/favicon.png\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon.png\"}]]\n3:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/prism.svg"/><link rel="stylesheet" href="/_next/static/css/d95c47155fb80ddd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1796d5ecd61cbd74.js"/><script src="/_next/static/chunks/fd9d1056-7a5475c63f298b84.js" async=""></script><script src="/_next/static/chunks/23-5e0d0f54bc756891.js" async=""></script><script src="/_next/static/chunks/main-app-cc6be8282c80a1f4.js" async=""></script><script src="/_next/static/chunks/502-73bc96153ad171ad.js" async=""></script><script src="/_next/static/chunks/app/(dash)/claude-md/page-27d0c51001a3a4b2.js" async=""></script><script src="/_next/static/chunks/138-1f2ddea72037c974.js" async=""></script><script src="/_next/static/chunks/app/(dash)/layout-b6c00b089d68684c.js" async=""></script><title>Prism</title><meta name="description" content="Operate your prism instance from the browser."/><link rel="shortcut icon" href="/prism.svg"/><link rel="icon" href="/prism.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/prism.svg"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div class="flex min-h-screen"><aside class="fixed left-0 top-0 z-40 flex h-screen w-[240px] flex-col border-r border-border bg-background"><div class="flex items-center gap-2.5 px-5 py-5"><div class="relative flex h-9 w-9 flex-none items-center justify-center overflow-hidden"><img src="/prism.svg" alt="Prism" class="h-full w-full object-cover"/></div><div><div class="text-sm font-semibold tracking-tight">Prism</div><div class="text-[10px] text-muted-foreground">claude on tap</div></div></div><nav class="flex-1 space-y-5 overflow-y-auto px-3 py-2"><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Prism</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house flex-none"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg><span class="truncate">Overview</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/generate"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles flex-none"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="truncate">Playground</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Runs</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/jobs"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list-checks flex-none"><path d="m3 17 2 2 4-4"></path><path d="m3 7 2 2 4-4"></path><path d="M13 6h8"></path><path d="M13 12h8"></path><path d="M13 18h8"></path></svg><span class="truncate">Jobs</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/artifacts"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open flex-none"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span class="truncate">Artifacts</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Operations</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/skills"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-puzzle flex-none"><path d="M19.439 7.85c-.049.322.059.648.289.878l1.568 1.568c.47.47.706 1.087.706 1.704s-.235 1.233-.706 1.704l-1.611 1.611a.98.98 0 0 1-.837.276c-.47-.07-.802-.48-.968-.925a2.501 2.501 0 1 0-3.214 3.214c.446.166.855.497.925.968a.979.979 0 0 1-.276.837l-1.61 1.61a2.404 2.404 0 0 1-1.705.707 2.402 2.402 0 0 1-1.704-.706l-1.568-1.568a1.026 1.026 0 0 0-.877-.29c-.493.074-.84.504-1.02.968a2.5 2.5 0 1 1-3.237-3.237c.464-.18.894-.527.967-1.02a1.026 1.026 0 0 0-.289-.877l-1.568-1.568A2.402 2.402 0 0 1 1.998 12c0-.617.236-1.234.706-1.704L4.23 8.77c.24-.24.581-.353.917-.303.515.077.877.528 1.073 1.01a2.5 2.5 0 1 0 3.259-3.259c-.482-.196-.933-.558-1.01-1.073-.05-.336.062-.676.303-.917l1.525-1.525A2.402 2.402 0 0 1 12 1.998c.617 0 1.234.236 1.704.706l1.568 1.568c.23.23.556.338.877.29.493-.074.84-.504 1.02-.968a2.5 2.5 0 1 1 3.237 3.237c-.464.18-.894.527-.967 1.02Z"></path></svg><span class="truncate">Skills</span></a></div></div></nav><div class="border-t border-border px-3 py-3"><div class="px-2 py-2 text-[10px] text-muted-foreground">Not signed in</div></div></aside><main class="ml-[240px] flex-1 px-8 py-8"><div class="space-y-6"><header><h1 class="flex items-center gap-2 text-2xl font-semibold tracking-tightest"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg> CLAUDE.md</h1><p class="text-sm text-text-muted">Le CLAUDE.md global (<!-- -->) est appliqué par Claude Code à chaque session.</p></header><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="space-y-1.5 p-6 flex flex-row items-center justify-between"><div><div class="font-semibold tracking-tightest text-sm">Restore from bundle</div><div class="text-sm text-text-muted">Réécrit ~/.claude/CLAUDE.md avec la version livrée dans le package prism.</div></div><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-brand text-text-on-brand hover:bg-brand-hover h-8 px-3 text-xs" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg>Restore</button></div></div><div class="grid gap-4 md:grid-cols-2"><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold tracking-tightest text-sm">Bundled</div><div class="text-sm text-text-muted">Package not resolvable from this process.</div></div><div class="p-6 pt-0"><pre class="max-h-[420px] overflow-auto whitespace-pre-wrap break-words border border-border bg-bg-subtle p-3 text-xs font-mono">(not found)</pre></div></div><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold tracking-tightest text-sm">Installed</div><div class="text-sm text-text-muted"></div></div><div class="p-6 pt-0"><pre class="max-h-[420px] overflow-auto whitespace-pre-wrap break-words border border-border bg-bg-subtle p-3 text-xs font-mono">(not installed)</pre></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-1796d5ecd61cbd74.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/d95c47155fb80ddd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[6513,[],\"ClientPageRoot\"]\n5:I[5474,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"961\",\"static/chunks/app/(dash)/claude-md/page-27d0c51001a3a4b2.js\"],\"default\"]\n6:I[9275,[],\"\"]\n7:I[1343,[],\"\"]\n8:I[6882,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"138\",\"static/chunks/138-1f2ddea72037c974.js\",\"117\",\"static/chunks/app/(dash)/layout-b6c00b089d68684c.js\"],\"Sidebar\"]\ne:I[6130,[],\"\"]\n9:{\"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\"}\na:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nb:{\"display\":\"inline-block\"}\nc:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nf:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d95c47155fb80ddd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"LtbBi3MHZ2YVsJMnPW3DH\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/claude-md\",\"initialTree\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"claude-md\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"claude-md\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}]],null],null]},[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\",\"claude-md\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen\",\"children\":[[\"$\",\"$L8\",null,{}],[\"$\",\"main\",null,{\"className\":\"ml-[240px] flex-1 px-8 py-8\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$9\",\"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\":\"$a\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$c\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]]\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Prism\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Operate your prism instance from the browser.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"shortcut icon\",\"href\":\"/prism.svg\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/prism.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/prism.svg\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
3:I[5474,["502","static/chunks/502-73bc96153ad171ad.js","961","static/chunks/app/(dash)/claude-md/page-27d0c51001a3a4b2.js"],"default"]
|
|
3
3
|
4:I[9275,[],""]
|
|
4
4
|
5:I[1343,[],""]
|
|
5
|
-
6:I[6882,["502","static/chunks/502-73bc96153ad171ad.js","138","static/chunks/138-1f2ddea72037c974.js","117","static/chunks/app/(dash)/layout-
|
|
5
|
+
6:I[6882,["502","static/chunks/502-73bc96153ad171ad.js","138","static/chunks/138-1f2ddea72037c974.js","117","static/chunks/app/(dash)/layout-b6c00b089d68684c.js"],"Sidebar"]
|
|
6
6
|
7:{"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"}
|
|
7
7
|
8:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
|
|
8
8
|
9:{"display":"inline-block"}
|
|
9
9
|
a:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
|
|
10
|
-
0:["
|
|
11
|
-
b:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Prism"}],["$","meta","3",{"name":"description","content":"Operate your prism instance from the browser."}],["$","link","4",{"rel":"shortcut icon","href":"/
|
|
10
|
+
0:["LtbBi3MHZ2YVsJMnPW3DH",[[["",{"children":["(dash)",{"children":["claude-md",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["(dash)",{"children":["claude-md",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}]],null],null]},["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(dash)","children","claude-md","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":null}],null]},[["$","div",null,{"className":"flex min-h-screen","children":[["$","$L6",null,{}],["$","main",null,{"className":"ml-[240px] flex-1 px-8 py-8","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(dash)","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",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."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}]]}],null],null]},[["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"min-h-screen bg-background text-foreground antialiased","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$7","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":"$8","children":"404"}],["$","div",null,{"style":"$9","children":["$","h2",null,{"style":"$a","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/d95c47155fb80ddd.css","precedence":"next","crossOrigin":"$undefined"}]],[null,"$Lb"]]]]]
|
|
11
|
+
b:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Prism"}],["$","meta","3",{"name":"description","content":"Operate your prism instance from the browser."}],["$","link","4",{"rel":"shortcut icon","href":"/prism.svg"}],["$","link","5",{"rel":"icon","href":"/prism.svg","type":"image/svg+xml"}],["$","link","6",{"rel":"apple-touch-icon","href":"/prism.svg"}]]
|
|
12
12
|
1:null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/27aea81e28f3c17d.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1796d5ecd61cbd74.js"/><script src="/_next/static/chunks/fd9d1056-7a5475c63f298b84.js" async=""></script><script src="/_next/static/chunks/23-5e0d0f54bc756891.js" async=""></script><script src="/_next/static/chunks/main-app-cc6be8282c80a1f4.js" async=""></script><script src="/_next/static/chunks/502-73bc96153ad171ad.js" async=""></script><script src="/_next/static/chunks/app/(dash)/connectors/page-78cd8d33b2dc4f3b.js" async=""></script><script src="/_next/static/chunks/138-1f2ddea72037c974.js" async=""></script><script src="/_next/static/chunks/app/(dash)/layout-811aba273cfc2760.js" async=""></script><title>Prism</title><meta name="description" content="Operate your prism instance from the browser."/><link rel="shortcut icon" href="/favicon.png"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="apple-touch-icon" href="/favicon.png"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div class="flex min-h-screen"><aside class="fixed left-0 top-0 z-40 flex h-screen w-[240px] flex-col border-r border-border bg-background"><div class="flex items-center gap-2.5 px-5 py-5"><div class="relative flex h-9 w-9 flex-none items-center justify-center bg-brand text-text-on-brand"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg></div><div><div class="text-sm font-semibold tracking-tight">Prism</div><div class="text-[10px] text-muted-foreground">claude on tap</div></div></div><nav class="flex-1 space-y-5 overflow-y-auto px-3 py-2"><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Prism</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house flex-none"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg><span class="truncate">Overview</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/generate"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles flex-none"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="truncate">Playground</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Runs</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/jobs"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list-checks flex-none"><path d="m3 17 2 2 4-4"></path><path d="m3 7 2 2 4-4"></path><path d="M13 6h8"></path><path d="M13 12h8"></path><path d="M13 18h8"></path></svg><span class="truncate">Jobs</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/artifacts"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open flex-none"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span class="truncate">Artifacts</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Operations</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/skills"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-puzzle flex-none"><path d="M19.439 7.85c-.049.322.059.648.289.878l1.568 1.568c.47.47.706 1.087.706 1.704s-.235 1.233-.706 1.704l-1.611 1.611a.98.98 0 0 1-.837.276c-.47-.07-.802-.48-.968-.925a2.501 2.501 0 1 0-3.214 3.214c.446.166.855.497.925.968a.979.979 0 0 1-.276.837l-1.61 1.61a2.404 2.404 0 0 1-1.705.707 2.402 2.402 0 0 1-1.704-.706l-1.568-1.568a1.026 1.026 0 0 0-.877-.29c-.493.074-.84.504-1.02.968a2.5 2.5 0 1 1-3.237-3.237c.464-.18.894-.527.967-1.02a1.026 1.026 0 0 0-.289-.877l-1.568-1.568A2.402 2.402 0 0 1 1.998 12c0-.617.236-1.234.706-1.704L4.23 8.77c.24-.24.581-.353.917-.303.515.077.877.528 1.073 1.01a2.5 2.5 0 1 0 3.259-3.259c-.482-.196-.933-.558-1.01-1.073-.05-.336.062-.676.303-.917l1.525-1.525A2.402 2.402 0 0 1 12 1.998c.617 0 1.234.236 1.704.706l1.568 1.568c.23.23.556.338.877.29.493-.074.84-.504 1.02-.968a2.5 2.5 0 1 1 3.237 3.237c-.464.18-.894.527-.967 1.02Z"></path></svg><span class="truncate">Skills</span></a></div></div></nav><div class="border-t border-border px-3 py-3"><div class="px-2 py-2 text-[10px] text-muted-foreground">Not signed in</div></div></aside><main class="ml-[240px] flex-1 px-8 py-8"><div class="space-y-6"><header><h1 class="flex items-center gap-2 text-2xl font-semibold tracking-tightest"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plug"><path d="M12 22v-5"></path><path d="M9 8V2"></path><path d="M15 8V2"></path><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"></path></svg> Connectors</h1><p class="text-sm text-text-muted">État des surfaces externes (Slack, HTTP API).</p></header><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="space-y-1.5 p-6 flex flex-row items-center justify-between"><div><div class="font-semibold tracking-tightest text-sm">Slack</div><div class="text-sm text-text-muted">Token vérifié via auth.test.</div></div><div class="flex items-center gap-2"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-border-strong bg-transparent text-text hover:bg-bg-subtle h-8 px-3 text-xs" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg>Restart</button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-transparent text-text hover:bg-bg-subtle h-8 px-3 text-xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg>Re-check</button></div></div><div class="p-6 pt-0"><p class="text-sm text-text-muted">Add SLACK_BOT_TOKEN to the instance .env to enable.</p></div></div><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="space-y-1.5 p-6 flex flex-row items-center justify-between"><div><div class="font-semibold tracking-tightest text-sm">HTTP API</div><div class="text-sm text-text-muted">—<!-- --> · key <!-- -->missing</div></div><div class="flex items-center gap-2"><div class="inline-flex items-center gap-1.5 border font-medium uppercase tracking-wider transition-colors border-border bg-bg-subtle text-text-muted text-[10px] px-2 py-0.5"><span aria-hidden="true" class="rounded-pill h-1.5 w-1.5 bg-current"></span>disabled</div><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-border-strong bg-transparent text-text hover:bg-bg-subtle h-8 px-3 text-xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg>Rotate key</button></div></div><div class="p-6 pt-0 space-y-2"><p class="text-xs text-text-muted">Key has never been rotated.</p></div></div></div></main></div><script src="/_next/static/chunks/webpack-1796d5ecd61cbd74.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/27aea81e28f3c17d.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[6513,[],\"ClientPageRoot\"]\n5:I[8751,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"981\",\"static/chunks/app/(dash)/connectors/page-78cd8d33b2dc4f3b.js\"],\"default\"]\n6:I[9275,[],\"\"]\n7:I[1343,[],\"\"]\n8:I[6882,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"138\",\"static/chunks/138-1f2ddea72037c974.js\",\"117\",\"static/chunks/app/(dash)/layout-811aba273cfc2760.js\"],\"Sidebar\"]\ne:I[6130,[],\"\"]\n9:{\"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\"}\na:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nb:{\"display\":\"inline-block\"}\nc:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nf:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/27aea81e28f3c17d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"SS_jgIWqXX2pp1oaVOjaQ\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/connectors\",\"initialTree\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"connectors\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"connectors\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}]],null],null]},[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\",\"connectors\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen\",\"children\":[[\"$\",\"$L8\",null,{}],[\"$\",\"main\",null,{\"className\":\"ml-[240px] flex-1 px-8 py-8\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$9\",\"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\":\"$a\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$c\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]]\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Prism\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Operate your prism instance from the browser.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/favicon.png\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon.png\"}]]\n3:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/prism.svg"/><link rel="stylesheet" href="/_next/static/css/d95c47155fb80ddd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1796d5ecd61cbd74.js"/><script src="/_next/static/chunks/fd9d1056-7a5475c63f298b84.js" async=""></script><script src="/_next/static/chunks/23-5e0d0f54bc756891.js" async=""></script><script src="/_next/static/chunks/main-app-cc6be8282c80a1f4.js" async=""></script><script src="/_next/static/chunks/502-73bc96153ad171ad.js" async=""></script><script src="/_next/static/chunks/app/(dash)/connectors/page-78cd8d33b2dc4f3b.js" async=""></script><script src="/_next/static/chunks/138-1f2ddea72037c974.js" async=""></script><script src="/_next/static/chunks/app/(dash)/layout-b6c00b089d68684c.js" async=""></script><title>Prism</title><meta name="description" content="Operate your prism instance from the browser."/><link rel="shortcut icon" href="/prism.svg"/><link rel="icon" href="/prism.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/prism.svg"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="min-h-screen bg-background text-foreground antialiased"><div class="flex min-h-screen"><aside class="fixed left-0 top-0 z-40 flex h-screen w-[240px] flex-col border-r border-border bg-background"><div class="flex items-center gap-2.5 px-5 py-5"><div class="relative flex h-9 w-9 flex-none items-center justify-center overflow-hidden"><img src="/prism.svg" alt="Prism" class="h-full w-full object-cover"/></div><div><div class="text-sm font-semibold tracking-tight">Prism</div><div class="text-[10px] text-muted-foreground">claude on tap</div></div></div><nav class="flex-1 space-y-5 overflow-y-auto px-3 py-2"><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Prism</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house flex-none"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg><span class="truncate">Overview</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/generate"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles flex-none"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="truncate">Playground</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Runs</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/jobs"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list-checks flex-none"><path d="m3 17 2 2 4-4"></path><path d="m3 7 2 2 4-4"></path><path d="M13 6h8"></path><path d="M13 12h8"></path><path d="M13 18h8"></path></svg><span class="truncate">Jobs</span></a><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/artifacts"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open flex-none"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span class="truncate">Artifacts</span></a></div></div><div><div class="px-2 pb-1.5 text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70">Operations</div><div class="space-y-0.5"><a class="group relative flex items-center gap-3 px-2.5 py-2 text-sm transition-colors text-muted-foreground hover:bg-secondary hover:text-foreground" href="/skills"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-puzzle flex-none"><path d="M19.439 7.85c-.049.322.059.648.289.878l1.568 1.568c.47.47.706 1.087.706 1.704s-.235 1.233-.706 1.704l-1.611 1.611a.98.98 0 0 1-.837.276c-.47-.07-.802-.48-.968-.925a2.501 2.501 0 1 0-3.214 3.214c.446.166.855.497.925.968a.979.979 0 0 1-.276.837l-1.61 1.61a2.404 2.404 0 0 1-1.705.707 2.402 2.402 0 0 1-1.704-.706l-1.568-1.568a1.026 1.026 0 0 0-.877-.29c-.493.074-.84.504-1.02.968a2.5 2.5 0 1 1-3.237-3.237c.464-.18.894-.527.967-1.02a1.026 1.026 0 0 0-.289-.877l-1.568-1.568A2.402 2.402 0 0 1 1.998 12c0-.617.236-1.234.706-1.704L4.23 8.77c.24-.24.581-.353.917-.303.515.077.877.528 1.073 1.01a2.5 2.5 0 1 0 3.259-3.259c-.482-.196-.933-.558-1.01-1.073-.05-.336.062-.676.303-.917l1.525-1.525A2.402 2.402 0 0 1 12 1.998c.617 0 1.234.236 1.704.706l1.568 1.568c.23.23.556.338.877.29.493-.074.84-.504 1.02-.968a2.5 2.5 0 1 1 3.237 3.237c-.464.18-.894.527-.967 1.02Z"></path></svg><span class="truncate">Skills</span></a></div></div></nav><div class="border-t border-border px-3 py-3"><div class="px-2 py-2 text-[10px] text-muted-foreground">Not signed in</div></div></aside><main class="ml-[240px] flex-1 px-8 py-8"><div class="space-y-6"><header><h1 class="flex items-center gap-2 text-2xl font-semibold tracking-tightest"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plug"><path d="M12 22v-5"></path><path d="M9 8V2"></path><path d="M15 8V2"></path><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"></path></svg> Connectors</h1><p class="text-sm text-text-muted">État des surfaces externes (Slack, HTTP API).</p></header><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="space-y-1.5 p-6 flex flex-row items-center justify-between"><div><div class="font-semibold tracking-tightest text-sm">Slack</div><div class="text-sm text-text-muted">Token vérifié via auth.test.</div></div><div class="flex items-center gap-2"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-border-strong bg-transparent text-text hover:bg-bg-subtle h-8 px-3 text-xs" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg>Restart</button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-transparent text-text hover:bg-bg-subtle h-8 px-3 text-xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg>Re-check</button></div></div><div class="p-6 pt-0"><p class="text-sm text-text-muted">Add SLACK_BOT_TOKEN to the instance .env to enable.</p></div></div><div class="border border-border bg-bg-surface text-text transition-colors duration-base"><div class="space-y-1.5 p-6 flex flex-row items-center justify-between"><div><div class="font-semibold tracking-tightest text-sm">HTTP API</div><div class="text-sm text-text-muted">—<!-- --> · key <!-- -->missing</div></div><div class="flex items-center gap-2"><div class="inline-flex items-center gap-1.5 border font-medium uppercase tracking-wider transition-colors border-border bg-bg-subtle text-text-muted text-[10px] px-2 py-0.5"><span aria-hidden="true" class="rounded-pill h-1.5 w-1.5 bg-current"></span>disabled</div><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors duration-base focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-border-strong bg-transparent text-text hover:bg-bg-subtle h-8 px-3 text-xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path></svg>Rotate key</button></div></div><div class="p-6 pt-0 space-y-2"><p class="text-xs text-text-muted">Key has never been rotated.</p></div></div></div></main></div><script src="/_next/static/chunks/webpack-1796d5ecd61cbd74.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/d95c47155fb80ddd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[5751,[],\"\"]\n4:I[6513,[],\"ClientPageRoot\"]\n5:I[8751,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"981\",\"static/chunks/app/(dash)/connectors/page-78cd8d33b2dc4f3b.js\"],\"default\"]\n6:I[9275,[],\"\"]\n7:I[1343,[],\"\"]\n8:I[6882,[\"502\",\"static/chunks/502-73bc96153ad171ad.js\",\"138\",\"static/chunks/138-1f2ddea72037c974.js\",\"117\",\"static/chunks/app/(dash)/layout-b6c00b089d68684c.js\"],\"Sidebar\"]\ne:I[6130,[],\"\"]\n9:{\"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\"}\na:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nb:{\"display\":\"inline-block\"}\nc:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nf:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d95c47155fb80ddd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"LtbBi3MHZ2YVsJMnPW3DH\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/connectors\",\"initialTree\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"connectors\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"(dash)\",{\"children\":[\"connectors\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}]],null],null]},[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\",\"connectors\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen\",\"children\":[[\"$\",\"$L8\",null,{}],[\"$\",\"main\",null,{\"className\":\"ml-[240px] flex-1 px-8 py-8\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(dash)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}],null],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$9\",\"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\":\"$a\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$c\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]]\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Prism\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Operate your prism instance from the browser.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"shortcut icon\",\"href\":\"/prism.svg\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/prism.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/prism.svg\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
3:I[8751,["502","static/chunks/502-73bc96153ad171ad.js","981","static/chunks/app/(dash)/connectors/page-78cd8d33b2dc4f3b.js"],"default"]
|
|
3
3
|
4:I[9275,[],""]
|
|
4
4
|
5:I[1343,[],""]
|
|
5
|
-
6:I[6882,["502","static/chunks/502-73bc96153ad171ad.js","138","static/chunks/138-1f2ddea72037c974.js","117","static/chunks/app/(dash)/layout-
|
|
5
|
+
6:I[6882,["502","static/chunks/502-73bc96153ad171ad.js","138","static/chunks/138-1f2ddea72037c974.js","117","static/chunks/app/(dash)/layout-b6c00b089d68684c.js"],"Sidebar"]
|
|
6
6
|
7:{"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"}
|
|
7
7
|
8:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
|
|
8
8
|
9:{"display":"inline-block"}
|
|
9
9
|
a:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
|
|
10
|
-
0:["
|
|
11
|
-
b:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Prism"}],["$","meta","3",{"name":"description","content":"Operate your prism instance from the browser."}],["$","link","4",{"rel":"shortcut icon","href":"/
|
|
10
|
+
0:["LtbBi3MHZ2YVsJMnPW3DH",[[["",{"children":["(dash)",{"children":["connectors",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["(dash)",{"children":["connectors",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}]],null],null]},["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(dash)","children","connectors","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":null}],null]},[["$","div",null,{"className":"flex min-h-screen","children":[["$","$L6",null,{}],["$","main",null,{"className":"ml-[240px] flex-1 px-8 py-8","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","(dash)","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",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."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}]]}],null],null]},[["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"min-h-screen bg-background text-foreground antialiased","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$7","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":"$8","children":"404"}],["$","div",null,{"style":"$9","children":["$","h2",null,{"style":"$a","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/d95c47155fb80ddd.css","precedence":"next","crossOrigin":"$undefined"}]],[null,"$Lb"]]]]]
|
|
11
|
+
b:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Prism"}],["$","meta","3",{"name":"description","content":"Operate your prism instance from the browser."}],["$","link","4",{"rel":"shortcut icon","href":"/prism.svg"}],["$","link","5",{"rel":"icon","href":"/prism.svg","type":"image/svg+xml"}],["$","link","6",{"rel":"apple-touch-icon","href":"/prism.svg"}]]
|
|
12
12
|
1:null
|