panoma 0.1.2 → 0.1.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/app/BUILD-INFO.json +2 -2
- package/app/apps/web/.next-bundle/BUILD_ID +1 -1
- package/app/apps/web/.next-bundle/app-build-manifest.json +126 -126
- package/app/apps/web/.next-bundle/app-path-routes-manifest.json +25 -25
- package/app/apps/web/.next-bundle/build-manifest.json +2 -2
- package/app/apps/web/.next-bundle/prerender-manifest.json +9 -9
- package/app/apps/web/.next-bundle/server/app/(app)/agents/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/agents/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/ai/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/ai/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/bridge/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/bridge/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/copies/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/copies/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/credentials/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/credentials/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/disk/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/disk/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/hidden/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/hidden/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/p/[slug]/page.js +2 -2
- package/app/apps/web/.next-bundle/server/app/(app)/p/[slug]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/packages/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/packages/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/runs/[id]/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/runs/[id]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/runs/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/runs/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/search/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/search/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/twin/look/page.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/twin/look/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/twin/page.js +2 -2
- package/app/apps/web/.next-bundle/server/app/(app)/twin/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/(app)/unsaved/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/accounts/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/accounts/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/consult/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/context/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/journal/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/keys/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/keys/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/log/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/mcp/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/mcp/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/notes/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/notes/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/agent/tasks/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/ai/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/ai/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/assets/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/assets/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/assignments/launch/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/assignments/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/assignments/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/catalog/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/catalog/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/check/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/consultations/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/consultations/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/describe/route.js +2 -2
- package/app/apps/web/.next-bundle/server/app/api/describe/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/disk/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/disk/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/enrich/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/enrich/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/environment/route.js +2 -2
- package/app/apps/web/.next-bundle/server/app/api/environment/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/hooks/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/hooks/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/ingest/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/ingest/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/apply/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/apply/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/context/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/context/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/inspect/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/inspect/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/repair/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/repair/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/md/review/route.js +2 -2
- package/app/apps/web/.next-bundle/server/app/api/md/review/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/north/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/north/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/notes/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/notes/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/open/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/project/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/project/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/rescan/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/rescan/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/roots/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/roots/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/runs/[id]/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/runs/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/runs/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/scale/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/scale/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/search/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/secrets/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/secrets/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/tasks/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/today/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/today/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/assign/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/assign/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/classify/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/classify/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/critique/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/critique/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/design/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/design/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/distill/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/distill/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/look/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/look/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/mine/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/mine/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/score/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/score/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/shot/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/shot/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/sources/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/sources/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/synthesize/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/synthesize/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/taste/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/taste/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/verdicts/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/twin/verdicts/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/watch/route.js +1 -1
- package/app/apps/web/.next-bundle/server/app/api/watch/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app/icon/[id]/route_client-reference-manifest.js +1 -1
- package/app/apps/web/.next-bundle/server/app-paths-manifest.json +25 -25
- package/app/apps/web/.next-bundle/server/chunks/174.js +3 -0
- package/app/apps/web/.next-bundle/server/chunks/2930.js +1 -1
- package/app/apps/web/.next-bundle/server/chunks/3377.js +1 -0
- package/app/apps/web/.next-bundle/server/chunks/3677.js +1 -1
- package/app/apps/web/.next-bundle/server/chunks/4289.js +1 -1
- package/app/apps/web/.next-bundle/server/chunks/6790.js +3 -1
- package/app/apps/web/.next-bundle/server/chunks/7276.js +1 -1
- package/app/apps/web/.next-bundle/server/chunks/7876.js +1 -0
- package/app/apps/web/.next-bundle/server/functions-config-manifest.json +12 -12
- package/app/apps/web/.next-bundle/server/middleware-manifest.json +5 -5
- package/app/apps/web/.next-bundle/server/pages/500.html +1 -1
- package/app/apps/web/.next-bundle/server/pages-manifest.json +1 -1
- package/app/apps/web/.next-bundle/server/server-reference-manifest.json +1 -1
- package/app/apps/web/.next-bundle/static/chunks/4517-63995539421e71bd.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/7911-d549c69e290b1f96.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/agents/page-cdb332736d2b75f9.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/ai/page-60083a1b6a36c928.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/bridge/page-95d7d92ca0b30f20.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/credentials/page-e87253842975daa4.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/disk/page-15cd72dc04ac7de4.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/error-7a9266f6e98936d9.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/hidden/page-4e81219b6c5aeb2a.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/layout-20c619e7c3b1eb97.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/p/[slug]/page-630a1079cd683bad.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/page-f4dd3e5acee2bfb4.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/runs/[id]/page-572f84e2016be38a.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/search/page-6e94501b5e36f4b1.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/look/page-8e24b1b376cbdab8.js +1 -0
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/page-4d6804060b9830ff.js +1 -0
- package/app/node_modules/@panoma/db/dist/index.d.ts +10 -0
- package/app/node_modules/@panoma/db/dist/index.js +9 -0
- package/dist/{ai-command-XQGHWOY5.js → ai-command-U5V5SDJW.js} +1 -1
- package/dist/{check-command-2SZH5KYN.js → check-command-64DBJGYM.js} +3 -3
- package/dist/{chunk-JLPWKPLM.js → chunk-3WPD5CHL.js} +1 -1
- package/dist/{chunk-ELBBRUIH.js → chunk-FJATGEPD.js} +2 -2
- package/dist/{chunk-4ZMDIOH5.js → chunk-JMXXTMGV.js} +2 -2
- package/dist/{chunk-VP225OGF.js → chunk-KNPE4SJG.js} +8 -2
- package/dist/index.js +11 -11
- package/dist/{md-command-76RMDZKU.js → md-command-73QAVNOP.js} +2 -2
- package/dist/{next-command-KUHZCZPR.js → next-command-OQWKUMAH.js} +3 -3
- package/dist/{north-command-VRD6EQP6.js → north-command-7AVYNCB4.js} +3 -3
- package/dist/{review-command-ILJVQMZU.js → review-command-A6V3A5XG.js} +1 -1
- package/dist/{twin-command-XJEJ6453.js → twin-command-WSVMZWGC.js} +8 -4
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/app/apps/web/.next-bundle/server/chunks/5656.js +0 -3
- package/app/apps/web/.next-bundle/static/chunks/4517-194aeb1d92d9e4a0.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/7911-22e5c2227cd664f0.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/agents/page-5a6085ab51fd1c22.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/ai/page-ce796543295ea5b8.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/bridge/page-76f2bf4a1a914234.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/credentials/page-4febc07fcac150cd.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/disk/page-3a16dd5767b06f7a.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/error-1352ba2a30039af8.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/hidden/page-cd4dbfd609fee48f.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/layout-d7eece5b47fcac36.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/p/[slug]/page-d8ef4c62b6098da0.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/page-ae8edd375818c9f6.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/runs/[id]/page-7e0f3effeada2264.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/search/page-9c45c680651305fd.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/look/page-1c57d8dce043fb1f.js +0 -1
- package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/page-e1434054df4e5d66.js +0 -1
- /package/app/apps/web/.next-bundle/static/{EAuc0Br8TdDur7GG5w5XO → D8knSMGGk6yOk_0w3z22h}/_buildManifest.js +0 -0
- /package/app/apps/web/.next-bundle/static/{EAuc0Br8TdDur7GG5w5XO → D8knSMGGk6yOk_0w3z22h}/_ssgManifest.js +0 -0
|
@@ -4,4 +4,4 @@ ${a.message}`)),k.on("close",a=>o(a))})}var x=class{constructor(a){this.isolatio
|
|
|
4
4
|
(deny file-read* file-write* (subpath "${b}"))
|
|
5
5
|
`}((0,j.homedir)()),"utf8"),this.profile=a,a}async run(a){let b=await this.ensureHome(),c={...function(a){let b={};for(let[c,d]of Object.entries(a))void 0!==d&&z.has(c)&&(y.test(c)||(b[c]=d));return b}(process.env),HOME:b,...a.env},d=await this.ensureProfile();return d?w(a,this.cwd,c,B,["-f",d,a.command,...a.args]):w(a,this.cwd,c)}async dispose(){this.home&&await (0,d.rm)(this.home,{recursive:!0,force:!0}).catch(()=>{})}},B="/usr/bin/sandbox-exec";function C(){return"darwin"===process.platform&&(0,i.existsSync)(B)}var D=class{constructor(a,b){this.isolation="container",this.networkCut=!1,this.cwd=a,this.options=b,this.describe=`contenedor ef\xedmero (${b.image}); sin acceso a tu disco`}unmetPromise(){return this.networkFailure}static async findRuntime(){for(let a of["docker","podman","nerdctl","finch"])if(0===(await w({name:"probe",command:a,args:["info"],timeoutMs:15e3},process.cwd(),process.env)).exitCode)return a}async ensureContainer(){if(this.containerId)return this.containerId;let a=await w({name:"crear contenedor",command:this.options.runtime,args:["run","--detach","--rm","--workdir","/work","--volume",`${this.cwd}:/work`,"--cap-drop","ALL","--security-opt","no-new-privileges","--read-only","--tmpfs","/tmp:rw,noexec,nosuid,size=1g","--tmpfs","/root:rw,size=2g","--env","HOME=/root","--init","--memory","4g","--pids-limit","512",this.options.image,"sleep","3600"],timeoutMs:3e5},this.cwd,process.env);if(0!==a.exitCode)throw Error(`No se pudo crear el contenedor: ${a.output.trim().slice(0,400)}`);return this.containerId=a.output.trim().split("\n").pop(),this.containerId}async run(a){let b=await this.ensureContainer(),c=Object.entries(a.env??{}).flatMap(([a,b])=>["--env",`${a}=${b}`]);if(!1===a.needsNetwork&&!this.networkCut){let a=await w({name:"aislar red",command:this.options.runtime,args:["network","disconnect","bridge",b],timeoutMs:3e4},this.cwd,process.env);0===a.exitCode?this.networkCut=!0:this.networkFailure=`no se pudo desconectar la red del contenedor (${this.options.runtime} network disconnect sali\xf3 con ${a.exitCode}), as\xed que los pasos que ped\xedan correr sin red han corrido con ella`}return await w(a,this.cwd,process.env,this.options.runtime,["exec",...c,b,a.command,...a.args])}async dispose(){this.containerId&&await w({name:"borrar contenedor",command:this.options.runtime,args:["rm","-f",this.containerId],timeoutMs:6e4},this.cwd,process.env).catch(()=>{})}};async function E(a){if("local"===a)return{kind:"local"};if("hardened"===a)return{kind:"hardened"};let b=await D.findRuntime();return b?{kind:"container",runtime:b}:{kind:"hardened",downgradedFrom:"container",reason:"No hay ning\xfan runtime de contenedores (docker, podman, nerdctl o finch), as\xed que no se pudo aislar la red ni el resto del disco"}}function F(a,b){return"local"===a.kind?new x(b.cwd):"container"===a.kind?new D(b.cwd,{runtime:a.runtime,image:b.image}):new A(b.cwd)}var G=(0,k.promisify)(g.execFile);async function H(a){try{let{stdout:b}=await G("git",["-C",a,"rev-parse","--is-inside-work-tree"],{timeout:1e4});return"true"===b.trim()}catch{return!1}}async function I(a){try{let{stdout:b}=await G("git",["-C",a,"status","--porcelain"],{timeout:15e3});return b.trim().length>0}catch{return!1}}async function J(a){let b=function(a={}){return a.underHome?(0,h.panomaPath)("work"):(0,e.join)((0,j.tmpdir)(),"panoma-work")}(a);return await (0,d.mkdir)(b,{recursive:!0}),b}async function K(a,b,c={}){let f=await (0,d.mkdtemp)((0,e.join)(await J(c),"run-")),g=(0,e.join)(f,"repo");return b.startsWith("panoma/")&&await G("git",["-C",a,"branch","-D",b],{timeout:3e4}).catch(()=>{}),await G("git",["-C",a,"worktree","add","-b",b,g,"HEAD"],{timeout:12e4}),{path:g,branch:b,dispose:async(c={})=>{await G("git",["-C",a,"worktree","remove","--force",g],{timeout:6e4}).catch(()=>{}),c.keepBranch||await G("git",["-C",a,"branch","-D",b],{timeout:3e4}).catch(()=>{}),await (0,d.rm)(f,{recursive:!0,force:!0}).catch(()=>{})}}}async function L(a){let{stdout:b}=await G("git",["-C",a,"diff","HEAD"],{maxBuffer:8388608,timeout:3e4});return b}async function M(a,b){await G("git",["-C",a,"add","-A"],{timeout:3e4});try{await G("git",["-C",a,"commit","-m",b],{timeout:3e4});let{stdout:c}=await G("git",["-C",a,"rev-parse","HEAD"],{timeout:1e4});return c.trim()}catch{return}}async function N(a){let b,c,d,e=[],f=a.isolation??"hardened",g=a=>({status:"failed",isolation:f,isolationNote:b,verified:!1,summary:a,steps:e});if(!await H(a.projectRoot))return g("El proyecto no es un repositorio git. Sin git no hay forma de aislar el cambio ni de deshacerlo.");if(await I(a.projectRoot))return g("Hay cambios sin confirmar en el proyecto. Gu\xe1rdalos primero: si no, el parche mezclar\xeda tu trabajo con el nuestro.");let h=await m(a.projectRoot);if(!h||h.ecosystem!==a.ecosystem)return g(`No s\xe9 c\xf3mo instalar ni probar un proyecto ${a.ecosystem} en esta ruta.`);let i=`panoma/bump-${a.packageName.replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase()}-${a.targetVersion}`,j=await E(a.isolation);f=j.kind,b=j.reason;try{d=await K(a.projectRoot,i,{underHome:"container"===j.kind})}catch(a){return g(`No se pudo crear el worktree aislado: ${a.message.trim()}`)}let k=!1;try{let l=await s(d.path,h.manifest,a);if("ya-en-destino"===l)return{status:"no-changes",isolation:f,verified:!1,summary:`${a.packageName} ya est\xe1 en ${a.targetVersion}.`,steps:e};if("no-declarado"===l)return{status:"no-changes",isolation:f,verified:!1,summary:`${a.packageName} no aparece en ning\xfan ${h.manifest} del proyecto, o se declara como dependencia de git, ruta o SDK \u2014 que no se pueden subir de versi\xf3n.`,steps:e};e.push({name:"editar manifiesto",command:`${l.file}: ${a.packageName} ${l.before} \u2192 ${l.after}`,exitCode:0,durationMs:0,output:""}),c=F(j,{cwd:d.path,image:h.image});let m=await c.run({name:"install",command:h.install.command,args:h.install.args,timeoutMs:42e4,needsNetwork:!0,env:h.install.env});if(e.push(m),v(m))return g(`La instalaci\xf3n fall\xf3 al subir ${a.packageName} a ${a.targetVersion}. Probablemente hay un conflicto de versiones.`);if(h.rebuild&&h.allowedScripts.length>0){let b=await c.run({name:"rehacer permitidos",command:h.rebuild.command,args:[...h.rebuild.args,...h.allowedScripts],timeoutMs:42e4,needsNetwork:!0});if(e.push(b),v(b))return g(`Fall\xf3 al rehacer las dependencias que el proyecto permite (${h.allowedScripts.join(", ")}) tras subir ${a.packageName} a ${a.targetVersion}.`)}for(let b of h.ownScripts){if("prepare"!==b&&"postinstall"!==b)continue;let d=await c.run({name:`guion ${b}`,command:h.install.command,args:["run",b],timeoutMs:42e4,needsNetwork:!0});if(e.push(d),v(d))return g(`El guion '${b}' del proyecto fall\xf3 tras subir ${a.packageName} a ${a.targetVersion}. Es c\xf3digo del propio proyecto, as\xed que el cambio de versi\xf3n puede no tener nada que ver.`)}let n=!1;if(h.test){let b=await c.run({name:"tests",command:h.test.command,args:h.test.args,timeoutMs:42e4,needsNetwork:!1,env:{CI:"1"}});if(e.push(b),v(b)){let b=h.scriptsDisabled?" Ojo: la instalaci\xf3n corri\xf3 sin los guiones de las dependencias"+(h.allowedScripts.length>0?` salvo ${h.allowedScripts.join(", ")}`:"")+", as\xed que un paquete que compile algo en su postinstall fallar\xeda aqu\xed por eso y no por la versi\xf3n. Si es el caso, a\xf1\xe1delo a la lista del gestor (allowBuilds, trustedDependencies, dependenciesMeta.built) o a panoma.guionesPermitidos, y vuelve a intentarlo.":"";return g(`Los tests fallan con ${a.packageName} ${a.targetVersion}. La actualizaci\xf3n rompe algo.${b}`)}n=!0}let o=c.unmetPromise?.();if(o&&(b=b?`${b}. Adem\xe1s, ${o}`:o),n&&"container"!==f&&(b=[b,`los tests son c\xf3digo del propio repositorio y corrieron fuera de un contenedor (${c.describe})`].filter(Boolean).join(". Adem\xe1s, ")),h.scriptsDisabled){let c=["se instal\xf3 sin ejecutar los guiones de las dependencias"];h.allowedScripts.length>0&&c.push(`salvo los que el proyecto permite (${h.allowedScripts.join(", ")})`),h.allowedScripts.includes(a.packageName)&&c.push(`OJO: ${a.packageName} est\xe1 en esa lista, as\xed que se ejecut\xf3 su guion de instalaci\xf3n ya en la versi\xf3n ${a.targetVersion}`),h.ownScripts.length>0&&c.push(`los del propio proyecto (${h.ownScripts.join(", ")}) se lanzaron aparte`);let d=c.join("; ");b=b?`${b}. Adem\xe1s, ${d}`:d}let p=await L(d.path),q=`chore(deps): subir ${a.packageName} a ${a.targetVersion}
|
|
6
6
|
|
|
7
|
-
`+(n?"Los tests del proyecto pasan con esta versi\xf3n.\n":"Sin tests que ejecutar: este cambio NO est\xe1 verificado.\n")+"\nPropuesto por panoma.\n",r=await M(d.path,q);return k=void 0!==r,{status:"proposed",isolation:f,isolationNote:b,verified:n,summary:n?`${a.packageName} ${l.before} \u2192 ${l.after}, con los tests en verde.`:`${a.packageName} ${l.before} \u2192 ${l.after}. El proyecto no tiene tests, as\xed que nadie ha comprobado que siga funcionando.`,branch:i,patch:p,commitSha:r,steps:e}}finally{await c?.dispose(),await d.dispose({keepBranch:k})}}var O=(0,k.promisify)(g.execFile);async function P(a,b){let{stdout:c}=await O("git",["-C",a,...b],{timeout:6e4,maxBuffer:8388608});return c.trim()}async function Q(a,b){try{return await P(a,["rev-parse","--verify",`refs/heads/${b}`]),!0}catch{return!1}}async function R(a,b,c){if(!await H(a))return{ok:!1,detail:"El proyecto ya no es un repositorio git."};if(!await Q(a,b))return{ok:!1,detail:`La rama ${b} ya no existe. Puede que la borraras a mano, o que se descartara antes.`};if(await I(a))return{ok:!1,detail:"Tienes cambios sin confirmar. Gu\xe1rdalos o desc\xe1rtalos antes de aplicar."};let d=await P(a,["rev-parse","--abbrev-ref","HEAD"]).catch(()=>"");if(d===b)return{ok:!1,detail:`Ya est\xe1s en ${b}: no hay nada que fusionar.`};try{await P(a,["merge","--no-ff",b,"-m",`Aplicar propuesta de Panoma: ${c}`]);let e=await P(a,["rev-parse","HEAD"]);return await P(a,["branch","-d",b]).catch(()=>{}),{ok:!0,detail:`Fusionada en ${d}. Para deshacerlo: git reset --hard HEAD~1`,mergeSha:e}}catch(c){await P(a,["merge","--abort"]).catch(()=>{});let b=c.message.split("\n").slice(0,3).join(" ").trim();return{ok:!1,detail:`El merge dio conflictos y se ha abortado; tu repositorio queda como estaba. ${b}`}}}async function S(a,b){return await H(a)?await Q(a,b)?(await P(a,["branch","-D",b]),{ok:!0,detail:`Rama ${b} eliminada.`}):{ok:!0,detail:"La rama ya no exist\xeda."}:{ok:!1,detail:"El proyecto ya no es un repositorio git."}}var T=(0,k.promisify)(g.execFile),U=["build","compile"];function V(a,b=700){let c=a.trim();return c.length<=b?c:`\u2026${c.slice(-b)}`}async function W(a){let b,c,f,g,h=[],i=Date.now(),j=a.isolation??"hardened",k=(a,c,d={})=>({status:a,isolation:j,isolationNote:b,durationMs:Date.now()-i,summary:c,steps:h,...d});if(!await H(a.projectRoot))return k("no-git","El proyecto no est\xe1 en git, y sin git no hay worktree: comprobar la build aqu\xed significar\xeda ejecutarla dentro de tu carpeta, y eso no se hace.");let l=await I(a.projectRoot),n=await m(a.projectRoot);if(!n)return k("no-toolchain","No s\xe9 c\xf3mo instalar ni compilar lo que hay en esta ruta.");if("npm"!==n.ecosystem)return k("no-build",`Todav\xeda no s\xe9 comprobar la build de un proyecto ${n.ecosystem}: su build necesita decisiones (el destino) que no me toca tomar.`);let o=await (0,d.readFile)((0,e.join)(a.projectRoot,"package.json"),"utf8").then(a=>JSON.parse(a)).catch(()=>void 0),p=U.find(a=>o?.scripts?.[a]);if(!p)return k("no-build","El proyecto no declara ning\xfan guion de build (ni `build` ni `compile` en package.json). No se inventa uno: un comando plausible que falla cuesta m\xe1s que decir la verdad.");let q=n.install.command,r=`${q} run ${p}`;try{let{stdout:b}=await T("git",["-C",a.projectRoot,"rev-parse","--short","HEAD"],{timeout:15e3});c=b.trim()||void 0}catch{}let s=await E(a.isolation);j=s.kind,b=s.reason;try{g=await K(a.projectRoot,"panoma/check",{underHome:"container"===s.kind})}catch(a){return k("failed",`No se pudo crear el worktree aislado: ${a.message.trim()}`,{command:r,sha:c,dirty:l})}try{f=F(s,{cwd:g.path,image:n.image});let a=await f.run({name:"install",command:n.install.command,args:n.install.args,timeoutMs:42e4,needsNetwork:!0,env:n.install.env});if(h.push(a),v(a))return k("failed","La instalaci\xf3n fall\xf3 antes de llegar a la build.",{command:r,sha:c,dirty:l,reason:V(a.output)});if(n.rebuild&&n.allowedScripts.length>0){let a=await f.run({name:"rehacer permitidos",command:n.rebuild.command,args:[...n.rebuild.args,...n.allowedScripts],timeoutMs:42e4,needsNetwork:!0});if(h.push(a),v(a))return k("failed",`Fall\xf3 al rehacer las dependencias que el proyecto permite (${n.allowedScripts.join(", ")}).`,{command:r,sha:c,dirty:l,reason:V(a.output)})}for(let a of n.ownScripts){if("prepare"!==a&&"postinstall"!==a)continue;let b=await f.run({name:`guion ${a}`,command:n.install.command,args:["run",a],timeoutMs:42e4,needsNetwork:!0});if(h.push(b),v(b))return k("failed",`El guion '${a}' del propio proyecto fall\xf3 antes de la build.`,{command:r,sha:c,dirty:l,reason:V(b.output)})}let d=await f.run({name:"build",command:q,args:["run",p],timeoutMs:6e5,needsNetwork:!1,env:{CI:"1"}});h.push(d),"container"!==j&&(b=[b,`la build es c\xf3digo del propio repositorio y corri\xf3 fuera de un contenedor (${f.describe})`].filter(Boolean).join(". Adem\xe1s, "));let e=f.unmetPromise?.();if(e&&(b=b?`${b}. Adem\xe1s, ${e}`:e),v(d)){let a=n.scriptsDisabled?" Ojo: la instalaci\xf3n corri\xf3 sin los guiones de las dependencias"+(n.allowedScripts.length>0?` salvo ${n.allowedScripts.join(", ")}`:"")+", as\xed que un paquete que compile algo en su postinstall fallar\xeda aqu\xed por eso y no por tu c\xf3digo.":"";return k("failed",`La build falla con \`${r}\`.${a}`,{command:r,sha:c,dirty:l,reason:V(d.output)})}let m=Math.round((Date.now()-i)/1e3);return k("ok",`Compila. \`${r}\` termin\xf3 en verde (${m}s desde cero, instalaci\xf3n incluida).`,{command:r,sha:c,dirty:l})}finally{await f?.dispose(),await g.dispose()}}},83838:(a,b,c)=>{"use strict";c.d(b,{U:()=>
|
|
7
|
+
`+(n?"Los tests del proyecto pasan con esta versi\xf3n.\n":"Sin tests que ejecutar: este cambio NO est\xe1 verificado.\n")+"\nPropuesto por panoma.\n",r=await M(d.path,q);return k=void 0!==r,{status:"proposed",isolation:f,isolationNote:b,verified:n,summary:n?`${a.packageName} ${l.before} \u2192 ${l.after}, con los tests en verde.`:`${a.packageName} ${l.before} \u2192 ${l.after}. El proyecto no tiene tests, as\xed que nadie ha comprobado que siga funcionando.`,branch:i,patch:p,commitSha:r,steps:e}}finally{await c?.dispose(),await d.dispose({keepBranch:k})}}var O=(0,k.promisify)(g.execFile);async function P(a,b){let{stdout:c}=await O("git",["-C",a,...b],{timeout:6e4,maxBuffer:8388608});return c.trim()}async function Q(a,b){try{return await P(a,["rev-parse","--verify",`refs/heads/${b}`]),!0}catch{return!1}}async function R(a,b,c){if(!await H(a))return{ok:!1,detail:"El proyecto ya no es un repositorio git."};if(!await Q(a,b))return{ok:!1,detail:`La rama ${b} ya no existe. Puede que la borraras a mano, o que se descartara antes.`};if(await I(a))return{ok:!1,detail:"Tienes cambios sin confirmar. Gu\xe1rdalos o desc\xe1rtalos antes de aplicar."};let d=await P(a,["rev-parse","--abbrev-ref","HEAD"]).catch(()=>"");if(d===b)return{ok:!1,detail:`Ya est\xe1s en ${b}: no hay nada que fusionar.`};try{await P(a,["merge","--no-ff",b,"-m",`Aplicar propuesta de Panoma: ${c}`]);let e=await P(a,["rev-parse","HEAD"]);return await P(a,["branch","-d",b]).catch(()=>{}),{ok:!0,detail:`Fusionada en ${d}. Para deshacerlo: git reset --hard HEAD~1`,mergeSha:e}}catch(c){await P(a,["merge","--abort"]).catch(()=>{});let b=c.message.split("\n").slice(0,3).join(" ").trim();return{ok:!1,detail:`El merge dio conflictos y se ha abortado; tu repositorio queda como estaba. ${b}`}}}async function S(a,b){return await H(a)?await Q(a,b)?(await P(a,["branch","-D",b]),{ok:!0,detail:`Rama ${b} eliminada.`}):{ok:!0,detail:"La rama ya no exist\xeda."}:{ok:!1,detail:"El proyecto ya no es un repositorio git."}}var T=(0,k.promisify)(g.execFile),U=["build","compile"];function V(a,b=700){let c=a.trim();return c.length<=b?c:`\u2026${c.slice(-b)}`}async function W(a){let b,c,f,g,h=[],i=Date.now(),j=a.isolation??"hardened",k=(a,c,d={})=>({status:a,isolation:j,isolationNote:b,durationMs:Date.now()-i,summary:c,steps:h,...d});if(!await H(a.projectRoot))return k("no-git","El proyecto no est\xe1 en git, y sin git no hay worktree: comprobar la build aqu\xed significar\xeda ejecutarla dentro de tu carpeta, y eso no se hace.");let l=await I(a.projectRoot),n=await m(a.projectRoot);if(!n)return k("no-toolchain","No s\xe9 c\xf3mo instalar ni compilar lo que hay en esta ruta.");if("npm"!==n.ecosystem)return k("no-build",`Todav\xeda no s\xe9 comprobar la build de un proyecto ${n.ecosystem}: su build necesita decisiones (el destino) que no me toca tomar.`);let o=await (0,d.readFile)((0,e.join)(a.projectRoot,"package.json"),"utf8").then(a=>JSON.parse(a)).catch(()=>void 0),p=U.find(a=>o?.scripts?.[a]);if(!p)return k("no-build","El proyecto no declara ning\xfan guion de build (ni `build` ni `compile` en package.json). No se inventa uno: un comando plausible que falla cuesta m\xe1s que decir la verdad.");let q=n.install.command,r=`${q} run ${p}`;try{let{stdout:b}=await T("git",["-C",a.projectRoot,"rev-parse","--short","HEAD"],{timeout:15e3});c=b.trim()||void 0}catch{}let s=await E(a.isolation);j=s.kind,b=s.reason;try{g=await K(a.projectRoot,"panoma/check",{underHome:"container"===s.kind})}catch(a){return k("failed",`No se pudo crear el worktree aislado: ${a.message.trim()}`,{command:r,sha:c,dirty:l})}try{f=F(s,{cwd:g.path,image:n.image});let a=await f.run({name:"install",command:n.install.command,args:n.install.args,timeoutMs:42e4,needsNetwork:!0,env:n.install.env});if(h.push(a),v(a))return k("failed","La instalaci\xf3n fall\xf3 antes de llegar a la build.",{command:r,sha:c,dirty:l,reason:V(a.output)});if(n.rebuild&&n.allowedScripts.length>0){let a=await f.run({name:"rehacer permitidos",command:n.rebuild.command,args:[...n.rebuild.args,...n.allowedScripts],timeoutMs:42e4,needsNetwork:!0});if(h.push(a),v(a))return k("failed",`Fall\xf3 al rehacer las dependencias que el proyecto permite (${n.allowedScripts.join(", ")}).`,{command:r,sha:c,dirty:l,reason:V(a.output)})}for(let a of n.ownScripts){if("prepare"!==a&&"postinstall"!==a)continue;let b=await f.run({name:`guion ${a}`,command:n.install.command,args:["run",a],timeoutMs:42e4,needsNetwork:!0});if(h.push(b),v(b))return k("failed",`El guion '${a}' del propio proyecto fall\xf3 antes de la build.`,{command:r,sha:c,dirty:l,reason:V(b.output)})}let d=await f.run({name:"build",command:q,args:["run",p],timeoutMs:6e5,needsNetwork:!1,env:{CI:"1"}});h.push(d),"container"!==j&&(b=[b,`la build es c\xf3digo del propio repositorio y corri\xf3 fuera de un contenedor (${f.describe})`].filter(Boolean).join(". Adem\xe1s, "));let e=f.unmetPromise?.();if(e&&(b=b?`${b}. Adem\xe1s, ${e}`:e),v(d)){let a=n.scriptsDisabled?" Ojo: la instalaci\xf3n corri\xf3 sin los guiones de las dependencias"+(n.allowedScripts.length>0?` salvo ${n.allowedScripts.join(", ")}`:"")+", as\xed que un paquete que compile algo en su postinstall fallar\xeda aqu\xed por eso y no por tu c\xf3digo.":"";return k("failed",`La build falla con \`${r}\`.${a}`,{command:r,sha:c,dirty:l,reason:V(d.output)})}let m=Math.round((Date.now()-i)/1e3);return k("ok",`Compila. \`${r}\` termin\xf3 en verde (${m}s desde cero, instalaci\xf3n incluida).`,{command:r,sha:c,dirty:l})}finally{await f?.dispose(),await g.dispose()}}},61971:(a,b,c)=>{"use strict";function d(){return e()?"npx panoma":"panoma"}function e(){return"1"===process.env.PANOMA_EPHEMERAL}c.d(b,{_:()=>d,a:()=>e})},83838:(a,b,c)=>{"use strict";c.d(b,{U:()=>i,N:()=>g});var d=c(61971),e=c(83677);let f=new Set(["localhost","127.0.0.1","::1","[::1]","0.0.0.0"]);function g(a){let b=(0,e.dT)(a),c=a.headers.get("sec-fetch-site");if(c&&"same-origin"!==c&&"none"!==c)return h(b,(0,e.t)(b,"guard.otherSite",{site:c}));let d=a.headers.get("origin"),f=a.headers.get("host");if(d&&f&&function(a){try{return new URL(a).host}catch{return null}}(d)!==f)return h(b,(0,e.t)(b,"guard.otherOrigin",{origin:d}))}function h(a,b){return Response.json({error:(0,e.t)(a,"guard.rejected",{detail:b}),hint:(0,e.t)(a,"guard.rejectedHint")},{status:403})}function i(a){let b=(process.env.PANOMA_OPERATOR_KEY??"").trim();if(!b){if(!function(){if((process.env.PANOMA_ACCESS_KEY??"").trim())return!0;let a=(process.env.PANOMA_HOST??"").trim().replace(/:\d+$/,"").toLowerCase();return!!a&&("0.0.0.0"===a||"::"===a||"[::]"===a||!f.has(a))}())return;return j(a)}let c=function(a){let b=a.headers.get("x-panoma-operator");if(b)return b;for(let b of(a.headers.get("cookie")??"").split(";")){let a=b.indexOf("=");if(-1!==a&&"panoma-operator"===b.slice(0,a).trim())try{return decodeURIComponent(b.slice(a+1).trim())}catch{return b.slice(a+1).trim()}}return""}(a);if(!(c&&function(a,b){if(a.length!==b.length)return!1;let c=0;for(let d=0;d<a.length;d++)c|=a.charCodeAt(d)^b.charCodeAt(d);return 0===c}(c,b)))return j(a)}function j(a){let b=(0,e.dT)(a);return Response.json({error:(0,e.t)(b,"guard.localOperatorOnly"),hint:(0,e.t)(b,"guard.localOperatorOnlyHint",{cli:(0,d._)()})},{status:403})}}};
|
|
@@ -75,7 +75,9 @@
|
|
|
75
75
|
and last_commit_at >= now() - interval '${d.ll.raw(String(365))} days')`,dormant:(0,d.ll)`(select count(*)::int from ${q}
|
|
76
76
|
where ${aO}
|
|
77
77
|
and last_commit_at < now() - interval '${d.ll.raw(String(365))} days')`,noGit:(0,d.ll)`(select count(*)::int from ${q}
|
|
78
|
-
where ${aO} and last_commit_at is null)`,copies:(0,d.ll)`(select count(*)::int from ${N})`,
|
|
78
|
+
where ${aO} and last_commit_at is null)`,copies:(0,d.ll)`(select count(*)::int from ${N})`,hidden:(0,d.ll)`(select count(*)::int from ${q} p
|
|
79
|
+
where not exists (select 1 from family_members fm where fm.project_id = p.id)
|
|
80
|
+
and (select d.hidden from decisions d where d.identity = p.identity) is true)`,redundantBytes:(0,d.ll)`(select coalesce(sum(redundant_bytes), 0)::int from ${M})`,agentCommits:(0,d.ll)`(select coalesce(sum(commits), 0)::int from ${A})`,technologies:(0,d.ll)`(select count(*)::int from ${s})`,packages:(0,d.ll)`(select count(*)::int from ${u})`,outdatedDeps:(0,d.ll)`(select coalesce(sum(outdated_deps), 0)::int from ${q})`,vulnerableProjects:(0,d.ll)`(select count(*)::int from ${q} where vuln_count > 0)`,advisories:(0,d.ll)`(select count(*)::int from ${v})`,enrichedAt:(0,d.ll)`(select max(enriched_at) from ${q})`,unsaved:(0,d.ll)`(select count(*)::int from ${q}
|
|
79
81
|
where git_versioned is not null
|
|
80
82
|
and (git_versioned = false
|
|
81
83
|
or (git_versioned and coalesce(git_commit_count, 0) = 0)
|
|
@@ -2,4 +2,4 @@ exports.id=7276,exports.ids=[7276],exports.modules={4439:()=>{},9167:()=>{},1016
|
|
|
2
2
|
# Lo escribi\xf3 Panoma para abrir un agente. Se puede borrar sin miedo.
|
|
3
3
|
cd ${(0,d.eC)(a.root)} || exit 1
|
|
4
4
|
exec ${c}
|
|
5
|
-
`}},20563:(a,b,c)=>{"use strict";function d(a){return"win32"===a?"powershell":"posix"}c.d(b,{_z:()=>i,c9:()=>h,eC:()=>g,of:()=>d});let e=/^[A-Za-z0-9_@%+=:,./-]+$/,f=/^[A-Za-z0-9_+=:,./\\-]+$/;function g(a,b="posix"){return"powershell"===b?""!==a&&f.test(a)?a:`'${a.replace(/'/g,"''")}'`:""!==a&&e.test(a)?a:`'${a.replace(/'/g,"'\\''")}'`}function h(a,b="posix"){return a.join("powershell"===b?"; ":" && ")}function i(a,b,c="posix"){let d="string"==typeof b?[b]:b,e=g(a,c);return"powershell"===c?`cd ${e}; if ($?) { ${h(d,c)} }`:`cd ${e} && ${h(d,c)}`}},37881:(a,b,c)=>{"use strict";c.d(b,{W:()=>f});var d=c(31421),e=c(76157);async function f(a,b,c){let f=(0,e.c_)(a,b);return new Promise(a=>{let b;try{b=(0,d.spawn)(f.file,f.args,{...c?{cwd:c}:{},detached:!0,stdio:"ignore"})}catch(b){a(b);return}b.on("error",b=>a(b)),b.on("exit",b=>{null!==b&&0!==b&&a(Error(`sali\xf3 con ${b}`))}),b.unref(),setTimeout(()=>a(void 0),400)})}},40071:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(23055),e=c(73134),f=c(2701);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83838:(a,b,c)=>{"use strict";c.d(b,{U:()=>
|
|
5
|
+
`}},20563:(a,b,c)=>{"use strict";function d(a){return"win32"===a?"powershell":"posix"}c.d(b,{_z:()=>i,c9:()=>h,eC:()=>g,of:()=>d});let e=/^[A-Za-z0-9_@%+=:,./-]+$/,f=/^[A-Za-z0-9_+=:,./\\-]+$/;function g(a,b="posix"){return"powershell"===b?""!==a&&f.test(a)?a:`'${a.replace(/'/g,"''")}'`:""!==a&&e.test(a)?a:`'${a.replace(/'/g,"'\\''")}'`}function h(a,b="posix"){return a.join("powershell"===b?"; ":" && ")}function i(a,b,c="posix"){let d="string"==typeof b?[b]:b,e=g(a,c);return"powershell"===c?`cd ${e}; if ($?) { ${h(d,c)} }`:`cd ${e} && ${h(d,c)}`}},37881:(a,b,c)=>{"use strict";c.d(b,{W:()=>f});var d=c(31421),e=c(76157);async function f(a,b,c){let f=(0,e.c_)(a,b);return new Promise(a=>{let b;try{b=(0,d.spawn)(f.file,f.args,{...c?{cwd:c}:{},detached:!0,stdio:"ignore"})}catch(b){a(b);return}b.on("error",b=>a(b)),b.on("exit",b=>{null!==b&&0!==b&&a(Error(`sali\xf3 con ${b}`))}),b.unref(),setTimeout(()=>a(void 0),400)})}},40071:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(23055),e=c(73134),f=c(2701);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},61971:(a,b,c)=>{"use strict";function d(){return e()?"npx panoma":"panoma"}function e(){return"1"===process.env.PANOMA_EPHEMERAL}c.d(b,{_:()=>d,a:()=>e})},83838:(a,b,c)=>{"use strict";c.d(b,{U:()=>i,N:()=>g});var d=c(61971),e=c(83677);let f=new Set(["localhost","127.0.0.1","::1","[::1]","0.0.0.0"]);function g(a){let b=(0,e.dT)(a),c=a.headers.get("sec-fetch-site");if(c&&"same-origin"!==c&&"none"!==c)return h(b,(0,e.t)(b,"guard.otherSite",{site:c}));let d=a.headers.get("origin"),f=a.headers.get("host");if(d&&f&&function(a){try{return new URL(a).host}catch{return null}}(d)!==f)return h(b,(0,e.t)(b,"guard.otherOrigin",{origin:d}))}function h(a,b){return Response.json({error:(0,e.t)(a,"guard.rejected",{detail:b}),hint:(0,e.t)(a,"guard.rejectedHint")},{status:403})}function i(a){let b=(process.env.PANOMA_OPERATOR_KEY??"").trim();if(!b){if(!function(){if((process.env.PANOMA_ACCESS_KEY??"").trim())return!0;let a=(process.env.PANOMA_HOST??"").trim().replace(/:\d+$/,"").toLowerCase();return!!a&&("0.0.0.0"===a||"::"===a||"[::]"===a||!f.has(a))}())return;return j(a)}let c=function(a){let b=a.headers.get("x-panoma-operator");if(b)return b;for(let b of(a.headers.get("cookie")??"").split(";")){let a=b.indexOf("=");if(-1!==a&&"panoma-operator"===b.slice(0,a).trim())try{return decodeURIComponent(b.slice(a+1).trim())}catch{return b.slice(a+1).trim()}}return""}(a);if(!(c&&function(a,b){if(a.length!==b.length)return!1;let c=0;for(let d=0;d<a.length;d++)c|=a.charCodeAt(d)^b.charCodeAt(d);return 0===c}(c,b)))return j(a)}function j(a){let b=(0,e.dT)(a);return Response.json({error:(0,e.t)(b,"guard.localOperatorOnly"),hint:(0,e.t)(b,"guard.localOperatorOnlyHint",{cli:(0,d._)()})},{status:403})}},85520:(a,b,c)=>{"use strict";c.d(b,{a:()=>h});var d=c(76157);let e=[{command:"ptyxis",args:a=>[`--working-directory=${a}`],withScript:(a,b)=>[`--working-directory=${a}`,"--",b]},{command:"gnome-terminal",args:a=>[`--working-directory=${a}`],withScript:(a,b)=>[`--working-directory=${a}`,"--",b]},{command:"konsole",args:a=>["--workdir",a],withScript:(a,b)=>["--workdir",a,"-e",b]},{command:"xfce4-terminal",args:a=>[`--working-directory=${a}`],withScript:(a,b)=>[`--working-directory=${a}`,"-e",b]},{command:"tilix",args:a=>["-w",a],withScript:(a,b)=>["-w",a,"-e",b]},{command:"terminator",args:a=>[`--working-directory=${a}`],withScript:(a,b)=>[`--working-directory=${a}`,"-e",b]},{command:"alacritty",args:a=>["--working-directory",a],withScript:(a,b)=>["--working-directory",a,"-e",b]},{command:"kitty",args:a=>["--directory",a],withScript:(a,b)=>["--directory",a,b]},{command:"wezterm",args:a=>["start","--cwd",a],withScript:(a,b)=>["start","--cwd",a,"--",b]},{command:"foot",args:a=>[`--working-directory=${a}`],withScript:(a,b)=>[`--working-directory=${a}`,b]},{command:"x-terminal-emulator",args:()=>[],useCwd:!0,withScript:(a,b)=>["-e",b]},{command:"xterm",args:()=>[],useCwd:!0,withScript:(a,b)=>["-e",b]}],f=a=>["powershell","-NoExit","-ExecutionPolicy","Bypass","-File",a],g=[{command:"wt",args:a=>["-d",a],withScript:(a,b)=>["-d",a,...f(b)]},{command:"conhost",args:()=>["cmd.exe"],useCwd:!0,withScript:(a,b)=>f(b)}];function h(a={}){let b=a.platform??process.platform,c=a.installed??(a=>void 0!==(0,d.oq)(a));return"darwin"===b?{command:"open",args:a=>["-a","Terminal",a],withScript:(a,b)=>[b]}:("linux"===b?e:"win32"===b?g:[]).find(a=>c(a.command))}},99446:(a,b,c)=>{"use strict";a.exports=c(44870)}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=7876,exports.ids=[7876],exports.modules={4439:()=>{},9167:()=>{},40071:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(23055),e=c(73134),f=c(2701);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},61971:(a,b,c)=>{"use strict";function d(){return e()?"npx panoma":"panoma"}function e(){return"1"===process.env.PANOMA_EPHEMERAL}c.d(b,{_:()=>d,a:()=>e})},73466:(a,b,c)=>{"use strict";c.d(b,{W:()=>g});var d=c(33610),e=c(61971),f=c(83677);function g(a,b){if(b instanceof d.Z7){let{provider:c}=b,d="cli"===c.auth?(0,f.t)(a,"model.hintCli",{name:c.name,command:c.command??c.id}):"oauth"===c.auth?(0,f.t)(a,"model.hintOauth",{name:c.name}):(0,f.t)(a,"model.hintKey",{cli:(0,e._)(),id:c.id,url:c.signupUrl??""});return{detail:(0,f.t)(a,"model.noCredential",{name:c.name}),hint:d}}let c=b.message??String(b);return c.includes("proveedor de IA")?{detail:(0,f.t)(a,"model.noneConnected"),hint:(0,f.t)(a,"model.connectHint",{cli:(0,e._)()})}:{detail:c}}},83838:(a,b,c)=>{"use strict";c.d(b,{U:()=>i,N:()=>g});var d=c(61971),e=c(83677);let f=new Set(["localhost","127.0.0.1","::1","[::1]","0.0.0.0"]);function g(a){let b=(0,e.dT)(a),c=a.headers.get("sec-fetch-site");if(c&&"same-origin"!==c&&"none"!==c)return h(b,(0,e.t)(b,"guard.otherSite",{site:c}));let d=a.headers.get("origin"),f=a.headers.get("host");if(d&&f&&function(a){try{return new URL(a).host}catch{return null}}(d)!==f)return h(b,(0,e.t)(b,"guard.otherOrigin",{origin:d}))}function h(a,b){return Response.json({error:(0,e.t)(a,"guard.rejected",{detail:b}),hint:(0,e.t)(a,"guard.rejectedHint")},{status:403})}function i(a){let b=(process.env.PANOMA_OPERATOR_KEY??"").trim();if(!b){if(!function(){if((process.env.PANOMA_ACCESS_KEY??"").trim())return!0;let a=(process.env.PANOMA_HOST??"").trim().replace(/:\d+$/,"").toLowerCase();return!!a&&("0.0.0.0"===a||"::"===a||"[::]"===a||!f.has(a))}())return;return j(a)}let c=function(a){let b=a.headers.get("x-panoma-operator");if(b)return b;for(let b of(a.headers.get("cookie")??"").split(";")){let a=b.indexOf("=");if(-1!==a&&"panoma-operator"===b.slice(0,a).trim())try{return decodeURIComponent(b.slice(a+1).trim())}catch{return b.slice(a+1).trim()}}return""}(a);if(!(c&&function(a,b){if(a.length!==b.length)return!1;let c=0;for(let d=0;d<a.length;d++)c|=a.charCodeAt(d)^b.charCodeAt(d);return 0===c}(c,b)))return j(a)}function j(a){let b=(0,e.dT)(a);return Response.json({error:(0,e.t)(b,"guard.localOperatorOnly"),hint:(0,e.t)(b,"guard.localOperatorOnlyHint",{cli:(0,d._)()})},{status:403})}},99446:(a,b,c)=>{"use strict";a.exports=c(44870)}};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
3
|
"functions": {
|
|
4
|
-
"/api/assets": {
|
|
5
|
-
"maxDuration": 300
|
|
6
|
-
},
|
|
7
4
|
"/api/ai": {
|
|
8
5
|
"maxDuration": 120
|
|
9
6
|
},
|
|
7
|
+
"/api/assets": {
|
|
8
|
+
"maxDuration": 300
|
|
9
|
+
},
|
|
10
10
|
"/api/describe": {
|
|
11
11
|
"maxDuration": 120
|
|
12
12
|
},
|
|
@@ -19,30 +19,30 @@
|
|
|
19
19
|
"/api/md/review": {
|
|
20
20
|
"maxDuration": 120
|
|
21
21
|
},
|
|
22
|
+
"/api/runs/[id]": {
|
|
23
|
+
"maxDuration": 120
|
|
24
|
+
},
|
|
22
25
|
"/api/roots": {
|
|
23
26
|
"maxDuration": 300
|
|
24
27
|
},
|
|
25
|
-
"/api/search": {
|
|
26
|
-
"maxDuration": 120
|
|
27
|
-
},
|
|
28
28
|
"/api/runs": {
|
|
29
29
|
"maxDuration": 900
|
|
30
30
|
},
|
|
31
|
+
"/api/search": {
|
|
32
|
+
"maxDuration": 120
|
|
33
|
+
},
|
|
31
34
|
"/api/secrets": {
|
|
32
35
|
"maxDuration": 300
|
|
33
36
|
},
|
|
34
|
-
"/api/runs/[id]": {
|
|
35
|
-
"maxDuration": 120
|
|
36
|
-
},
|
|
37
37
|
"/api/twin/classify": {
|
|
38
38
|
"maxDuration": 300
|
|
39
39
|
},
|
|
40
|
-
"/api/twin/look": {
|
|
41
|
-
"maxDuration": 180
|
|
42
|
-
},
|
|
43
40
|
"/api/twin/distill": {
|
|
44
41
|
"maxDuration": 600
|
|
45
42
|
},
|
|
43
|
+
"/api/twin/look": {
|
|
44
|
+
"maxDuration": 180
|
|
45
|
+
},
|
|
46
46
|
"/api/twin/synthesize": {
|
|
47
47
|
"maxDuration": 300
|
|
48
48
|
}
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"wasm": [],
|
|
19
19
|
"assets": [],
|
|
20
20
|
"env": {
|
|
21
|
-
"__NEXT_BUILD_ID": "
|
|
22
|
-
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "
|
|
23
|
-
"__NEXT_PREVIEW_MODE_ID": "
|
|
24
|
-
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "
|
|
25
|
-
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "
|
|
21
|
+
"__NEXT_BUILD_ID": "D8knSMGGk6yOk_0w3z22h",
|
|
22
|
+
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "oR+XZQweKTbBYrMkm+NU3HuepKPt9Bt/y+tJmPxBFn0=",
|
|
23
|
+
"__NEXT_PREVIEW_MODE_ID": "d400a47ed6cd6f9d3e2de59ad5e71a94",
|
|
24
|
+
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "9429bac68abffa3a1ae2e2faba4cc90ae7cf132be3fa2ae15be643ae97076780",
|
|
25
|
+
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "7b4d362dcf4832b3c945a02bad7b8ce709feabb193e379596792f495e33a0bf3"
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-dfabcb423274f722.js" defer=""></script><script src="/_next/static/chunks/framework-30b145ec0f5d120f.js" defer=""></script><script src="/_next/static/chunks/main-b6b5e7fa4424cc5d.js" defer=""></script><script src="/_next/static/chunks/pages/_app-c69705e3978589b3.js" defer=""></script><script src="/_next/static/chunks/pages/_error-03e7b340a5b9742a.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-dfabcb423274f722.js" defer=""></script><script src="/_next/static/chunks/framework-30b145ec0f5d120f.js" defer=""></script><script src="/_next/static/chunks/main-b6b5e7fa4424cc5d.js" defer=""></script><script src="/_next/static/chunks/pages/_app-c69705e3978589b3.js" defer=""></script><script src="/_next/static/chunks/pages/_error-03e7b340a5b9742a.js" defer=""></script><script src="/_next/static/D8knSMGGk6yOk_0w3z22h/_buildManifest.js" defer=""></script><script src="/_next/static/D8knSMGGk6yOk_0w3z22h/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"D8knSMGGk6yOk_0w3z22h","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{},"edge":{},"encryptionKey":"oR+XZQweKTbBYrMkm+NU3HuepKPt9Bt/y+tJmPxBFn0="}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4517],{179:(e,t,n)=>{n.d(t,{I18nProvider:()=>s,Ym:()=>d,Zs:()=>l,kj:()=>u});var o=n(9763),r=n(4963),a=n(7911);let c=(0,r.createContext)("en"),i=(0,r.createContext)("panoma");function s(e){let{locale:t,cli:n,children:r}=e;return(0,o.jsx)(c.Provider,{value:t,children:(0,o.jsx)(i.Provider,{value:n,children:r})})}function d(){return(0,r.useContext)(c)}function l(){return(0,r.useContext)(i)}function u(){let e=(0,r.useContext)(c),t=(0,r.useContext)(i);return(0,r.useCallback)((n,o)=>(0,a.t)(e,n,{cli:t,...o}),[e,t])}},2574:(e,t,n)=>{n.d(t,{L:()=>a});var o=n(3570),r=n(8466);let a={cursor:o.biF,code:r.$$9,windsurf:o.b4F,subl:o.xL5,webstorm:o.Ewh,idea:o.PHd,zed:o.eDb,"claude-cli":o.phd,"codex-cli":r.vxT,"gemini-cli":o.zR6,"cursor-agent":o.biF,"copilot-cli":o.QWU,opencode:o.u4l,"claude-app":o.phd,"chatgpt-app":r.vxT}},4204:(e,t,n)=>{n.d(t,{rA:()=>h,lZ:()=>l,hV:()=>d,z3:()=>s.z,Pp:()=>c,KW:()=>i});var o=n(9763),r=n(5595),a=n(7911);function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es";if(!e)return"—";let n=Math.floor((Date.now()-new Date(e).getTime())/864e5);if("en"===t){if(n<=0)return"today";if(1===n)return"yesterday";if(n<30)return"".concat(n," d ago");if(n<365){let e=Math.floor(n/30);return"".concat(e," month").concat(1===e?"":"s"," ago")}let e=Math.floor(n/365);return"".concat(e," year").concat(1===e?"":"s"," ago")}if(n<=0)return"hoy";if(1===n)return"ayer";if(n<30)return"hace ".concat(n," d");if(n<365){let e=Math.floor(n/30);return"hace ".concat(e," ").concat(1===e?"mes":"meses")}let o=Math.floor(n/365);return"hace ".concat(o," a\xf1o").concat(1===o?"":"s")}function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),o=n-new Date(e).getTime();if(!Number.isFinite(o))return"—";let r="en"===t;if(o<6e4)return r?"just now":"ahora mismo";if(o<36e5){let e=Math.floor(o/6e4);return r?"".concat(e," min ago"):"hace ".concat(e," min")}if(o<1728e5){let e=Math.floor(o/36e5);return r?"".concat(e," h ago"):"hace ".concat(e," h")}return c(e,t)}var s=n(7642);function d(e){let{name:t,src:n,size:c=56,tone:i="brand",locale:s}=e,d="panoma"===t.toLowerCase(),l="demo-runner"===t.toLowerCase()?"/assets/projects/demo-runner.png":null,u=d?"/assets/brand/panoma.svg":null!=n?n:l;return u?(0,o.jsx)("img",{src:u,loading:"lazy",alt:(0,a.t)(s,"common.iconOf",{name:t}),width:c,height:c,className:"shrink-0 rounded-[22%] border border-edge object-cover shadow-sm",style:{width:c,height:c}}):(0,o.jsx)("span",{"aria-hidden":!0,className:"flex shrink-0 items-center justify-center rounded-[22%] border border-edge ".concat("neutral"===i?"project-icon--neutral":"bg-raised text-accent"),style:{width:c,height:c},children:(0,o.jsx)(r.KQe,{style:{width:.46*c,height:.46*c}})})}function l(e){let{text:t,as:n="p",className:r}=e;return(0,o.jsx)(n,{role:"alert",className:"font-mono text-[11px] text-fail".concat(r?" ".concat(r):""),children:t})}let u={raised:"rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",surface:"rounded border border-edge bg-surface px-3 py-1.5 font-mono text-xs text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",plain:"rounded border border-edge px-2.5 py-1 font-mono text-xs text-smoke transition-colors hover:border-chalk disabled:opacity-50",accent:"rounded border border-accent bg-accent px-3 py-1.5 font-mono text-xs text-white transition-opacity hover:opacity-85 disabled:opacity-50"};function h(e){let{tone:t,busy:n=!1,busyLabel:r,disabled:a,className:c,children:i,...s}=e;return(0,o.jsx)("button",{...s,disabled:null!=a?a:n,className:"".concat(u[t]).concat(c?" ".concat(c):""),children:n&&void 0!==r?r:i})}},7642:(e,t,n)=>{n.d(t,{z:()=>o});function o(e){return e<1024?"".concat(e," B"):e<1048576?"".concat(Math.round(e/1024)," KB"):e<0x40000000?"".concat((e/1048576).toFixed(1)," MB"):"".concat((e/0x40000000).toFixed(1)," GB")}},8384:(e,t,n)=>{let o;n.d(t,{R:()=>s,b:()=>c});var r=n(4963);let a={remote:!1,editor:null,editors:[],apps:[],agents:[]};function c(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[t,n]=(0,r.useState)(a);return(0,r.useEffect)(()=>{if(!e)return;null!=o||(o=fetch("/api/open").then(e=>e.json()).catch(()=>a));let t=!0;return o.then(e=>{t&&n(e)}),()=>{t=!1}},[e]),t}let i={cursor:"cursor",code:"vscode",windsurf:"windsurf",zed:"zed"};function s(e,t,n,o){let r=i[null!=e?e:"code"];if(!r)return null;let a=encodeURI("".concat(t.replace(/\/$/,""),"/").concat(n)).replace(/#/g,"%23").replace(/\?/g,"%3F");return"".concat(r,"://file").concat(a.startsWith("/")?"":"/").concat(a,":").concat(o)}},9733:(e,t,n)=>{n.d(t,{B:()=>o});async function o(e,t,n,o){let r,a;try{r=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}catch(e){return{ok:!1,message:n}}try{a=await r.json()}catch(e){return{ok:!1,message:String(r.status)}}return r.ok&&(null==a?void 0:a.ok)?{ok:!0,data:a}:{ok:!1,message:(null==o?void 0:o(null!=a?a:{}))||(null==a?void 0:a.error)||String(r.status)}}}}]);
|