velloo 0.7.0 → 0.9.0
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/BUN-LICENSE.md +4 -3
- package/README.md +8 -1
- package/THIRD-PARTY-NOTICES.md +3 -3
- package/canvas/assets/index-CkVteRZ9.css +2 -0
- package/canvas/assets/index-DFOlwAKW.js +31 -0
- package/canvas/assets/lucide-all-CezGNjGW.js +1 -0
- package/canvas/index.html +2 -2
- package/{chunk-qrnkrkkt.js → chunk-00n2d68z.js} +1 -1
- package/{chunk-mdgwdqnq.js → chunk-02gpgqj4.js} +8 -8
- package/{chunk-qp3wahg4.js → chunk-0ztxyzac.js} +1 -1
- package/{chunk-4y2xy1kf.js → chunk-2x5rw009.js} +3 -3
- package/{chunk-abr2hgay.js → chunk-3f2p94wa.js} +1 -1
- package/{chunk-srp5gyr1.js → chunk-3jqbybmp.js} +1 -1
- package/{chunk-0vaff40g.js → chunk-5tatkt2j.js} +1 -1
- package/{chunk-asfgvzse.js → chunk-640swnrm.js} +1 -1
- package/{chunk-bms1sg4c.js → chunk-6600wkmq.js} +1 -1
- package/{chunk-7gyzh0vq.js → chunk-6adv9eke.js} +1 -1
- package/{chunk-fvezyap4.js → chunk-6wfvb07c.js} +1 -1
- package/chunk-8a2agf28.js +22 -0
- package/{chunk-82x2jkfq.js → chunk-8kn6tp4b.js} +2 -2
- package/{chunk-fmcm06xb.js → chunk-9b4akcfp.js} +1 -1
- package/{chunk-0pxm5v0b.js → chunk-9kvbe53e.js} +3 -3
- package/{chunk-gfppsgvv.js → chunk-a5mxgvcz.js} +1 -1
- package/{chunk-g7d065ek.js → chunk-as4rn21e.js} +1 -1
- package/{chunk-xg71h7nb.js → chunk-avewjans.js} +4 -4
- package/chunk-bpb97rsk.js +17 -0
- package/{chunk-j306gr0c.js → chunk-bsn761jv.js} +1 -1
- package/{chunk-kkvf0xk2.js → chunk-c11n1tve.js} +2 -2
- package/{chunk-sme6hv6f.js → chunk-cfksd3zh.js} +1 -1
- package/{chunk-zv17t1n7.js → chunk-ck3bg8rf.js} +1 -1
- package/{chunk-d93kpv7s.js → chunk-cy1nmr0f.js} +1 -1
- package/{chunk-qqrac4va.js → chunk-dqy6a75x.js} +1 -1
- package/{chunk-xzf52wvn.js → chunk-f8jchnwe.js} +1 -1
- package/{chunk-s84vxcdv.js → chunk-fejhav0p.js} +1 -1
- package/{chunk-ykpctq15.js → chunk-fzqt4rsz.js} +1 -1
- package/{chunk-3m28pvzr.js → chunk-g7pbfad5.js} +1 -1
- package/{chunk-b8vcbbrg.js → chunk-gv209d5j.js} +1 -1
- package/chunk-j4rt31qb.js +2 -0
- package/{chunk-d0j8dg1e.js → chunk-kmsbcb3q.js} +1 -1
- package/{chunk-5s1wjhtj.js → chunk-ktps9v0k.js} +1 -1
- package/{chunk-667ag8ts.js → chunk-ktsdzzgx.js} +1 -1
- package/{chunk-0e5j6nqs.js → chunk-kvxn1cyx.js} +1 -1
- package/{chunk-ex36z3b3.js → chunk-n70zfv0m.js} +906 -906
- package/{chunk-rqd4swxx.js → chunk-n8pr0kc8.js} +1 -1
- package/{chunk-eh2xp4v6.js → chunk-pasvz8xw.js} +1 -1
- package/{chunk-j4fn2a2b.js → chunk-qewarcqf.js} +1 -1
- package/{chunk-dvh0b2r4.js → chunk-qf1c6jxh.js} +1 -1
- package/chunk-qn05hn7a.js +5 -0
- package/{chunk-gcce587w.js → chunk-qvdvxqs0.js} +1 -1
- package/{chunk-pjkkp7xa.js → chunk-r014f76h.js} +1 -1
- package/{chunk-acsv6m3n.js → chunk-seaar5na.js} +1 -1
- package/{chunk-84n18xgx.js → chunk-tax7fxav.js} +2 -2
- package/{chunk-gbq5wv7x.js → chunk-tmjs6xas.js} +1 -1
- package/{chunk-vs8j3x6t.js → chunk-v6w8akph.js} +1 -1
- package/{chunk-5x4nw0zz.js → chunk-w40pqmyz.js} +4 -4
- package/{chunk-vdbr81a3.js → chunk-x05grjd9.js} +1 -1
- package/{chunk-md4mpvqc.js → chunk-x61f42fj.js} +2 -2
- package/{chunk-531xzfq5.js → chunk-xc6mats8.js} +1 -1
- package/chunk-yp39f93e.js +815 -0
- package/{chunk-5yhnnhkd.js → chunk-ysf9388d.js} +1 -1
- package/{chunk-64pex3mw.js → chunk-z3r8px3d.js} +1 -1
- package/{chunk-ejppcfa5.js → chunk-z9kcdgj8.js} +1 -1
- package/chunk-zexzy6zv.js +2 -0
- package/chunk-zjbbd87h.js +2 -0
- package/cli.js +1 -1
- package/package.json +9 -9
- package/pkgs/provider-antd/src/index.ts +1 -0
- package/pkgs/provider-html/src/index.ts +1 -0
- package/pkgs/provider-mui/src/index.ts +10 -0
- package/pkgs/provider-none/src/index.ts +1 -0
- package/pkgs/schema/src/board.ts +13 -1
- package/pkgs/schema/src/config.ts +34 -0
- package/pkgs/schema/src/flow.ts +230 -0
- package/pkgs/schema/src/frame.ts +7 -0
- package/pkgs/schema/src/index.ts +22 -0
- package/pkgs/schema/src/node-identity.ts +48 -0
- package/pkgs/schema/src/node.ts +80 -9
- package/pkgs/schema/src/snippet-resolve.ts +43 -0
- package/pkgs/schema/src/theme.ts +56 -0
- package/plugins/claude/velloo/agents/velloo-designer.md +7 -4
- package/plugins/claude/velloo/commands/setup.md +13 -0
- package/plugins/gemini/GEMINI.md +9 -5
- package/plugins/gemini/commands/velloo/setup.toml +11 -0
- package/skills/velloo-design/SKILL.md +11 -6
- package/skills/velloo-setup/SKILL.md +179 -36
- package/canvas/assets/index-BQ5710lu.js +0 -29
- package/canvas/assets/index-GNLd0pCG.css +0 -2
- package/canvas/assets/lucide-all-DIRZdJPK.js +0 -1
- package/chunk-brnkprt5.js +0 -723
- package/chunk-bys7pqdb.js +0 -2
- package/chunk-g8xrwjvq.js +0 -22
- package/chunk-jbgde2v9.js +0 -2
- package/chunk-rxkvjyst.js +0 -18
- package/chunk-sjjnm4a1.js +0 -2
- package/chunk-snak5zpr.js +0 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"./chunk-80fjfyha.js";import{string,number,boolean,unknown,array,object}from"./chunk-
|
|
2
|
+
import"./chunk-80fjfyha.js";import{string,number,boolean,unknown,array,object}from"./chunk-w40pqmyz.js";import"./chunk-yp39f93e.js";import"./chunk-n70zfv0m.js";import"./chunk-zexzy6zv.js";import{fail}from"./chunk-s23gtejf.js";import{openUrl}from"./chunk-hggap8fq.js";import{DESIGN_ARG_DESCRIPTION,resolveDesign}from"./chunk-z3r8px3d.js";import{defineCommand}from"./chunk-2smsg2ct.js";import{writeFileSync}from"fs";import{basename,join as join3,resolve as resolve2}from"path";import{readFileSync}from"fs";import{join,resolve,sep}from"path";var AssetRefSchema=object({file:string(),mimeType:string(),bytes:number()}),TapeRecordSchema=object({seq:number().optional(),ts:string().optional(),tool:string().optional(),durationMs:number().optional(),ok:boolean().optional(),params:unknown().optional(),text:string().optional(),images:array(AssetRefSchema).optional(),isError:boolean().optional(),error:object({name:string().optional(),message:string().optional(),stack:string().optional()}).optional(),sessionId:string().optional()}),TapeMetaSchema=object({tapeId:string().optional(),startedAt:string().optional(),folder:string().optional(),pid:number().optional()}),PendingCallSchema=object({seq:number().optional(),ts:string().optional(),tool:string().optional(),params:unknown().optional(),sessionId:string().optional()});function loadTape(dir){let meta={};try{let parsed=TapeMetaSchema.safeParse(JSON.parse(readFileSync(join(dir,"meta.json"),"utf8")));if(parsed.success)meta=parsed.data}catch{}let records=[],raw="";try{raw=readFileSync(join(dir,"tape.jsonl"),"utf8")}catch{}for(let line of raw.split(`
|
|
3
3
|
`)){let t=line.trim();if(!t)continue;try{let parsed=TapeRecordSchema.safeParse(JSON.parse(t));if(parsed.success)records.push(parsed.data)}catch{}}let pending=[];try{let raw=JSON.parse(readFileSync(join(dir,"pending.json"),"utf8"));if(Array.isArray(raw))pending=raw.flatMap((entry)=>{let parsed=PendingCallSchema.safeParse(entry);return parsed.success?[parsed.data]:[]})}catch{}let done=new Set(records.map((r)=>r.seq));return pending=pending.filter((p)=>!done.has(p.seq)),{dir,meta,records,pending}}var ESC={"&":"&","<":"<",">":">",'"':""","'":"'"};function esc(s){return s.replace(/[&<>"']/g,(c)=>ESC[c]??c)}function isBad(r){return r.ok===!1||r.isError===!0||Boolean(r.error)}function prettyJsonText(text){try{return JSON.stringify(JSON.parse(text),null,2)}catch{return text}}function fmtDuration(ms){if(ms===void 0)return"";return ms>=1000?`${(ms/1000).toFixed(2)}s`:`${ms}ms`}function fmtBytes(n){if(n>=1048576)return`${(n/1048576).toFixed(1)}MB`;if(n>=1024)return`${(n/1024).toFixed(0)}KB`;return`${n}B`}function timeOnly(iso){if(!iso)return"";let m=/T(\d{2}:\d{2}:\d{2})/.exec(iso);return m?m[1]:iso}function tapeStats(tape){let totalMs=tape.records.reduce((s,r)=>s+(r.durationMs??0),0);return{calls:tape.records.length,errors:tape.records.filter(isBad).length,totalLabel:fmtDuration(totalMs)}}function safeMimeType(mime){return/^[a-z0-9.+-]+\/[a-z0-9.+-]+$/i.test(mime)?mime:"application/octet-stream"}function inlineImage(dir,asset){let dataUri="";try{let abs=resolve(dir,asset.file);if(abs!==resolve(dir)&&!abs.startsWith(resolve(dir)+sep))return`<div class="missing">out-of-tree asset: ${esc(asset.file)}</div>`;let buf=readFileSync(abs);dataUri=`data:${safeMimeType(asset.mimeType)};base64,${buf.toString("base64")}`}catch{return`<div class="missing">missing asset: ${esc(asset.file)}</div>`}return`<img class="shot" loading="lazy" src="${dataUri}" alt="${esc(asset.file)}"/>`}function renderResult(dir,rec){if(rec.error){let head=esc([rec.error.name,rec.error.message].filter(Boolean).join(": ")||"error"),stack=rec.error.stack?`<pre class="stack">${esc(rec.error.stack)}</pre>`:"";return`<div class="err-box"><div class="err-head">${head}</div>${stack}</div>`}let parts=[];if(rec.text)parts.push(`<pre class="json">${esc(prettyJsonText(rec.text))}</pre>`);if(rec.images?.length){let imgs=rec.images.map((a)=>`<figure>${inlineImage(dir,a)}<figcaption>${esc(a.file.replace(/^assets\//,""))} \xB7 ${fmtBytes(a.bytes)}</figcaption></figure>`).join("");parts.push(`<div class="shots">${imgs}</div>`)}if(rec.isError)parts.unshift('<div class="flag">isError: true</div>');return parts.join("")||'<div class="muted">no output</div>'}function renderRow(dir,rec){let bad=isBad(rec),tool=esc(rec.tool??"?"),seq=rec.seq??"",params=esc(JSON.stringify(rec.params??null,null,2)),search=esc(`${rec.tool??""} ${rec.text??""} ${JSON.stringify(rec.params??"")}`.toLowerCase().slice(0,4000)),nShots=rec.images?.length?` \xB7 ${rec.images.length}\uD83D\uDCF7`:"";return`<details class="call${bad?" bad":""}" data-seq="${rec.seq??""}" data-error="${bad?1:0}" data-search="${search}">
|
|
4
4
|
<summary>
|
|
5
5
|
<span class="dot"></span>
|