trybeacon 0.1.61 → 0.1.63
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +22 -22
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/board-layout/route.js +1 -1
- package/.next/server/app/api/db/backfill-access/route.js +1 -1
- package/.next/server/app/api/db/backfill-access/route.js.nft.json +1 -1
- package/.next/server/app/api/draft/approve/route.js +1 -1
- package/.next/server/app/api/draft/approve/route.js.nft.json +1 -1
- package/.next/server/app/api/draft/route.js +1 -1
- package/.next/server/app/api/draft/route.js.nft.json +1 -1
- package/.next/server/app/api/draft/status/route.js +1 -1
- package/.next/server/app/api/draft/status/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/plan/annotations/route.js +1 -1
- package/.next/server/app/api/plan/annotations/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/approve/route.js +1 -1
- package/.next/server/app/api/plan/approve/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/markdown/route.js +1 -1
- package/.next/server/app/api/plan/markdown/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/route.js +1 -1
- package/.next/server/app/api/plan/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/verdict/route.js +1 -1
- package/.next/server/app/api/plan/verdict/route.js.nft.json +1 -1
- package/.next/server/app/api/reset/route.js +1 -1
- package/.next/server/app/api/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/share/create/route.js +1 -1
- package/.next/server/app/api/share/create/route.js.nft.json +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +2 -2
- package/.next/server/app/docs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
- package/.next/server/app/feedback.html +1 -1
- package/.next/server/app/feedback.rsc +2 -2
- package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
- package/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/server/app/help.html +1 -1
- package/.next/server/app/help.rsc +2 -2
- package/.next/server/app/help.segments/_full.segment.rsc +2 -2
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +2 -2
- package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/help.segments/help.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/map/page.js +1 -1
- package/.next/server/app/map/page.js.nft.json +1 -1
- package/.next/server/app/map/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/plan/page.js +2 -2
- package/.next/server/app/plan/page.js.nft.json +1 -1
- package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
- package/.next/server/app/s/[token]/page.js +1 -1
- package/.next/server/app/s/[token]/page.js.nft.json +1 -1
- package/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +22 -22
- package/.next/server/chunks/1130.js +1 -1
- package/.next/server/chunks/2179.js +1 -0
- package/.next/server/chunks/2343.js +1 -0
- package/.next/server/chunks/2994.js +2 -0
- package/.next/server/chunks/3098.js +1 -1
- package/.next/server/chunks/3221.js +5 -0
- package/.next/server/chunks/3284.js +154 -0
- package/.next/server/chunks/3622.js +1 -1
- package/.next/server/chunks/5719.js +1 -0
- package/.next/server/chunks/9734.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/5780-fd253c7329871c77.js +1 -0
- package/.next/static/chunks/{3021-ed52ee7b3f02e2cd.js → 5957-83f611fcd5a08b45.js} +1 -1
- package/.next/static/chunks/766-242213d211df0afd.js +1 -0
- package/.next/static/chunks/{5847-5ddb55da26c93a1e.js → 8915-fa61a860c63a7c85.js} +3 -3
- package/.next/static/chunks/app/map/{page-e6a0e8c5a0ce482d.js → page-af4a5a1f12413f4d.js} +1 -1
- package/.next/static/chunks/app/page-6f46e6682942af3a.js +1 -0
- package/.next/static/chunks/app/plan/page-6213cdfdbee97ad6.js +1 -0
- package/.next/static/chunks/app/s/[token]/{page-ee635988a6aff3fb.js → page-5c21314106b5ae91.js} +1 -1
- package/.next/static/chunks/app/settings/page-7e176d120b1effa9.js +1 -0
- package/.next/static/css/f86b3e50f4e93bc8.css +1 -0
- package/.next/trace +42 -42
- package/.next/trace-build +1 -1
- package/dist/bin/beacon.js +14 -13
- package/dist/bin/doctor.js +12 -4
- package/dist/bin/hook.js +12 -4
- package/dist/bin/mcp.js +26 -18
- package/dist/bin/plan.js +12 -4
- package/dist/bin/uninstall.js +12 -4
- package/dist/lib/assets.js +12 -4
- package/dist/lib/codex-install.js +12 -4
- package/dist/lib/global-install.js +12 -4
- package/package.json +1 -1
- package/.next/server/chunks/1988.js +0 -154
- package/.next/server/chunks/249.js +0 -1
- package/.next/server/chunks/2693.js +0 -5
- package/.next/server/chunks/519.js +0 -1
- package/.next/server/chunks/8035.js +0 -1
- package/.next/server/chunks/8846.js +0 -2
- package/.next/static/chunks/6638-4e53879181b1df75.js +0 -1
- package/.next/static/chunks/6961-d1f5351e5ff6c376.js +0 -1
- package/.next/static/chunks/app/page-a229992616b3a3de.js +0 -1
- package/.next/static/chunks/app/plan/page-51392fb2730c3058.js +0 -1
- package/.next/static/chunks/app/settings/page-323bfcf32d1e7fc8.js +0 -1
- package/.next/static/css/e9ed4ff9a583fd9c.css +0 -1
- /package/.next/static/{j_yDuyPEP2TT78o8NwY-x → kt65bLHd8wfwQxMb3ivew}/_buildManifest.js +0 -0
- /package/.next/static/{j_yDuyPEP2TT78o8NwY-x → kt65bLHd8wfwQxMb3ivew}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=249,exports.ids=[249],exports.modules={6324:(a,b,c)=>{c.d(b,{Jd:()=>i,SF:()=>h,Xg:()=>j,_A:()=>g});var d=c(44046),e=c(86548);let f=d.vk(a=>{if("string"==typeof a){let[b,...c]=a.trim().split(/\s+/);return{name:b,type:c.join(" ")||"text"}}return a},d.Ik({name:d.Yj().trim().min(1),type:d.Yj().trim().min(1),isPk:d.zM().optional(),isFk:d.zM().optional(),nullable:d.zM().optional(),note:d.Yj().nullish()})),g=d.Ik({name:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),columns:d.YO(f).default([])}),h=d.Ik({fromTable:d.Yj(),fromColumn:d.Yj(),toTable:d.Yj(),toColumn:d.Yj(),label:d.Yj().nullish()}),i=d.Ik({method:d.Yj().trim().min(1),path:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),uses:d.YO(d.Ik({table:d.Yj().trim().min(1),access:d.Yj().optional()})).default([])}).transform(a=>({...a,uses:a.uses.map(b=>({...b,access:b.access??(0,e.P)(a.method)}))})),j=d.Ik({tables:d.YO(g).default([]),relations:d.YO(h).default([]),endpoints:d.YO(i).default([])})},24433:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{J:()=>i});var e=c(6324),f=c(50101),g=a([f]);f=(g.then?(await g)():g)[0];let j=/^[ \t]*```beacon[ \t]*\r?\n([\s\S]*?)\r?\n[ \t]*```[ \t]*$/im;function h(a,b){if(!Array.isArray(a))return[];let c=[];for(let d of a){let a=b.safeParse(d);a.success&&c.push(a.data)}return c}function i(a){let b,c=a.match(j);if(!c)return{prose:a};try{b=JSON.parse(c[1])}catch{return{prose:a}}let d=b&&"object"==typeof b?b:{},g=h(d.tables,e._A),i=h(d.relations,e.SF),k=h(d.endpoints,e.Jd),l=h(d.features,f.te),m=Array.isArray(d.contract)?d.contract.filter(a=>"string"==typeof a&&!!a.trim()).map(a=>a.trim()):void 0,n=g.length||k.length||i.length?{tables:g,relations:i,endpoints:k}:void 0,o=l.length?l:void 0,p=m?.length?m:void 0;return n||o||p?{prose:a.replace(j,"").replace(/\n{3,}/g,"\n\n").trim(),draft:n,features:o,contract:p}:{prose:a}}d()}catch(a){d(a)}})},50101:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C5:()=>n,KR:()=>m,Qy:()=>p,t7:()=>l,te:()=>o});var e=c(44046),f=c(34216),g=c(56727),h=c(30046),i=c(32753),j=c(90497),k=a([g]);g=(k.then?(await k)():k)[0];let o=e.Ik({title:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),cluster:e.Yj().nullish(),category:e.Yj().nullish(),domain:e.Yj().nullish(),priority:e.ai().nullish(),kind:e.Yj().nullish(),layer:e.Yj().nullish(),dependsOn:e.YO(e.Yj()).nullish()}).transform(({category:a,domain:b,priority:c,kind:d,layer:e,...f})=>({...f,cluster:f.cluster??a??b??null,priority:null==c?null:Math.max(0,Math.min(3,Math.round(c))),kind:d?.trim().toUpperCase()==="BUG"?"BUG":"FEATURE",layer:(0,i.jR)(e)})),p=e.Ik({features:e.YO(o).default([])});async function l(a=g.db){await a.delete(h.node).where((0,f.Uo)((0,f.eq)(h.node.source,"DRAFT"),(0,f.eq)(h.node.view,"ROADMAP")))}async function m(a,b=g.db){let c=p.parse(a);await l(b);let d=await b.query.node.findFirst({where:(a,{eq:b})=>b(a.view,"ROADMAP"),orderBy:(a,{desc:b})=>b(a.y)}),e=(d?.y??0)+200,f=new Set(c.features.map(a=>a.title.trim())),i=c.features.map(a=>({id:a.title.trim()})),k=c.features.flatMap(a=>(a.dependsOn??[]).map(a=>a.trim()).filter(b=>f.has(b)&&b!==a.title.trim()).map(b=>({fromId:a.title.trim(),toId:b}))),n=(0,j.u)(i,k),o=new Map;for(let a of c.features){let c=n.get(a.title.trim())??{x:0,y:0},[d]=await b.insert(h.node).values({view:"ROADMAP",source:"DRAFT",status:"PENDING",kind:a.kind,title:a.title,role:a.role??null,plain:a.plain??null,cluster:a.cluster??null,layer:a.layer??null,priority:a.priority??2,x:c.x,y:c.y+e}).returning();o.set(a.title.trim(),d.id)}for(let a of c.features){let c=o.get(a.title.trim());if(c&&a.dependsOn)for(let d of a.dependsOn){let a=o.get(d.trim());a&&a!==c&&(await b.query.edge.findFirst({where:(b,{and:d,eq:e})=>d(e(b.fromId,c),e(b.toId,a),e(b.kind,"DEPENDS"))})||await b.insert(h.edge).values({fromId:c,toId:a,kind:"DEPENDS"}))}}}async function n(a=g.db){let b=await a.query.node.findMany({where:(a,{and:b,eq:c})=>b(c(a.source,"DRAFT"),c(a.view,"ROADMAP")),orderBy:(a,{asc:b})=>b(a.createdAt)}),c=b.map(a=>a.id),d=c.length?await a.query.edge.findMany({where:(a,{and:b,eq:d})=>b(d(a.kind,"DEPENDS"),(0,f.RV)(a.fromId,c),(0,f.RV)(a.toId,c))}):[],e=new Map(b.map(a=>[a.id,a.title])),h=new Map;for(let a of d){let b=e.get(a.toId);if(!b)continue;let c=h.get(a.fromId)??[];c.push(b),h.set(a.fromId,c)}return{features:b.map(a=>({title:a.title,role:a.role,plain:a.plain,cluster:a.cluster,priority:a.priority,kind:"BUG"===a.kind?"BUG":"FEATURE",layer:(0,i.jR)(a.layer),dependsOn:h.get(a.id)}))}}d()}catch(a){d(a)}})},72179:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BK:()=>B,CW:()=>D,Gf:()=>u,NK:()=>y,Vs:()=>v,XF:()=>C,iL:()=>t,mk:()=>A,rw:()=>w,zO:()=>x});var e=c(77598),f=c(73024),g=c(76760),h=c(44046),i=c(34216),j=c(56727),k=c(30046),l=c(45301),m=c(32213),n=c(19734),o=c(86548),p=c(96976),q=a([j,n]);function r(){return(0,g.join)((0,l.KS)(),"draft.json")}function s(){return(0,g.join)((0,l.KS)(),"draft-verdict.json")}function t(){try{return JSON.parse((0,f.readFileSync)(r(),"utf8"))}catch{return null}}function u(a,b=0,c=Date.now()){let d=function(a,b,c=0){let d=new Map;for(let b of a.tables)d.set(b.name,(0,e.randomUUID)());let f=a.endpoints.map(()=>(0,e.randomUUID)()),g=(0,p.kq)(a.tables.map(a=>({id:d.get(a.name),name:a.name,domain:a.domain??null,columnCount:a.columns.length})),a.endpoints.map((a,b)=>({id:f[b],method:a.method,path:a.path,uses:a.uses.flatMap(a=>{let b=d.get(a.table);return b?[{tableId:b}]:[]})}))),h=a.tables.map(a=>{let b=d.get(a.name),e=g.tables.get(b)??{x:0,y:0};return{id:b,name:a.name,domain:a.domain??null,description:a.description??null,x:e.x,y:c+e.y,columns:a.columns.map(a=>({name:a.name,type:a.type,isPk:a.isPk??!1,isFk:a.isFk??!1,nullable:a.nullable??!0,note:a.note??null}))}}),i=a.relations.flatMap(a=>{let b=d.get(a.fromTable),c=d.get(a.toTable);return b&&c?[{id:(0,e.randomUUID)(),fromTableId:b,toTableId:c,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label??`${a.fromColumn} → ${a.toTable}.${a.toColumn}`}]:[]}),j=a.endpoints.map((a,b)=>{let e=f[b],h=g.endpoints.get(e)??{x:0,y:0};return{id:e,method:a.method,path:a.path,domain:a.domain??null,description:a.description??null,x:h.x,y:c+h.y,links:a.uses.flatMap(a=>{let b=d.get(a.table);return b?[{tableId:b,access:a.access}]:[]})}});return{proposedAt:b,status:"pending",tables:h,relations:i,endpoints:j}}(a,c,b);return(0,m.q)(r(),d),(0,f.rmSync)(s(),{force:!0}),d}function v(){(0,f.rmSync)(r(),{force:!0})}function w(){(0,f.rmSync)(r(),{force:!0}),(0,f.rmSync)(s(),{force:!0})}function x(a){let b=new Map(a.tables.map(a=>[a.id,a.name])),c=["## Approved schema","","### Tables"];for(let b of a.tables)for(let a of(c.push(`- **${b.name}**${b.domain?` (${b.domain})`:""}`),b.columns)){let b=[a.isPk&&"PK",a.isFk&&"FK",a.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");c.push(` - ${a.name} ${a.type}${b?` ${b}`:""}${a.note?` — ${a.note}`:""}`)}if(a.relations.length)for(let d of(c.push("","### Relations (FKs)"),a.relations)){let a=b.get(d.fromTableId)??d.fromTableId,e=b.get(d.toTableId)??d.toTableId;c.push(`- ${a}.${d.fromColumn} → ${e}.${d.toColumn}`)}if(a.endpoints.length)for(let d of(c.push("","### Endpoints"),a.endpoints)){let a=d.links.map(a=>`${b.get(a.tableId)??a.tableId} (${a.access})`).join(", ");c.push(`- ${d.method} ${d.path}${a?` — ${a}`:""}`)}return c.join("\n")}function y(a,b){let c=[],d=new Map(a.tables.map(a=>[a.name,a])),e=new Map(b.tables.map(a=>[a.name,a]));for(let a of b.tables)d.has(a.name)||c.push(`added table **${a.name}**`);for(let b of a.tables)e.has(b.name)||c.push(`removed table **${b.name}**`);for(let a of b.tables){let b=d.get(a.name);if(!b)continue;let e=new Map(b.columns.map(a=>[a.name,a])),f=new Map(a.columns.map(a=>[a.name,a]));for(let b of a.columns){let d=e.get(b.name);if(!d){c.push(`added column **${a.name}.${b.name}** (${b.type})`);continue}let f=[];d.type!==b.type&&f.push(`type ${d.type} → ${b.type}`),d.isPk!==b.isPk&&f.push(b.isPk?"now PK":"no longer PK"),d.isFk!==b.isFk&&f.push(b.isFk?"now FK":"no longer FK"),d.nullable!==b.nullable&&f.push(b.nullable?"now accepts NULL":"now NOT NULL"),(d.note??"")!==(b.note??"")&&f.push(`note: "${b.note??""}"`),f.length&&c.push(`changed **${a.name}.${b.name}** — ${f.join("; ")}`)}for(let d of b.columns)f.has(d.name)||c.push(`removed column **${a.name}.${d.name}** (was ${d.type})`)}let f=(a,b)=>`${b.get(a.fromTableId)??a.fromTableId}.${a.fromColumn}→${b.get(a.toTableId)??a.toTableId}.${a.toColumn}`,g=new Map(a.tables.map(a=>[a.id,a.name])),h=new Map(b.tables.map(a=>[a.id,a.name])),i=new Set(a.relations.map(a=>f(a,g))),j=new Set(b.relations.map(a=>f(a,h)));for(let a of j)i.has(a)||c.push(`added relation ${a}`);for(let a of i)j.has(a)||c.push(`removed relation ${a}`);let k=a=>`${a.method} ${a.path}`,l=new Map(a.endpoints.map(a=>[k(a),a])),m=new Map(b.endpoints.map(a=>[k(a),a]));for(let[a,b]of m)if(!l.has(a)){let d=b.links.map(a=>`${h.get(a.tableId)??a.tableId} (${a.access})`).join(", ");c.push(`added endpoint **${a}**${d?` — ${d}`:""}`)}for(let[a]of l)m.has(a)||c.push(`removed endpoint **${a}**`);return c}function z(a){(0,m.q)(s(),a)}function A(){let a=t();a&&z({proposedAt:a.proposedAt,status:"discarded",summary:"The user discarded the draft."}),v()}function B(){let a=t();if(a)return{state:"pending",proposedAt:a.proposedAt};let b=function(){try{return JSON.parse((0,f.readFileSync)(s(),"utf8"))}catch{return null}}();return b?{state:b.status,proposedAt:b.proposedAt,summary:b.summary,detail:b.detail}:{state:"none"}}[j,n]=q.then?(await q)():q;let E=h.Ik({proposedAt:h.ai(),status:h.Yj(),tables:h.YO(h.Ik({id:h.Yj(),name:h.Yj().trim().min(1),domain:h.Yj().nullable(),description:h.Yj().nullable(),x:h.ai(),y:h.ai(),columns:h.YO(h.Ik({name:h.Yj().trim().min(1),type:h.Yj(),isPk:h.zM(),isFk:h.zM(),nullable:h.zM(),note:h.Yj().nullable()}))})),relations:h.YO(h.Ik({id:h.Yj(),fromTableId:h.Yj(),toTableId:h.Yj(),fromColumn:h.Yj(),toColumn:h.Yj(),label:h.Yj().nullable()})),endpoints:h.YO(h.Ik({id:h.Yj(),method:h.Yj().trim().min(1),path:h.Yj().trim().min(1),domain:h.Yj().nullable(),description:h.Yj().nullable(),x:h.ai(),y:h.ai(),links:h.YO(h.Ik({tableId:h.Yj(),access:h.Yj()}))}))});async function C(a,b=j.db,c={}){let d=E.parse(a),e=new Map(d.tables.map(a=>[a.id,a.name])),f=new Map,g=c.planId??null;for(let a of d.tables){let[c]=await b.insert(k.dbTable).values({name:a.name,domain:a.domain,description:a.description,source:"MANUAL",planId:g,x:a.x,y:a.y}).onConflictDoUpdate({target:k.dbTable.name,set:{domain:a.domain,description:a.description,planId:g}}).returning();f.set(a.name,c.id),await b.delete(k.dbColumn).where((0,i.eq)(k.dbColumn.tableId,c.id)),a.columns.length&&await b.insert(k.dbColumn).values(a.columns.map((a,b)=>({tableId:c.id,name:a.name,type:a.type,isPk:a.isPk,isFk:a.isFk,nullable:a.nullable,note:a.note,ord:b})))}let h=async a=>{let c=e.get(a);if(c)return f.get(c)??null;let d=await b.query.dbTable.findFirst({where:(b,{eq:c})=>c(b.id,a)}).catch(()=>null);return d?d.id:null};for(let a of d.relations){let c=await h(a.fromTableId),d=await h(a.toTableId);c&&d&&(await b.query.dbRelation.findFirst({where:(b,{and:e,eq:f})=>e(f(b.fromTableId,c),f(b.toTableId,d),f(b.fromColumn,a.fromColumn),f(b.toColumn,a.toColumn))})||await b.insert(k.dbRelation).values({fromTableId:c,toTableId:d,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label}))}for(let a of d.endpoints){let[c]=await b.insert(k.endpoint).values({method:a.method,path:a.path,domain:a.domain,description:a.description,source:"MANUAL",planId:g,x:a.x,y:a.y}).onConflictDoUpdate({target:[k.endpoint.method,k.endpoint.path],set:{domain:a.domain,description:a.description,planId:g}}).returning();for(let d of(await b.delete(k.endpointTable).where((0,i.eq)(k.endpointTable.endpointId,c.id)),a.links)){let a=await h(d.tableId);a&&await b.insert(k.endpointTable).values({endpointId:c.id,tableId:a,access:d.access}).catch(()=>{})}}let l=`${d.tables.length} table(s), ${d.relations.length} relation(s) and ${d.endpoints.length} endpoint(s) approved and persisted to the schema.`;return z({proposedAt:d.proposedAt,status:"approved",summary:l,detail:x(d)}),v(),await (0,n.Bx)(b),{tables:d.tables.length,relations:d.relations.length,endpoints:d.endpoints.length}}async function D(a=j.db){let b=await a.query.endpoint.findMany({with:{tables:!0}}),c=0;for(let d of b)if("write"===(0,o.P)(d.method))for(let b of d.tables)"read"===b.access&&(await a.update(k.endpointTable).set({access:"write"}).where((0,i.eq)(k.endpointTable.id,b.id)),c++);return c}d()}catch(a){d(a)}})},79935:(a,b,c)=>{c.d(b,{j:()=>d});function d(a,b,c){let d=[`# Plan: ${a}`,""],e=c?.features??[];if(e.length)for(let a of(d.push("## Features",""),e))d.push(`### ${a.title}`),a.cluster&&d.push(`*Domain:* \`${a.cluster}\``),a.role&&d.push(`*Role:* ${a.role}`),a.plain&&d.push("",a.plain),d.push("");let f=b?.tables??[];if(f.length)for(let a of(d.push("## Database — Tables",""),f)){for(let b of(d.push(`### Table \`${a.name}\``),a.domain&&d.push(`*Domain:* \`${a.domain}\``),a.description&&d.push("",a.description,""),a.columns)){let a=[b.isPk&&"PK",b.isFk&&"FK",b.nullable?"NULL":"NOT NULL"].filter(Boolean).join(" ");d.push(`- \`${b.name}\` ${b.type}${a?` *${a}*`:""}${b.note?` — ${b.note}`:""}`)}d.push("")}let g=b?.relations??[];if(g.length){let a=new Map(f.map(a=>[a.id,a.name]));for(let b of(d.push("## Database — Relations (FKs)",""),g)){let c=a.get(b.fromTableId)??b.fromTableId,e=a.get(b.toTableId)??b.toTableId;d.push(`- \`${c}.${b.fromColumn}\` → \`${e}.${b.toColumn}\``)}d.push("")}let h=b?.endpoints??[];if(h.length){let a=new Map(f.map(a=>[a.id,a.name]));for(let b of(d.push("## Endpoints",""),h)){if(d.push(`### ${b.method} ${b.path}`),b.domain&&d.push(`*Domain:* \`${b.domain}\``),b.description&&d.push("",b.description),b.links.length){let c=b.links.map(b=>`\`${a.get(b.tableId)??b.tableId}\` (${b.access})`).join(", ");d.push("",`Touches: ${c}`)}d.push("")}}return d.join("\n")}},86548:(a,b,c)=>{c.d(b,{P:()=>e});let d=new Set(["GET","HEAD","OPTIONS"]);function e(a){return d.has(a.trim().toUpperCase())?"read":"write"}},90497:(a,b,c)=>{c.d(b,{u:()=>i});var d=c(61661),e=c(52648),f=c(61639),g=c(62088),h=c(19125);function i(a,b,c={}){let j,k=c.linkDistance??210,l=c.charge??-450,m=c.collideRadius??132,n=c.ticks??500,o=[...a].sort((a,b)=>a.id<b.id?-1:+(a.id>b.id)),p=new Set(o.map(a=>a.id)),q=o.map(a=>({id:a.id})),r=[];for(let a of b)a.fromId!==a.toId&&p.has(a.fromId)&&p.has(a.toId)&&r.push({source:a.fromId,target:a.toId});for(let a of o)a.parentId&&p.has(a.parentId)&&r.push({source:a.id,target:a.parentId});let s=(0,d.A)(q).randomSource((j=0x9e3779b9,()=>{let a=j=j+0x6d2b79f5>>>0;return a=Math.imul(a^a>>>15,1|a),(((a^=a+Math.imul(a^a>>>7,61|a))^a>>>14)>>>0)/0x100000000})).force("link",(0,e.A)(r).id(a=>a.id).distance(k).strength(.6)).force("charge",(0,f.A)().strength(l).distanceMax(1200)).force("collide",(0,g.A)().radius(m).strength(1)).force("center",(0,h.A)(0,0).strength(.08)).stop();for(let a=0;a<n;a++)s.tick();let t=new Map;for(let a of q)t.set(a.id,{x:Math.round(a.x??0),y:Math.round(a.y??0)});return t}}};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2693,exports.ids=[2693],exports.modules={18072:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bk:()=>z,Ph:()=>x,Ze:()=>A,sS:()=>y});var e=c(77598),f=c(34216),g=c(56727),h=c(30046),i=c(72179),j=c(50101),k=c(61024),l=c(71584),m=c(79935),n=c(24433),o=c(54655),p=c(89049),q=c(70809),r=c(19734),s=c(76124),t=c(51695),u=a([g,i,j,n,r,s,t]);async function v(){let a=(0,o.Fn)(),b=(0,i.iL)(),c=await (0,j.C5)(),d=(0,q.YV)(),e=a?.description??"(no description)",f=a?.markdown?(0,n.J)(a.markdown).prose:(0,m.j)(e,b,c);return{description:e,markdown:f,draftDoc:b,featureGraph:c,annotations:d.annotations,globalComment:d.globalComment}}async function w(){await (0,j.t7)(),(0,i.Vs)(),(0,o.E9)(),(0,q.nb)()}async function x(a){let b=(0,o.Fn)(),c=await v(),d=a?.doc??c.draftDoc,j=(0,e.randomUUID)().slice(0,8);(await (0,s.j)("scope-guard")).enabled&&await (0,t.Ek)({planId:j,declaredFiles:b?.contractFiles??[]});let m=d?await (0,i.XF)(d,g.db,{planId:j}):null,n=await g.db.update(h.node).set({source:"MANUAL",planId:j}).where((0,f.Uo)((0,f.eq)(h.node.source,"DRAFT"),(0,f.eq)(h.node.view,"ROADMAP"))).returning({id:h.node.id,title:h.node.title,cluster:h.node.cluster}),q={count:n.length};if(n.length){let a=await g.db.query.node.findMany({where:(a,{eq:b})=>b(a.view,"ROADMAP"),columns:{id:!0,parentId:!0,cluster:!0,x:!0,y:!0}}),b=new Set(n.map(a=>a.id)),c=a=>(a??"").trim()||"—",d=a.filter(a=>!b.has(a.id)).map(a=>({x:a.x,y:a.y,group:c(a.cluster),top:!a.parentId}));for(let a of n){let b=c(a.cluster),e=(0,l.E)(d.filter(a=>a.top&&a.group===b),d);await g.db.update(h.node).set({x:e.x,y:e.y}).where((0,f.eq)(h.node.id,a.id)),d.push({x:e.x,y:e.y,group:b,top:!0})}}(0,k.WH)({id:j,description:c.description,markdown:c.markdown,verdict:"approved",annotations:c.annotations,globalComment:c.globalComment,draftDoc:c.draftDoc,featureGraph:c.featureGraph});let u=[];m&&u.push(`${m.tables} table(s), ${m.relations} relation(s) and ${m.endpoints} endpoint(s)`),q.count&&u.push(`${q.count} feature(s)`);let x=u.length?`${u.join(" and ")} approved and persisted.`:"Plan approved.";return(0,p.Af)({proposedAt:b?.proposedAt??0,status:"approved",summary:x,detail:d?(0,i.zO)(d):void 0,features:n.map(a=>({title:a.title,id:a.id})),decidedAt:Date.now()}),await w(),await (0,r.Bx)(),{db:m,features:q.count}}async function y(){let a=(0,o.Fn)(),b=await v();(b.draftDoc&&(b.draftDoc.tables.length||b.draftDoc.endpoints.length)||b.featureGraph.features.length>0||a?.markdown)&&(0,k.WH)({description:b.description,markdown:b.markdown,verdict:"discarded",annotations:b.annotations,globalComment:b.globalComment,draftDoc:b.draftDoc,featureGraph:b.featureGraph}),(0,p.Af)({proposedAt:a?.proposedAt??0,status:"discarded",summary:"The user discarded the plan.",decidedAt:Date.now()}),(0,i.mk)(),await w(),await (0,r.Bx)()}async function z(){let a=(0,q.Z3)();if(a.submitted&&a.feedback)return{kind:"feedback",feedback:a.feedback};let b=(0,p.zC)();if(b)return"approved"===b.status?{kind:"approved",summary:b.summary,detail:b.detail,features:function(a){if(a?.length)return a.map(a=>"string"==typeof a?{title:a,id:""}:{title:a.title,id:a.id})}(b.features)}:{kind:"discarded",summary:b.summary};let c=(0,o.Fn)(),d=(0,i.iL)(),e=await (0,j.C5)();return(d?.tables.length??0)+(d?.endpoints.length??0)+e.features.length>0||c?.markdown?{kind:"pending"}:{kind:"discarded",summary:"The user discarded the plan."}}function A(){(0,q.nb)(),(0,p.mh)()}[g,i,j,n,r,s,t]=u.then?(await u)():u,d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},32753:(a,b,c)=>{c.d(b,{EC:()=>h,jR:()=>f});let d=["frontend","backend","fullstack"],e={fe:"frontend",front:"frontend",be:"backend",back:"backend",fs:"fullstack","full-stack":"fullstack","full stack":"fullstack"};function f(a){let b=(a??"").trim().toLowerCase();return b?d.includes(b)?b:e[b]??null:null}let g=/\.(tsx|jsx|vue|svelte)$/i;function h(a){return a.some(a=>g.test(a))}},51695:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EM:()=>l,Ek:()=>k,Zt:()=>j,jX:()=>n,m3:()=>m});var e=c(34216),f=c(56727),g=c(30046),h=a([f]);function i(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}async function j(a=f.db){let b=await a.query.planContract.findFirst({where:(a,{eq:b})=>b(a.active,!0)});return b?{planId:b.planId,declaredFiles:i(b.declaredFiles),authorizedExtras:i(b.authorizedExtras)}:null}async function k(a,b=f.db){await b.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0));let c=JSON.stringify(a.declaredFiles);await b.insert(g.planContract).values({planId:a.planId,declaredFiles:c,authorizedExtras:"[]",active:!0}).onConflictDoUpdate({target:g.planContract.planId,set:{declaredFiles:c,authorizedExtras:"[]",active:!0}})}async function l(a,b,c=f.db){let d=await c.query.planContract.findFirst({where:(b,{eq:c})=>c(b.planId,a)});if(!d)return;let h=i(d.authorizedExtras);h.includes(b)||(h.push(b),await c.update(g.planContract).set({authorizedExtras:JSON.stringify(h)}).where((0,e.eq)(g.planContract.planId,a)))}async function m(a=f.db){await a.update(g.planContract).set({active:!1}).where((0,e.eq)(g.planContract.active,!0))}function n(a){let{filePath:b,enabled:c,contract:d,extraAllowed:e=[]}=a;if(!c||!d)return{decision:"allow"};let f=new Set([...d.declaredFiles,...d.authorizedExtras,...e]);return 0===f.size||f.has(b)?{decision:"allow"}:{decision:"ask",reason:`⚠️ This edit touches \`${b}\`, which is outside this plan's declared scope. Authorize this divergence? (The contract is human-owned — only your approval can widen it.)`}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},54655:(a,b,c)=>{c.d(b,{E9:()=>k,Fn:()=>i,UC:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-meta.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},61024:(a,b,c)=>{c.d(b,{Pq:()=>k,WH:()=>j,ao:()=>l});var d=c(73024),e=c(76760),f=c(77598),g=c(45301),h=c(32213);function i(){let a=(0,e.join)((0,g.KS)(),"plans","history");return(0,d.mkdirSync)(a,{recursive:!0}),a}function j(a){let b={...a,id:a.id??(0,f.randomUUID)().slice(0,8),archivedAt:Date.now()};return(0,h.q)((0,e.join)(i(),`${b.id}.json`),b,!0),b}function k(){let a;try{a=(0,d.readdirSync)(i())}catch{return[]}let b=[];for(let c of a)if(c.endsWith(".json"))try{let a=(0,e.join)(i(),c),f=(0,d.readFileSync)(a,"utf8"),g=JSON.parse(f);b.push(g)}catch{}return b.sort((a,b)=>b.archivedAt-a.archivedAt)}function l(a){try{let b=(0,d.readFileSync)((0,e.join)(i(),`${a}.json`),"utf8");return JSON.parse(b)}catch{return null}}},70809:(a,b,c)=>{c.d(b,{nb:()=>k,Z3:()=>m,YV:()=>i,Tm:()=>l,D_:()=>j});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-annotations-current.json")}function i(){try{let a=JSON.parse((0,d.readFileSync)(h(),"utf8"));return{annotations:a.annotations??[],globalComment:a.globalComment??"",submitted:!!a.submitted,submittedAt:a.submittedAt,boardEdits:a.boardEdits??"",questions:a.questions??[]}}catch{return{annotations:[],globalComment:"",submitted:!1,questions:[]}}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}function l(a){let b;return[function(a,b=""){let c=a.filter(a=>(a.kind??"comment")==="comment"&&a.comment.trim()),d=a.filter(a=>"deletion"===a.kind),e=b.trim();if(!c.length&&!d.length&&!e)return"";let f=[];if(e&&f.push(`## Overall feedback
|
|
2
|
-
|
|
3
|
-
${e}`),c.length){let a=["## Inline comments",""];for(let b of c){let c=b.excerpt.split("\n").map(a=>`> ${a}`).join("\n");a.push(`${c}
|
|
4
|
-
|
|
5
|
-
${b.comment.trim()}`)}f.push(a.join("\n"))}if(d.length){let a=["## Marked for deletion","","The user marked these passages for removal — drop them from the next plan:",""];for(let b of d){let c=b.excerpt.split("\n").map(a=>`> ${a}`).join("\n");a.push(c),a.push("")}f.push(a.join("\n").trim())}return f.join("\n\n").trim()}(a.annotations,a.globalComment),a.boardEdits??"",!(b=(a.questions??[]).filter(a=>a.question.trim())).length?"":["## Questions to answer before approving",...b.map(a=>`- **${a.target}** — ${a.question.trim()}`)].join("\n")].filter(Boolean).join("\n\n")}function m(){let a=i();return{submitted:a.submitted,feedback:a.submitted?l(a):""}}},71584:(a,b,c)=>{function d(a,b){let c={x:b.x,y:b.y};for(let b=0;b<100&&a.some(a=>200>Math.abs(c.x-a.x)&&150>Math.abs(c.y-a.y));b++)c.y+=150;return c}function e(a,b,c={}){let f=c.colW??320,g=c.rowH??150,h=c.maxCols??4,i=c.bandGap??90;if(0===a.length){if(0===b.length)return{x:0,y:0};let a=Math.max(...b.map(a=>a.y));return d(b,{x:0,y:a+g+i})}let j=Math.min(...a.map(a=>a.x)),k=Math.min(...a.map(a=>a.y)),l=a.map(a=>Math.max(0,Math.round((a.x-j)/f))),m=Math.min(h,Math.max(Math.max(...l)+1,Math.ceil(Math.sqrt(a.length+1)))),n=Array(m).fill(k-g);a.forEach((a,b)=>{let c=Math.min(l[b],m-1);n[c]=Math.max(n[c],a.y)});let o=0;for(let a=1;a<m;a++)n[a]<n[o]&&(o=a);return d(b,{x:j+o*f,y:n[o]+g})}c.d(b,{B:()=>d,E:()=>e})},76124:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>h,l:()=>i});var e=c(56727),f=c(30046),g=a([e]);async function h(a,b=e.db){let c=await b.query.workspaceFlag.findFirst({where:(b,{eq:c})=>c(b.key,a)});return c?{enabled:c.enabled,config:function(a){if(!a)return{};try{let b=JSON.parse(a);return b&&"object"==typeof b&&!Array.isArray(b)?b:{}}catch{return{}}}(c.config)}:{enabled:!1,config:{}}}async function i(a,b,c=e.db){let d={};return void 0!==b.enabled&&(d.enabled=b.enabled),void 0!==b.config&&(d.config=JSON.stringify(b.config)),0===Object.keys(d).length&&(d.key=a),await c.insert(f.workspaceFlag).values({key:a,enabled:b.enabled??!1,config:void 0!==b.config?JSON.stringify(b.config):null}).onConflictDoUpdate({target:f.workspaceFlag.key,set:d}),h(a,c)}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},89049:(a,b,c)=>{c.d(b,{Af:()=>j,mh:()=>k,zC:()=>i});var d=c(73024),e=c(76760),f=c(45301),g=c(32213);function h(){return(0,e.join)((0,f.KS)(),"plan-verdict.json")}function i(){try{return JSON.parse((0,d.readFileSync)(h(),"utf8"))}catch{return null}}function j(a){(0,g.q)(h(),a)}function k(){(0,d.rmSync)(h(),{force:!0})}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);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()}}}};
|