rivet-design 0.19.0 → 0.19.1

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 (47) hide show
  1. package/README.md +1 -1
  2. package/README.npm.md +1 -1
  3. package/dist/agent-variants/PreviewRuntime.d.ts +100 -0
  4. package/dist/agent-variants/PreviewRuntime.d.ts.map +1 -0
  5. package/dist/agent-variants/PreviewRuntime.js +577 -0
  6. package/dist/agent-variants/PreviewRuntime.js.map +1 -0
  7. package/dist/agent-variants/WorkspaceInventory.d.ts +81 -0
  8. package/dist/agent-variants/WorkspaceInventory.d.ts.map +1 -0
  9. package/dist/agent-variants/WorkspaceInventory.js +172 -0
  10. package/dist/agent-variants/WorkspaceInventory.js.map +1 -0
  11. package/dist/agent-variants/WorkspaceProvisioning.d.ts +40 -0
  12. package/dist/agent-variants/WorkspaceProvisioning.d.ts.map +1 -0
  13. package/dist/agent-variants/WorkspaceProvisioning.js +419 -0
  14. package/dist/agent-variants/WorkspaceProvisioning.js.map +1 -0
  15. package/dist/agent-variants/WorktreeOrchestrator.d.ts +9 -178
  16. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  17. package/dist/agent-variants/WorktreeOrchestrator.js +190 -2213
  18. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
  19. package/dist/agent-variants/designContextArtifacts.d.ts +25 -0
  20. package/dist/agent-variants/designContextArtifacts.d.ts.map +1 -0
  21. package/dist/agent-variants/designContextArtifacts.js +471 -0
  22. package/dist/agent-variants/designContextArtifacts.js.map +1 -0
  23. package/dist/agent-variants/variant-project-runtime.d.ts +40 -0
  24. package/dist/agent-variants/variant-project-runtime.d.ts.map +1 -0
  25. package/dist/agent-variants/variant-project-runtime.js +3 -0
  26. package/dist/agent-variants/variant-project-runtime.js.map +1 -0
  27. package/dist/agent-variants/variantWorkspaceFiles.d.ts +44 -0
  28. package/dist/agent-variants/variantWorkspaceFiles.d.ts.map +1 -0
  29. package/dist/agent-variants/variantWorkspaceFiles.js +426 -0
  30. package/dist/agent-variants/variantWorkspaceFiles.js.map +1 -0
  31. package/dist/agent-variants/variantsTelemetry.d.ts +189 -0
  32. package/dist/agent-variants/variantsTelemetry.d.ts.map +1 -0
  33. package/dist/agent-variants/variantsTelemetry.js +160 -0
  34. package/dist/agent-variants/variantsTelemetry.js.map +1 -0
  35. package/dist/utils/skills/claude-skill.d.ts +1 -1
  36. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  37. package/dist/utils/skills/claude-skill.js +1 -1
  38. package/dist/utils/skills/claude-skill.js.map +1 -1
  39. package/dist/utils/skills/cli-guidance.d.ts +1 -1
  40. package/dist/utils/skills/cli-guidance.js +4 -4
  41. package/dist/utils/skills/codex-skill.d.ts +1 -1
  42. package/dist/utils/skills/codex-skill.d.ts.map +1 -1
  43. package/dist/utils/skills/codex-skill.js +2 -2
  44. package/package.json +1 -1
  45. package/src/ui/dist/assets/{LibraryApp-B4ztVk52.js → LibraryApp-Sm0rsDtm.js} +8 -8
  46. package/src/ui/dist/assets/{main-CAPEQf84.js → main-5v9Ic8BN.js} +94 -94
  47. package/src/ui/dist/index.html +1 -1
@@ -0,0 +1,25 @@
1
+ import type { ActiveProjectContext, ActiveVariantSnapshot, DesignContextEntry, ProjectContext, VariantSessionArtifact } from './contracts';
2
+ import type { VariantDesignSource } from '../services/VariantHistoryService';
3
+ export declare const enrichDesignSource: (design: ActiveVariantSnapshot["design"]) => ActiveVariantSnapshot["design"];
4
+ export declare const toActiveProjectContext: (projectContext: ProjectContext) => ActiveProjectContext;
5
+ export declare const buildSessionArtifacts: (sessionId: string, projectContext: ProjectContext) => VariantSessionArtifact[];
6
+ type ResolvedDesignContextArtifact = VariantSessionArtifact & {
7
+ content: string;
8
+ };
9
+ export declare const findDesignContextArtifact: (projectContext: ProjectContext, artifactId: string) => ResolvedDesignContextArtifact | undefined;
10
+ export declare const buildResolvedDesignContextArtifacts: (projectContext: ProjectContext) => ResolvedDesignContextArtifact[];
11
+ export declare const addDesignContextArtifact: (artifactsByContent: Map<string, ResolvedDesignContextArtifact & {
12
+ usedByVariantCount: number;
13
+ }>, artifact: ResolvedDesignContextArtifact) => void;
14
+ export declare const buildDesignContextRawUrl: (sessionId: string, artifactId: string) => string;
15
+ export declare const buildDesignContextViewUrl: (sessionId: string, artifactId: string) => string;
16
+ export declare const buildDesignContextViewerDocument: (artifact: ResolvedDesignContextArtifact) => string;
17
+ export declare const renderDesignMarkdown: (markdown: string, artifactLabel: string) => string;
18
+ export declare const renderInlineMarkdown: (value: string) => string;
19
+ export declare const escapeHtml: (value: string) => string;
20
+ export declare const resolveDesignArtifact: (entry: DesignContextEntry | undefined) => {
21
+ markdown: string;
22
+ source: VariantDesignSource;
23
+ } | null;
24
+ export {};
25
+ //# sourceMappingURL=designContextArtifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designContextArtifacts.d.ts","sourceRoot":"","sources":["../../src/agent-variants/designContextArtifacts.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAK7E,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,qBAAqB,CAAC,QAAQ,CAAC,KACtC,qBAAqB,CAAC,QAAQ,CAMhC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,gBAAgB,cAAc,KAC7B,oBAuDF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,EACjB,gBAAgB,cAAc,KAC7B,sBAAsB,EAOxB,CAAC;AAEF,KAAK,6BAA6B,GAAG,sBAAsB,GAAG;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,gBAAgB,cAAc,EAC9B,YAAY,MAAM,KACjB,6BAA6B,GAAG,SAIlC,CAAC;AAEF,eAAO,MAAM,mCAAmC,GAC9C,gBAAgB,cAAc,KAC7B,6BAA6B,EA+C/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,oBAAoB,GAAG,CACrB,MAAM,EACN,6BAA6B,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAC/D,EACD,UAAU,6BAA6B,KACtC,IAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,MAEF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,MAEF,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,UAAU,6BAA6B,KACtC,MAoMF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,eAAe,MAAM,KACpB,MA0GF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,MAKpD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAO1C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,OAAO,kBAAkB,GAAG,SAAS,KACpC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAAG,IAmBtD,CAAC"}
@@ -0,0 +1,471 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveDesignArtifact = exports.escapeHtml = exports.renderInlineMarkdown = exports.renderDesignMarkdown = exports.buildDesignContextViewerDocument = exports.buildDesignContextViewUrl = exports.buildDesignContextRawUrl = exports.addDesignContextArtifact = exports.buildResolvedDesignContextArtifacts = exports.findDesignContextArtifact = exports.buildSessionArtifacts = exports.toActiveProjectContext = exports.enrichDesignSource = void 0;
4
+ const designCatalog_1 = require("../services/templates/designCatalog");
5
+ const DESIGN_CONTEXT_ROUTE_SEGMENT = 'design-md';
6
+ const DESIGN_CONTEXT_VIEW_SEGMENT = 'view';
7
+ const enrichDesignSource = (design) => {
8
+ if (!design || design.kind !== 'slug')
9
+ return design;
10
+ return {
11
+ ...design,
12
+ displayName: (0, designCatalog_1.getDesignSystemBySlug)(design.slug)?.name ?? design.slug,
13
+ };
14
+ };
15
+ exports.enrichDesignSource = enrichDesignSource;
16
+ const toActiveProjectContext = (projectContext) => {
17
+ const sourceCount = projectContext.variantContext?.userContext.filter((source) => source.transport !== 'prompt').length ?? 0;
18
+ const hasSourceContextSummary = Boolean(sourceCount > 0 ||
19
+ (projectContext.variantContext?.rivetMetadata.length ?? 0) > 0);
20
+ const activeSourceContext = hasSourceContextSummary
21
+ ? {
22
+ sourceCount,
23
+ isSourceGrounded: Boolean(sourceCount > 0 ||
24
+ projectContext.designContext?.length ||
25
+ projectContext.variantContext?.rivetMetadata.length),
26
+ }
27
+ : undefined;
28
+ if (projectContext.kind === 'existing') {
29
+ return {
30
+ kind: 'existing',
31
+ designContext: projectContext.designContext?.map((entry) => entry.kind === 'slug'
32
+ ? { kind: 'slug', slug: entry.slug }
33
+ : { kind: 'markdown', label: entry.label }),
34
+ ...(activeSourceContext ? { sourceContext: activeSourceContext } : {}),
35
+ };
36
+ }
37
+ return {
38
+ kind: 'fresh',
39
+ workspacePath: projectContext.workspacePath,
40
+ workspaceRoot: projectContext.workspaceRoot,
41
+ framework: projectContext.framework,
42
+ designContext: projectContext.designContext?.map((entry) => entry.kind === 'slug'
43
+ ? { kind: 'slug', slug: entry.slug }
44
+ : { kind: 'markdown', label: entry.label }),
45
+ ...(activeSourceContext ? { sourceContext: activeSourceContext } : {}),
46
+ ...(projectContext.executionPlan
47
+ ? {
48
+ executionPlan: {
49
+ mode: projectContext.executionPlan.mode,
50
+ confidence: projectContext.executionPlan.confidence,
51
+ reason: projectContext.executionPlan.reason,
52
+ assetCount: projectContext.executionPlan.assetPlan?.length ?? 0,
53
+ runtimeRequirementCount: projectContext.executionPlan.runtimeRequirements?.length ?? 0,
54
+ },
55
+ }
56
+ : {}),
57
+ };
58
+ };
59
+ exports.toActiveProjectContext = toActiveProjectContext;
60
+ const buildSessionArtifacts = (sessionId, projectContext) => {
61
+ const artifacts = (0, exports.buildResolvedDesignContextArtifacts)(projectContext);
62
+ return artifacts.map(({ content: _content, ...artifact }) => ({
63
+ ...artifact,
64
+ rawUrl: (0, exports.buildDesignContextRawUrl)(sessionId, artifact.id),
65
+ viewUrl: (0, exports.buildDesignContextViewUrl)(sessionId, artifact.id),
66
+ }));
67
+ };
68
+ exports.buildSessionArtifacts = buildSessionArtifacts;
69
+ const findDesignContextArtifact = (projectContext, artifactId) => {
70
+ return (0, exports.buildResolvedDesignContextArtifacts)(projectContext).find((artifact) => artifact.id === artifactId);
71
+ };
72
+ exports.findDesignContextArtifact = findDesignContextArtifact;
73
+ const buildResolvedDesignContextArtifacts = (projectContext) => {
74
+ const designContext = projectContext.designContext;
75
+ if (!designContext || designContext.length === 0)
76
+ return [];
77
+ const artifactsByContent = new Map();
78
+ designContext.forEach((entry, slot) => {
79
+ if (!entry)
80
+ return;
81
+ if (entry.kind === 'slug') {
82
+ const markdown = (0, designCatalog_1.loadDesignSystemMarkdown)(entry.slug);
83
+ if (!markdown)
84
+ return;
85
+ const catalogEntry = (0, designCatalog_1.getDesignSystemBySlug)(entry.slug);
86
+ (0, exports.addDesignContextArtifact)(artifactsByContent, {
87
+ id: `design_context:${slot}:${entry.slug}`,
88
+ kind: 'design_context',
89
+ label: catalogEntry?.name ?? entry.slug,
90
+ ...(catalogEntry?.description
91
+ ? { summary: catalogEntry.description }
92
+ : {}),
93
+ status: 'ready',
94
+ source: 'static',
95
+ contentType: 'text/markdown',
96
+ content: markdown,
97
+ });
98
+ return;
99
+ }
100
+ if (!entry.content)
101
+ return;
102
+ (0, exports.addDesignContextArtifact)(artifactsByContent, {
103
+ id: `design_context:${slot}:${entry.label}`,
104
+ kind: 'design_context',
105
+ label: entry.label,
106
+ status: 'ready',
107
+ source: 'agent_browser',
108
+ contentType: 'text/markdown',
109
+ content: entry.content,
110
+ });
111
+ });
112
+ return [...artifactsByContent.values()].map((artifact) => {
113
+ if (artifact.usedByVariantCount <= 1)
114
+ return artifact;
115
+ return {
116
+ ...artifact,
117
+ summary: artifact.summary
118
+ ? `${artifact.summary} Used by ${artifact.usedByVariantCount} directions.`
119
+ : `Used by ${artifact.usedByVariantCount} directions.`,
120
+ };
121
+ });
122
+ };
123
+ exports.buildResolvedDesignContextArtifacts = buildResolvedDesignContextArtifacts;
124
+ const addDesignContextArtifact = (artifactsByContent, artifact) => {
125
+ const existing = artifactsByContent.get(artifact.content);
126
+ if (existing) {
127
+ existing.usedByVariantCount += 1;
128
+ return;
129
+ }
130
+ artifactsByContent.set(artifact.content, {
131
+ ...artifact,
132
+ usedByVariantCount: 1,
133
+ });
134
+ };
135
+ exports.addDesignContextArtifact = addDesignContextArtifact;
136
+ const buildDesignContextRawUrl = (sessionId, artifactId) => {
137
+ return `/api/variants/${encodeURIComponent(sessionId)}/${DESIGN_CONTEXT_ROUTE_SEGMENT}/${encodeURIComponent(artifactId)}`;
138
+ };
139
+ exports.buildDesignContextRawUrl = buildDesignContextRawUrl;
140
+ const buildDesignContextViewUrl = (sessionId, artifactId) => {
141
+ return `${(0, exports.buildDesignContextRawUrl)(sessionId, artifactId)}/${DESIGN_CONTEXT_VIEW_SEGMENT}`;
142
+ };
143
+ exports.buildDesignContextViewUrl = buildDesignContextViewUrl;
144
+ const buildDesignContextViewerDocument = (artifact) => {
145
+ const title = `${artifact.label} DESIGN.md`;
146
+ const visualHtml = (0, exports.renderDesignMarkdown)(artifact.content, artifact.label);
147
+ return `<!doctype html>
148
+ <html lang="en">
149
+ <head>
150
+ <meta charset="utf-8" />
151
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
152
+ <title>${(0, exports.escapeHtml)(title)}</title>
153
+ <style>
154
+ :root {
155
+ color-scheme: dark;
156
+ --font-main: 'Satoshi', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
157
+ --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
158
+ --main: #1C1C20;
159
+ --main-light: #1E1E22;
160
+ --main-input: #2E2E2E;
161
+ --main-border: #232328;
162
+ --main-hover: #404040;
163
+ --content: #ffffff;
164
+ --content-muted: #d1d5db;
165
+ --content-subtle: #9ca3af;
166
+ --divider: #4b5563;
167
+ --primary: #FF3300;
168
+ --primary-border: #ff6b35;
169
+ }
170
+ * { box-sizing: border-box; }
171
+ body {
172
+ margin: 0;
173
+ min-height: 100vh;
174
+ background: var(--main);
175
+ color: var(--content);
176
+ font-family: var(--font-main);
177
+ }
178
+ .page-shell {
179
+ min-height: 100vh;
180
+ padding: 22px 28px 56px;
181
+ }
182
+ .topbar {
183
+ display: flex;
184
+ align-items: center;
185
+ justify-content: space-between;
186
+ margin-bottom: 28px;
187
+ }
188
+ .brand {
189
+ display: inline-flex;
190
+ align-items: center;
191
+ min-height: 28px;
192
+ }
193
+ .brand-logo {
194
+ display: block;
195
+ width: 64px;
196
+ height: auto;
197
+ }
198
+ .avatar {
199
+ width: 28px;
200
+ height: 28px;
201
+ border: 1px solid var(--main-border);
202
+ border-radius: 8px;
203
+ background: var(--main-light);
204
+ }
205
+ main {
206
+ width: min(1120px, calc(100vw - 56px));
207
+ margin: 0 auto;
208
+ }
209
+ .document {
210
+ overflow: hidden;
211
+ border: 1px solid var(--main-border);
212
+ border-radius: 22px;
213
+ background: var(--main-light);
214
+ box-shadow: 0 18px 60px rgb(0 0 0 / 18%);
215
+ }
216
+ .document-title {
217
+ padding: 42px 46px 32px;
218
+ }
219
+ .eyebrow {
220
+ margin: 0 0 14px;
221
+ color: var(--content-subtle);
222
+ font-size: 0.68rem;
223
+ font-weight: 700;
224
+ letter-spacing: 0.16em;
225
+ text-transform: uppercase;
226
+ }
227
+ .file-title {
228
+ margin: 0;
229
+ color: var(--content);
230
+ font-size: clamp(2.35rem, 6vw, 4.9rem);
231
+ font-weight: 600;
232
+ letter-spacing: -0.07em;
233
+ line-height: 0.94;
234
+ }
235
+ .visual {
236
+ border-top: 1px solid var(--main-border);
237
+ max-width: none;
238
+ margin: 0 auto;
239
+ padding: 36px 46px 48px;
240
+ }
241
+ .visual-inner {
242
+ max-width: 720px;
243
+ margin: 0 auto;
244
+ }
245
+ .visual h1,
246
+ .visual h2,
247
+ .visual h3 {
248
+ margin: 1.2em 0 0.4em;
249
+ color: var(--content);
250
+ font-weight: 600;
251
+ letter-spacing: -0.02em;
252
+ line-height: 1.15;
253
+ }
254
+ .visual h1:first-child,
255
+ .visual h2:first-child,
256
+ .visual h3:first-child {
257
+ margin-top: 0;
258
+ }
259
+ .visual h1 { font-size: 1.25rem; }
260
+ .visual h2 { font-size: 1.1rem; }
261
+ .visual h3 { font-size: 1rem; }
262
+ .visual h2 + p,
263
+ .visual h2 + ul {
264
+ border-left: 1px solid var(--main-border);
265
+ padding-left: 14px;
266
+ }
267
+ .visual p,
268
+ .visual li,
269
+ .visual blockquote {
270
+ color: var(--content-muted);
271
+ font-size: 0.88rem;
272
+ line-height: 1.6;
273
+ }
274
+ .visual strong {
275
+ color: var(--content);
276
+ font-weight: 650;
277
+ }
278
+ .visual a {
279
+ color: var(--primary-border);
280
+ }
281
+ .visual ul {
282
+ display: grid;
283
+ gap: 8px;
284
+ padding-left: 1.1rem;
285
+ }
286
+ .visual blockquote {
287
+ margin: 18px 0;
288
+ border-left: 3px solid var(--primary);
289
+ padding-left: 14px;
290
+ color: var(--content-subtle);
291
+ }
292
+ .visual code {
293
+ border-radius: 6px;
294
+ border: 1px solid var(--main-border);
295
+ background: var(--main-input);
296
+ color: var(--content);
297
+ padding: 0.12rem 0.34rem;
298
+ font-family: var(--font-mono);
299
+ font-size: 0.92em;
300
+ }
301
+ pre {
302
+ margin: 0;
303
+ overflow: auto;
304
+ background: var(--main);
305
+ color: var(--content-muted);
306
+ padding: 16px;
307
+ font: 0.78rem/1.55 var(--font-mono);
308
+ white-space: pre-wrap;
309
+ word-break: break-word;
310
+ }
311
+ @media (max-width: 900px) {
312
+ .page-shell { padding: 18px 12px 34px; }
313
+ .topbar { margin-bottom: 18px; padding: 0 4px; }
314
+ main { width: min(100vw - 24px, 760px); }
315
+ .document { border-radius: 18px; }
316
+ .document-title { padding: 30px 24px 24px; }
317
+ .file-title { font-size: clamp(2rem, 12vw, 3.6rem); }
318
+ .visual { padding: 26px 24px 34px; }
319
+ }
320
+ </style>
321
+ </head>
322
+ <body>
323
+ <div class="page-shell">
324
+ <header class="topbar" aria-label="Rivet">
325
+ <div class="brand"><img class="brand-logo" src="/assets/logo.png" alt="Rivet" /></div>
326
+ <div class="avatar" aria-hidden="true"></div>
327
+ </header>
328
+ <main>
329
+ <article class="document" id="designmd-visual" aria-label="DesignMD artifact">
330
+ <div class="document-title">
331
+ <p class="eyebrow">Design Context</p>
332
+ <h1 class="file-title">${(0, exports.escapeHtml)(title)}</h1>
333
+ </div>
334
+ <div class="visual"><div class="visual-inner">${visualHtml}</div></div>
335
+ </article>
336
+ </main>
337
+ </div>
338
+ </body>
339
+ </html>`;
340
+ };
341
+ exports.buildDesignContextViewerDocument = buildDesignContextViewerDocument;
342
+ const renderDesignMarkdown = (markdown, artifactLabel) => {
343
+ const lines = markdown.replace(/\r\n/g, '\n').split('\n');
344
+ const output = [];
345
+ const paragraph = [];
346
+ const listItems = [];
347
+ const codeLines = [];
348
+ let isCodeBlock = false;
349
+ let skippedFirstH1 = false;
350
+ const flushParagraph = () => {
351
+ if (paragraph.length === 0)
352
+ return;
353
+ output.push(`<p>${(0, exports.renderInlineMarkdown)(paragraph.join(' '))}</p>`);
354
+ paragraph.length = 0;
355
+ };
356
+ const flushList = () => {
357
+ if (listItems.length === 0)
358
+ return;
359
+ output.push(`<ul>${listItems.map((item) => `<li>${(0, exports.renderInlineMarkdown)(item)}</li>`).join('')}</ul>`);
360
+ listItems.length = 0;
361
+ };
362
+ const flushCode = () => {
363
+ if (codeLines.length === 0)
364
+ return;
365
+ output.push(`<pre>${(0, exports.escapeHtml)(codeLines.join('\n'))}</pre>`);
366
+ codeLines.length = 0;
367
+ };
368
+ lines.forEach((line) => {
369
+ if (line.trim().startsWith('```')) {
370
+ if (isCodeBlock) {
371
+ flushCode();
372
+ isCodeBlock = false;
373
+ return;
374
+ }
375
+ flushParagraph();
376
+ flushList();
377
+ isCodeBlock = true;
378
+ return;
379
+ }
380
+ if (isCodeBlock) {
381
+ codeLines.push(line);
382
+ return;
383
+ }
384
+ const trimmed = line.trim();
385
+ if (!trimmed) {
386
+ flushParagraph();
387
+ flushList();
388
+ return;
389
+ }
390
+ if (/^---+$/.test(trimmed)) {
391
+ flushParagraph();
392
+ flushList();
393
+ output.push('<hr />');
394
+ return;
395
+ }
396
+ const headingMatch = trimmed.match(/^(#{1,6})\s+(.+)$/);
397
+ if (headingMatch) {
398
+ flushParagraph();
399
+ flushList();
400
+ const level = Math.min(headingMatch[1].length, 3);
401
+ const headingText = headingMatch[2].trim();
402
+ const isDuplicateTitle = headingText === artifactLabel ||
403
+ headingText === `${artifactLabel} DESIGN.md`;
404
+ if (level === 1 && !skippedFirstH1 && isDuplicateTitle) {
405
+ skippedFirstH1 = true;
406
+ return;
407
+ }
408
+ output.push(`<h${level}>${(0, exports.renderInlineMarkdown)(headingText)}</h${level}>`);
409
+ return;
410
+ }
411
+ const listMatch = trimmed.match(/^[-*]\s+(.+)$/);
412
+ if (listMatch) {
413
+ flushParagraph();
414
+ listItems.push(listMatch[1]);
415
+ return;
416
+ }
417
+ const quoteMatch = trimmed.match(/^>\s?(.+)$/);
418
+ if (quoteMatch) {
419
+ flushParagraph();
420
+ flushList();
421
+ output.push(`<blockquote>${(0, exports.renderInlineMarkdown)(quoteMatch[1])}</blockquote>`);
422
+ return;
423
+ }
424
+ paragraph.push(trimmed);
425
+ });
426
+ flushCode();
427
+ flushParagraph();
428
+ flushList();
429
+ return output.join('\n');
430
+ };
431
+ exports.renderDesignMarkdown = renderDesignMarkdown;
432
+ const renderInlineMarkdown = (value) => {
433
+ return (0, exports.escapeHtml)(value)
434
+ .replace(/\*\*([^*]+)\*\*/g, '<strong>$1</strong>')
435
+ .replace(/`([^`]+)`/g, '<code>$1</code>')
436
+ .replace(/\*([^*]+)\*/g, '<em>$1</em>');
437
+ };
438
+ exports.renderInlineMarkdown = renderInlineMarkdown;
439
+ const escapeHtml = (value) => {
440
+ return value
441
+ .replace(/&/g, '&amp;')
442
+ .replace(/</g, '&lt;')
443
+ .replace(/>/g, '&gt;')
444
+ .replace(/"/g, '&quot;')
445
+ .replace(/'/g, '&#39;');
446
+ };
447
+ exports.escapeHtml = escapeHtml;
448
+ const resolveDesignArtifact = (entry) => {
449
+ if (!entry)
450
+ return null;
451
+ if (entry.kind === 'markdown') {
452
+ return {
453
+ markdown: entry.content,
454
+ source: { kind: 'markdown', label: entry.label },
455
+ };
456
+ }
457
+ const markdown = (0, designCatalog_1.loadDesignSystemMarkdown)(entry.slug);
458
+ if (!markdown)
459
+ return null;
460
+ const catalogEntry = (0, designCatalog_1.getDesignSystemBySlug)(entry.slug);
461
+ return {
462
+ markdown,
463
+ source: {
464
+ kind: 'slug',
465
+ slug: entry.slug,
466
+ label: catalogEntry?.name ?? entry.slug,
467
+ },
468
+ };
469
+ };
470
+ exports.resolveDesignArtifact = resolveDesignArtifact;
471
+ //# sourceMappingURL=designContextArtifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designContextArtifacts.js","sourceRoot":"","sources":["../../src/agent-variants/designContextArtifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { ChildProcess } from 'child_process';
2
+ import type { Framework } from '../services/ProjectDetectionService';
3
+ import type { TemplateBundle } from '../services/templates/viteReactTs';
4
+ import type { DesignContextEntry } from './contracts';
5
+ export interface WorktreeManagerLike {
6
+ createWorktrees(sessionId: string, count: number, instanceKeyPrefix?: string): Promise<string[]>;
7
+ forkWorktreesFrom?(sourceWorktreePath: string, sessionId: string, count: number, instanceKeyPrefix?: string): Promise<string[]>;
8
+ getDiff(worktreePath: string): Promise<string>;
9
+ getGitRoot?(): Promise<string>;
10
+ applyDiffToProject?(diff: string, projectPath: string): Promise<void>;
11
+ cleanupSession(sessionId: string, freshDestinationParent?: string): Promise<void>;
12
+ getFreePort(): Promise<number>;
13
+ findFreePortFrom(startPort: number): Promise<number>;
14
+ releasePort?(port: number): void;
15
+ startDevServer(worktreePath: string, port: number, cmd: string, args: string[], env: Record<string, string>): Promise<ChildProcess>;
16
+ stopDevServer(proc: ChildProcess, timeoutMs?: number): Promise<void>;
17
+ getProjectCwdInWorktree(worktreePath: string): Promise<string>;
18
+ createFreshWorktrees?(sessionId: string, count: number, template: TemplateBundle, designContext: ReadonlyArray<DesignContextEntry | undefined> | undefined, destinationParent: string): Promise<string[]>;
19
+ moveWorktreeToHistory?(srcWorktreePath: string, historyDir: string, folderName: string): string;
20
+ }
21
+ type DevServerProjectEnvironment = {
22
+ projectPath: string;
23
+ framework: Exclude<Framework, 'static'>;
24
+ packageManager: string;
25
+ devCommand: string;
26
+ defaultPort?: number;
27
+ buildDevCommand?: (port: number) => {
28
+ cmd: string;
29
+ args: string[];
30
+ env: Record<string, string>;
31
+ };
32
+ };
33
+ type StaticProjectEnvironment = {
34
+ projectPath: string;
35
+ framework: 'static';
36
+ entryPath: string;
37
+ };
38
+ export type ProjectEnvironment = DevServerProjectEnvironment | StaticProjectEnvironment;
39
+ export {};
40
+ //# sourceMappingURL=variant-project-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-project-runtime.d.ts","sourceRoot":"","sources":["../../src/agent-variants/variant-project-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=variant-project-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-project-runtime.js","sourceRoot":"","sources":["../../src/agent-variants/variant-project-runtime.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import type { DevServerRecipe } from '../services/VariantHistoryService';
2
+ import type { ProjectContext } from './contracts';
3
+ export declare const ALLOWED_INERT_ASSET_EXTENSIONS: Set<string>;
4
+ export declare function estimateOutputBytes(output: unknown): number;
5
+ export declare function normalizeOutput(output: unknown): unknown;
6
+ export declare function isStrictlyInside(child: string, parent: string): boolean;
7
+ export declare function resolveAssetWithinBase(base: string, requestedPath: string): string | undefined;
8
+ export declare function resolveStaticPreviewAssetBase(args: {
9
+ assetBase: string | undefined;
10
+ projectContext: ProjectContext;
11
+ }): string | undefined;
12
+ export declare function parseStaticPreviewOutput(output: unknown): {
13
+ html: string;
14
+ assetBase?: string;
15
+ } | null;
16
+ export declare function buildStaticPreviewDocument(input: {
17
+ html: string;
18
+ css?: string;
19
+ js?: string;
20
+ }): string;
21
+ export declare function countDiffFiles(diff: string): number;
22
+ export declare function countWorktreeFiles(destinationPath: string): number;
23
+ export declare const MATERIALIZE_EXCLUDE: Set<string>;
24
+ export declare const STATIC_PREVIEW_HISTORY_EXCLUDE: Set<string>;
25
+ export declare const STATIC_PREVIEW_HISTORY_FILE_EXTENSIONS: Set<string>;
26
+ export declare function copyStaticPreviewDirectory(src: string, dest: string): void;
27
+ export declare const defaultInstallDependencies: (worktreePath: string, options?: {
28
+ workspaceRoot: string;
29
+ force?: boolean;
30
+ signal?: AbortSignal;
31
+ }) => Promise<void>;
32
+ export declare const buildServeRecipeFromResolved: (snapshotRoot: string, dev: {
33
+ cwd: string;
34
+ cmd: string;
35
+ args: string[];
36
+ env: Record<string, string>;
37
+ }, port: number) => DevServerRecipe;
38
+ export declare const canInstallWithoutTouchingHost: (cwd: string) => boolean;
39
+ export declare const assertDevScriptExists: (cwd: string, scriptName: string) => void;
40
+ export declare function areSameVolume(a: string, b: string): boolean;
41
+ export declare function resolveNodeModulesSymlink(worktreePath: string): Promise<boolean>;
42
+ export declare const defaultMaterializeProject: (sourceWorktreePath: string, destinationPath: string) => Promise<void>;
43
+ export declare function synthesizeUnifiedBriefBody(prompt: string, index: number, total: number): string;
44
+ //# sourceMappingURL=variantWorkspaceFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variantWorkspaceFiles.d.ts","sourceRoot":"","sources":["../../src/agent-variants/variantWorkspaceFiles.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAelD,eAAO,MAAM,8BAA8B,aA4BzC,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAS3D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CASxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAIvE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAsBpB;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,MAAM,GAAG,SAAS,CAoDrB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiB7C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,MAAM,CAiCT;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAkBlE;AAED,eAAO,MAAM,mBAAmB,aAQ9B,CAAC;AAEH,eAAO,MAAM,8BAA8B,aAGzC,CAAC;AACH,eAAO,MAAM,sCAAsC,aAMjD,CAAC;AAEH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiC1E;AAED,eAAO,MAAM,0BAA0B,GACrC,cAAc,MAAM,EACpB,UAAU;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KACzE,OAAO,CAAC,IAAI,CAOd,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,cAAc,MAAM,EACpB,KAAK;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,EACD,MAAM,MAAM,KACX,eAYF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,KAAK,MAAM,KAAG,OAM3D,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,YAAY,MAAM,KAAG,IA0BvE,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAS3D;AAED,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,eAAO,MAAM,yBAAyB,GACpC,oBAAoB,MAAM,EAC1B,iBAAiB,MAAM,KACtB,OAAO,CAAC,IAAI,CA0Bd,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CASR"}