rivet-design 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/mcp/agent-variants/SessionStore.d.ts +63 -2
  2. package/dist/mcp/agent-variants/SessionStore.d.ts.map +1 -1
  3. package/dist/mcp/agent-variants/SessionStore.js +331 -71
  4. package/dist/mcp/agent-variants/SessionStore.js.map +1 -1
  5. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +197 -8
  6. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  7. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +805 -46
  8. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  9. package/dist/mcp/agent-variants/contracts.d.ts +1101 -9
  10. package/dist/mcp/agent-variants/contracts.d.ts.map +1 -1
  11. package/dist/mcp/agent-variants/contracts.js +131 -5
  12. package/dist/mcp/agent-variants/contracts.js.map +1 -1
  13. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts +205 -0
  14. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts.map +1 -0
  15. package/dist/mcp/agent-variants/createZeroToOneTool.js +295 -0
  16. package/dist/mcp/agent-variants/createZeroToOneTool.js.map +1 -0
  17. package/dist/mcp/agent-variants/designContextStore.d.ts +160 -0
  18. package/dist/mcp/agent-variants/designContextStore.d.ts.map +1 -0
  19. package/dist/mcp/agent-variants/designContextStore.js +295 -0
  20. package/dist/mcp/agent-variants/designContextStore.js.map +1 -0
  21. package/dist/mcp/agent-variants/elementRefToTarget.d.ts +21 -0
  22. package/dist/mcp/agent-variants/elementRefToTarget.d.ts.map +1 -0
  23. package/dist/mcp/agent-variants/elementRefToTarget.js +47 -0
  24. package/dist/mcp/agent-variants/elementRefToTarget.js.map +1 -0
  25. package/dist/mcp/agent-variants/errors.d.ts +1 -1
  26. package/dist/mcp/agent-variants/errors.d.ts.map +1 -1
  27. package/dist/mcp/agent-variants/errors.js +6 -0
  28. package/dist/mcp/agent-variants/errors.js.map +1 -1
  29. package/dist/mcp/agent-variants/index.d.ts +4 -1
  30. package/dist/mcp/agent-variants/index.d.ts.map +1 -1
  31. package/dist/mcp/agent-variants/index.js +7 -1
  32. package/dist/mcp/agent-variants/index.js.map +1 -1
  33. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts +430 -0
  34. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts.map +1 -0
  35. package/dist/mcp/agent-variants/inspirationDesignContext.js +2379 -0
  36. package/dist/mcp/agent-variants/inspirationDesignContext.js.map +1 -0
  37. package/dist/mcp/agent-variants/pendingChangesAdapter.d.ts.map +1 -1
  38. package/dist/mcp/agent-variants/pendingChangesAdapter.js +10 -7
  39. package/dist/mcp/agent-variants/pendingChangesAdapter.js.map +1 -1
  40. package/dist/mcp/agent-variants/sourceContext.d.ts +7 -0
  41. package/dist/mcp/agent-variants/sourceContext.d.ts.map +1 -0
  42. package/dist/mcp/agent-variants/sourceContext.js +158 -0
  43. package/dist/mcp/agent-variants/sourceContext.js.map +1 -0
  44. package/dist/mcp/agent-variants/tools.d.ts +14 -0
  45. package/dist/mcp/agent-variants/tools.d.ts.map +1 -1
  46. package/dist/mcp/agent-variants/tools.js +330 -15
  47. package/dist/mcp/agent-variants/tools.js.map +1 -1
  48. package/dist/mcp/changeBatchClassification.d.ts +30 -0
  49. package/dist/mcp/changeBatchClassification.d.ts.map +1 -0
  50. package/dist/mcp/changeBatchClassification.js +65 -0
  51. package/dist/mcp/changeBatchClassification.js.map +1 -0
  52. package/dist/mcp/server.d.ts.map +1 -1
  53. package/dist/mcp/server.js +237 -39
  54. package/dist/mcp/server.js.map +1 -1
  55. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  56. package/dist/proxy-middleware/proxy-config.js +1 -15
  57. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  58. package/dist/routes/agentVariants.d.ts +3 -1
  59. package/dist/routes/agentVariants.d.ts.map +1 -1
  60. package/dist/routes/agentVariants.js +131 -13
  61. package/dist/routes/agentVariants.js.map +1 -1
  62. package/dist/routes/mcp.d.ts +7 -1
  63. package/dist/routes/mcp.d.ts.map +1 -1
  64. package/dist/routes/mcp.js +139 -16
  65. package/dist/routes/mcp.js.map +1 -1
  66. package/dist/server.d.ts.map +1 -1
  67. package/dist/server.js +2 -2
  68. package/dist/server.js.map +1 -1
  69. package/dist/services/SessionBridgeService.d.ts +22 -0
  70. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  71. package/dist/services/SessionBridgeService.js +61 -0
  72. package/dist/services/SessionBridgeService.js.map +1 -1
  73. package/dist/services/TelemetryService.d.ts +121 -0
  74. package/dist/services/TelemetryService.d.ts.map +1 -1
  75. package/dist/services/TelemetryService.js +155 -0
  76. package/dist/services/TelemetryService.js.map +1 -1
  77. package/dist/services/WorktreeManager.d.ts +57 -5
  78. package/dist/services/WorktreeManager.d.ts.map +1 -1
  79. package/dist/services/WorktreeManager.js +205 -13
  80. package/dist/services/WorktreeManager.js.map +1 -1
  81. package/dist/services/templates/designCatalog.d.ts +27 -0
  82. package/dist/services/templates/designCatalog.d.ts.map +1 -0
  83. package/dist/services/templates/designCatalog.js +141 -0
  84. package/dist/services/templates/designCatalog.js.map +1 -0
  85. package/dist/services/templates/designmd/airbnb.md +545 -0
  86. package/dist/services/templates/designmd/airtable.md +554 -0
  87. package/dist/services/templates/designmd/apple.md +562 -0
  88. package/dist/services/templates/designmd/binance.md +634 -0
  89. package/dist/services/templates/designmd/bmw-m.md +503 -0
  90. package/dist/services/templates/designmd/bmw.md +544 -0
  91. package/dist/services/templates/designmd/bugatti.md +454 -0
  92. package/dist/services/templates/designmd/cal.md +542 -0
  93. package/dist/services/templates/designmd/claude.md +589 -0
  94. package/dist/services/templates/designmd/clay.md +541 -0
  95. package/dist/services/templates/designmd/cohere.md +451 -0
  96. package/dist/services/templates/designmd/cursor.md +537 -0
  97. package/dist/services/templates/designmd/expo.md +526 -0
  98. package/dist/services/templates/designmd/figma.md +578 -0
  99. package/dist/services/templates/designmd/framer.md +544 -0
  100. package/dist/services/templates/designmd/hp.md +670 -0
  101. package/dist/services/templates/designmd/linear.app.md +548 -0
  102. package/dist/services/templates/designmd/mintlify.md +852 -0
  103. package/dist/services/templates/designmd/miro.md +825 -0
  104. package/dist/services/templates/designmd/notion.md +821 -0
  105. package/dist/services/templates/designmd/raycast.md +669 -0
  106. package/dist/services/templates/designmd/resend.md +585 -0
  107. package/dist/services/templates/designmd/sentry.md +262 -0
  108. package/dist/services/templates/designmd/shopify.md +350 -0
  109. package/dist/services/templates/designmd/spotify.md +246 -0
  110. package/dist/services/templates/designmd/stripe.md +322 -0
  111. package/dist/services/templates/designmd/supabase.md +255 -0
  112. package/dist/services/templates/designmd/superhuman.md +252 -0
  113. package/dist/services/templates/designmd/uber.md +295 -0
  114. package/dist/services/templates/designmd/vercel.md +310 -0
  115. package/dist/services/templates/viteReactTs.d.ts +42 -0
  116. package/dist/services/templates/viteReactTs.d.ts.map +1 -0
  117. package/dist/services/templates/viteReactTs.js +267 -0
  118. package/dist/services/templates/viteReactTs.js.map +1 -0
  119. package/dist/types/change-request-types.d.ts +15 -3
  120. package/dist/types/change-request-types.d.ts.map +1 -1
  121. package/dist/utils/skills/claude-skill.d.ts +2 -2
  122. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  123. package/dist/utils/skills/claude-skill.js +19 -98
  124. package/dist/utils/skills/claude-skill.js.map +1 -1
  125. package/dist/utils/skills/cursor-rules.d.ts +2 -2
  126. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  127. package/dist/utils/skills/cursor-rules.js +15 -80
  128. package/dist/utils/skills/cursor-rules.js.map +1 -1
  129. package/dist/utils/skills/shared-variants-protocol.d.ts +23 -0
  130. package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -0
  131. package/dist/utils/skills/shared-variants-protocol.js +131 -0
  132. package/dist/utils/skills/shared-variants-protocol.js.map +1 -0
  133. package/package.json +4 -3
  134. package/src/ui/dist/assets/main-C9jfEp80.css +1 -0
  135. package/src/ui/dist/assets/{main-AsPCtLsx.js → main-DejhsBWR.js} +93 -93
  136. package/src/ui/dist/index.html +2 -2
  137. package/src/ui/dist/assets/main-BzmseUDd.css +0 -1
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadDesignSystemMarkdown = exports.getDesignSystemBySlug = exports.rankDesignSystemsForPrompt = exports.DESIGN_SYSTEMS = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ /**
10
+ * Curated catalog of design-system inspirations bundled as DESIGN.md files
11
+ * under `src/services/templates/designmd/`. The MCP agent-variants fresh-
12
+ * project flow ranks these against the user's prompt and pins one per variant
13
+ * slot; the matching DESIGN.md is copied into each scaffolded worktree so each
14
+ * variant has a concrete visual direction.
15
+ *
16
+ * Source of truth for both the MCP server and the desktop "create app" flow.
17
+ * Desktop re-exports from this module via `desktop/main/CreateAppCatalog.ts`.
18
+ */
19
+ const WORD_SPLIT_RE = /[^a-z0-9]+/i;
20
+ const MARKDOWN_SHAPE_RE = /^(#|---|\*\*|[A-Za-z0-9][^\n]*\n#{1,3}\s)/;
21
+ // Resolved relative to this file at runtime. The `designmd/` directory must
22
+ // sit next to the compiled module in `dist/` as well — `tsc` does not copy
23
+ // non-`.ts` files, so the project's build script has a dedicated
24
+ // `build:assets` step that mirrors `src/services/templates/designmd/*.md`
25
+ // into `dist/services/templates/designmd/`. Without that mirror the catalog
26
+ // silently loads empty and `createZeroToOneTool` produces empty slugs.
27
+ const designMdDir = path_1.default.resolve(__dirname, 'designmd');
28
+ const DESIGN_MD_BY_SLUG = new Map();
29
+ const toDisplayName = (slug) => slug
30
+ .replace(/[._-]+/g, ' ')
31
+ .split(/\s+/)
32
+ .filter(Boolean)
33
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
34
+ .join(' ');
35
+ const stripFrontmatter = (markdown) => {
36
+ if (!markdown.startsWith('---\n')) {
37
+ return markdown;
38
+ }
39
+ const frontmatterEnd = markdown.indexOf('\n---\n', 4);
40
+ if (frontmatterEnd === -1) {
41
+ return markdown;
42
+ }
43
+ return markdown.slice(frontmatterEnd + 5);
44
+ };
45
+ const parseDescription = (markdown) => {
46
+ const markdownBody = stripFrontmatter(markdown).trim();
47
+ const firstParagraph = markdownBody.split(/\n\s*\n/)[0] ?? '';
48
+ return firstParagraph.replace(/\s+/g, ' ').trim().slice(0, 220);
49
+ };
50
+ const buildKeywords = (slug) => {
51
+ const slugWords = slug
52
+ .toLowerCase()
53
+ .split(/[^a-z0-9]+/)
54
+ .filter(Boolean);
55
+ return Array.from(new Set([slug.toLowerCase(), ...slugWords]));
56
+ };
57
+ const loadDesignSystems = () => {
58
+ let entries;
59
+ try {
60
+ entries = fs_1.default.readdirSync(designMdDir, { withFileTypes: true });
61
+ }
62
+ catch {
63
+ return [];
64
+ }
65
+ // Defensive: if the test or runtime mock returns a non-array, skip
66
+ // catalog initialization rather than crashing module load.
67
+ if (!Array.isArray(entries))
68
+ return [];
69
+ return entries
70
+ .filter((entry) => entry.isFile() && entry.name.endsWith('.md'))
71
+ .map((entry) => entry.name)
72
+ .sort((first, second) => first.localeCompare(second))
73
+ .map((filename) => {
74
+ const slug = filename.slice(0, -3);
75
+ const markdownPath = path_1.default.resolve(designMdDir, filename);
76
+ const markdown = fs_1.default.readFileSync(markdownPath, 'utf8').trim();
77
+ if (!markdown) {
78
+ throw new Error(`Empty DESIGN.md for slug "${slug}"`);
79
+ }
80
+ if (!MARKDOWN_SHAPE_RE.test(markdown)) {
81
+ throw new Error(`Invalid markdown shape for slug "${slug}"`);
82
+ }
83
+ DESIGN_MD_BY_SLUG.set(slug, markdown);
84
+ const name = toDisplayName(slug);
85
+ const description = parseDescription(markdown);
86
+ return {
87
+ slug,
88
+ name,
89
+ category: 'Design System',
90
+ description: description || `Design system for ${name}`,
91
+ keywords: buildKeywords(slug),
92
+ externalUrl: `https://getdesign.md/${slug}/design-md`,
93
+ };
94
+ });
95
+ };
96
+ exports.DESIGN_SYSTEMS = loadDesignSystems();
97
+ const normalizeWords = (text) => text
98
+ .toLowerCase()
99
+ .split(WORD_SPLIT_RE)
100
+ .map((word) => word.trim())
101
+ .filter((word) => word.length > 1);
102
+ const scoreDesignSystem = (promptWords, designSystem) => {
103
+ const textWords = normalizeWords(`${designSystem.name} ${designSystem.category} ${designSystem.description}`);
104
+ return textWords.reduce((score, word) => (promptWords.has(word) ? score + 1 : score), 0);
105
+ };
106
+ /**
107
+ * Rank bundled DESIGN.md inspirations against a user prompt. Deterministic for
108
+ * a given prompt: ties broken by catalog index (alphabetical slug order).
109
+ */
110
+ const rankDesignSystemsForPrompt = (prompt, limit = 3) => {
111
+ const promptWords = new Set(normalizeWords(prompt));
112
+ return exports.DESIGN_SYSTEMS.map((designSystem, index) => ({
113
+ ...designSystem,
114
+ score: scoreDesignSystem(promptWords, designSystem),
115
+ index,
116
+ }))
117
+ .sort((a, b) => {
118
+ if (b.score !== a.score)
119
+ return b.score - a.score;
120
+ return a.index - b.index;
121
+ })
122
+ .slice(0, limit)
123
+ .map(({ index: _index, ...designSystem }) => designSystem);
124
+ };
125
+ exports.rankDesignSystemsForPrompt = rankDesignSystemsForPrompt;
126
+ /**
127
+ * Resolve a catalog entry by slug. Returns null if the slug is unknown.
128
+ */
129
+ const getDesignSystemBySlug = (slug) => {
130
+ return exports.DESIGN_SYSTEMS.find((entry) => entry.slug === slug) ?? null;
131
+ };
132
+ exports.getDesignSystemBySlug = getDesignSystemBySlug;
133
+ /**
134
+ * Read the bundled DESIGN.md markdown for a slug. Returns null when the slug
135
+ * is unknown.
136
+ */
137
+ const loadDesignSystemMarkdown = (slug) => {
138
+ return DESIGN_MD_BY_SLUG.get(slug) ?? null;
139
+ };
140
+ exports.loadDesignSystemMarkdown = loadDesignSystemMarkdown;
141
+ //# sourceMappingURL=designCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designCatalog.js","sourceRoot":"","sources":["../../../src/services/templates/designCatalog.ts"],"names":[],"mappings":"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"}