@vm0/cli 9.174.3 → 9.175.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/zero.js CHANGED
@@ -145,7 +145,7 @@ import {
145
145
  withErrorHandler,
146
146
  zeroAgentCustomSkillNameSchema,
147
147
  zeroTokenAllowsFeatureSwitch
148
- } from "./chunk-HS5QLAW2.js";
148
+ } from "./chunk-JUT7ZEYX.js";
149
149
  import {
150
150
  __toESM,
151
151
  init_esm_shims
@@ -7519,770 +7519,896 @@ var RESOURCE_REGISTRY = [
7519
7519
  kind: "template",
7520
7520
  name: "Dashboard",
7521
7521
  description: "Admin or analytics dashboard in a single HTML file with fixed sidebar, top bar, KPI cards, and one or two charts.",
7522
- source: { path: "design-templates/dashboard" }
7522
+ source: { path: "design-templates/dashboard" },
7523
+ targets: ["dashboard-design"]
7523
7524
  },
7524
7525
  {
7525
7526
  id: "template:finance-report",
7526
7527
  kind: "template",
7527
7528
  name: "Finance Report",
7528
7529
  description: "Quarterly or monthly financial report with masthead KPIs, revenue and burn charts, P&L summary, highlights, and outlook.",
7529
- source: { path: "design-templates/finance-report" }
7530
+ source: { path: "design-templates/finance-report" },
7531
+ targets: ["report"]
7530
7532
  },
7531
7533
  {
7532
7534
  id: "template:docs-page",
7533
7535
  kind: "template",
7534
7536
  name: "Docs Page",
7535
7537
  description: "Documentation page with inline-start navigation, scrollable article body, and inline-end table of contents.",
7536
- source: { path: "design-templates/docs-page" }
7538
+ source: { path: "design-templates/docs-page" },
7539
+ targets: ["docs-design"]
7537
7540
  },
7538
7541
  {
7539
7542
  id: "template:mobile-app",
7540
7543
  kind: "template",
7541
7544
  name: "Mobile App Design",
7542
7545
  description: "Mobile app screen rendered inside a pixel-accurate iPhone 15 Pro frame using reusable screen archetypes.",
7543
- source: { path: "design-templates/mobile-app" }
7546
+ source: { path: "design-templates/mobile-app" },
7547
+ targets: ["mobile-app-design"]
7544
7548
  },
7545
7549
  {
7546
7550
  id: "template:html-ppt-graphify-dark-graph",
7547
7551
  kind: "template",
7548
7552
  name: "Graphify Dark Graph",
7549
7553
  description: "Dark knowledge-graph deck with midnight gradients, force-graph cover visuals, command-line highlights, and glass-morphism cards.",
7550
- source: { path: "design-templates/html-ppt-graphify-dark-graph" }
7554
+ source: { path: "design-templates/html-ppt-graphify-dark-graph" },
7555
+ targets: ["presentation"]
7551
7556
  },
7552
7557
  {
7553
7558
  id: "template:html-ppt-zhangzara-retro-zine",
7554
7559
  kind: "template",
7555
7560
  name: "Zhangzara Retro Zine",
7556
7561
  description: "Retro editorial zine presentation template with expressive composition, tactile paper energy, and bold magazine-like rhythm.",
7557
- source: { path: "design-templates/html-ppt-zhangzara-retro-zine" }
7562
+ source: { path: "design-templates/html-ppt-zhangzara-retro-zine" },
7563
+ targets: ["presentation", "poster"]
7558
7564
  },
7559
7565
  {
7560
7566
  id: "template:weekly-update",
7561
7567
  kind: "template",
7562
7568
  name: "Weekly Update",
7563
7569
  description: "Single-file horizontal-swipe weekly team update deck for shipped work, in-flight work, blockers, metrics, and asks.",
7564
- source: { path: "design-templates/weekly-update" }
7570
+ source: { path: "design-templates/weekly-update" },
7571
+ targets: ["report", "presentation"]
7565
7572
  },
7566
7573
  {
7567
7574
  id: "template:web-prototype-taste-editorial",
7568
7575
  kind: "template",
7569
7576
  name: "Taste Editorial Web Prototype",
7570
7577
  description: "Editorial-minimalist web prototype with warm monochrome canvas, serif display type, hairline borders, pastel chips, and ambient micro-motion.",
7571
- source: { path: "design-templates/web-prototype-taste-editorial" }
7578
+ source: { path: "design-templates/web-prototype-taste-editorial" },
7579
+ targets: ["website"]
7572
7580
  },
7573
7581
  {
7574
7582
  id: "template:audio-jingle",
7575
7583
  kind: "template",
7576
7584
  name: "Audio Jingle",
7577
7585
  description: "Audio generation skill \u2014 jingles, beds, voiceover, and sound effects. Routes music requests to Suno V5 / Udio / Lyria, speech to MiniMax TTS / FishAudio / ElevenLabs V3, and SFX to ElevenLabs SFX or AudioCraft. Output is one MP3/WAV file\u2026",
7578
- source: { path: "design-templates/audio-jingle" }
7586
+ source: { path: "design-templates/audio-jingle" },
7587
+ targets: ["intro-video"]
7579
7588
  },
7580
7589
  {
7581
7590
  id: "template:blog-post",
7582
7591
  kind: "template",
7583
7592
  name: "Blog Post",
7584
7593
  description: "A long-form article / blog post \u2014 masthead, hero image placeholder, article body with figures and pull quotes, author byline, related posts.",
7585
- source: { path: "design-templates/blog-post" }
7594
+ source: { path: "design-templates/blog-post" },
7595
+ targets: ["website"]
7586
7596
  },
7587
7597
  {
7588
7598
  id: "template:clinical-case-report",
7589
7599
  kind: "template",
7590
7600
  name: "Clinical Case Report",
7591
7601
  description: "Structured medical case presentation for clinical rounds, conferences, and documentation. Generates SOAP-format or narrative case reports with physiologically accurate vitals, labs, and evidence-based plans.",
7592
- source: { path: "design-templates/clinical-case-report" }
7602
+ source: { path: "design-templates/clinical-case-report" },
7603
+ targets: ["report"]
7593
7604
  },
7594
7605
  {
7595
7606
  id: "template:critique",
7596
7607
  kind: "template",
7597
7608
  name: "Critique",
7598
7609
  description: "Run a 5-dimension expert design review on any HTML artifact in the project \u2014 Philosophy / Visual hierarchy / Detail / Functionality / Innovation, each scored 0\u201310. Outputs a single self-contained HTML report with a radar chart, evidence\u2026",
7599
- source: { path: "design-templates/critique" }
7610
+ source: { path: "design-templates/critique" },
7611
+ targets: [
7612
+ "website",
7613
+ "dashboard-design",
7614
+ "presentation",
7615
+ "report",
7616
+ "docs-design",
7617
+ "poster",
7618
+ "mobile-app-design"
7619
+ ]
7600
7620
  },
7601
7621
  {
7602
7622
  id: "template:dating-web",
7603
7623
  kind: "template",
7604
7624
  name: "Dating Web",
7605
7625
  description: "A consumer-feeling dating / matchmaking dashboard \u2014 left rail navigation, ticker bar of community signals, headline KPIs, a 30-day mutual-matches bar chart, and a match-rate trend block. Editorial typography, restrained accent.",
7606
- source: { path: "design-templates/dating-web" }
7626
+ source: { path: "design-templates/dating-web" },
7627
+ targets: ["website"]
7607
7628
  },
7608
7629
  {
7609
7630
  id: "template:dcf-valuation",
7610
7631
  kind: "template",
7611
7632
  name: "Dcf Valuation",
7612
7633
  description: "Discounted cash flow valuation and intrinsic value analysis for public companies.",
7613
- source: { path: "design-templates/dcf-valuation" }
7634
+ source: { path: "design-templates/dcf-valuation" },
7635
+ targets: ["report"]
7614
7636
  },
7615
7637
  {
7616
7638
  id: "template:digital-eguide",
7617
7639
  kind: "template",
7618
7640
  name: "Digital Eguide",
7619
7641
  description: `A two-spread digital e-guide preview \u2014 page 1 is a cover (display title, author, "What's inside" stats, table of contents teaser); page 2 is a spread (lesson body with pull-quote and a step list). Lifestyle / creator brand tone.`,
7620
- source: { path: "design-templates/digital-eguide" }
7642
+ source: { path: "design-templates/digital-eguide" },
7643
+ targets: ["website", "docs-design"]
7621
7644
  },
7622
7645
  {
7623
7646
  id: "template:email-marketing",
7624
7647
  kind: "template",
7625
7648
  name: "Email Marketing",
7626
7649
  description: "A brand product-launch email \u2014 masthead with wordmark, hero image block, headline lockup with skewed-italic accent, body copy, primary CTA, and a specifications grid. Pure HTML email layout (centered single column, table fallback).",
7627
- source: { path: "design-templates/email-marketing" }
7650
+ source: { path: "design-templates/email-marketing" },
7651
+ targets: ["website"]
7628
7652
  },
7629
7653
  {
7630
7654
  id: "template:eng-runbook",
7631
7655
  kind: "template",
7632
7656
  name: "Eng Runbook",
7633
7657
  description: "An engineering runbook \u2014 service overview, alerts table, dashboards links, common procedures with copy-pasteable commands, on-call rotation, and an incident-response checklist.",
7634
- source: { path: "design-templates/eng-runbook" }
7658
+ source: { path: "design-templates/eng-runbook" },
7659
+ targets: ["docs-design"]
7635
7660
  },
7636
7661
  {
7637
7662
  id: "template:flowai-live-dashboard-template",
7638
7663
  kind: "template",
7639
7664
  name: "Flowai Live Dashboard Template",
7640
7665
  description: "FlowAI team-management dashboard \u2014 three tabs (Members, Details, Activity Log), KPI row, role chart, presence sparklines, contributor panel, light/dark, CSV export, single HTML.",
7641
- source: { path: "design-templates/flowai-live-dashboard-template" }
7666
+ source: { path: "design-templates/flowai-live-dashboard-template" },
7667
+ targets: ["dashboard-design"]
7642
7668
  },
7643
7669
  {
7644
7670
  id: "template:gamified-app",
7645
7671
  kind: "template",
7646
7672
  name: "Gamified App",
7647
7673
  description: "A multi-frame gamified mobile-app prototype \u2014 three phone frames on a dark showcase stage. Frame 1: cover / poster, Frame 2: today's quests with XP ribbons and a level bar, Frame 3: quest detail. Vivid quest tiles, level ribbon, bottom t\u2026",
7648
- source: { path: "design-templates/gamified-app" }
7674
+ source: { path: "design-templates/gamified-app" },
7675
+ targets: ["website", "mobile-app-design"]
7649
7676
  },
7650
7677
  {
7651
7678
  id: "template:github-dashboard",
7652
7679
  kind: "template",
7653
7680
  name: "Github Dashboard",
7654
7681
  description: "GitHub repository analytics dashboard \u2014 stars, forks, contributors, issues, pull requests, recent activity, and top contributors.",
7655
- source: { path: "design-templates/github-dashboard" }
7682
+ source: { path: "design-templates/github-dashboard" },
7683
+ targets: ["dashboard-design"]
7656
7684
  },
7657
7685
  {
7658
7686
  id: "template:guizang-ppt",
7659
7687
  kind: "template",
7660
7688
  name: "Guizang PPT",
7661
7689
  description: "\u7535\u5B50\u6742\u5FD7 \xD7 \u7535\u5B50\u58A8\u6C34\u98CE\u683C\u7684\u6A2A\u5411\u7FFB\u9875\u7F51\u9875 PPT \u2014 WebGL \u6D41\u4F53\u80CC\u666F\u3001\u886C\u7EBF\u6807\u9898\u3001\u7AE0\u8282\u5E55\u5C01\u3001\u6570\u636E\u5927\u5B57\u62A5\u3001\u56FE\u7247\u7F51\u683C\u3002\u9002\u5408\u5206\u4EAB / \u6F14\u8BB2 / \u53D1\u5E03\u4F1A / \u6742\u5FD7\u98CE PPT\u3002",
7662
- source: { path: "design-templates/guizang-ppt" }
7690
+ source: { path: "design-templates/guizang-ppt" },
7691
+ targets: ["presentation"]
7663
7692
  },
7664
7693
  {
7665
7694
  id: "template:hr-onboarding",
7666
7695
  kind: "template",
7667
7696
  name: "Hr Onboarding",
7668
7697
  description: `A new-hire onboarding plan as a single page \u2014 first week schedule, buddy + manager intro, learning track, equipment checklist, and "you're set when\u2026" outcomes.`,
7669
- source: { path: "design-templates/hr-onboarding" }
7698
+ source: { path: "design-templates/hr-onboarding" },
7699
+ targets: ["docs-design"]
7670
7700
  },
7671
7701
  {
7672
7702
  id: "template:html-ppt",
7673
7703
  kind: "template",
7674
7704
  name: "HTML PPT",
7675
7705
  description: "HTML PPT Studio \u2014 static HTML presentations driven by templates. Many styles, layouts, animations, and keyboard navigation for talks, pitches, reports, and \u5C0F\u7EA2\u4E66\u56FE\u6587.",
7676
- source: { path: "design-templates/html-ppt" }
7706
+ source: { path: "design-templates/html-ppt" },
7707
+ targets: ["presentation"]
7677
7708
  },
7678
7709
  {
7679
7710
  id: "template:html-ppt-course-module",
7680
7711
  kind: "template",
7681
7712
  name: "HTML PPT Course Module",
7682
7713
  description: "Online-course / workshop module deck \u2014 warm paper background + Playfair serif, persistent left sidebar of learning objectives, MCQ self-check page. Use for teaching modules, training materials, workshop slides.",
7683
- source: { path: "design-templates/html-ppt-course-module" }
7714
+ source: { path: "design-templates/html-ppt-course-module" },
7715
+ targets: ["presentation"]
7684
7716
  },
7685
7717
  {
7686
7718
  id: "template:html-ppt-dir-key-nav-minimal",
7687
7719
  kind: "template",
7688
7720
  name: "HTML PPT Dir Key Nav Minimal",
7689
7721
  description: "\u6781\u7B80\u65B9\u5411\u952E keynote \u2014 \u6BCF\u9875\u72EC\u7ACB\u5355\u8272\u80CC\u666F\u3001160px display \u6807\u9898\u30014px accent \u7EBF\u3001\u7BAD\u5934 \u2192 \u524D\u7F00 Mono \u5217\u8868\u3001\u2190 \u2192 kbd \u63D0\u793A\u3002\u9002\u5408 keynote\u3001launch\u3001\u516C\u5F00\u6F14\u8BB2\u3002",
7690
- source: { path: "design-templates/html-ppt-dir-key-nav-minimal" }
7722
+ source: { path: "design-templates/html-ppt-dir-key-nav-minimal" },
7723
+ targets: ["presentation"]
7691
7724
  },
7692
7725
  {
7693
7726
  id: "template:html-ppt-hermes-cyber-terminal",
7694
7727
  kind: "template",
7695
7728
  name: "HTML PPT Hermes Cyber Terminal",
7696
7729
  description: "\u6697\u7EC8\u7AEF honest-review deck \u2014 \u9ED1\u5E95 + \u8D5B\u535A\u7F51\u683C + CRT \u6697\u89D2 + \u626B\u63CF\u7EBF\u3001`$ prompt` \u547D\u4EE4\u884C\u6807\u9898\u3001\u8584\u8377\u7EFF\u5927\u5B57\u3001JetBrains Mono\u3001stroke-only \u67F1\u72B6\u56FE\u3002\u9002\u5408 CLI/agent/dev tool \u6D4B\u8BC4\u3002",
7697
- source: { path: "design-templates/html-ppt-hermes-cyber-terminal" }
7730
+ source: { path: "design-templates/html-ppt-hermes-cyber-terminal" },
7731
+ targets: ["presentation"]
7698
7732
  },
7699
7733
  {
7700
7734
  id: "template:html-ppt-knowledge-arch-blueprint",
7701
7735
  kind: "template",
7702
7736
  name: "HTML PPT Knowledge Arch Blueprint",
7703
7737
  description: "\u5976\u6CB9\u84DD\u56FE\u67B6\u6784 deck \u2014 \u5976\u6CB9\u7EB8\u5E95\u8272 + \u5355\u4E00\u9508\u7EA2\u9AD8\u4EAE\u300148px \u84DD\u56FE\u7F51\u683C\u30012px \u9ED1\u8FB9\u786C\u5361\u7247\u3001pipeline \u6B65\u9AA4\u76D2\u3001\u53F3\u4FA7 insight callout\u3001Playfair \u886C\u7EBF\u5927\u5B57\u3002\u96F6\u6E10\u53D8\u96F6\u8F6F\u9634\u5F71\u3002",
7704
- source: { path: "design-templates/html-ppt-knowledge-arch-blueprint" }
7738
+ source: { path: "design-templates/html-ppt-knowledge-arch-blueprint" },
7739
+ targets: ["presentation"]
7705
7740
  },
7706
7741
  {
7707
7742
  id: "template:html-ppt-obsidian-claude-gradient",
7708
7743
  kind: "template",
7709
7744
  name: "HTML PPT Obsidian Claude Gradient",
7710
7745
  description: "GitHub \u6697\u7D2B\u6E10\u53D8 deck \u2014 GitHub-dark + \u7D2B\u84DD radial \u73AF\u5883\u5149 + 60px \u7F51\u683C\u3001\u7D2B\u8272 pill \u6807\u7B7E\u3001\u4E09\u8272\u6E10\u53D8\u6807\u9898\u3001GitHub \u98CE\u4EE3\u7801 palette\u3002\u9002\u5408\u5F00\u53D1\u8005\u5DE5\u4F5C\u6D41 / MCP / Agent \u6559\u7A0B\u3002",
7711
- source: { path: "design-templates/html-ppt-obsidian-claude-gradient" }
7746
+ source: { path: "design-templates/html-ppt-obsidian-claude-gradient" },
7747
+ targets: ["presentation"]
7712
7748
  },
7713
7749
  {
7714
7750
  id: "template:html-ppt-pitch-deck",
7715
7751
  kind: "template",
7716
7752
  name: "HTML PPT Pitch Deck",
7717
7753
  description: "Investor-ready 10-slide HTML pitch deck \u2014 white + blue\u2192purple gradient hero, big numbers, traction bar chart, $4.5M-style ask page.",
7718
- source: { path: "design-templates/html-ppt-pitch-deck" }
7754
+ source: { path: "design-templates/html-ppt-pitch-deck" },
7755
+ targets: ["presentation"]
7719
7756
  },
7720
7757
  {
7721
7758
  id: "template:html-ppt-presenter-mode-reveal",
7722
7759
  kind: "template",
7723
7760
  name: "HTML PPT Presenter Mode Reveal",
7724
7761
  description: "\u6F14\u8BB2\u8005\u6A21\u5F0F deck \u2014 tokyo-night \u9ED8\u8BA4\u4E3B\u9898\uFF0C5 \u5957\u4E3B\u9898 T \u952E\u5207\u6362\uFF0C\u6BCF\u9875\u5E26 150-300 \u5B57\u9010\u5B57\u7A3F\u793A\u4F8B\uFF0C\u6309 S \u6253\u5F00 CURRENT/NEXT/SCRIPT/TIMER \u56DB\u5F20\u78C1\u5438\u5361\u7247\u3002\u9002\u5408\u63D0\u8BCD\u5668\u573A\u666F\u3002",
7725
- source: { path: "design-templates/html-ppt-presenter-mode-reveal" }
7762
+ source: { path: "design-templates/html-ppt-presenter-mode-reveal" },
7763
+ targets: ["presentation"]
7726
7764
  },
7727
7765
  {
7728
7766
  id: "template:html-ppt-product-launch",
7729
7767
  kind: "template",
7730
7768
  name: "HTML PPT Product Launch",
7731
7769
  description: "Launch keynote deck \u2014 dark hero + light content, warm orange\u2192peach accent, feature cards, pricing tiers, CTA.",
7732
- source: { path: "design-templates/html-ppt-product-launch" }
7770
+ source: { path: "design-templates/html-ppt-product-launch" },
7771
+ targets: ["presentation"]
7733
7772
  },
7734
7773
  {
7735
7774
  id: "template:html-ppt-taste-brutalist",
7736
7775
  kind: "template",
7737
7776
  name: "HTML PPT Taste Brutalist",
7738
7777
  description: "16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill `brutal\u2026",
7739
- source: { path: "design-templates/html-ppt-taste-brutalist" }
7778
+ source: { path: "design-templates/html-ppt-taste-brutalist" },
7779
+ targets: ["presentation"]
7740
7780
  },
7741
7781
  {
7742
7782
  id: "template:html-ppt-taste-editorial",
7743
7783
  kind: "template",
7744
7784
  name: "HTML PPT Taste Editorial",
7745
7785
  description: "16:9 HTML deck in editorial-minimalist taste. Warm cream slides, serif display + grotesque body, hairline rules, monospace meta, generous macro-whitespace, one accent. Distilled from Leonxlnx/taste-skill `minimalist-skill`.",
7746
- source: { path: "design-templates/html-ppt-taste-editorial" }
7786
+ source: { path: "design-templates/html-ppt-taste-editorial" },
7787
+ targets: ["presentation"]
7747
7788
  },
7748
7789
  {
7749
7790
  id: "template:html-ppt-tech-sharing",
7750
7791
  kind: "template",
7751
7792
  name: "HTML PPT Tech Sharing",
7752
7793
  description: "Conference / internal tech-talk deck \u2014 GitHub-dark, JetBrains Mono, terminal code blocks, agenda + Q&A pages. Use for engineering presentations, internal sharing sessions, conference talks, and code-heavy walkthroughs.",
7753
- source: { path: "design-templates/html-ppt-tech-sharing" }
7794
+ source: { path: "design-templates/html-ppt-tech-sharing" },
7795
+ targets: ["presentation"]
7754
7796
  },
7755
7797
  {
7756
7798
  id: "template:html-ppt-testing-safety-alert",
7757
7799
  kind: "template",
7758
7800
  name: "HTML PPT Testing Safety Alert",
7759
7801
  description: "\u7EA2\u7425\u73C0\u8B66\u793A deck \u2014 \u9876/\u5E95 45\xB0 \u7EA2\u9ED1 hazard \u6761\u7EB9\u3001\u7EA2\u8272\u5426\u5B9A\u6807\u9898\u3001L1/L2/L3 \u4E09\u6863\u5361\u7247\u3001policy-yaml \u4EE3\u7801\u5757\u3001\u7EA2\u7EFF checklist\u3001\u4E8B\u6545\u5806\u53E0\u67F1\u72B6\u56FE\u3002\u9002\u5408\u5B89\u5168 / \u98CE\u9669 / \u590D\u76D8 / \u7EA2\u961F\u3002",
7760
- source: { path: "design-templates/html-ppt-testing-safety-alert" }
7802
+ source: { path: "design-templates/html-ppt-testing-safety-alert" },
7803
+ targets: ["presentation"]
7761
7804
  },
7762
7805
  {
7763
7806
  id: "template:html-ppt-weekly-report",
7764
7807
  kind: "template",
7765
7808
  name: "HTML PPT Weekly Report",
7766
7809
  description: "Team weekly / status-update deck \u2014 corporate clarity, 8-cell KPI grid, shipped list, 8-week bar chart, next-week table. Use for \u5468\u62A5, business reviews, team status updates, and exec dashboards.",
7767
- source: { path: "design-templates/html-ppt-weekly-report" }
7810
+ source: { path: "design-templates/html-ppt-weekly-report" },
7811
+ targets: ["presentation", "report"]
7768
7812
  },
7769
7813
  {
7770
7814
  id: "template:html-ppt-xhs-pastel-card",
7771
7815
  kind: "template",
7772
7816
  name: "HTML PPT Xhs Pastel Card",
7773
7817
  description: "\u67D4\u548C\u9A6C\u5361\u9F99\u6162\u751F\u6D3B deck \u2014 \u5976\u6CB9\u5E95 + \u67D4\u5149 blob\u3001Playfair \u659C\u4F53 + sans \u6B63\u6587\u300128px \u5706\u89D2\u9A6C\u5361\u9F99\u5361\u7247\u3001SVG donut \u56FE\u3001chip+page \u9876\u680F\u3002\u9002\u5408\u751F\u6D3B\u65B9\u5F0F / \u4E2A\u4EBA\u6210\u957F / \u6162\u751F\u6D3B\u5185\u5BB9\u3002",
7774
- source: { path: "design-templates/html-ppt-xhs-pastel-card" }
7818
+ source: { path: "design-templates/html-ppt-xhs-pastel-card" },
7819
+ targets: ["presentation", "poster"]
7775
7820
  },
7776
7821
  {
7777
7822
  id: "template:html-ppt-xhs-post",
7778
7823
  kind: "template",
7779
7824
  name: "HTML PPT Xhs Post",
7780
7825
  description: "\u5C0F\u7EA2\u4E66 / Instagram \u98CE 9 \u9875 3:4 \u7AD6\u7248\u56FE\u6587\uFF08810\xD71080\uFF09\u2014 \u6696\u8272 pastel\u3001\u865A\u7EBF sticker \u5361\u7247\u3001\u5E95\u90E8\u9875\u7801\u70B9\u70B9\u3002",
7781
- source: { path: "design-templates/html-ppt-xhs-post" }
7826
+ source: { path: "design-templates/html-ppt-xhs-post" },
7827
+ targets: ["presentation", "poster"]
7782
7828
  },
7783
7829
  {
7784
7830
  id: "template:html-ppt-xhs-white-editorial",
7785
7831
  kind: "template",
7786
7832
  name: "HTML PPT Xhs White Editorial",
7787
7833
  description: "\u767D\u5E95\u6742\u5FD7\u98CE deck \u2014 \u7EAF\u767D + \u9876\u90E8 10 \u8272\u5F69\u8679 bar\u300180-110px display \u6807\u9898\u3001\u7D2B\u2192\u84DD\u2192\u7EFF\u2192\u6A59\u2192\u7C89\u6E10\u53D8\u6587\u5B57\u3001\u9A6C\u5361\u9F99\u8F6F\u5361\u7247\u7EC4\u3001\u9ED1\u5E95\u767D\u5B57 .focus pill\u3002\u5C0F\u7EA2\u4E66\u56FE\u6587 + \u6A2A\u7248 PPT \u53CC\u7528\u3002",
7788
- source: { path: "design-templates/html-ppt-xhs-white-editorial" }
7834
+ source: { path: "design-templates/html-ppt-xhs-white-editorial" },
7835
+ targets: ["presentation", "poster"]
7789
7836
  },
7790
7837
  {
7791
7838
  id: "template:html-ppt-zhangzara-8-bit-orbit",
7792
7839
  kind: "template",
7793
7840
  name: "HTML PPT Zhangzara 8 Bit Orbit",
7794
7841
  description: "8-Bit Orbit \u2014 pixel-art neon arcade aesthetic on a deep navy void. For cyberpunk, gaming, web3, indie dev tools, hackathon demos that should feel like a CRT screen at 2am.",
7795
- source: { path: "design-templates/html-ppt-zhangzara-8-bit-orbit" }
7842
+ source: { path: "design-templates/html-ppt-zhangzara-8-bit-orbit" },
7843
+ targets: ["presentation"]
7796
7844
  },
7797
7845
  {
7798
7846
  id: "template:html-ppt-zhangzara-biennale-yellow",
7799
7847
  kind: "template",
7800
7848
  name: "HTML PPT Zhangzara Biennale Yellow",
7801
7849
  description: "Biennale Yellow \u2014 solar yellow on warm parchment with deep indigo serif and sun-glow gradients. For art-biennale posters, museum programmes, curatorial pitches, literary publications.",
7802
- source: { path: "design-templates/html-ppt-zhangzara-biennale-yellow" }
7850
+ source: { path: "design-templates/html-ppt-zhangzara-biennale-yellow" },
7851
+ targets: ["presentation", "poster"]
7803
7852
  },
7804
7853
  {
7805
7854
  id: "template:html-ppt-zhangzara-block-frame",
7806
7855
  kind: "template",
7807
7856
  name: "HTML PPT Zhangzara Block Frame",
7808
7857
  description: "BlockFrame \u2014 neobrutalist deck with pastel-neon color blocks and chunky black borders. Pop-graphic and design-led for indie SaaS launches, agency credentials, brand redesigns.",
7809
- source: { path: "design-templates/html-ppt-zhangzara-block-frame" }
7858
+ source: { path: "design-templates/html-ppt-zhangzara-block-frame" },
7859
+ targets: ["presentation"]
7810
7860
  },
7811
7861
  {
7812
7862
  id: "template:html-ppt-zhangzara-blue-professional",
7813
7863
  kind: "template",
7814
7864
  name: "HTML PPT Zhangzara Blue Professional",
7815
7865
  description: "Blue Professional \u2014 cream paper background with electric cobalt blue accents; clean modern professional. For B2B SaaS pitches, consulting deliverables, advisory updates, investor reports.",
7816
- source: { path: "design-templates/html-ppt-zhangzara-blue-professional" }
7866
+ source: { path: "design-templates/html-ppt-zhangzara-blue-professional" },
7867
+ targets: ["presentation"]
7817
7868
  },
7818
7869
  {
7819
7870
  id: "template:html-ppt-zhangzara-bold-poster",
7820
7871
  kind: "template",
7821
7872
  name: "HTML PPT Zhangzara Bold Poster",
7822
7873
  description: "Bold Poster \u2014 editorial poster aesthetic with massive Shrikhand display and a single fire-engine red accent. For magazine-cover brand manifestos and editorial / cultural pitches.",
7823
- source: { path: "design-templates/html-ppt-zhangzara-bold-poster" }
7874
+ source: { path: "design-templates/html-ppt-zhangzara-bold-poster" },
7875
+ targets: ["presentation", "poster"]
7824
7876
  },
7825
7877
  {
7826
7878
  id: "template:html-ppt-zhangzara-broadside",
7827
7879
  kind: "template",
7828
7880
  name: "HTML PPT Zhangzara Broadside",
7829
7881
  description: "Broadside \u2014 dark editorial canvas with a single fire orange accent and bilingual Latin/Chinese type stack. For manifestos, magazine pitches, design talks, bilingual EN/CN decks.",
7830
- source: { path: "design-templates/html-ppt-zhangzara-broadside" }
7882
+ source: { path: "design-templates/html-ppt-zhangzara-broadside" },
7883
+ targets: ["presentation"]
7831
7884
  },
7832
7885
  {
7833
7886
  id: "template:html-ppt-zhangzara-capsule",
7834
7887
  kind: "template",
7835
7888
  name: "HTML PPT Zhangzara Capsule",
7836
7889
  description: "Capsule \u2014 modular pill-shaped cards on warm bone with a full pastel-pop palette. For lifestyle brands, creator portfolios, DTC launches, beauty / wellness, agency credentials.",
7837
- source: { path: "design-templates/html-ppt-zhangzara-capsule" }
7890
+ source: { path: "design-templates/html-ppt-zhangzara-capsule" },
7891
+ targets: ["presentation"]
7838
7892
  },
7839
7893
  {
7840
7894
  id: "template:html-ppt-zhangzara-cartesian",
7841
7895
  kind: "template",
7842
7896
  name: "HTML PPT Zhangzara Cartesian",
7843
7897
  description: "Cartesian \u2014 quiet warm-neutral palette with classical Playfair serifs; tasteful and unhurried. For investment theses, white papers, advisory work, longform research, gallery decks.",
7844
- source: { path: "design-templates/html-ppt-zhangzara-cartesian" }
7898
+ source: { path: "design-templates/html-ppt-zhangzara-cartesian" },
7899
+ targets: ["presentation"]
7845
7900
  },
7846
7901
  {
7847
7902
  id: "template:html-ppt-zhangzara-cobalt-grid",
7848
7903
  kind: "template",
7849
7904
  name: "HTML PPT Zhangzara Cobalt Grid",
7850
7905
  description: "Cobalt Grid \u2014 electric cobalt italic serifs on a graph-paper canvas with stair-stepped pixel-glitch decorations. For design / research bulletins, art publications, curated trend reports.",
7851
- source: { path: "design-templates/html-ppt-zhangzara-cobalt-grid" }
7906
+ source: { path: "design-templates/html-ppt-zhangzara-cobalt-grid" },
7907
+ targets: ["presentation"]
7852
7908
  },
7853
7909
  {
7854
7910
  id: "template:html-ppt-zhangzara-coral",
7855
7911
  kind: "template",
7856
7912
  name: "HTML PPT Zhangzara Coral",
7857
7913
  description: "Coral \u2014 cream and coral on near-black, set in oversized Bebas Neue. Warm-graphic editorial for fashion, beauty, fitness, F&B, lifestyle brands, agency credentials.",
7858
- source: { path: "design-templates/html-ppt-zhangzara-coral" }
7914
+ source: { path: "design-templates/html-ppt-zhangzara-coral" },
7915
+ targets: ["presentation"]
7859
7916
  },
7860
7917
  {
7861
7918
  id: "template:html-ppt-zhangzara-creative-mode",
7862
7919
  kind: "template",
7863
7920
  name: "HTML PPT Zhangzara Creative Mode",
7864
7921
  description: "Creative Mode \u2014 cream paper canvas with confident multi-color accents and Archivo Black display. For creative agency pitches, design studio decks, ad credentials, brand creative reviews.",
7865
- source: { path: "design-templates/html-ppt-zhangzara-creative-mode" }
7922
+ source: { path: "design-templates/html-ppt-zhangzara-creative-mode" },
7923
+ targets: ["presentation"]
7866
7924
  },
7867
7925
  {
7868
7926
  id: "template:html-ppt-zhangzara-daisy-days",
7869
7927
  kind: "template",
7870
7928
  name: "HTML PPT Zhangzara Daisy Days",
7871
7929
  description: "Daisy Days \u2014 cheerful pastel deck with hand-drawn daisies, stars, and rainbows. Friendly, soft, and warm for educational content, kids and family, wellness, community workshops.",
7872
- source: { path: "design-templates/html-ppt-zhangzara-daisy-days" }
7930
+ source: { path: "design-templates/html-ppt-zhangzara-daisy-days" },
7931
+ targets: ["presentation"]
7873
7932
  },
7874
7933
  {
7875
7934
  id: "template:html-ppt-zhangzara-editorial-tri-tone",
7876
7935
  kind: "template",
7877
7936
  name: "HTML PPT Zhangzara Editorial Tri Tone",
7878
7937
  description: "Editorial Tri-Tone \u2014 three-color editorial: dusty pink, mustard cream, deep burgundy; Bricolage + Instrument Serif. For fashion-magazine spreads, brand decks, lifestyle media.",
7879
- source: { path: "design-templates/html-ppt-zhangzara-editorial-tri-tone" }
7938
+ source: { path: "design-templates/html-ppt-zhangzara-editorial-tri-tone" },
7939
+ targets: ["presentation"]
7880
7940
  },
7881
7941
  {
7882
7942
  id: "template:html-ppt-zhangzara-grove",
7883
7943
  kind: "template",
7884
7944
  name: "HTML PPT Zhangzara Grove",
7885
7945
  description: "Grove \u2014 forest-green canvas with cream type, classical Playfair serifs, single rust accent. For sustainability and wellness brands, outdoor products, wineries, advisory deliverables.",
7886
- source: { path: "design-templates/html-ppt-zhangzara-grove" }
7946
+ source: { path: "design-templates/html-ppt-zhangzara-grove" },
7947
+ targets: ["presentation"]
7887
7948
  },
7888
7949
  {
7889
7950
  id: "template:html-ppt-zhangzara-long-table",
7890
7951
  kind: "template",
7891
7952
  name: "HTML PPT Zhangzara Long Table",
7892
7953
  description: "Long Table \u2014 warm cream and rust-red supper-club aesthetic with bold uppercase grotesk headlines and italic Fraunces. For supper clubs, dinner series, lifestyle and wine brands.",
7893
- source: { path: "design-templates/html-ppt-zhangzara-long-table" }
7954
+ source: { path: "design-templates/html-ppt-zhangzara-long-table" },
7955
+ targets: ["presentation"]
7894
7956
  },
7895
7957
  {
7896
7958
  id: "template:html-ppt-zhangzara-mat",
7897
7959
  kind: "template",
7898
7960
  name: "HTML PPT Zhangzara Mat",
7899
7961
  description: "Mat \u2014 dark sage canvas with bone paper and burnt-orange accent; mid-century modern with wood undertones. For architecture/interior brands, ceramics, craft, furniture, advisory decks.",
7900
- source: { path: "design-templates/html-ppt-zhangzara-mat" }
7962
+ source: { path: "design-templates/html-ppt-zhangzara-mat" },
7963
+ targets: ["presentation"]
7901
7964
  },
7902
7965
  {
7903
7966
  id: "template:html-ppt-zhangzara-monochrome",
7904
7967
  kind: "template",
7905
7968
  name: "HTML PPT Zhangzara Monochrome",
7906
7969
  description: "Monochrome \u2014 ivory ledger paper with all-black type; Lora serif headlines, Jost body, no color. For research synthesis, white papers, longform reports, bilingual EN/CN deliverables.",
7907
- source: { path: "design-templates/html-ppt-zhangzara-monochrome" }
7970
+ source: { path: "design-templates/html-ppt-zhangzara-monochrome" },
7971
+ targets: ["presentation"]
7908
7972
  },
7909
7973
  {
7910
7974
  id: "template:html-ppt-zhangzara-neo-grid-bold",
7911
7975
  kind: "template",
7912
7976
  name: "HTML PPT Zhangzara Neo Grid Bold",
7913
7977
  description: "Neo-Grid Bold \u2014 editorial neo-brutalism with a single neon yellow accent on off-white paper. For design-led pitches, brand work, founder talks, conference keynotes.",
7914
- source: { path: "design-templates/html-ppt-zhangzara-neo-grid-bold" }
7978
+ source: { path: "design-templates/html-ppt-zhangzara-neo-grid-bold" },
7979
+ targets: ["presentation"]
7915
7980
  },
7916
7981
  {
7917
7982
  id: "template:html-ppt-zhangzara-peoples-platform",
7918
7983
  kind: "template",
7919
7984
  name: "HTML PPT Zhangzara Peoples Platform",
7920
7985
  description: "People's Platform (Block & Bold) \u2014 activist poster energy: blue, orange, red on cream, with Alfa Slab + Caveat Brush. For cultural commentary, manifestos, civic decks, campaign pitches.",
7921
- source: { path: "design-templates/html-ppt-zhangzara-peoples-platform" }
7986
+ source: { path: "design-templates/html-ppt-zhangzara-peoples-platform" },
7987
+ targets: ["presentation"]
7922
7988
  },
7923
7989
  {
7924
7990
  id: "template:html-ppt-zhangzara-pin-and-paper",
7925
7991
  kind: "template",
7926
7992
  name: "HTML PPT Zhangzara Pin And Paper",
7927
7993
  description: "Pin & Paper \u2014 yellow paper with safety-pin illustrations, ink-blue handwritten Caveat, paper-grain texture. For qualitative research, founder reflections, longform brand stories.",
7928
- source: { path: "design-templates/html-ppt-zhangzara-pin-and-paper" }
7994
+ source: { path: "design-templates/html-ppt-zhangzara-pin-and-paper" },
7995
+ targets: ["presentation"]
7929
7996
  },
7930
7997
  {
7931
7998
  id: "template:html-ppt-zhangzara-pink-script",
7932
7999
  kind: "template",
7933
8000
  name: "HTML PPT Zhangzara Pink Script",
7934
8001
  description: "Pink Script (After Hours) \u2014 black canvas, hot pink accent, pearl-cream paper, Instrument Serif. Late-night editorial luxury for fashion, creator brands, nightlife, and luxury reveals.",
7935
- source: { path: "design-templates/html-ppt-zhangzara-pink-script" }
8002
+ source: { path: "design-templates/html-ppt-zhangzara-pink-script" },
8003
+ targets: ["presentation"]
7936
8004
  },
7937
8005
  {
7938
8006
  id: "template:html-ppt-zhangzara-playful",
7939
8007
  kind: "template",
7940
8008
  name: "HTML PPT Zhangzara Playful",
7941
8009
  description: "Playful \u2014 sun-warm peach background with Syne display: a friendly indie launch deck. For creator portfolios, indie product launches, lifestyle brands, small-business pitches.",
7942
- source: { path: "design-templates/html-ppt-zhangzara-playful" }
8010
+ source: { path: "design-templates/html-ppt-zhangzara-playful" },
8011
+ targets: ["presentation"]
7943
8012
  },
7944
8013
  {
7945
8014
  id: "template:html-ppt-zhangzara-raw-grid",
7946
8015
  kind: "template",
7947
8016
  name: "HTML PPT Zhangzara Raw Grid",
7948
8017
  description: "Raw Grid \u2014 neo-brutalist deck with thick borders, offset shadows, and a pink/sage/ink palette. For founder pitches, accelerator demos, brand decks, indie launches, creator portfolios.",
7949
- source: { path: "design-templates/html-ppt-zhangzara-raw-grid" }
8018
+ source: { path: "design-templates/html-ppt-zhangzara-raw-grid" },
8019
+ targets: ["presentation"]
7950
8020
  },
7951
8021
  {
7952
8022
  id: "template:html-ppt-zhangzara-retro-windows",
7953
8023
  kind: "template",
7954
8024
  name: "HTML PPT Zhangzara Retro Windows",
7955
8025
  description: "Retro Windows \u2014 Windows 95 chrome: gray title bars, MS Sans Serif, pixel typography, full nostalgia. For retro gaming, Y2K-aesthetic brands, creator portfolios, tech-history talks.",
7956
- source: { path: "design-templates/html-ppt-zhangzara-retro-windows" }
8026
+ source: { path: "design-templates/html-ppt-zhangzara-retro-windows" },
8027
+ targets: ["presentation"]
7957
8028
  },
7958
8029
  {
7959
8030
  id: "template:html-ppt-zhangzara-sakura-chroma",
7960
8031
  kind: "template",
7961
8032
  name: "HTML PPT Zhangzara Sakura Chroma",
7962
8033
  description: "Sakura Chroma \u2014 vintage Japanese cassette-package aesthetic: cream paper, diagonal rainbow ribbons, condensed bold type, JIS-style spec checkboxes. For analog / kawaii-tech decks.",
7963
- source: { path: "design-templates/html-ppt-zhangzara-sakura-chroma" }
8034
+ source: { path: "design-templates/html-ppt-zhangzara-sakura-chroma" },
8035
+ targets: ["presentation"]
7964
8036
  },
7965
8037
  {
7966
8038
  id: "template:html-ppt-zhangzara-scatterbrain",
7967
8039
  kind: "template",
7968
8040
  name: "HTML PPT Zhangzara Scatterbrain",
7969
8041
  description: "Scatterbrain \u2014 Post-it inspired: pastel sticky notes, Caveat handwriting, Shrikhand + Zilla Slab. For brainstorms, workshops, creative-agency credentials, ideation pitches.",
7970
- source: { path: "design-templates/html-ppt-zhangzara-scatterbrain" }
8042
+ source: { path: "design-templates/html-ppt-zhangzara-scatterbrain" },
8043
+ targets: ["presentation"]
7971
8044
  },
7972
8045
  {
7973
8046
  id: "template:html-ppt-zhangzara-signal",
7974
8047
  kind: "template",
7975
8048
  name: "HTML PPT Zhangzara Signal",
7976
8049
  description: "Signal \u2014 deep navy canvas with bone paper and a single muted-gold accent; institutional with quiet weight. For investor decks, board presentations, consulting deliverables, legal briefs.",
7977
- source: { path: "design-templates/html-ppt-zhangzara-signal" }
8050
+ source: { path: "design-templates/html-ppt-zhangzara-signal" },
8051
+ targets: ["presentation"]
7978
8052
  },
7979
8053
  {
7980
8054
  id: "template:html-ppt-zhangzara-soft-editorial",
7981
8055
  kind: "template",
7982
8056
  name: "HTML PPT Zhangzara Soft Editorial",
7983
8057
  description: "Soft Editorial \u2014 Cormorant Garamond serif on warm paper with sage, blush, and lemon accents. For literary brand stories, gallery decks, advisory deliverables, lifestyle media.",
7984
- source: { path: "design-templates/html-ppt-zhangzara-soft-editorial" }
8058
+ source: { path: "design-templates/html-ppt-zhangzara-soft-editorial" },
8059
+ targets: ["presentation"]
7985
8060
  },
7986
8061
  {
7987
8062
  id: "template:html-ppt-zhangzara-stencil-tablet",
7988
8063
  kind: "template",
7989
8064
  name: "HTML PPT Zhangzara Stencil Tablet",
7990
8065
  description: "Stencil & Tablet \u2014 bone paper with stencil-cut headlines and a six-color earth palette. Archaeology meets brand: museum decks, art/architecture brands, heritage and craft work.",
7991
- source: { path: "design-templates/html-ppt-zhangzara-stencil-tablet" }
8066
+ source: { path: "design-templates/html-ppt-zhangzara-stencil-tablet" },
8067
+ targets: ["presentation"]
7992
8068
  },
7993
8069
  {
7994
8070
  id: "template:html-ppt-zhangzara-studio",
7995
8071
  kind: "template",
7996
8072
  name: "HTML PPT Zhangzara Studio",
7997
8073
  description: "Studio \u2014 black canvas with electric-yellow type; high-voltage design studio aesthetic. For studio credentials, creative agency pitches, brand showcases, fashion / sneaker work.",
7998
- source: { path: "design-templates/html-ppt-zhangzara-studio" }
8074
+ source: { path: "design-templates/html-ppt-zhangzara-studio" },
8075
+ targets: ["presentation"]
7999
8076
  },
8000
8077
  {
8001
8078
  id: "template:html-ppt-zhangzara-vellum",
8002
8079
  kind: "template",
8003
8080
  name: "HTML PPT Zhangzara Vellum",
8004
8081
  description: "Vellum \u2014 deep navy canvas with warm-yellow italic Cormorant serifs and a single dusty teal accent. Quiet, scholarly aesthetic for research synthesis, white papers, advisory work.",
8005
- source: { path: "design-templates/html-ppt-zhangzara-vellum" }
8082
+ source: { path: "design-templates/html-ppt-zhangzara-vellum" },
8083
+ targets: ["presentation"]
8006
8084
  },
8007
8085
  {
8008
8086
  id: "template:hyperframes",
8009
8087
  kind: "template",
8010
8088
  name: "Hyperframes",
8011
8089
  description: "HTML video composition skill \u2014 captions, voiceover, audio-reactive animation, scene transitions, and timing in HyperFrames HTML. For CLI commands see hyperframes-cli.",
8012
- source: { path: "design-templates/hyperframes" }
8090
+ source: { path: "design-templates/hyperframes" },
8091
+ targets: ["intro-video"]
8013
8092
  },
8014
8093
  {
8015
8094
  id: "template:ib-pitch-book",
8016
8095
  kind: "template",
8017
8096
  name: "Ib Pitch Book",
8018
8097
  description: "Investment-banking pitch book \u2014 trading comps, precedent transactions, valuation football field, DCF sensitivity, strategic-options matrix. For Board / sell-side discussion materials.",
8019
- source: { path: "design-templates/ib-pitch-book" }
8098
+ source: { path: "design-templates/ib-pitch-book" },
8099
+ targets: ["report", "presentation"]
8020
8100
  },
8021
8101
  {
8022
8102
  id: "template:image-poster",
8023
8103
  kind: "template",
8024
8104
  name: "Image Poster",
8025
8105
  description: "Single-image generation skill for posters, key art, and editorial illustrations. Defaults to gpt-image-2 but is provider-agnostic \u2014 the same workflow drives Flux, Imagen, or Midjourney via the active upstream tooling. Output is one or mo\u2026",
8026
- source: { path: "design-templates/image-poster" }
8106
+ source: { path: "design-templates/image-poster" },
8107
+ targets: ["poster"]
8027
8108
  },
8028
8109
  {
8029
8110
  id: "template:invoice",
8030
8111
  kind: "template",
8031
8112
  name: "Invoice",
8032
8113
  description: "A printable invoice page \u2014 sender + recipient block, line items table, tax breakdown, totals, and payment instructions.",
8033
- source: { path: "design-templates/invoice" }
8114
+ source: { path: "design-templates/invoice" },
8115
+ targets: ["report"]
8034
8116
  },
8035
8117
  {
8036
8118
  id: "template:kami-deck",
8037
8119
  kind: "template",
8038
8120
  name: "Kami Deck",
8039
8121
  description: "Produce a print-grade slide deck in the kami (\u7D19 / \u7EB8) design system \u2014 warm parchment background (or ink-blue for cover / chapter slides), serif at one weight, ink-blue accent \u2264 5% per slide, no italic. Horizontal magazine swipe pagination\u2026",
8040
- source: { path: "design-templates/kami-deck" }
8122
+ source: { path: "design-templates/kami-deck" },
8123
+ targets: ["presentation"]
8041
8124
  },
8042
8125
  {
8043
8126
  id: "template:kami-landing",
8044
8127
  kind: "template",
8045
8128
  name: "Kami Landing",
8046
8129
  description: "Produce a print-grade single-page kami (\u7D19 / \u7EB8) document \u2014 warm parchment canvas, ink-blue accent, serif at one weight, no italic, no cool grays. The output reads like a professional white paper or studio one-pager, not an app UI. Multili\u2026",
8047
- source: { path: "design-templates/kami-landing" }
8130
+ source: { path: "design-templates/kami-landing" },
8131
+ targets: ["website"]
8048
8132
  },
8049
8133
  {
8050
8134
  id: "template:kanban-board",
8051
8135
  kind: "template",
8052
8136
  name: "Kanban Board",
8053
8137
  description: "Kanban / task board with columns (To do / In progress / In review / Done), draggable-looking cards, assignee avatars, swimlanes, and a top filter bar.",
8054
- source: { path: "design-templates/kanban-board" }
8138
+ source: { path: "design-templates/kanban-board" },
8139
+ targets: ["dashboard-design"]
8055
8140
  },
8056
8141
  {
8057
8142
  id: "template:last30days",
8058
8143
  kind: "template",
8059
8144
  name: "Last30days",
8060
8145
  description: "Recent community and social trend research over the last 30 days.",
8061
- source: { path: "design-templates/last30days" }
8146
+ source: { path: "design-templates/last30days" },
8147
+ targets: ["dashboard-design", "report"]
8062
8148
  },
8063
8149
  {
8064
8150
  id: "template:live-artifact",
8065
8151
  kind: "template",
8066
8152
  name: "Live Artifact",
8067
8153
  description: "Create refreshable, auditable artifacts backed by connector or local data. Trigger when the user asks for live dashboards, refreshable reports, synced views, or reusable data-backed artifacts.",
8068
- source: { path: "design-templates/live-artifact" }
8154
+ source: { path: "design-templates/live-artifact" },
8155
+ targets: ["dashboard-design", "report", "website"]
8069
8156
  },
8070
8157
  {
8071
8158
  id: "template:live-dashboard",
8072
8159
  kind: "template",
8073
8160
  name: "Live Dashboard",
8074
8161
  description: "Notion-style team dashboard as a Live Artifact \u2014 KPIs, 7-day sparkline, activity feed, and a linked-database task table wired to Notion via Composio. Refreshable, with mock fallback.",
8075
- source: { path: "design-templates/live-dashboard" }
8162
+ source: { path: "design-templates/live-dashboard" },
8163
+ targets: ["dashboard-design"]
8076
8164
  },
8077
8165
  {
8078
8166
  id: "template:magazine-poster",
8079
8167
  kind: "template",
8080
8168
  name: "Magazine Poster",
8081
8169
  description: "An editorial-style poster \u2014 newsprint paper, dateline, oversized serif headline with a struck-through word and italic accent, a 2-column body block, and 6 numbered sections with annotated pull-quote captions. Reads like a Sunday-paper fu\u2026",
8082
- source: { path: "design-templates/magazine-poster" }
8170
+ source: { path: "design-templates/magazine-poster" },
8171
+ targets: ["poster"]
8083
8172
  },
8084
8173
  {
8085
8174
  id: "template:meeting-notes",
8086
8175
  kind: "template",
8087
8176
  name: "Meeting Notes",
8088
8177
  description: 'Meeting notes page \u2014 title bar with attendees, agenda checklist, decisions block, action items table with owners + dates, and a "next meeting" footer.',
8089
- source: { path: "design-templates/meeting-notes" }
8178
+ source: { path: "design-templates/meeting-notes" },
8179
+ targets: ["docs-design"]
8090
8180
  },
8091
8181
  {
8092
8182
  id: "template:mobile-onboarding",
8093
8183
  kind: "template",
8094
8184
  name: "Mobile Onboarding",
8095
8185
  description: "A multi-screen mobile onboarding flow rendered as three phone frames side by side \u2014 splash, value-prop, sign-in. Status bar, swipe dots, primary CTA.",
8096
- source: { path: "design-templates/mobile-onboarding" }
8186
+ source: { path: "design-templates/mobile-onboarding" },
8187
+ targets: ["mobile-app-design"]
8097
8188
  },
8098
8189
  {
8099
8190
  id: "template:motion-frames",
8100
8191
  kind: "template",
8101
8192
  name: "Motion Frames",
8102
8193
  description: "A single-frame motion-design composition with looping CSS animations \u2014 rotating type ring, animated globe, ticking timer, parallax labels. Renders as a hero video poster you can hand straight to HyperFrames or any keyframe-based exporter.",
8103
- source: { path: "design-templates/motion-frames" }
8194
+ source: { path: "design-templates/motion-frames" },
8195
+ targets: ["intro-video"]
8104
8196
  },
8105
8197
  {
8106
8198
  id: "template:open-design-landing",
8107
8199
  kind: "template",
8108
8200
  name: "Editorial Landing",
8109
8201
  description: "Single-page editorial landing site in the Atelier Zero visual language (Monocle / Apartamento / \xC9tudes collage). Composes from a typed inputs.json with optional gpt-image-2 assets.",
8110
- source: { path: "design-templates/open-design-landing" }
8202
+ source: { path: "design-templates/open-design-landing" },
8203
+ targets: ["website"]
8111
8204
  },
8112
8205
  {
8113
8206
  id: "template:open-design-landing-deck",
8114
8207
  kind: "template",
8115
8208
  name: "Editorial Landing Deck",
8116
8209
  description: "Single-file slide deck in the Atelier Zero visual language \u2014 warm-paper, italic-serif emphasis, coral terminating dots, surreal collage. Horizontal swipe + ESC overview grid.",
8117
- source: { path: "design-templates/open-design-landing-deck" }
8210
+ source: { path: "design-templates/open-design-landing-deck" },
8211
+ targets: ["presentation"]
8118
8212
  },
8119
8213
  {
8120
8214
  id: "template:orbit-general",
8121
8215
  kind: "template",
8122
8216
  name: "Orbit General",
8123
8217
  description: "Open Orbit daily digest \u2014 pulls 24h activity from every connected connector (GitHub, Linear, Notion, Slack, \u2026) into a bento-grid dashboard. Invoked by the Orbit scheduler.",
8124
- source: { path: "design-templates/orbit-general" }
8218
+ source: { path: "design-templates/orbit-general" },
8219
+ targets: ["dashboard-design"]
8125
8220
  },
8126
8221
  {
8127
8222
  id: "template:orbit-github",
8128
8223
  kind: "template",
8129
8224
  name: "Orbit Github",
8130
8225
  description: "Open Orbit GitHub digest \u2014 24h of PRs, reviews, issues, CI, and merges rendered in GitHub's native Notifications + PR-diff visual language. Invoked by the Orbit scheduler.",
8131
- source: { path: "design-templates/orbit-github" }
8226
+ source: { path: "design-templates/orbit-github" },
8227
+ targets: ["dashboard-design"]
8132
8228
  },
8133
8229
  {
8134
8230
  id: "template:orbit-gmail",
8135
8231
  kind: "template",
8136
8232
  name: "Orbit Gmail",
8137
8233
  description: "Open Orbit Gmail digest \u2014 24h of inbox activity (replies, mentions, cc, bulk) rendered as the Orbit Daily Digest email inside Gmail's reading view. Invoked by the Orbit scheduler.",
8138
- source: { path: "design-templates/orbit-gmail" }
8234
+ source: { path: "design-templates/orbit-gmail" },
8235
+ targets: ["dashboard-design"]
8139
8236
  },
8140
8237
  {
8141
8238
  id: "template:orbit-linear",
8142
8239
  kind: "template",
8143
8240
  name: "Orbit Linear",
8144
8241
  description: "Open Orbit Linear digest \u2014 24h of issue movement, status changes, assignments, and cycle progress in Linear's native Inbox + cycle visual language. Invoked by the Orbit scheduler.",
8145
- source: { path: "design-templates/orbit-linear" }
8242
+ source: { path: "design-templates/orbit-linear" },
8243
+ targets: ["dashboard-design"]
8146
8244
  },
8147
8245
  {
8148
8246
  id: "template:orbit-notion",
8149
8247
  kind: "template",
8150
8248
  name: "Orbit Notion",
8151
8249
  description: "Open Orbit Notion digest \u2014 24h of doc edits, comments, mentions, and database row changes rendered as a native Notion page. Invoked by the Orbit scheduler.",
8152
- source: { path: "design-templates/orbit-notion" }
8250
+ source: { path: "design-templates/orbit-notion" },
8251
+ targets: ["dashboard-design"]
8153
8252
  },
8154
8253
  {
8155
8254
  id: "template:pm-spec",
8156
8255
  kind: "template",
8157
8256
  name: "Pm Spec",
8158
8257
  description: "Product spec / PRD as a single page \u2014 problem, success metrics, scope, user stories, design notes, rollout plan, open questions.",
8159
- source: { path: "design-templates/pm-spec" }
8258
+ source: { path: "design-templates/pm-spec" },
8259
+ targets: ["docs-design"]
8160
8260
  },
8161
8261
  {
8162
8262
  id: "template:pricing-page",
8163
8263
  kind: "template",
8164
8264
  name: "Pricing Page",
8165
8265
  description: "A standalone pricing page \u2014 header, plan tiers, feature comparison table, and an FAQ.",
8166
- source: { path: "design-templates/pricing-page" }
8266
+ source: { path: "design-templates/pricing-page" },
8267
+ targets: ["website"]
8167
8268
  },
8168
8269
  {
8169
8270
  id: "template:replit-deck",
8170
8271
  kind: "template",
8171
8272
  name: "Replit Deck",
8172
8273
  description: "Single-file horizontal-swipe HTML deck in the style of Replit Slides's landing-page template gallery. Eight distinct themes (helix, holm, vance, bevel, world-dark, world-mint, atlas, bluehouse) \u2014 each a complete visual system (palette +\u2026",
8173
- source: { path: "design-templates/replit-deck" }
8274
+ source: { path: "design-templates/replit-deck" },
8275
+ targets: ["presentation"]
8174
8276
  },
8175
8277
  {
8176
8278
  id: "template:saas-landing",
8177
8279
  kind: "template",
8178
8280
  name: "Saas Landing",
8179
8281
  description: "Single-page SaaS landing with hero, features, social proof, pricing, and CTA. Respects the active DESIGN.md color/typography/layout tokens.",
8180
- source: { path: "design-templates/saas-landing" }
8282
+ source: { path: "design-templates/saas-landing" },
8283
+ targets: ["website"]
8181
8284
  },
8182
8285
  {
8183
8286
  id: "template:simple-deck",
8184
8287
  kind: "template",
8185
8288
  name: "Simple Deck",
8186
8289
  description: "Single-file horizontal-swipe HTML deck. Built by copying the seed `assets/template.html` (which carries the proven 5-rule iframe nav script) and pasting slide layouts from `references/layouts.md`. Pitch decks, product overviews, study ma\u2026",
8187
- source: { path: "design-templates/simple-deck" }
8290
+ source: { path: "design-templates/simple-deck" },
8291
+ targets: ["presentation"]
8188
8292
  },
8189
8293
  {
8190
8294
  id: "template:social-carousel",
8191
8295
  kind: "template",
8192
8296
  name: "Social Carousel",
8193
8297
  description: 'A three-card social-media carousel laid out as 1080\xD71080 squares \u2014 three cinematic, on-brand panels with display headlines that connect across the series ("onwards." \u2192 "to the next one." \u2192 "looking ahead."). Each card has a brand mark, a\u2026',
8194
- source: { path: "design-templates/social-carousel" }
8298
+ source: { path: "design-templates/social-carousel" },
8299
+ targets: ["poster"]
8195
8300
  },
8196
8301
  {
8197
8302
  id: "template:social-media-dashboard",
8198
8303
  kind: "template",
8199
8304
  name: "Social Media Dashboard",
8200
8305
  description: 'Creator-facing social media analytics dashboard in a single HTML file. A platform switcher (X / LinkedIn / YouTube / Instagram), a row of KPI cards (followers, engagement rate, likes, reposts), a follower-growth chart, a "top post this w\u2026',
8201
- source: { path: "design-templates/social-media-dashboard" }
8306
+ source: { path: "design-templates/social-media-dashboard" },
8307
+ targets: ["dashboard-design"]
8202
8308
  },
8203
8309
  {
8204
8310
  id: "template:social-media-matrix-tracker-template",
8205
8311
  kind: "template",
8206
8312
  name: "Social Media Matrix Tracker Template",
8207
8313
  description: "\u793E\u5A92\u77E9\u9635\u6570\u636E\u8FFD\u8E2A\u9762\u677F\u6A21\u677F\uFF08Social Media Matrix Tracker\uFF09\u3002",
8208
- source: { path: "design-templates/social-media-matrix-tracker-template" }
8314
+ source: { path: "design-templates/social-media-matrix-tracker-template" },
8315
+ targets: ["dashboard-design"]
8209
8316
  },
8210
8317
  {
8211
8318
  id: "template:sprite-animation",
8212
8319
  kind: "template",
8213
8320
  name: "Sprite Animation",
8214
8321
  description: "A pixel / sprite-style animated explainer slide \u2014 full-bleed cream stage, bold display year, animated pixel-art mascot (e.g. Hanafuda card, mushroom, or 8-bit console), kinetic Japanese display type, ticking timeline ribbon. Reads like a\u2026",
8215
- source: { path: "design-templates/sprite-animation" }
8322
+ source: { path: "design-templates/sprite-animation" },
8323
+ targets: ["intro-video"]
8216
8324
  },
8217
8325
  {
8218
8326
  id: "template:team-okrs",
8219
8327
  kind: "template",
8220
8328
  name: "Team Okrs",
8221
8329
  description: 'OKR tracker page \u2014 quarter banner, three objectives with their key results as progress bars, owner avatars, status pills, and a "this quarter at a glance" sidebar.',
8222
- source: { path: "design-templates/team-okrs" }
8330
+ source: { path: "design-templates/team-okrs" },
8331
+ targets: ["docs-design", "dashboard-design"]
8223
8332
  },
8224
8333
  {
8225
8334
  id: "template:trading-analysis-dashboard-template",
8226
8335
  kind: "template",
8227
8336
  name: "Trading Analysis Dashboard Template",
8228
8337
  description: "Professional trading analysis dashboard template (single-file HTML) with light/dark theme switch, dense market panels, chart interactions, demo/live playback, and command palette behavior.",
8229
- source: { path: "design-templates/trading-analysis-dashboard-template" }
8338
+ source: { path: "design-templates/trading-analysis-dashboard-template" },
8339
+ targets: ["dashboard-design"]
8230
8340
  },
8231
8341
  {
8232
8342
  id: "template:tweaks",
8233
8343
  kind: "template",
8234
8344
  name: "Tweaks",
8235
8345
  description: "Wrap any HTML artifact with a side panel of live, parameterized controls \u2014 accent color, type scale, density, motion, theme \u2014 that rewrite CSS custom properties in real time and persist to localStorage. Lets the user explore variants of\u2026",
8236
- source: { path: "design-templates/tweaks" }
8346
+ source: { path: "design-templates/tweaks" },
8347
+ targets: [
8348
+ "website",
8349
+ "dashboard-design",
8350
+ "presentation",
8351
+ "report",
8352
+ "docs-design",
8353
+ "poster",
8354
+ "mobile-app-design"
8355
+ ]
8237
8356
  },
8238
8357
  {
8239
8358
  id: "template:video-shortform",
8240
8359
  kind: "template",
8241
8360
  name: "Video Shortform",
8242
8361
  description: "Short-form video generation skill \u2014 3-10 second clips for product reveals, motion teasers, ambient loops. Defaults to Seedance 2 but works the same with Kling 3 / 4, Veo 3 or Sora 2. Output is one MP4 saved to the project folder. When th\u2026",
8243
- source: { path: "design-templates/video-shortform" }
8362
+ source: { path: "design-templates/video-shortform" },
8363
+ targets: ["intro-video"]
8244
8364
  },
8245
8365
  {
8246
8366
  id: "template:waitlist-page",
8247
8367
  kind: "template",
8248
8368
  name: "Waitlist Page",
8249
8369
  description: "Minimal pre-launch landing with email capture, brand logo, and optional decorative layer. Reads DESIGN.md for colors, typography, and layout rules.",
8250
- source: { path: "design-templates/waitlist-page" }
8370
+ source: { path: "design-templates/waitlist-page" },
8371
+ targets: ["website"]
8251
8372
  },
8252
8373
  {
8253
8374
  id: "template:web-prototype",
8254
8375
  kind: "template",
8255
8376
  name: "Web Prototype",
8256
8377
  description: "General-purpose desktop web prototype. Single self-contained HTML file built by copying the seed `assets/template.html` and pasting section layouts from `references/layouts.md`. Default for any landing / marketing / docs / SaaS page when\u2026",
8257
- source: { path: "design-templates/web-prototype" }
8378
+ source: { path: "design-templates/web-prototype" },
8379
+ targets: ["website"]
8258
8380
  },
8259
8381
  {
8260
8382
  id: "template:web-prototype-taste-brutalist",
8261
8383
  kind: "template",
8262
8384
  name: "Web Prototype Taste Brutalist",
8263
8385
  description: "Swiss industrial-print web prototype. Newsprint canvas, monolithic black grotesque, viewport-bleeding numerals, hairline grid dividers, hazard-red accent, ASCII syntax decoration. Distilled from Leonxlnx/taste-skill `brutalist-skill` (Sw\u2026",
8264
- source: { path: "design-templates/web-prototype-taste-brutalist" }
8386
+ source: { path: "design-templates/web-prototype-taste-brutalist" },
8387
+ targets: ["website"]
8265
8388
  },
8266
8389
  {
8267
8390
  id: "template:web-prototype-taste-soft",
8268
8391
  kind: "template",
8269
8392
  name: "Web Prototype Taste Soft",
8270
8393
  description: "Apple-tier soft web prototype. Silver/cream canvas, double-bezel cards, button-in-button CTAs, generous squircle radii, spring motion, ambient mesh. Distilled from Leonxlnx/taste-skill `soft-skill` + sections 4\u20138 of `taste-skill`.",
8271
- source: { path: "design-templates/web-prototype-taste-soft" }
8394
+ source: { path: "design-templates/web-prototype-taste-soft" },
8395
+ targets: ["website"]
8272
8396
  },
8273
8397
  {
8274
8398
  id: "template:wireframe-sketch",
8275
8399
  kind: "template",
8276
8400
  name: "Wireframe Sketch",
8277
8401
  description: "A hand-drawn wireframe exploration \u2014 graph-paper background, marker / pencil tone, multiple tab labels for variants, sticky-note annotations, scribbled chart placeholders, hatched fills. Reads like a designer's whiteboard before any pixe\u2026",
8278
- source: { path: "design-templates/wireframe-sketch" }
8402
+ source: { path: "design-templates/wireframe-sketch" },
8403
+ targets: ["website", "mobile-app-design", "dashboard-design"]
8279
8404
  },
8280
8405
  {
8281
8406
  id: "template:x-research",
8282
8407
  kind: "template",
8283
8408
  name: "X Research",
8284
8409
  description: "X/Twitter public sentiment research for recent market, company, product, or community discourse.",
8285
- source: { path: "design-templates/x-research" }
8410
+ source: { path: "design-templates/x-research" },
8411
+ targets: ["report"]
8286
8412
  },
8287
8413
  {
8288
8414
  id: "design-system:dashboard",
@@ -9696,6 +9822,28 @@ function findImageStyle(id) {
9696
9822
  return entry.id === id;
9697
9823
  });
9698
9824
  }
9825
+ function listDesignSystems() {
9826
+ return filterByKind("design-system");
9827
+ }
9828
+ function findDesignSystem(id) {
9829
+ return listDesignSystems().find((entry) => {
9830
+ return entry.id === id;
9831
+ });
9832
+ }
9833
+ function listTemplates(target) {
9834
+ const all = filterByKind("template");
9835
+ if (target === void 0) {
9836
+ return all;
9837
+ }
9838
+ return all.filter((entry) => {
9839
+ return entry.targets?.includes(target) ?? false;
9840
+ });
9841
+ }
9842
+ function findTemplate(id) {
9843
+ return filterByKind("template").find((entry) => {
9844
+ return entry.id === id;
9845
+ });
9846
+ }
9699
9847
  function toGenerationTarget(value) {
9700
9848
  if (value === "dashboard") {
9701
9849
  return "dashboard-design";
@@ -9857,6 +10005,26 @@ function createStyledImageAuthoringPacket(options) {
9857
10005
  };
9858
10006
  }
9859
10007
 
10008
+ // src/commands/zero/shared/resource-listing.ts
10009
+ init_esm_shims();
10010
+ function formatRegistryListing(entries, emptyLabel) {
10011
+ if (entries.length === 0) {
10012
+ return ` (no ${emptyLabel} registered)`;
10013
+ }
10014
+ return entries.map((entry) => {
10015
+ const desc = entry.desc ?? entry.description;
10016
+ return ` ${entry.id}
10017
+ ${desc}`;
10018
+ }).join("\n\n");
10019
+ }
10020
+ function canonicalizeRegistryId(prefix, value) {
10021
+ const fullPrefix = `${prefix}:`;
10022
+ if (value.startsWith(fullPrefix)) {
10023
+ return value;
10024
+ }
10025
+ return `${fullPrefix}${value}`;
10026
+ }
10027
+
9860
10028
  // src/commands/zero/generate/lib/dispatch.ts
9861
10029
  init_esm_shims();
9862
10030
  import { readFileSync as readFileSync13 } from "fs";
@@ -10522,23 +10690,13 @@ function resolvePrompt(prompt) {
10522
10690
  }
10523
10691
 
10524
10692
  // src/commands/zero/shared/image-generate.ts
10525
- function formatStyleListing(styles) {
10526
- if (styles.length === 0) {
10527
- return " (no image styles registered)";
10528
- }
10529
- return styles.map((style) => {
10530
- const desc = style.desc ?? style.description;
10531
- return ` ${style.id}
10532
- ${desc}`;
10533
- }).join("\n\n");
10534
- }
10535
10693
  function requireStyleError(usageCommand) {
10536
10694
  const styles = listImageStyles();
10537
10695
  const message = [
10538
10696
  "--style <id> or --skip-style is required",
10539
10697
  "",
10540
10698
  "Available styles:",
10541
- formatStyleListing(styles),
10699
+ formatRegistryListing(styles, "image styles"),
10542
10700
  "",
10543
10701
  `Examples:`,
10544
10702
  ` ${usageCommand} --style ${styles[0]?.id ?? "<style-id>"} --prompt "..."`,
@@ -10552,7 +10710,7 @@ function unknownStyleError(id, usageCommand) {
10552
10710
  `Unknown image style: ${id}`,
10553
10711
  "",
10554
10712
  "Available styles:",
10555
- formatStyleListing(styles),
10713
+ formatRegistryListing(styles, "image styles"),
10556
10714
  "",
10557
10715
  `Example:`,
10558
10716
  ` ${usageCommand} --style ${styles[0]?.id ?? "<style-id>"} --prompt "..."`
@@ -10694,7 +10852,7 @@ Options:
10694
10852
  accept --input-fidelity and supported models accept --mask-image-url.
10695
10853
 
10696
10854
  Image Styles:
10697
- ${formatStyleListing(styles)}`;
10855
+ ${formatRegistryListing(styles, "image styles")}`;
10698
10856
  }).action(
10699
10857
  withErrorHandler(async (options, command) => {
10700
10858
  const dispatch = await dispatchGenerate({
@@ -10991,6 +11149,32 @@ function createHtmlArtifactAuthoringPacket(options) {
10991
11149
  }
10992
11150
 
10993
11151
  // src/commands/zero/shared/artifact-generate.ts
11152
+ function unknownDesignSystemError(id, usageCommand) {
11153
+ const designSystems = listDesignSystems();
11154
+ const message = [
11155
+ `Unknown design system: ${id}`,
11156
+ "",
11157
+ "Available design systems:",
11158
+ formatRegistryListing(designSystems, "design systems"),
11159
+ "",
11160
+ `Example:`,
11161
+ ` ${usageCommand} --design-system ${designSystems[0]?.id ?? "<design-system-id>"} --prompt "..."`
11162
+ ].join("\n");
11163
+ return new Error(message);
11164
+ }
11165
+ function unknownTemplateError(id, usageCommand, target) {
11166
+ const templates = listTemplates(target);
11167
+ const message = [
11168
+ `Unknown template for ${target}: ${id}`,
11169
+ "",
11170
+ `Available templates for ${target}:`,
11171
+ formatRegistryListing(templates, `${target} templates`),
11172
+ "",
11173
+ `Example:`,
11174
+ ` ${usageCommand} --template ${templates[0]?.id ?? "<template-id>"} --prompt "..."`
11175
+ ].join("\n");
11176
+ return new Error(message);
11177
+ }
10994
11178
  function createArtifactGenerateCommand(config) {
10995
11179
  return new Command().name(config.name).description(config.description).option("--prompt <text>", "Artifact prompt; can also be piped via stdin").option(
10996
11180
  "--provider <name>",
@@ -10998,9 +11182,16 @@ function createArtifactGenerateCommand(config) {
10998
11182
  ).option(
10999
11183
  "--all",
11000
11184
  "When listing providers (no --prompt given), include unavailable or not-yet-authorized connectors"
11001
- ).option("--site <slug>", "Hosted site slug; defaults to generated name").option("--title <text>", "Requested artifact title or name").option("--audience <text>", "Audience context").option("--json", "Print metadata as JSON").addHelpText(
11002
- "after",
11003
- `
11185
+ ).option("--site <slug>", "Hosted site slug; defaults to generated name").option("--title <text>", "Requested artifact title or name").option("--audience <text>", "Audience context").option(
11186
+ "--design-system <id>",
11187
+ "Design system id from the registry (see Design Systems below). Accepts either 'apple' or 'design-system:apple'."
11188
+ ).option(
11189
+ "--template <id>",
11190
+ `Template id from the registry, scoped to ${config.target} (see Templates below). Accepts either short id or full 'template:<id>'.`
11191
+ ).option("--json", "Print metadata as JSON").addHelpText("after", () => {
11192
+ const designSystems = listDesignSystems();
11193
+ const templates = listTemplates(config.target);
11194
+ return `
11004
11195
  Examples:
11005
11196
  ${config.examples}
11006
11197
 
@@ -11010,8 +11201,14 @@ Output:
11010
11201
  --prompt and no piped input, prints the provider menu instead.
11011
11202
 
11012
11203
  Notes:
11013
- - Authenticates via ZERO_TOKEN`
11014
- ).action(
11204
+ - Authenticates via ZERO_TOKEN
11205
+
11206
+ Design Systems:
11207
+ ${formatRegistryListing(designSystems, "design systems")}
11208
+
11209
+ Templates (${config.target}):
11210
+ ${formatRegistryListing(templates, `${config.target} templates`)}`;
11211
+ }).action(
11015
11212
  withErrorHandler(async (options) => {
11016
11213
  const dispatch = await dispatchGenerate({
11017
11214
  generationType: config.generationType,
@@ -11022,12 +11219,47 @@ Notes:
11022
11219
  });
11023
11220
  if (dispatch.outcome === "handled") return;
11024
11221
  const prompt = dispatch.prompt;
11222
+ let resolvedDesignSystem;
11223
+ if (options.designSystem !== void 0) {
11224
+ const canonical = canonicalizeRegistryId(
11225
+ "design-system",
11226
+ options.designSystem
11227
+ );
11228
+ const entry = findDesignSystem(canonical);
11229
+ if (!entry) {
11230
+ throw unknownDesignSystemError(
11231
+ options.designSystem,
11232
+ config.usageCommand
11233
+ );
11234
+ }
11235
+ resolvedDesignSystem = entry;
11236
+ }
11237
+ let resolvedTemplate;
11238
+ if (options.template !== void 0) {
11239
+ const canonical = canonicalizeRegistryId(
11240
+ "template",
11241
+ options.template
11242
+ );
11243
+ const entry = findTemplate(canonical);
11244
+ if (!entry || !entry.targets?.includes(config.target)) {
11245
+ throw unknownTemplateError(
11246
+ options.template,
11247
+ config.usageCommand,
11248
+ config.target
11249
+ );
11250
+ }
11251
+ resolvedTemplate = entry;
11252
+ }
11253
+ const extraDetails = [
11254
+ `Selected design system: ${resolvedDesignSystem ? `${resolvedDesignSystem.id} (${resolvedDesignSystem.name})` : "agent decides"}`,
11255
+ `Selected template: ${resolvedTemplate ? `${resolvedTemplate.id} (${resolvedTemplate.name})` : "agent decides"}`
11256
+ ];
11025
11257
  const packet = createHtmlArtifactAuthoringPacket({
11026
11258
  kind: toGenerationTarget(config.target),
11027
11259
  prompt,
11028
11260
  slugSource: options.title,
11029
11261
  site: options.site,
11030
- details: config.details(options),
11262
+ details: [...config.details(options), ...extraDetails],
11031
11263
  artifactRules: config.artifactRules
11032
11264
  });
11033
11265
  if (options.json) {
@@ -11141,6 +11373,7 @@ init_esm_shims();
11141
11373
  // src/commands/zero/shared/presentation-generate.ts
11142
11374
  init_esm_shims();
11143
11375
  var PRESENTATION_MAX_IMAGES = 8;
11376
+ var PRESENTATION_TARGET = "presentation";
11144
11377
  function parseSlideCount(value) {
11145
11378
  const slideCount = Number(value);
11146
11379
  if (!Number.isInteger(slideCount)) {
@@ -11160,6 +11393,32 @@ function parseImageCount(value) {
11160
11393
  }
11161
11394
  return imageCount;
11162
11395
  }
11396
+ function unknownDesignSystemError2(id, usageCommand) {
11397
+ const designSystems = listDesignSystems();
11398
+ const message = [
11399
+ `Unknown design system: ${id}`,
11400
+ "",
11401
+ "Available design systems:",
11402
+ formatRegistryListing(designSystems, "design systems"),
11403
+ "",
11404
+ `Example:`,
11405
+ ` ${usageCommand} --design-system ${designSystems[0]?.id ?? "<design-system-id>"} --prompt "..."`
11406
+ ].join("\n");
11407
+ return new Error(message);
11408
+ }
11409
+ function unknownTemplateError2(id, usageCommand, target) {
11410
+ const templates = listTemplates(PRESENTATION_TARGET);
11411
+ const message = [
11412
+ `Unknown template for ${target}: ${id}`,
11413
+ "",
11414
+ `Available templates for ${target}:`,
11415
+ formatRegistryListing(templates, `${target} templates`),
11416
+ "",
11417
+ `Example:`,
11418
+ ` ${usageCommand} --template ${templates[0]?.id ?? "<template-id>"} --prompt "..."`
11419
+ ].join("\n");
11420
+ return new Error(message);
11421
+ }
11163
11422
  function createPresentationGenerateCommand(config) {
11164
11423
  return new Command().name(config.name).description("Generate an HTML presentation from a prompt").option(
11165
11424
  "--prompt <text>",
@@ -11181,9 +11440,16 @@ function createPresentationGenerateCommand(config) {
11181
11440
  ).option(
11182
11441
  "--theme <theme>",
11183
11442
  "Theme: editorial supports ink, coral, forest; swiss supports ikb, lemon, lime, mono"
11184
- ).option("--audience <text>", "Audience context").option("--title <text>", "Requested deck title").option("--json", "Print metadata as JSON").addHelpText(
11185
- "after",
11186
- `
11443
+ ).option("--audience <text>", "Audience context").option("--title <text>", "Requested deck title").option(
11444
+ "--design-system <id>",
11445
+ "Design system id from the registry (see Design Systems below). Accepts either 'apple' or 'design-system:apple'."
11446
+ ).option(
11447
+ "--template <id>",
11448
+ "Template id from the registry, scoped to presentation (see Templates below). Accepts either 'html-ppt-pitch-deck' or 'template:html-ppt-pitch-deck'."
11449
+ ).option("--json", "Print metadata as JSON").addHelpText("after", () => {
11450
+ const designSystems = listDesignSystems();
11451
+ const templates = listTemplates(PRESENTATION_TARGET);
11452
+ return `
11187
11453
  Examples:
11188
11454
  ${config.examples}
11189
11455
 
@@ -11192,8 +11458,14 @@ Output:
11192
11458
 
11193
11459
  Notes:
11194
11460
  - Authenticates via ZERO_TOKEN
11195
- - The agent authors the HTML presentation artifact and hosts it with zero host`
11196
- ).action(
11461
+ - The agent authors the HTML presentation artifact and hosts it with zero host
11462
+
11463
+ Design Systems:
11464
+ ${formatRegistryListing(designSystems, "design systems")}
11465
+
11466
+ Templates (presentation):
11467
+ ${formatRegistryListing(templates, "presentation templates")}`;
11468
+ }).action(
11197
11469
  withErrorHandler(async (options) => {
11198
11470
  const dispatch = await dispatchGenerate({
11199
11471
  generationType: config.generationType,
@@ -11204,6 +11476,37 @@ Notes:
11204
11476
  });
11205
11477
  if (dispatch.outcome === "handled") return;
11206
11478
  const prompt = dispatch.prompt;
11479
+ let resolvedDesignSystem;
11480
+ if (options.designSystem !== void 0) {
11481
+ const canonical = canonicalizeRegistryId(
11482
+ "design-system",
11483
+ options.designSystem
11484
+ );
11485
+ const entry = findDesignSystem(canonical);
11486
+ if (!entry) {
11487
+ throw unknownDesignSystemError2(
11488
+ options.designSystem,
11489
+ config.usageCommand
11490
+ );
11491
+ }
11492
+ resolvedDesignSystem = entry;
11493
+ }
11494
+ let resolvedTemplate;
11495
+ if (options.template !== void 0) {
11496
+ const canonical = canonicalizeRegistryId(
11497
+ "template",
11498
+ options.template
11499
+ );
11500
+ const entry = findTemplate(canonical);
11501
+ if (!entry || !entry.targets?.includes(PRESENTATION_TARGET)) {
11502
+ throw unknownTemplateError2(
11503
+ options.template,
11504
+ config.usageCommand,
11505
+ PRESENTATION_TARGET
11506
+ );
11507
+ }
11508
+ resolvedTemplate = entry;
11509
+ }
11207
11510
  const packet = createHtmlArtifactAuthoringPacket({
11208
11511
  kind: "presentation",
11209
11512
  prompt,
@@ -11215,7 +11518,9 @@ Notes:
11215
11518
  `Image model preference if visuals are generated separately: ${options.imageModel ?? "default"}`,
11216
11519
  `Theme: ${options.theme ?? "agent decides from style"}`,
11217
11520
  `Audience: ${options.audience ?? "not specified"}`,
11218
- `Requested deck title: ${options.title ?? "not specified"}`
11521
+ `Requested deck title: ${options.title ?? "not specified"}`,
11522
+ `Selected design system: ${resolvedDesignSystem ? `${resolvedDesignSystem.id} (${resolvedDesignSystem.name})` : "agent decides"}`,
11523
+ `Selected template: ${resolvedTemplate ? `${resolvedTemplate.id} (${resolvedTemplate.name})` : "agent decides"}`
11219
11524
  ],
11220
11525
  artifactRules: [
11221
11526
  "Think like a presentation designer, not a web page designer.",
@@ -11567,15 +11872,19 @@ var videoCommand = createVideoGenerateCommand({
11567
11872
 
11568
11873
  // src/commands/zero/generate/website.ts
11569
11874
  init_esm_shims();
11570
- var WEBSITE_TEMPLATES = ["auto", "launch", "profile"];
11875
+ var WEBSITE_TEMPLATE_DIRECTIONS = ["auto", "launch", "profile"];
11571
11876
  var WEBSITE_MAX_IMAGES = 3;
11572
- function parseTemplate(value) {
11573
- if (WEBSITE_TEMPLATES.some((template) => {
11574
- return template === value;
11877
+ var WEBSITE_TARGET = "website";
11878
+ var WEBSITE_USAGE_COMMAND = "zero generate website";
11879
+ function parseTemplateDirection(value) {
11880
+ if (WEBSITE_TEMPLATE_DIRECTIONS.some((direction) => {
11881
+ return direction === value;
11575
11882
  })) {
11576
11883
  return value;
11577
11884
  }
11578
- throw new InvalidArgumentError("template must be auto, launch, or profile");
11885
+ throw new InvalidArgumentError(
11886
+ "template-direction must be auto, launch, or profile"
11887
+ );
11579
11888
  }
11580
11889
  function parseImageCount2(value) {
11581
11890
  const imageCount = Number(value);
@@ -11589,6 +11898,32 @@ function parseImageCount2(value) {
11589
11898
  }
11590
11899
  return imageCount;
11591
11900
  }
11901
+ function unknownDesignSystemError3(id) {
11902
+ const designSystems = listDesignSystems();
11903
+ const message = [
11904
+ `Unknown design system: ${id}`,
11905
+ "",
11906
+ "Available design systems:",
11907
+ formatRegistryListing(designSystems, "design systems"),
11908
+ "",
11909
+ `Example:`,
11910
+ ` ${WEBSITE_USAGE_COMMAND} --design-system ${designSystems[0]?.id ?? "<design-system-id>"} --prompt "..."`
11911
+ ].join("\n");
11912
+ return new Error(message);
11913
+ }
11914
+ function unknownTemplateError3(id) {
11915
+ const templates = listTemplates(WEBSITE_TARGET);
11916
+ const message = [
11917
+ `Unknown template for ${WEBSITE_TARGET}: ${id}`,
11918
+ "",
11919
+ `Available templates for ${WEBSITE_TARGET}:`,
11920
+ formatRegistryListing(templates, `${WEBSITE_TARGET} templates`),
11921
+ "",
11922
+ `Example:`,
11923
+ ` ${WEBSITE_USAGE_COMMAND} --template ${templates[0]?.id ?? "<template-id>"} --prompt "..."`
11924
+ ].join("\n");
11925
+ return new Error(message);
11926
+ }
11592
11927
  var websiteCommand = new Command().name("website").description("Prepare website authoring instructions from a prompt").option("--prompt <text>", "Website prompt; can also be piped via stdin").option(
11593
11928
  "--provider <name>",
11594
11929
  "Provider: 'built-in' to run vm0's pipeline, or a connector name to get its skill-invocation guidance"
@@ -11596,10 +11931,16 @@ var websiteCommand = new Command().name("website").description("Prepare website
11596
11931
  "--all",
11597
11932
  "When listing providers (no --prompt given), include unavailable or not-yet-authorized connectors"
11598
11933
  ).option(
11599
- "--template <template>",
11600
- "Template: auto, launch, or profile",
11601
- parseTemplate,
11934
+ "--template-direction <direction>",
11935
+ "High-level website direction: auto, launch, or profile",
11936
+ parseTemplateDirection,
11602
11937
  "auto"
11938
+ ).option(
11939
+ "--template <id>",
11940
+ "Template id from the registry, scoped to website (see Templates below). Accepts either short id or full 'template:<id>'."
11941
+ ).option(
11942
+ "--design-system <id>",
11943
+ "Design system id from the registry (see Design Systems below). Accepts either 'apple' or 'design-system:apple'."
11603
11944
  ).option(
11604
11945
  "--images <count>",
11605
11946
  `Generated website image count: 0-${WEBSITE_MAX_IMAGES}`,
@@ -11608,12 +11949,15 @@ var websiteCommand = new Command().name("website").description("Prepare website
11608
11949
  ).option(
11609
11950
  "--image-model <model>",
11610
11951
  "Image model for generated visuals (default: gpt-image-1): gpt-image-2, gpt-image-1.5, gpt-image-1, gpt-image-1-mini, flux-pro-1.1, flux-pro-1.1-ultra, qwen-image, or seedream4"
11611
- ).option("--site <slug>", "Hosted site slug; defaults to the generated name").option("--title <text>", "Requested site title or name").option("--audience <text>", "Audience context").option("--json", "Print metadata as JSON").addHelpText(
11612
- "after",
11613
- `
11952
+ ).option("--site <slug>", "Hosted site slug; defaults to the generated name").option("--title <text>", "Requested site title or name").option("--audience <text>", "Audience context").option("--json", "Print metadata as JSON").addHelpText("after", () => {
11953
+ const designSystems = listDesignSystems();
11954
+ const templates = listTemplates(WEBSITE_TARGET);
11955
+ return `
11614
11956
  Examples:
11615
11957
  Generate site: zero generate website --prompt "A launch site for a developer observability tool"
11616
- Pick template: zero generate website --template profile --images 2 --image-model gpt-image-1.5 --prompt "Portfolio for a robotics photographer"
11958
+ Pick direction: zero generate website --template-direction profile --images 2 --image-model gpt-image-1.5 --prompt "Portfolio for a robotics photographer"
11959
+ Pick template: zero generate website --template saas-landing --prompt "Launch site for a billing API"
11960
+ Pick design system: zero generate website --design-system stripe --prompt "Pricing page for a SaaS"
11617
11961
  Stable hosted slug: zero generate website --site api-migration-demo --prompt "An internal migration microsite"
11618
11962
  Pipe prompt: cat brief.txt | zero generate website
11619
11963
  List providers: zero generate website
@@ -11624,8 +11968,14 @@ Output:
11624
11968
 
11625
11969
  Notes:
11626
11970
  - Authenticates via ZERO_TOKEN
11627
- - The agent authors the HTML artifact and hosts it with zero host`
11628
- ).action(
11971
+ - The agent authors the HTML artifact and hosts it with zero host
11972
+
11973
+ Design Systems:
11974
+ ${formatRegistryListing(designSystems, "design systems")}
11975
+
11976
+ Templates (website):
11977
+ ${formatRegistryListing(templates, "website templates")}`;
11978
+ }).action(
11629
11979
  withErrorHandler(async (options) => {
11630
11980
  const dispatch = await dispatchGenerate({
11631
11981
  generationType: "website",
@@ -11636,17 +11986,40 @@ Notes:
11636
11986
  });
11637
11987
  if (dispatch.outcome === "handled") return;
11638
11988
  const prompt = dispatch.prompt;
11989
+ let resolvedDesignSystem;
11990
+ if (options.designSystem !== void 0) {
11991
+ const canonical = canonicalizeRegistryId(
11992
+ "design-system",
11993
+ options.designSystem
11994
+ );
11995
+ const entry = findDesignSystem(canonical);
11996
+ if (!entry) {
11997
+ throw unknownDesignSystemError3(options.designSystem);
11998
+ }
11999
+ resolvedDesignSystem = entry;
12000
+ }
12001
+ let resolvedTemplate;
12002
+ if (options.template !== void 0) {
12003
+ const canonical = canonicalizeRegistryId("template", options.template);
12004
+ const entry = findTemplate(canonical);
12005
+ if (!entry || !entry.targets?.includes(WEBSITE_TARGET)) {
12006
+ throw unknownTemplateError3(options.template);
12007
+ }
12008
+ resolvedTemplate = entry;
12009
+ }
11639
12010
  const packet = createHtmlArtifactAuthoringPacket({
11640
12011
  kind: "website",
11641
12012
  prompt,
11642
12013
  slugSource: options.title,
11643
12014
  site: options.site,
11644
12015
  details: [
11645
- `Template direction: ${options.template}`,
12016
+ `Template direction: ${options.templateDirection}`,
11646
12017
  `Suggested generated visual count: ${options.images}`,
11647
12018
  `Image model preference if visuals are generated separately: ${options.imageModel ?? "default"}`,
11648
12019
  `Requested title/site name: ${options.title ?? "not specified"}`,
11649
- `Audience: ${options.audience ?? "not specified"}`
12020
+ `Audience: ${options.audience ?? "not specified"}`,
12021
+ `Selected design system: ${resolvedDesignSystem ? `${resolvedDesignSystem.id} (${resolvedDesignSystem.name})` : "agent decides"}`,
12022
+ `Selected template: ${resolvedTemplate ? `${resolvedTemplate.id} (${resolvedTemplate.name})` : "agent decides"}`
11650
12023
  ],
11651
12024
  artifactRules: [
11652
12025
  "Build the usable website as the first screen; do not output a landing-page plan.",
@@ -12652,7 +13025,7 @@ function registerZeroCommands(prog, commands) {
12652
13025
  var program = new Command();
12653
13026
  program.name("zero").description(
12654
13027
  "Zero CLI \u2014 interact with the zero platform from inside the sandbox"
12655
- ).version("9.174.3").addHelpText("after", () => {
13028
+ ).version("9.175.0").addHelpText("after", () => {
12656
13029
  return buildZeroHelpText();
12657
13030
  });
12658
13031
  if (process.argv[1]?.endsWith("zero.js") || process.argv[1]?.endsWith("zero.ts") || process.argv[1]?.endsWith("zero")) {