rivet-design 0.9.1 → 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 (138) 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-DejhsBWR.js +382 -0
  136. package/src/ui/dist/index.html +2 -2
  137. package/src/ui/dist/assets/main-Bv0LuxKz.js +0 -382
  138. package/src/ui/dist/assets/main-BzmseUDd.css +0 -1
@@ -0,0 +1,295 @@
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.FileDesignContextStore = exports.canReuseCacheEntry = exports.promptRequestsFreshExtraction = exports.confidenceBucketFor = exports.ageBucketFor = exports.cacheKeyForUrl = exports.normalizeCacheUrl = exports.DEFAULT_CONFIDENCE_THRESHOLD = exports.DEFAULT_FRESHNESS_MS = exports.DESIGN_CONTEXT_SCHEMA_VERSION = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const logger_1 = require("../../utils/logger");
12
+ const log = (0, logger_1.createLogger)('DesignContextStore');
13
+ /**
14
+ * Runtime user cache for inspiration-link design context. Persists generated
15
+ * designmd markdown plus safe metadata so future MCP
16
+ * `create_zero_to_one_project` requests with the same web link can reuse
17
+ * prior extraction by default. Treated as runtime user data — never mutates
18
+ * the bundled `src/services/templates/designmd` catalog.
19
+ *
20
+ * Path layout (local filesystem implementation):
21
+ * <directory>/<sha256(normalizedUrl)>.json
22
+ *
23
+ * The default <directory> is `~/.rivet/design-context-cache/`. The store
24
+ * abstraction is interface-first so future hosted/server deployments can
25
+ * provide a durable backend (HTTPS, KV, SQL) without changing the
26
+ * extraction or MCP orchestration logic.
27
+ */
28
+ /**
29
+ * Output/extractor schema version. Bump when the cache entry shape or the
30
+ * generated markdown structure changes incompatibly. Cached entries with a
31
+ * different schema version are not silently reused — they regenerate.
32
+ */
33
+ exports.DESIGN_CONTEXT_SCHEMA_VERSION = '2';
34
+ /**
35
+ * Default freshness window for a cached entry. Entries older than this are
36
+ * marked `stale` and trigger regeneration by default. Tunable per call so
37
+ * tests can exercise the stale branch without sleeping.
38
+ */
39
+ exports.DEFAULT_FRESHNESS_MS = 14 * 24 * 60 * 60 * 1000;
40
+ /**
41
+ * Default confidence threshold below which cached entries are considered
42
+ * low-confidence and trigger regeneration. Mirrors the in-extractor
43
+ * `LOW_SIGNAL_THRESHOLD` so cached and live signals stay aligned.
44
+ */
45
+ exports.DEFAULT_CONFIDENCE_THRESHOLD = 18;
46
+ /**
47
+ * Match prompts that explicitly request fresh/latest/current/regenerated
48
+ * design context for an inspiration link. Matches are evaluated against the
49
+ * raw user prompt — callers MUST keep the prompt out of telemetry payloads.
50
+ *
51
+ * The bare adjectives `fresh`/`latest`/`current` are intentionally NOT
52
+ * matched on their own because they collide with common project-description
53
+ * phrasing (e.g. "build a fresh landing page", "use the latest design
54
+ * patterns", "based on the current site") that does not actually request a
55
+ * cache bypass. They only match when paired with a cache- or
56
+ * extraction-bearing noun. Verbs like `re-extract`, `refresh`, and
57
+ * `bypass cache` are unambiguous on their own.
58
+ */
59
+ const CACHE_BYPASS_NOUNS = 'extract(?:ion)?|fetch|context|data|copy|signals?|markdown|version|run|pull|scrape|grab|snapshot|content|html|cache|design\\s+context';
60
+ const FRESH_INTENT_PATTERNS = [
61
+ new RegExp(`\\bfresh(?:est)?\\s+(?:${CACHE_BYPASS_NOUNS})\\b`, 'i'),
62
+ new RegExp(`\\blatest\\s+(?:${CACHE_BYPASS_NOUNS})\\b`, 'i'),
63
+ new RegExp(`\\bcurrent\\s+(?:${CACHE_BYPASS_NOUNS})\\b`, 'i'),
64
+ /\bup[-\s]?to[-\s]?date\s+(?:extract(?:ion)?|fetch|context|data|copy|signals?|markdown|version|cache|design\s+context)\b/i,
65
+ /\bre[-\s]?extract\b/i,
66
+ /\bre[-\s]?fetch\b/i,
67
+ /\bre[-\s]?generate\b/i,
68
+ /\brefresh\b/i,
69
+ /\bbypass\s+cache\b/i,
70
+ /\bno[-\s]?cache\b/i,
71
+ ];
72
+ /**
73
+ * Normalize an HTTP/HTTPS URL for cache keying. Lowercases scheme and host,
74
+ * strips default ports and fragments, and preserves meaningful path/query
75
+ * so two pages with the same host but different paths or query strings
76
+ * keep separate cache entries. Returns `undefined` for inputs that are not
77
+ * parseable HTTP/HTTPS URLs.
78
+ */
79
+ const normalizeCacheUrl = (rawUrl) => {
80
+ const trimmed = rawUrl.trim();
81
+ if (!trimmed)
82
+ return undefined;
83
+ let parsed;
84
+ try {
85
+ parsed = new URL(trimmed);
86
+ }
87
+ catch {
88
+ return undefined;
89
+ }
90
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
91
+ return undefined;
92
+ }
93
+ parsed.hostname = parsed.hostname.toLowerCase();
94
+ if ((parsed.protocol === 'http:' && parsed.port === '80') ||
95
+ (parsed.protocol === 'https:' && parsed.port === '443')) {
96
+ parsed.port = '';
97
+ }
98
+ parsed.hash = '';
99
+ return parsed.toString();
100
+ };
101
+ exports.normalizeCacheUrl = normalizeCacheUrl;
102
+ /**
103
+ * Compute a stable cache key from a normalized URL. SHA-256 hashed to hex
104
+ * so the resulting key is filesystem-safe and does not embed proprietary
105
+ * URL content in the filename layer.
106
+ */
107
+ const cacheKeyForUrl = (rawUrl) => {
108
+ const normalized = (0, exports.normalizeCacheUrl)(rawUrl);
109
+ if (!normalized)
110
+ return undefined;
111
+ return crypto_1.default.createHash('sha256').update(normalized).digest('hex');
112
+ };
113
+ exports.cacheKeyForUrl = cacheKeyForUrl;
114
+ /**
115
+ * Coarse age bucket for safe telemetry. Maps a wall-clock age in
116
+ * milliseconds onto a small fixed bucket name so analytics never receive
117
+ * exact timestamps.
118
+ */
119
+ const ageBucketFor = (ageMs) => {
120
+ if (ageMs < 60 * 60 * 1000)
121
+ return 'lt_1h';
122
+ if (ageMs < 24 * 60 * 60 * 1000)
123
+ return '1h_24h';
124
+ if (ageMs < 7 * 24 * 60 * 60 * 1000)
125
+ return '1d_7d';
126
+ if (ageMs < 30 * 24 * 60 * 60 * 1000)
127
+ return '7d_30d';
128
+ return 'gt_30d';
129
+ };
130
+ exports.ageBucketFor = ageBucketFor;
131
+ /**
132
+ * Coarse confidence bucket for safe telemetry. Three buckets keyed off the
133
+ * extractor signal density score so reuse outcomes can be aggregated
134
+ * without leaking specific confidence values.
135
+ */
136
+ const confidenceBucketFor = (confidence) => {
137
+ if (confidence < exports.DEFAULT_CONFIDENCE_THRESHOLD)
138
+ return 'low';
139
+ if (confidence < 60)
140
+ return 'medium';
141
+ return 'high';
142
+ };
143
+ exports.confidenceBucketFor = confidenceBucketFor;
144
+ /**
145
+ * Return true when the user prompt explicitly asks for fresh/latest/
146
+ * current design context. Used by the MCP flow to bypass cache reuse even
147
+ * when a compatible entry exists.
148
+ */
149
+ const promptRequestsFreshExtraction = (prompt) => FRESH_INTENT_PATTERNS.some((pattern) => pattern.test(prompt));
150
+ exports.promptRequestsFreshExtraction = promptRequestsFreshExtraction;
151
+ /**
152
+ * Decide whether a cached entry is reusable for a request, factoring in
153
+ * extractor/schema version, freshness window, confidence threshold, and
154
+ * any explicit user request for fresh extraction. Callers MUST honour the
155
+ * decision — the store itself never silently reuses incompatible entries.
156
+ */
157
+ const canReuseCacheEntry = (entry, options) => {
158
+ const now = options.now ?? Date.now();
159
+ const freshnessMs = options.freshnessMs ?? exports.DEFAULT_FRESHNESS_MS;
160
+ const schemaVersion = options.schemaVersion ?? exports.DESIGN_CONTEXT_SCHEMA_VERSION;
161
+ const confidenceThreshold = options.confidenceThreshold ?? exports.DEFAULT_CONFIDENCE_THRESHOLD;
162
+ const ageMs = Math.max(0, now - entry.metadata.createdAtMs);
163
+ const freshness = ageMs <= freshnessMs ? 'fresh' : 'stale';
164
+ if (options.forceRefresh) {
165
+ return { reuse: false, reason: 'forced_refresh', freshness, ageMs };
166
+ }
167
+ if (entry.metadata.schemaVersion !== schemaVersion) {
168
+ return { reuse: false, reason: 'version_mismatch', freshness, ageMs };
169
+ }
170
+ if (freshness === 'stale') {
171
+ return { reuse: false, reason: 'stale', freshness, ageMs };
172
+ }
173
+ if (entry.metadata.confidence < confidenceThreshold) {
174
+ return { reuse: false, reason: 'low_confidence', freshness, ageMs };
175
+ }
176
+ return { reuse: true, freshness, ageMs };
177
+ };
178
+ exports.canReuseCacheEntry = canReuseCacheEntry;
179
+ const ALLOWED_KEY_PATTERN = /^[a-f0-9]{64}$/;
180
+ /**
181
+ * Filesystem-backed `DesignContextStore`. One JSON file per cache key under
182
+ * a per-user cache directory. Safe to delete the entire directory without
183
+ * affecting bundled catalog data or compiled application code.
184
+ *
185
+ * Read/write failures degrade gracefully — get returns undefined on any
186
+ * parse/IO error so the MCP flow falls through to a fresh extraction
187
+ * instead of crashing the user request.
188
+ */
189
+ class FileDesignContextStore {
190
+ directory;
191
+ dirReady = false;
192
+ constructor(options = {}) {
193
+ this.directory =
194
+ options.directory ?? path_1.default.join(os_1.default.homedir(), '.rivet', 'design-context-cache');
195
+ }
196
+ /**
197
+ * Resolve a cache key to its on-disk file path. Rejects keys that do not
198
+ * match the expected sha256 hex shape so a malformed key cannot escape
199
+ * the cache directory.
200
+ */
201
+ resolvePath(cacheKey) {
202
+ if (!ALLOWED_KEY_PATTERN.test(cacheKey))
203
+ return undefined;
204
+ return path_1.default.join(this.directory, `${cacheKey}.json`);
205
+ }
206
+ async get(cacheKey) {
207
+ const target = this.resolvePath(cacheKey);
208
+ if (!target)
209
+ return undefined;
210
+ try {
211
+ const raw = await fs_1.default.promises.readFile(target, 'utf8');
212
+ const parsed = JSON.parse(raw);
213
+ if (!isCacheEntry(parsed)) {
214
+ log.debug(`Discarding malformed cache entry at ${cacheKey}.`);
215
+ return undefined;
216
+ }
217
+ return parsed;
218
+ }
219
+ catch (error) {
220
+ if (error &&
221
+ typeof error === 'object' &&
222
+ 'code' in error &&
223
+ error.code === 'ENOENT') {
224
+ return undefined;
225
+ }
226
+ log.debug(`Failed to read cache entry ${cacheKey}: ${String(error)}`);
227
+ return undefined;
228
+ }
229
+ }
230
+ async put(entry) {
231
+ const target = this.resolvePath(entry.metadata.cacheKey);
232
+ if (!target) {
233
+ log.warn('Refusing to write cache entry with invalid cache key shape.');
234
+ return;
235
+ }
236
+ const tmp = `${target}.${crypto_1.default.randomBytes(4).toString('hex')}.tmp`;
237
+ try {
238
+ if (!this.dirReady) {
239
+ await fs_1.default.promises.mkdir(this.directory, {
240
+ recursive: true,
241
+ mode: 0o700,
242
+ });
243
+ this.dirReady = true;
244
+ }
245
+ await fs_1.default.promises.writeFile(tmp, JSON.stringify(entry), {
246
+ encoding: 'utf8',
247
+ mode: 0o600,
248
+ });
249
+ await fs_1.default.promises.rename(tmp, target);
250
+ }
251
+ catch (error) {
252
+ log.debug(`Failed to write cache entry: ${String(error)}`);
253
+ try {
254
+ await fs_1.default.promises.unlink(tmp);
255
+ }
256
+ catch {
257
+ // best-effort cleanup
258
+ }
259
+ }
260
+ }
261
+ }
262
+ exports.FileDesignContextStore = FileDesignContextStore;
263
+ /**
264
+ * Runtime guard so corrupted or third-party-tampered cache files cannot
265
+ * inject arbitrary fields into the MCP flow.
266
+ */
267
+ const isCacheEntry = (value) => {
268
+ if (!value || typeof value !== 'object')
269
+ return false;
270
+ const record = value;
271
+ const metadata = record.metadata;
272
+ if (!metadata || typeof metadata !== 'object')
273
+ return false;
274
+ if (typeof metadata.cacheKey !== 'string')
275
+ return false;
276
+ if (typeof metadata.schemaVersion !== 'string')
277
+ return false;
278
+ if (typeof metadata.createdAtMs !== 'number')
279
+ return false;
280
+ if (typeof metadata.lastUsedAtMs !== 'number')
281
+ return false;
282
+ if (typeof metadata.confidence !== 'number')
283
+ return false;
284
+ if (!Array.isArray(metadata.warningCodes))
285
+ return false;
286
+ if (typeof record.markdown !== 'string')
287
+ return false;
288
+ if (typeof record.label !== 'string')
289
+ return false;
290
+ const signals = record.signals;
291
+ if (!signals || typeof signals !== 'object')
292
+ return false;
293
+ return true;
294
+ };
295
+ //# sourceMappingURL=designContextStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designContextStore.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/designContextStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ElementRef } from '../../types/change-request-types';
2
+ import type { Target } from './contracts';
3
+ /**
4
+ * Map a comment's ElementRef to a single `propose_variants` target.
5
+ *
6
+ * Rules (first non-empty wins, no concatenation):
7
+ * 1. `rivetId` → `{ type: 'element', ref: '[data-rivet-id="<id>"]' }`
8
+ * 2. `id` (no whitespace) → `{ type: 'element', ref: '#<id>' }`
9
+ * 3. `xpath` → `{ type: 'element', ref: '<xpath>' }`
10
+ * 4. `className` (single dominant token) → `{ type: 'element', ref: '.<token>' }`
11
+ *
12
+ * If `element.filePaths.length === 1`, prefer `{ type: 'file', ref: filePaths[0] }`
13
+ * for refinement scope. The original ElementRef selector should still appear
14
+ * verbatim in the LLM brief prompt — callers are responsible for that.
15
+ *
16
+ * Returns null when none of the four rules produce a usable ref. Callers should
17
+ * surface a structured error to the user rather than calling propose_variants
18
+ * with a fabricated target.
19
+ */
20
+ export declare const elementRefToTarget: (ref: ElementRef) => Target | null;
21
+ //# sourceMappingURL=elementRefToTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementRefToTarget.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/elementRefToTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,UAAU,KAAG,MAAM,GAAG,IA6B7D,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.elementRefToTarget = void 0;
4
+ /**
5
+ * Map a comment's ElementRef to a single `propose_variants` target.
6
+ *
7
+ * Rules (first non-empty wins, no concatenation):
8
+ * 1. `rivetId` → `{ type: 'element', ref: '[data-rivet-id="<id>"]' }`
9
+ * 2. `id` (no whitespace) → `{ type: 'element', ref: '#<id>' }`
10
+ * 3. `xpath` → `{ type: 'element', ref: '<xpath>' }`
11
+ * 4. `className` (single dominant token) → `{ type: 'element', ref: '.<token>' }`
12
+ *
13
+ * If `element.filePaths.length === 1`, prefer `{ type: 'file', ref: filePaths[0] }`
14
+ * for refinement scope. The original ElementRef selector should still appear
15
+ * verbatim in the LLM brief prompt — callers are responsible for that.
16
+ *
17
+ * Returns null when none of the four rules produce a usable ref. Callers should
18
+ * surface a structured error to the user rather than calling propose_variants
19
+ * with a fabricated target.
20
+ */
21
+ const elementRefToTarget = (ref) => {
22
+ if (ref.filePaths.length === 1 && ref.filePaths[0]) {
23
+ return { type: 'file', ref: ref.filePaths[0] };
24
+ }
25
+ const rivetId = ref.rivetId?.trim();
26
+ if (rivetId) {
27
+ return { type: 'element', ref: `[data-rivet-id="${rivetId}"]` };
28
+ }
29
+ const id = ref.id?.trim();
30
+ if (id && !/\s/.test(id)) {
31
+ return { type: 'element', ref: `#${id}` };
32
+ }
33
+ const xpath = ref.xpath?.trim();
34
+ if (xpath) {
35
+ return { type: 'element', ref: xpath };
36
+ }
37
+ const className = ref.className?.trim();
38
+ if (className) {
39
+ const tokens = className.split(/\s+/).filter(Boolean);
40
+ if (tokens.length === 1) {
41
+ return { type: 'element', ref: `.${tokens[0]}` };
42
+ }
43
+ }
44
+ return null;
45
+ };
46
+ exports.elementRefToTarget = elementRefToTarget;
47
+ //# sourceMappingURL=elementRefToTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementRefToTarget.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/elementRefToTarget.ts"],"names":[],"mappings":";;;AAGA;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,kBAAkB,GAAG,CAAC,GAAe,EAAiB,EAAE;IACnE,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,OAAO,IAAI,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA7BW,QAAA,kBAAkB,sBA6B7B"}
@@ -1,4 +1,4 @@
1
- export declare const ERROR_CODES: readonly ["INVALID_STAGE_ACTION", "INVALID_TRANSITION", "MISSING_REQUIRED_INPUT", "STALE_LEASE", "LEASE_EXPIRED", "LEASE_MISMATCH", "PENDING_CHANGE_CONFLICT", "SCHEMA_VALIDATION_FAILED", "RUNTIME_VALIDATION_FAILED", "CLEANUP_TIMEOUT", "DEPENDENCY_FAILED", "SESSION_NOT_FOUND", "WORK_ITEM_NOT_FOUND"];
1
+ export declare const ERROR_CODES: readonly ["INVALID_STAGE_ACTION", "INVALID_TRANSITION", "MISSING_REQUIRED_INPUT", "STALE_LEASE", "LEASE_EXPIRED", "LEASE_MISMATCH", "PENDING_CHANGE_CONFLICT", "SCHEMA_VALIDATION_FAILED", "RUNTIME_VALIDATION_FAILED", "CLEANUP_TIMEOUT", "DEPENDENCY_FAILED", "SESSION_NOT_FOUND", "WORK_ITEM_NOT_FOUND", "UNSUPPORTED_FRAMEWORK", "UNKNOWN_DESIGN_SYSTEM", "DESTINATION_NOT_EMPTY", "SCAFFOLD_FAILED", "SOURCE_CONTEXT_INVALID", "SOURCE_CONTEXT_TOO_LARGE"];
2
2
  export type ErrorCode = (typeof ERROR_CODES)[number];
3
3
  export declare class AgentVariantsError extends Error {
4
4
  readonly code: ErrorCode;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,6SAcd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;CAM7C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,icAoBd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;CAM7C"}
@@ -15,6 +15,12 @@ exports.ERROR_CODES = [
15
15
  'DEPENDENCY_FAILED',
16
16
  'SESSION_NOT_FOUND',
17
17
  'WORK_ITEM_NOT_FOUND',
18
+ 'UNSUPPORTED_FRAMEWORK',
19
+ 'UNKNOWN_DESIGN_SYSTEM',
20
+ 'DESTINATION_NOT_EMPTY',
21
+ 'SCAFFOLD_FAILED',
22
+ 'SOURCE_CONTEXT_INVALID',
23
+ 'SOURCE_CONTEXT_TOO_LARGE',
18
24
  ];
19
25
  class AgentVariantsError extends Error {
20
26
  code;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,sBAAsB;IACtB,oBAAoB;IACpB,wBAAwB;IACxB,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,yBAAyB;IACzB,0BAA0B;IAC1B,2BAA2B;IAC3B,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;CACb,CAAC;AAIX,MAAa,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAY;IAChB,MAAM,CAAS;IAExB,YAAY,IAAe,EAAE,OAAe;QAC1C,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAVD,gDAUC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,sBAAsB;IACtB,oBAAoB;IACpB,wBAAwB;IACxB,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,yBAAyB;IACzB,0BAA0B;IAC1B,2BAA2B;IAC3B,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;CAClB,CAAC;AAIX,MAAa,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAY;IAChB,MAAM,CAAS;IAExB,YAAY,IAAe,EAAE,OAAe;QAC1C,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAVD,gDAUC"}
@@ -6,6 +6,9 @@ export { AgentVariantsOrchestrator } from './WorktreeOrchestrator';
6
6
  export type { OrchestratorDeps, ProjectEnvironment, WorktreeManagerLike, } from './WorktreeOrchestrator';
7
7
  export { registerAgentVariantsTools } from './tools';
8
8
  export type { ToolDeps } from './tools';
9
+ export { registerCreateZeroToOneTool, slugifyPrompt, } from './createZeroToOneTool';
10
+ export type { CreateZeroToOneInput } from './createZeroToOneTool';
9
11
  export { AgentVariantsError, ERROR_CODES, type ErrorCode } from './errors';
10
- export type { Brief, CancelVariantsInput, CancelVariantsOutput, ContinueVariantsInput, ContinueVariantsOutput, LeaseRecord, LeasedWorkItemDescriptor, ProjectContext, ProposeVariantsInput, ProposeVariantsOutput, ReportVariantBriefsInput, ReportVariantBriefsOutput, ReportVariantCompleteInput, ReportVariantCompleteOutput, Stage, Target, TerminalSummary, VariantPickEnvelope, VariantPickPayload, WorkItem, WorkItemKind, WorkItemStatus, } from './contracts';
12
+ export { VARIANT_COUNT_MIN, VARIANT_COUNT_MAX } from './contracts';
13
+ export type { Brief, CancelVariantsInput, CancelVariantsOutput, ContinueVariantsInput, ContinueVariantsOutput, LeaseRecord, LeasedWorkItemDescriptor, ProjectContext, ProposeVariantsInput, ProposeVariantsOutput, ReportVariantBriefsInput, ReportVariantBriefsOutput, ReportSourceContextInput, ReportSourceContextOutput, ReportVariantCompleteInput, ReportVariantCompleteOutput, SourceContextArtifact, SourceContextInput, Stage, Target, TerminalSummary, VariantPickEnvelope, VariantPickPayload, VisualEditorAttachment, WorkItem, WorkItemKind, WorkItemStatus, } from './contracts';
11
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3E,YAAY,EACV,KAAK,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,EACL,MAAM,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EACV,KAAK,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,EACL,MAAM,EACN,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ERROR_CODES = exports.AgentVariantsError = exports.registerAgentVariantsTools = exports.AgentVariantsOrchestrator = exports.PendingChangesAdapter = exports.SessionStore = void 0;
3
+ exports.VARIANT_COUNT_MAX = exports.VARIANT_COUNT_MIN = exports.ERROR_CODES = exports.AgentVariantsError = exports.slugifyPrompt = exports.registerCreateZeroToOneTool = exports.registerAgentVariantsTools = exports.AgentVariantsOrchestrator = exports.PendingChangesAdapter = exports.SessionStore = void 0;
4
4
  var SessionStore_1 = require("./SessionStore");
5
5
  Object.defineProperty(exports, "SessionStore", { enumerable: true, get: function () { return SessionStore_1.SessionStore; } });
6
6
  var pendingChangesAdapter_1 = require("./pendingChangesAdapter");
@@ -9,7 +9,13 @@ var WorktreeOrchestrator_1 = require("./WorktreeOrchestrator");
9
9
  Object.defineProperty(exports, "AgentVariantsOrchestrator", { enumerable: true, get: function () { return WorktreeOrchestrator_1.AgentVariantsOrchestrator; } });
10
10
  var tools_1 = require("./tools");
11
11
  Object.defineProperty(exports, "registerAgentVariantsTools", { enumerable: true, get: function () { return tools_1.registerAgentVariantsTools; } });
12
+ var createZeroToOneTool_1 = require("./createZeroToOneTool");
13
+ Object.defineProperty(exports, "registerCreateZeroToOneTool", { enumerable: true, get: function () { return createZeroToOneTool_1.registerCreateZeroToOneTool; } });
14
+ Object.defineProperty(exports, "slugifyPrompt", { enumerable: true, get: function () { return createZeroToOneTool_1.slugifyPrompt; } });
12
15
  var errors_1 = require("./errors");
13
16
  Object.defineProperty(exports, "AgentVariantsError", { enumerable: true, get: function () { return errors_1.AgentVariantsError; } });
14
17
  Object.defineProperty(exports, "ERROR_CODES", { enumerable: true, get: function () { return errors_1.ERROR_CODES; } });
18
+ var contracts_1 = require("./contracts");
19
+ Object.defineProperty(exports, "VARIANT_COUNT_MIN", { enumerable: true, get: function () { return contracts_1.VARIANT_COUNT_MIN; } });
20
+ Object.defineProperty(exports, "VARIANT_COUNT_MAX", { enumerable: true, get: function () { return contracts_1.VARIANT_COUNT_MAX; } });
15
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAUrB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAM9B,+DAAmE;AAA1D,iIAAA,yBAAyB,OAAA;AAMlC,iCAAqD;AAA5C,mHAAA,0BAA0B,OAAA;AAEnC,mCAA2E;AAAlE,4GAAA,kBAAkB,OAAA;AAAE,qGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAUrB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAM9B,+DAAmE;AAA1D,iIAAA,yBAAyB,OAAA;AAMlC,iCAAqD;AAA5C,mHAAA,0BAA0B,OAAA;AAEnC,6DAG+B;AAF7B,kIAAA,2BAA2B,OAAA;AAC3B,oHAAA,aAAa,OAAA;AAGf,mCAA2E;AAAlE,4GAAA,kBAAkB,OAAA;AAAE,qGAAA,WAAW,OAAA;AACxC,yCAAmE;AAA1D,8GAAA,iBAAiB,OAAA;AAAE,8GAAA,iBAAiB,OAAA"}