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.
Files changed (95) hide show
  1. package/BUN-LICENSE.md +4 -3
  2. package/README.md +8 -1
  3. package/THIRD-PARTY-NOTICES.md +3 -3
  4. package/canvas/assets/index-CkVteRZ9.css +2 -0
  5. package/canvas/assets/index-DFOlwAKW.js +31 -0
  6. package/canvas/assets/lucide-all-CezGNjGW.js +1 -0
  7. package/canvas/index.html +2 -2
  8. package/{chunk-qrnkrkkt.js → chunk-00n2d68z.js} +1 -1
  9. package/{chunk-mdgwdqnq.js → chunk-02gpgqj4.js} +8 -8
  10. package/{chunk-qp3wahg4.js → chunk-0ztxyzac.js} +1 -1
  11. package/{chunk-4y2xy1kf.js → chunk-2x5rw009.js} +3 -3
  12. package/{chunk-abr2hgay.js → chunk-3f2p94wa.js} +1 -1
  13. package/{chunk-srp5gyr1.js → chunk-3jqbybmp.js} +1 -1
  14. package/{chunk-0vaff40g.js → chunk-5tatkt2j.js} +1 -1
  15. package/{chunk-asfgvzse.js → chunk-640swnrm.js} +1 -1
  16. package/{chunk-bms1sg4c.js → chunk-6600wkmq.js} +1 -1
  17. package/{chunk-7gyzh0vq.js → chunk-6adv9eke.js} +1 -1
  18. package/{chunk-fvezyap4.js → chunk-6wfvb07c.js} +1 -1
  19. package/chunk-8a2agf28.js +22 -0
  20. package/{chunk-82x2jkfq.js → chunk-8kn6tp4b.js} +2 -2
  21. package/{chunk-fmcm06xb.js → chunk-9b4akcfp.js} +1 -1
  22. package/{chunk-0pxm5v0b.js → chunk-9kvbe53e.js} +3 -3
  23. package/{chunk-gfppsgvv.js → chunk-a5mxgvcz.js} +1 -1
  24. package/{chunk-g7d065ek.js → chunk-as4rn21e.js} +1 -1
  25. package/{chunk-xg71h7nb.js → chunk-avewjans.js} +4 -4
  26. package/chunk-bpb97rsk.js +17 -0
  27. package/{chunk-j306gr0c.js → chunk-bsn761jv.js} +1 -1
  28. package/{chunk-kkvf0xk2.js → chunk-c11n1tve.js} +2 -2
  29. package/{chunk-sme6hv6f.js → chunk-cfksd3zh.js} +1 -1
  30. package/{chunk-zv17t1n7.js → chunk-ck3bg8rf.js} +1 -1
  31. package/{chunk-d93kpv7s.js → chunk-cy1nmr0f.js} +1 -1
  32. package/{chunk-qqrac4va.js → chunk-dqy6a75x.js} +1 -1
  33. package/{chunk-xzf52wvn.js → chunk-f8jchnwe.js} +1 -1
  34. package/{chunk-s84vxcdv.js → chunk-fejhav0p.js} +1 -1
  35. package/{chunk-ykpctq15.js → chunk-fzqt4rsz.js} +1 -1
  36. package/{chunk-3m28pvzr.js → chunk-g7pbfad5.js} +1 -1
  37. package/{chunk-b8vcbbrg.js → chunk-gv209d5j.js} +1 -1
  38. package/chunk-j4rt31qb.js +2 -0
  39. package/{chunk-d0j8dg1e.js → chunk-kmsbcb3q.js} +1 -1
  40. package/{chunk-5s1wjhtj.js → chunk-ktps9v0k.js} +1 -1
  41. package/{chunk-667ag8ts.js → chunk-ktsdzzgx.js} +1 -1
  42. package/{chunk-0e5j6nqs.js → chunk-kvxn1cyx.js} +1 -1
  43. package/{chunk-ex36z3b3.js → chunk-n70zfv0m.js} +906 -906
  44. package/{chunk-rqd4swxx.js → chunk-n8pr0kc8.js} +1 -1
  45. package/{chunk-eh2xp4v6.js → chunk-pasvz8xw.js} +1 -1
  46. package/{chunk-j4fn2a2b.js → chunk-qewarcqf.js} +1 -1
  47. package/{chunk-dvh0b2r4.js → chunk-qf1c6jxh.js} +1 -1
  48. package/chunk-qn05hn7a.js +5 -0
  49. package/{chunk-gcce587w.js → chunk-qvdvxqs0.js} +1 -1
  50. package/{chunk-pjkkp7xa.js → chunk-r014f76h.js} +1 -1
  51. package/{chunk-acsv6m3n.js → chunk-seaar5na.js} +1 -1
  52. package/{chunk-84n18xgx.js → chunk-tax7fxav.js} +2 -2
  53. package/{chunk-gbq5wv7x.js → chunk-tmjs6xas.js} +1 -1
  54. package/{chunk-vs8j3x6t.js → chunk-v6w8akph.js} +1 -1
  55. package/{chunk-5x4nw0zz.js → chunk-w40pqmyz.js} +4 -4
  56. package/{chunk-vdbr81a3.js → chunk-x05grjd9.js} +1 -1
  57. package/{chunk-md4mpvqc.js → chunk-x61f42fj.js} +2 -2
  58. package/{chunk-531xzfq5.js → chunk-xc6mats8.js} +1 -1
  59. package/chunk-yp39f93e.js +815 -0
  60. package/{chunk-5yhnnhkd.js → chunk-ysf9388d.js} +1 -1
  61. package/{chunk-64pex3mw.js → chunk-z3r8px3d.js} +1 -1
  62. package/{chunk-ejppcfa5.js → chunk-z9kcdgj8.js} +1 -1
  63. package/chunk-zexzy6zv.js +2 -0
  64. package/chunk-zjbbd87h.js +2 -0
  65. package/cli.js +1 -1
  66. package/package.json +9 -9
  67. package/pkgs/provider-antd/src/index.ts +1 -0
  68. package/pkgs/provider-html/src/index.ts +1 -0
  69. package/pkgs/provider-mui/src/index.ts +10 -0
  70. package/pkgs/provider-none/src/index.ts +1 -0
  71. package/pkgs/schema/src/board.ts +13 -1
  72. package/pkgs/schema/src/config.ts +34 -0
  73. package/pkgs/schema/src/flow.ts +230 -0
  74. package/pkgs/schema/src/frame.ts +7 -0
  75. package/pkgs/schema/src/index.ts +22 -0
  76. package/pkgs/schema/src/node-identity.ts +48 -0
  77. package/pkgs/schema/src/node.ts +80 -9
  78. package/pkgs/schema/src/snippet-resolve.ts +43 -0
  79. package/pkgs/schema/src/theme.ts +56 -0
  80. package/plugins/claude/velloo/agents/velloo-designer.md +7 -4
  81. package/plugins/claude/velloo/commands/setup.md +13 -0
  82. package/plugins/gemini/GEMINI.md +9 -5
  83. package/plugins/gemini/commands/velloo/setup.toml +11 -0
  84. package/skills/velloo-design/SKILL.md +11 -6
  85. package/skills/velloo-setup/SKILL.md +179 -36
  86. package/canvas/assets/index-BQ5710lu.js +0 -29
  87. package/canvas/assets/index-GNLd0pCG.css +0 -2
  88. package/canvas/assets/lucide-all-DIRZdJPK.js +0 -1
  89. package/chunk-brnkprt5.js +0 -723
  90. package/chunk-bys7pqdb.js +0 -2
  91. package/chunk-g8xrwjvq.js +0 -22
  92. package/chunk-jbgde2v9.js +0 -2
  93. package/chunk-rxkvjyst.js +0 -18
  94. package/chunk-sjjnm4a1.js +0 -2
  95. 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-5x4nw0zz.js";import"./chunk-brnkprt5.js";import"./chunk-ex36z3b3.js";import"./chunk-bys7pqdb.js";import{fail}from"./chunk-s23gtejf.js";import{openUrl}from"./chunk-hggap8fq.js";import{DESIGN_ARG_DESCRIPTION,resolveDesign}from"./chunk-64pex3mw.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(`
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={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};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>