rivet-design 0.10.8 → 0.10.9

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 (104) hide show
  1. package/dist/index.d.ts +47 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +277 -123
  4. package/dist/index.js.map +1 -1
  5. package/dist/mcp/agent-variants/SessionStore.d.ts +23 -1
  6. package/dist/mcp/agent-variants/SessionStore.d.ts.map +1 -1
  7. package/dist/mcp/agent-variants/SessionStore.js +42 -0
  8. package/dist/mcp/agent-variants/SessionStore.js.map +1 -1
  9. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +75 -2
  10. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  11. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +697 -116
  12. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  13. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts +7 -2
  14. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -1
  15. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js +7 -2
  16. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -1
  17. package/dist/mcp/agent-variants/contracts.d.ts +1163 -233
  18. package/dist/mcp/agent-variants/contracts.d.ts.map +1 -1
  19. package/dist/mcp/agent-variants/contracts.js +12 -4
  20. package/dist/mcp/agent-variants/contracts.js.map +1 -1
  21. package/dist/mcp/agent-variants/designCritique.d.ts +163 -0
  22. package/dist/mcp/agent-variants/designCritique.d.ts.map +1 -0
  23. package/dist/mcp/agent-variants/designCritique.js +710 -0
  24. package/dist/mcp/agent-variants/designCritique.js.map +1 -0
  25. package/dist/mcp/agent-variants/diffQa.d.ts +7 -0
  26. package/dist/mcp/agent-variants/diffQa.d.ts.map +1 -0
  27. package/dist/mcp/agent-variants/diffQa.js +67 -0
  28. package/dist/mcp/agent-variants/diffQa.js.map +1 -0
  29. package/dist/mcp/agent-variants/index.d.ts +2 -2
  30. package/dist/mcp/agent-variants/index.d.ts.map +1 -1
  31. package/dist/mcp/agent-variants/index.js +2 -1
  32. package/dist/mcp/agent-variants/index.js.map +1 -1
  33. package/dist/mcp/agent-variants/previewQa.d.ts.map +1 -1
  34. package/dist/mcp/agent-variants/previewQa.js +7 -0
  35. package/dist/mcp/agent-variants/previewQa.js.map +1 -1
  36. package/dist/mcp/agent-variants/tools.js +8 -0
  37. package/dist/mcp/agent-variants/tools.js.map +1 -1
  38. package/dist/mcp/auth/httpOAuthProvider.d.ts +103 -0
  39. package/dist/mcp/auth/httpOAuthProvider.d.ts.map +1 -0
  40. package/dist/mcp/auth/httpOAuthProvider.js +454 -0
  41. package/dist/mcp/auth/httpOAuthProvider.js.map +1 -0
  42. package/dist/mcp/auth/tools.d.ts +2 -0
  43. package/dist/mcp/auth/tools.d.ts.map +1 -1
  44. package/dist/mcp/auth/tools.js +12 -5
  45. package/dist/mcp/auth/tools.js.map +1 -1
  46. package/dist/mcp/httpServer.d.ts +36 -0
  47. package/dist/mcp/httpServer.d.ts.map +1 -0
  48. package/dist/mcp/httpServer.js +307 -0
  49. package/dist/mcp/httpServer.js.map +1 -0
  50. package/dist/mcp/server.d.ts +17 -0
  51. package/dist/mcp/server.d.ts.map +1 -1
  52. package/dist/mcp/server.js +37 -17
  53. package/dist/mcp/server.js.map +1 -1
  54. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  55. package/dist/proxy-middleware/proxy-config.js +5 -2
  56. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  57. package/dist/routes/agentVariants.d.ts.map +1 -1
  58. package/dist/routes/agentVariants.js +2 -1
  59. package/dist/routes/agentVariants.js.map +1 -1
  60. package/dist/routes/mcp.d.ts.map +1 -1
  61. package/dist/routes/mcp.js +2 -1
  62. package/dist/routes/mcp.js.map +1 -1
  63. package/dist/server.d.ts +9 -0
  64. package/dist/server.d.ts.map +1 -1
  65. package/dist/server.js +13 -5
  66. package/dist/server.js.map +1 -1
  67. package/dist/services/AuthService.d.ts +1 -0
  68. package/dist/services/AuthService.d.ts.map +1 -1
  69. package/dist/services/AuthService.js +11 -1
  70. package/dist/services/AuthService.js.map +1 -1
  71. package/dist/services/ConfigManager.d.ts +5 -0
  72. package/dist/services/ConfigManager.d.ts.map +1 -1
  73. package/dist/services/ConfigManager.js +25 -3
  74. package/dist/services/ConfigManager.js.map +1 -1
  75. package/dist/services/DevServerRuntimeService.d.ts +119 -0
  76. package/dist/services/DevServerRuntimeService.d.ts.map +1 -0
  77. package/dist/services/DevServerRuntimeService.js +657 -0
  78. package/dist/services/DevServerRuntimeService.js.map +1 -0
  79. package/dist/services/GatewayClient.d.ts +25 -0
  80. package/dist/services/GatewayClient.d.ts.map +1 -1
  81. package/dist/services/GatewayClient.js +70 -11
  82. package/dist/services/GatewayClient.js.map +1 -1
  83. package/dist/services/RequestAuthContext.d.ts +7 -1
  84. package/dist/services/RequestAuthContext.d.ts.map +1 -1
  85. package/dist/services/RequestAuthContext.js +15 -2
  86. package/dist/services/RequestAuthContext.js.map +1 -1
  87. package/dist/services/SessionBridgeService.d.ts +1 -0
  88. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  89. package/dist/services/SessionBridgeService.js +16 -1
  90. package/dist/services/SessionBridgeService.js.map +1 -1
  91. package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -1
  92. package/dist/services/createAgentVariantsOrchestrator.js +7 -0
  93. package/dist/services/createAgentVariantsOrchestrator.js.map +1 -1
  94. package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -1
  95. package/dist/utils/skills/shared-variants-protocol.js +5 -2
  96. package/dist/utils/skills/shared-variants-protocol.js.map +1 -1
  97. package/dist/utils/variantSessionStart.d.ts +3 -0
  98. package/dist/utils/variantSessionStart.d.ts.map +1 -0
  99. package/dist/utils/variantSessionStart.js +7 -0
  100. package/dist/utils/variantSessionStart.js.map +1 -0
  101. package/package.json +1 -1
  102. package/src/ui/dist/assets/{main-WqlDU4Ou.js → main-Cwwhwfjq.js} +151 -151
  103. package/src/ui/dist/assets/{main-auZA25j4.css → main-Do6whVIm.css} +1 -1
  104. package/src/ui/dist/index.html +2 -2
@@ -45,13 +45,6 @@ export interface WorkItem {
45
45
  */
46
46
  removed?: boolean;
47
47
  }
48
- export declare const projectContextExisting: z.ZodObject<{
49
- kind: z.ZodLiteral<"existing">;
50
- }, "strip", z.ZodTypeAny, {
51
- kind: "existing";
52
- }, {
53
- kind: "existing";
54
- }>;
55
48
  export declare const sourceIntentRoleSchema: z.ZodEnum<["design_source", "interaction_reference", "asset_source", "content_reference", "other"]>;
56
49
  export declare const sourceIntentConfidenceSchema: z.ZodEnum<["low", "medium", "high"]>;
57
50
  /**
@@ -484,24 +477,14 @@ export type ExecutionMode = z.infer<typeof executionModeSchema>;
484
477
  export type ExecutionConfidence = z.infer<typeof executionConfidenceSchema>;
485
478
  export type AssetPlanEntry = z.infer<typeof assetPlanEntrySchema>;
486
479
  export type ExecutionCapabilityPlan = z.infer<typeof executionCapabilityPlanSchema>;
487
- export declare const projectContextFresh: z.ZodObject<{
488
- kind: z.ZodLiteral<"fresh">;
489
- /** Where the generated subproject's files live (e.g.
490
- * `fable-eng-demo/.rivet/marketing-clone/`). This is the materialize
491
- * target — the agent reads/writes index.html, src/, etc. here. */
492
- workspacePath: z.ZodString;
493
- /** The user's working directory that owns *all* Rivet artifacts for the
494
- * session (e.g. `fable-eng-demo`). `<workspaceRoot>/.rivet/` holds
495
- * generated subprojects, variant history, and create-project manifests.
496
- * Distinct from `path.dirname(workspacePath)` because subprojects nest
497
- * inside `.rivet/` — the dirname would resolve to the `.rivet` dir,
498
- * not the workspace itself. */
499
- workspaceRoot: z.ZodString;
500
- framework: z.ZodOptional<z.ZodEnum<["vite", "next", "astro", "remix"]>>;
501
- assetSourceRoot: z.ZodOptional<z.ZodString>;
502
- /** Per-variant-slot design context. Slug entries resolve bundled catalog
503
- * markdown; markdown entries are written directly as `DESIGN.md`. The
504
- * order matches code-gen variant slot order. */
480
+ export declare const projectContextExisting: z.ZodObject<{
481
+ kind: z.ZodLiteral<"existing">;
482
+ /** Absolute project path requested for this existing-project run. Present
483
+ * when callers target a nested project inside a larger git worktree. */
484
+ projectPath: z.ZodOptional<z.ZodString>;
485
+ /** Optional design context supplied by agents/benchmarks for existing
486
+ * project runs with visual references. Surfaced as DesignMD artifacts and
487
+ * available to QA gates, but does not trigger a source-plan stage. */
505
488
  designContext: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
506
489
  kind: z.ZodLiteral<"slug">;
507
490
  slug: z.ZodString;
@@ -698,58 +681,9 @@ export declare const projectContextFresh: z.ZodObject<{
698
681
  } | undefined;
699
682
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
700
683
  }>>;
701
- /** Agent-supplied execution plan from `report_source_plan`. Drives the
702
- * generation routing decision at approve() time: `static_preview` keeps
703
- * the lightweight HTML-only path; `vite_app` provisions a real Vite
704
- * worktree per variant and copies any large assets from `assetPlan`. */
705
- executionPlan: z.ZodOptional<z.ZodObject<{
706
- mode: z.ZodEnum<["static_preview", "vite_app"]>;
707
- confidence: z.ZodEnum<["low", "medium", "high"]>;
708
- reason: z.ZodString;
709
- assetPlan: z.ZodOptional<z.ZodArray<z.ZodObject<{
710
- source: z.ZodString;
711
- destination: z.ZodString;
712
- referenceAs: z.ZodString;
713
- }, "strip", z.ZodTypeAny, {
714
- source: string;
715
- destination: string;
716
- referenceAs: string;
717
- }, {
718
- source: string;
719
- destination: string;
720
- referenceAs: string;
721
- }>, "many">>;
722
- runtimeRequirements: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
723
- userQuestion: z.ZodOptional<z.ZodString>;
724
- }, "strip", z.ZodTypeAny, {
725
- mode: "static_preview" | "vite_app";
726
- reason: string;
727
- confidence: "low" | "medium" | "high";
728
- assetPlan?: {
729
- source: string;
730
- destination: string;
731
- referenceAs: string;
732
- }[] | undefined;
733
- runtimeRequirements?: string[] | undefined;
734
- userQuestion?: string | undefined;
735
- }, {
736
- mode: "static_preview" | "vite_app";
737
- reason: string;
738
- confidence: "low" | "medium" | "high";
739
- assetPlan?: {
740
- source: string;
741
- destination: string;
742
- referenceAs: string;
743
- }[] | undefined;
744
- runtimeRequirements?: string[] | undefined;
745
- userQuestion?: string | undefined;
746
- }>>;
747
684
  }, "strip", z.ZodTypeAny, {
748
- kind: "fresh";
749
- workspacePath: string;
750
- workspaceRoot: string;
751
- framework?: "next" | "vite" | "remix" | "astro" | undefined;
752
- assetSourceRoot?: string | undefined;
685
+ kind: "existing";
686
+ projectPath?: string | undefined;
753
687
  designContext?: ({
754
688
  slug: string;
755
689
  kind: "slug";
@@ -790,24 +724,9 @@ export declare const projectContextFresh: z.ZodObject<{
790
724
  } | undefined;
791
725
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
792
726
  } | undefined;
793
- executionPlan?: {
794
- mode: "static_preview" | "vite_app";
795
- reason: string;
796
- confidence: "low" | "medium" | "high";
797
- assetPlan?: {
798
- source: string;
799
- destination: string;
800
- referenceAs: string;
801
- }[] | undefined;
802
- runtimeRequirements?: string[] | undefined;
803
- userQuestion?: string | undefined;
804
- } | undefined;
805
727
  }, {
806
- kind: "fresh";
807
- workspacePath: string;
808
- workspaceRoot: string;
809
- framework?: "next" | "vite" | "remix" | "astro" | undefined;
810
- assetSourceRoot?: string | undefined;
728
+ kind: "existing";
729
+ projectPath?: string | undefined;
811
730
  designContext?: ({
812
731
  slug: string;
813
732
  kind: "slug";
@@ -848,26 +767,8 @@ export declare const projectContextFresh: z.ZodObject<{
848
767
  } | undefined;
849
768
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
850
769
  } | undefined;
851
- executionPlan?: {
852
- mode: "static_preview" | "vite_app";
853
- reason: string;
854
- confidence: "low" | "medium" | "high";
855
- assetPlan?: {
856
- source: string;
857
- destination: string;
858
- referenceAs: string;
859
- }[] | undefined;
860
- runtimeRequirements?: string[] | undefined;
861
- userQuestion?: string | undefined;
862
- } | undefined;
863
770
  }>;
864
- export declare const projectContextSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
865
- kind: z.ZodLiteral<"existing">;
866
- }, "strip", z.ZodTypeAny, {
867
- kind: "existing";
868
- }, {
869
- kind: "existing";
870
- }>, z.ZodObject<{
771
+ export declare const projectContextFresh: z.ZodObject<{
871
772
  kind: z.ZodLiteral<"fresh">;
872
773
  /** Where the generated subproject's files live (e.g.
873
774
  * `fable-eng-demo/.rivet/marketing-clone/`). This is the materialize
@@ -1132,7 +1033,6 @@ export declare const projectContextSchema: z.ZodDiscriminatedUnion<"kind", [z.Zo
1132
1033
  workspacePath: string;
1133
1034
  workspaceRoot: string;
1134
1035
  framework?: "next" | "vite" | "remix" | "astro" | undefined;
1135
- assetSourceRoot?: string | undefined;
1136
1036
  designContext?: ({
1137
1037
  slug: string;
1138
1038
  kind: "slug";
@@ -1173,6 +1073,7 @@ export declare const projectContextSchema: z.ZodDiscriminatedUnion<"kind", [z.Zo
1173
1073
  } | undefined;
1174
1074
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1175
1075
  } | undefined;
1076
+ assetSourceRoot?: string | undefined;
1176
1077
  executionPlan?: {
1177
1078
  mode: "static_preview" | "vite_app";
1178
1079
  reason: string;
@@ -1190,7 +1091,6 @@ export declare const projectContextSchema: z.ZodDiscriminatedUnion<"kind", [z.Zo
1190
1091
  workspacePath: string;
1191
1092
  workspaceRoot: string;
1192
1093
  framework?: "next" | "vite" | "remix" | "astro" | undefined;
1193
- assetSourceRoot?: string | undefined;
1194
1094
  designContext?: ({
1195
1095
  slug: string;
1196
1096
  kind: "slug";
@@ -1231,6 +1131,7 @@ export declare const projectContextSchema: z.ZodDiscriminatedUnion<"kind", [z.Zo
1231
1131
  } | undefined;
1232
1132
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1233
1133
  } | undefined;
1134
+ assetSourceRoot?: string | undefined;
1234
1135
  executionPlan?: {
1235
1136
  mode: "static_preview" | "vite_app";
1236
1137
  reason: string;
@@ -1243,123 +1144,801 @@ export declare const projectContextSchema: z.ZodDiscriminatedUnion<"kind", [z.Zo
1243
1144
  runtimeRequirements?: string[] | undefined;
1244
1145
  userQuestion?: string | undefined;
1245
1146
  } | undefined;
1246
- }>]>;
1247
- export type ProjectContext = z.infer<typeof projectContextSchema>;
1248
- export type DesignContextEntry = z.infer<typeof designContextEntrySchema>;
1249
- export type SourceArtifactInput = z.infer<typeof sourceArtifactInputSchema>;
1250
- export type SourceRole = z.infer<typeof sourceRoleSchema>;
1251
- export type SourceContextArtifact = z.infer<typeof sourceContextArtifactSchema>;
1252
- export type SourceContextInput = z.infer<typeof sourceContextInputSchema>;
1253
- export type VariantDesignSource = {
1254
- kind: 'slug';
1255
- slug: string;
1256
- displayName: string;
1257
- } | {
1258
- kind: 'markdown';
1259
- label: string;
1260
- };
1261
- export type VariantPreviewSource = {
1262
- kind: 'dev_server';
1263
- port: number;
1264
- } | {
1265
- kind: 'static_artifact';
1266
- url: string;
1267
- };
1268
- export type ActiveProjectContext = {
1269
- kind: 'existing';
1270
- } | {
1271
- kind: 'fresh';
1272
- workspacePath: string;
1273
- workspaceRoot: string;
1274
- framework?: 'vite' | 'next' | 'astro' | 'remix';
1275
- designContext?: Array<{
1276
- kind: 'slug';
1147
+ }>;
1148
+ export declare const projectContextSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1149
+ kind: z.ZodLiteral<"existing">;
1150
+ /** Absolute project path requested for this existing-project run. Present
1151
+ * when callers target a nested project inside a larger git worktree. */
1152
+ projectPath: z.ZodOptional<z.ZodString>;
1153
+ /** Optional design context supplied by agents/benchmarks for existing
1154
+ * project runs with visual references. Surfaced as DesignMD artifacts and
1155
+ * available to QA gates, but does not trigger a source-plan stage. */
1156
+ designContext: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1157
+ kind: z.ZodLiteral<"slug">;
1158
+ slug: z.ZodString;
1159
+ }, "strip", z.ZodTypeAny, {
1277
1160
  slug: string;
1278
- } | {
1279
- kind: 'markdown';
1161
+ kind: "slug";
1162
+ }, {
1163
+ slug: string;
1164
+ kind: "slug";
1165
+ }>, z.ZodObject<{
1166
+ kind: z.ZodLiteral<"markdown">;
1167
+ content: z.ZodString;
1168
+ label: z.ZodString;
1169
+ }, "strip", z.ZodTypeAny, {
1170
+ kind: "markdown";
1171
+ content: string;
1280
1172
  label: string;
1281
- }>;
1282
- sourceContext?: {
1283
- sourceCount: number;
1284
- isSourceGrounded: boolean;
1285
- };
1286
- /** Compact summary of the agent's execution plan, suitable for chip /
1287
- * artifact rendering. The full plan stays on the project context. */
1288
- executionPlan?: {
1289
- mode: ExecutionMode;
1290
- confidence: ExecutionConfidence;
1291
- reason: string;
1292
- assetCount: number;
1293
- runtimeRequirementCount: number;
1294
- };
1295
- };
1296
- export interface ActiveVariantActions {
1297
- view?: {
1298
- enabled: boolean;
1299
- reason?: string;
1300
- };
1301
- commit?: {
1302
- enabled: boolean;
1303
- reason?: string;
1304
- };
1305
- }
1306
- export interface ActiveVariantSnapshot {
1307
- workItemId: string;
1308
- briefId: string;
1309
- label: string;
1310
- status: WorkItemStatus;
1311
- /** ISO timestamp of when the variant's session was generated, so the UI can
1312
- * show date metadata on currently-generated variants (mirrors the
1313
- * `createdAt` shown on persisted history rows). */
1314
- createdAt?: string;
1315
- /** 1–2 word, plain-English label for the *run* this variant belongs to —
1316
- * the intent of the prompt that kicked it off (e.g. "Brighter"). Shared by
1317
- * every variant in the run; shown on each row so the user can tell which
1318
- * prompt a direction came from. */
1319
- runLabel?: string;
1320
- /** The variant's brief body — a compact, plain-language statement of what
1321
- * THIS variant changes relative to baseline. Shown under the title. */
1322
- description?: string;
1323
- design?: VariantDesignSource;
1324
- preview?: VariantPreviewSource;
1325
- port?: number;
1326
- errorCode?: string;
1327
- /**
1328
- * Set when a *succeeded* variant has no live preview because its preview dev
1329
- * server failed to start (commonly the port was already in use). Lets the UI
1330
- * show an accurate per-direction "preview couldn't start" message instead of
1331
- * the generic "Preview isn't connected / restart Rivet" overlay, which is
1332
- * misleading here — nothing is offline, this one direction's preview server
1333
- * just never bound a port.
1334
- */
1335
- previewUnavailable?: {
1336
- reason: 'spawn_error' | 'exited' | 'timeout' | 'unknown';
1337
- portInUse?: boolean;
1338
- };
1339
- actions?: ActiveVariantActions;
1340
- refinement?: {
1341
- workItemId: string;
1342
- status: WorkItemStatus;
1343
- errorCode?: string;
1344
- };
1345
- /**
1346
- * Objective post-generation QA verdict. Present once the orchestrator has
1347
- * run preview QA against the variant's deliverable (asset reachability,
1348
- * runtime/console health). Surfaced on the chip so the user can see why
1349
- * a variant is not committable. `not_run` indicates QA has not yet been
1350
- * exercised for this variant kind (e.g. existing-project `code_gen`).
1351
- */
1352
- qa?: VariantQaResult;
1353
- }
1354
- /**
1355
- * Kinds of supporting artifact a variants session can surface to the UI.
1356
- * `design_context` is the only kind populated today (the DESIGN.md used or
1357
- * generated for a 0→1 run); the other kinds reserve shape for source
1358
- * research bundles, QA reports, and persisted asset manifests so the
1359
- * snapshot contract stays stable as those land.
1360
- */
1361
- export declare const VARIANT_ARTIFACT_KINDS: readonly ["design_context", "source_context", "qa_report", "asset"];
1362
- export type VariantArtifactKind = (typeof VARIANT_ARTIFACT_KINDS)[number];
1173
+ }, {
1174
+ kind: "markdown";
1175
+ content: string;
1176
+ label: string;
1177
+ }>]>, "many">>;
1178
+ sourceContext: z.ZodOptional<z.ZodObject<{
1179
+ sourceUrls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1180
+ preserveBrand: z.ZodOptional<z.ZodBoolean>;
1181
+ sourceArtifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1182
+ kind: z.ZodEnum<["urlText", "siteBrief", "visualBrief", "screenshotNotes", "motionBrief"]>;
1183
+ label: z.ZodString;
1184
+ content: z.ZodString;
1185
+ }, "strip", z.ZodTypeAny, {
1186
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1187
+ content: string;
1188
+ label: string;
1189
+ }, {
1190
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1191
+ content: string;
1192
+ label: string;
1193
+ }>, "many">>;
1194
+ artifact: z.ZodOptional<z.ZodObject<{
1195
+ sourceFindings: z.ZodArray<z.ZodString, "many">;
1196
+ sectionInventory: z.ZodArray<z.ZodString, "many">;
1197
+ visualObservations: z.ZodArray<z.ZodString, "many">;
1198
+ sourceRoles: z.ZodArray<z.ZodObject<{
1199
+ url: z.ZodString;
1200
+ role: z.ZodEnum<["primary", "inspiration", "competitor"]>;
1201
+ rationale: z.ZodOptional<z.ZodString>;
1202
+ }, "strip", z.ZodTypeAny, {
1203
+ url: string;
1204
+ role: "primary" | "inspiration" | "competitor";
1205
+ rationale?: string | undefined;
1206
+ }, {
1207
+ url: string;
1208
+ role: "primary" | "inspiration" | "competitor";
1209
+ rationale?: string | undefined;
1210
+ }>, "many">;
1211
+ qualityBar: z.ZodArray<z.ZodString, "many">;
1212
+ screenshotReferences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1213
+ risks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1214
+ }, "strip", z.ZodTypeAny, {
1215
+ sourceFindings: string[];
1216
+ sectionInventory: string[];
1217
+ visualObservations: string[];
1218
+ sourceRoles: {
1219
+ url: string;
1220
+ role: "primary" | "inspiration" | "competitor";
1221
+ rationale?: string | undefined;
1222
+ }[];
1223
+ qualityBar: string[];
1224
+ screenshotReferences?: string[] | undefined;
1225
+ risks?: string[] | undefined;
1226
+ }, {
1227
+ sourceFindings: string[];
1228
+ sectionInventory: string[];
1229
+ visualObservations: string[];
1230
+ sourceRoles: {
1231
+ url: string;
1232
+ role: "primary" | "inspiration" | "competitor";
1233
+ rationale?: string | undefined;
1234
+ }[];
1235
+ qualityBar: string[];
1236
+ screenshotReferences?: string[] | undefined;
1237
+ risks?: string[] | undefined;
1238
+ }>>;
1239
+ sourceIntent: z.ZodOptional<z.ZodObject<{
1240
+ sources: z.ZodArray<z.ZodEffects<z.ZodObject<{
1241
+ url: z.ZodOptional<z.ZodString>;
1242
+ imageRef: z.ZodOptional<z.ZodString>;
1243
+ role: z.ZodEnum<["design_source", "interaction_reference", "asset_source", "content_reference", "other"]>;
1244
+ confidence: z.ZodEnum<["low", "medium", "high"]>;
1245
+ reason: z.ZodString;
1246
+ }, "strip", z.ZodTypeAny, {
1247
+ reason: string;
1248
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1249
+ confidence: "low" | "medium" | "high";
1250
+ url?: string | undefined;
1251
+ imageRef?: string | undefined;
1252
+ }, {
1253
+ reason: string;
1254
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1255
+ confidence: "low" | "medium" | "high";
1256
+ url?: string | undefined;
1257
+ imageRef?: string | undefined;
1258
+ }>, {
1259
+ reason: string;
1260
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1261
+ confidence: "low" | "medium" | "high";
1262
+ url?: string | undefined;
1263
+ imageRef?: string | undefined;
1264
+ }, {
1265
+ reason: string;
1266
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1267
+ confidence: "low" | "medium" | "high";
1268
+ url?: string | undefined;
1269
+ imageRef?: string | undefined;
1270
+ }>, "many">;
1271
+ }, "strip", z.ZodTypeAny, {
1272
+ sources: {
1273
+ reason: string;
1274
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1275
+ confidence: "low" | "medium" | "high";
1276
+ url?: string | undefined;
1277
+ imageRef?: string | undefined;
1278
+ }[];
1279
+ }, {
1280
+ sources: {
1281
+ reason: string;
1282
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1283
+ confidence: "low" | "medium" | "high";
1284
+ url?: string | undefined;
1285
+ imageRef?: string | undefined;
1286
+ }[];
1287
+ }>>;
1288
+ designDecision: z.ZodOptional<z.ZodEnum<["let_rivet_choose", "go_custom"]>>;
1289
+ }, "strip", z.ZodTypeAny, {
1290
+ sourceUrls?: string[] | undefined;
1291
+ preserveBrand?: boolean | undefined;
1292
+ sourceArtifacts?: {
1293
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1294
+ content: string;
1295
+ label: string;
1296
+ }[] | undefined;
1297
+ artifact?: {
1298
+ sourceFindings: string[];
1299
+ sectionInventory: string[];
1300
+ visualObservations: string[];
1301
+ sourceRoles: {
1302
+ url: string;
1303
+ role: "primary" | "inspiration" | "competitor";
1304
+ rationale?: string | undefined;
1305
+ }[];
1306
+ qualityBar: string[];
1307
+ screenshotReferences?: string[] | undefined;
1308
+ risks?: string[] | undefined;
1309
+ } | undefined;
1310
+ sourceIntent?: {
1311
+ sources: {
1312
+ reason: string;
1313
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1314
+ confidence: "low" | "medium" | "high";
1315
+ url?: string | undefined;
1316
+ imageRef?: string | undefined;
1317
+ }[];
1318
+ } | undefined;
1319
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1320
+ }, {
1321
+ sourceUrls?: string[] | undefined;
1322
+ preserveBrand?: boolean | undefined;
1323
+ sourceArtifacts?: {
1324
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1325
+ content: string;
1326
+ label: string;
1327
+ }[] | undefined;
1328
+ artifact?: {
1329
+ sourceFindings: string[];
1330
+ sectionInventory: string[];
1331
+ visualObservations: string[];
1332
+ sourceRoles: {
1333
+ url: string;
1334
+ role: "primary" | "inspiration" | "competitor";
1335
+ rationale?: string | undefined;
1336
+ }[];
1337
+ qualityBar: string[];
1338
+ screenshotReferences?: string[] | undefined;
1339
+ risks?: string[] | undefined;
1340
+ } | undefined;
1341
+ sourceIntent?: {
1342
+ sources: {
1343
+ reason: string;
1344
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1345
+ confidence: "low" | "medium" | "high";
1346
+ url?: string | undefined;
1347
+ imageRef?: string | undefined;
1348
+ }[];
1349
+ } | undefined;
1350
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1351
+ }>>;
1352
+ }, "strip", z.ZodTypeAny, {
1353
+ kind: "existing";
1354
+ projectPath?: string | undefined;
1355
+ designContext?: ({
1356
+ slug: string;
1357
+ kind: "slug";
1358
+ } | {
1359
+ kind: "markdown";
1360
+ content: string;
1361
+ label: string;
1362
+ })[] | undefined;
1363
+ sourceContext?: {
1364
+ sourceUrls?: string[] | undefined;
1365
+ preserveBrand?: boolean | undefined;
1366
+ sourceArtifacts?: {
1367
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1368
+ content: string;
1369
+ label: string;
1370
+ }[] | undefined;
1371
+ artifact?: {
1372
+ sourceFindings: string[];
1373
+ sectionInventory: string[];
1374
+ visualObservations: string[];
1375
+ sourceRoles: {
1376
+ url: string;
1377
+ role: "primary" | "inspiration" | "competitor";
1378
+ rationale?: string | undefined;
1379
+ }[];
1380
+ qualityBar: string[];
1381
+ screenshotReferences?: string[] | undefined;
1382
+ risks?: string[] | undefined;
1383
+ } | undefined;
1384
+ sourceIntent?: {
1385
+ sources: {
1386
+ reason: string;
1387
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1388
+ confidence: "low" | "medium" | "high";
1389
+ url?: string | undefined;
1390
+ imageRef?: string | undefined;
1391
+ }[];
1392
+ } | undefined;
1393
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1394
+ } | undefined;
1395
+ }, {
1396
+ kind: "existing";
1397
+ projectPath?: string | undefined;
1398
+ designContext?: ({
1399
+ slug: string;
1400
+ kind: "slug";
1401
+ } | {
1402
+ kind: "markdown";
1403
+ content: string;
1404
+ label: string;
1405
+ })[] | undefined;
1406
+ sourceContext?: {
1407
+ sourceUrls?: string[] | undefined;
1408
+ preserveBrand?: boolean | undefined;
1409
+ sourceArtifacts?: {
1410
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1411
+ content: string;
1412
+ label: string;
1413
+ }[] | undefined;
1414
+ artifact?: {
1415
+ sourceFindings: string[];
1416
+ sectionInventory: string[];
1417
+ visualObservations: string[];
1418
+ sourceRoles: {
1419
+ url: string;
1420
+ role: "primary" | "inspiration" | "competitor";
1421
+ rationale?: string | undefined;
1422
+ }[];
1423
+ qualityBar: string[];
1424
+ screenshotReferences?: string[] | undefined;
1425
+ risks?: string[] | undefined;
1426
+ } | undefined;
1427
+ sourceIntent?: {
1428
+ sources: {
1429
+ reason: string;
1430
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1431
+ confidence: "low" | "medium" | "high";
1432
+ url?: string | undefined;
1433
+ imageRef?: string | undefined;
1434
+ }[];
1435
+ } | undefined;
1436
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1437
+ } | undefined;
1438
+ }>, z.ZodObject<{
1439
+ kind: z.ZodLiteral<"fresh">;
1440
+ /** Where the generated subproject's files live (e.g.
1441
+ * `fable-eng-demo/.rivet/marketing-clone/`). This is the materialize
1442
+ * target — the agent reads/writes index.html, src/, etc. here. */
1443
+ workspacePath: z.ZodString;
1444
+ /** The user's working directory that owns *all* Rivet artifacts for the
1445
+ * session (e.g. `fable-eng-demo`). `<workspaceRoot>/.rivet/` holds
1446
+ * generated subprojects, variant history, and create-project manifests.
1447
+ * Distinct from `path.dirname(workspacePath)` because subprojects nest
1448
+ * inside `.rivet/` — the dirname would resolve to the `.rivet` dir,
1449
+ * not the workspace itself. */
1450
+ workspaceRoot: z.ZodString;
1451
+ framework: z.ZodOptional<z.ZodEnum<["vite", "next", "astro", "remix"]>>;
1452
+ assetSourceRoot: z.ZodOptional<z.ZodString>;
1453
+ /** Per-variant-slot design context. Slug entries resolve bundled catalog
1454
+ * markdown; markdown entries are written directly as `DESIGN.md`. The
1455
+ * order matches code-gen variant slot order. */
1456
+ designContext: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1457
+ kind: z.ZodLiteral<"slug">;
1458
+ slug: z.ZodString;
1459
+ }, "strip", z.ZodTypeAny, {
1460
+ slug: string;
1461
+ kind: "slug";
1462
+ }, {
1463
+ slug: string;
1464
+ kind: "slug";
1465
+ }>, z.ZodObject<{
1466
+ kind: z.ZodLiteral<"markdown">;
1467
+ content: z.ZodString;
1468
+ label: z.ZodString;
1469
+ }, "strip", z.ZodTypeAny, {
1470
+ kind: "markdown";
1471
+ content: string;
1472
+ label: string;
1473
+ }, {
1474
+ kind: "markdown";
1475
+ content: string;
1476
+ label: string;
1477
+ }>]>, "many">>;
1478
+ sourceContext: z.ZodOptional<z.ZodObject<{
1479
+ sourceUrls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1480
+ preserveBrand: z.ZodOptional<z.ZodBoolean>;
1481
+ sourceArtifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{
1482
+ kind: z.ZodEnum<["urlText", "siteBrief", "visualBrief", "screenshotNotes", "motionBrief"]>;
1483
+ label: z.ZodString;
1484
+ content: z.ZodString;
1485
+ }, "strip", z.ZodTypeAny, {
1486
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1487
+ content: string;
1488
+ label: string;
1489
+ }, {
1490
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1491
+ content: string;
1492
+ label: string;
1493
+ }>, "many">>;
1494
+ artifact: z.ZodOptional<z.ZodObject<{
1495
+ sourceFindings: z.ZodArray<z.ZodString, "many">;
1496
+ sectionInventory: z.ZodArray<z.ZodString, "many">;
1497
+ visualObservations: z.ZodArray<z.ZodString, "many">;
1498
+ sourceRoles: z.ZodArray<z.ZodObject<{
1499
+ url: z.ZodString;
1500
+ role: z.ZodEnum<["primary", "inspiration", "competitor"]>;
1501
+ rationale: z.ZodOptional<z.ZodString>;
1502
+ }, "strip", z.ZodTypeAny, {
1503
+ url: string;
1504
+ role: "primary" | "inspiration" | "competitor";
1505
+ rationale?: string | undefined;
1506
+ }, {
1507
+ url: string;
1508
+ role: "primary" | "inspiration" | "competitor";
1509
+ rationale?: string | undefined;
1510
+ }>, "many">;
1511
+ qualityBar: z.ZodArray<z.ZodString, "many">;
1512
+ screenshotReferences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1513
+ risks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1514
+ }, "strip", z.ZodTypeAny, {
1515
+ sourceFindings: string[];
1516
+ sectionInventory: string[];
1517
+ visualObservations: string[];
1518
+ sourceRoles: {
1519
+ url: string;
1520
+ role: "primary" | "inspiration" | "competitor";
1521
+ rationale?: string | undefined;
1522
+ }[];
1523
+ qualityBar: string[];
1524
+ screenshotReferences?: string[] | undefined;
1525
+ risks?: string[] | undefined;
1526
+ }, {
1527
+ sourceFindings: string[];
1528
+ sectionInventory: string[];
1529
+ visualObservations: string[];
1530
+ sourceRoles: {
1531
+ url: string;
1532
+ role: "primary" | "inspiration" | "competitor";
1533
+ rationale?: string | undefined;
1534
+ }[];
1535
+ qualityBar: string[];
1536
+ screenshotReferences?: string[] | undefined;
1537
+ risks?: string[] | undefined;
1538
+ }>>;
1539
+ sourceIntent: z.ZodOptional<z.ZodObject<{
1540
+ sources: z.ZodArray<z.ZodEffects<z.ZodObject<{
1541
+ url: z.ZodOptional<z.ZodString>;
1542
+ imageRef: z.ZodOptional<z.ZodString>;
1543
+ role: z.ZodEnum<["design_source", "interaction_reference", "asset_source", "content_reference", "other"]>;
1544
+ confidence: z.ZodEnum<["low", "medium", "high"]>;
1545
+ reason: z.ZodString;
1546
+ }, "strip", z.ZodTypeAny, {
1547
+ reason: string;
1548
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1549
+ confidence: "low" | "medium" | "high";
1550
+ url?: string | undefined;
1551
+ imageRef?: string | undefined;
1552
+ }, {
1553
+ reason: string;
1554
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1555
+ confidence: "low" | "medium" | "high";
1556
+ url?: string | undefined;
1557
+ imageRef?: string | undefined;
1558
+ }>, {
1559
+ reason: string;
1560
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1561
+ confidence: "low" | "medium" | "high";
1562
+ url?: string | undefined;
1563
+ imageRef?: string | undefined;
1564
+ }, {
1565
+ reason: string;
1566
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1567
+ confidence: "low" | "medium" | "high";
1568
+ url?: string | undefined;
1569
+ imageRef?: string | undefined;
1570
+ }>, "many">;
1571
+ }, "strip", z.ZodTypeAny, {
1572
+ sources: {
1573
+ reason: string;
1574
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1575
+ confidence: "low" | "medium" | "high";
1576
+ url?: string | undefined;
1577
+ imageRef?: string | undefined;
1578
+ }[];
1579
+ }, {
1580
+ sources: {
1581
+ reason: string;
1582
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1583
+ confidence: "low" | "medium" | "high";
1584
+ url?: string | undefined;
1585
+ imageRef?: string | undefined;
1586
+ }[];
1587
+ }>>;
1588
+ designDecision: z.ZodOptional<z.ZodEnum<["let_rivet_choose", "go_custom"]>>;
1589
+ }, "strip", z.ZodTypeAny, {
1590
+ sourceUrls?: string[] | undefined;
1591
+ preserveBrand?: boolean | undefined;
1592
+ sourceArtifacts?: {
1593
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1594
+ content: string;
1595
+ label: string;
1596
+ }[] | undefined;
1597
+ artifact?: {
1598
+ sourceFindings: string[];
1599
+ sectionInventory: string[];
1600
+ visualObservations: string[];
1601
+ sourceRoles: {
1602
+ url: string;
1603
+ role: "primary" | "inspiration" | "competitor";
1604
+ rationale?: string | undefined;
1605
+ }[];
1606
+ qualityBar: string[];
1607
+ screenshotReferences?: string[] | undefined;
1608
+ risks?: string[] | undefined;
1609
+ } | undefined;
1610
+ sourceIntent?: {
1611
+ sources: {
1612
+ reason: string;
1613
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1614
+ confidence: "low" | "medium" | "high";
1615
+ url?: string | undefined;
1616
+ imageRef?: string | undefined;
1617
+ }[];
1618
+ } | undefined;
1619
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1620
+ }, {
1621
+ sourceUrls?: string[] | undefined;
1622
+ preserveBrand?: boolean | undefined;
1623
+ sourceArtifacts?: {
1624
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1625
+ content: string;
1626
+ label: string;
1627
+ }[] | undefined;
1628
+ artifact?: {
1629
+ sourceFindings: string[];
1630
+ sectionInventory: string[];
1631
+ visualObservations: string[];
1632
+ sourceRoles: {
1633
+ url: string;
1634
+ role: "primary" | "inspiration" | "competitor";
1635
+ rationale?: string | undefined;
1636
+ }[];
1637
+ qualityBar: string[];
1638
+ screenshotReferences?: string[] | undefined;
1639
+ risks?: string[] | undefined;
1640
+ } | undefined;
1641
+ sourceIntent?: {
1642
+ sources: {
1643
+ reason: string;
1644
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1645
+ confidence: "low" | "medium" | "high";
1646
+ url?: string | undefined;
1647
+ imageRef?: string | undefined;
1648
+ }[];
1649
+ } | undefined;
1650
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1651
+ }>>;
1652
+ /** Agent-supplied execution plan from `report_source_plan`. Drives the
1653
+ * generation routing decision at approve() time: `static_preview` keeps
1654
+ * the lightweight HTML-only path; `vite_app` provisions a real Vite
1655
+ * worktree per variant and copies any large assets from `assetPlan`. */
1656
+ executionPlan: z.ZodOptional<z.ZodObject<{
1657
+ mode: z.ZodEnum<["static_preview", "vite_app"]>;
1658
+ confidence: z.ZodEnum<["low", "medium", "high"]>;
1659
+ reason: z.ZodString;
1660
+ assetPlan: z.ZodOptional<z.ZodArray<z.ZodObject<{
1661
+ source: z.ZodString;
1662
+ destination: z.ZodString;
1663
+ referenceAs: z.ZodString;
1664
+ }, "strip", z.ZodTypeAny, {
1665
+ source: string;
1666
+ destination: string;
1667
+ referenceAs: string;
1668
+ }, {
1669
+ source: string;
1670
+ destination: string;
1671
+ referenceAs: string;
1672
+ }>, "many">>;
1673
+ runtimeRequirements: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1674
+ userQuestion: z.ZodOptional<z.ZodString>;
1675
+ }, "strip", z.ZodTypeAny, {
1676
+ mode: "static_preview" | "vite_app";
1677
+ reason: string;
1678
+ confidence: "low" | "medium" | "high";
1679
+ assetPlan?: {
1680
+ source: string;
1681
+ destination: string;
1682
+ referenceAs: string;
1683
+ }[] | undefined;
1684
+ runtimeRequirements?: string[] | undefined;
1685
+ userQuestion?: string | undefined;
1686
+ }, {
1687
+ mode: "static_preview" | "vite_app";
1688
+ reason: string;
1689
+ confidence: "low" | "medium" | "high";
1690
+ assetPlan?: {
1691
+ source: string;
1692
+ destination: string;
1693
+ referenceAs: string;
1694
+ }[] | undefined;
1695
+ runtimeRequirements?: string[] | undefined;
1696
+ userQuestion?: string | undefined;
1697
+ }>>;
1698
+ }, "strip", z.ZodTypeAny, {
1699
+ kind: "fresh";
1700
+ workspacePath: string;
1701
+ workspaceRoot: string;
1702
+ framework?: "next" | "vite" | "remix" | "astro" | undefined;
1703
+ designContext?: ({
1704
+ slug: string;
1705
+ kind: "slug";
1706
+ } | {
1707
+ kind: "markdown";
1708
+ content: string;
1709
+ label: string;
1710
+ })[] | undefined;
1711
+ sourceContext?: {
1712
+ sourceUrls?: string[] | undefined;
1713
+ preserveBrand?: boolean | undefined;
1714
+ sourceArtifacts?: {
1715
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1716
+ content: string;
1717
+ label: string;
1718
+ }[] | undefined;
1719
+ artifact?: {
1720
+ sourceFindings: string[];
1721
+ sectionInventory: string[];
1722
+ visualObservations: string[];
1723
+ sourceRoles: {
1724
+ url: string;
1725
+ role: "primary" | "inspiration" | "competitor";
1726
+ rationale?: string | undefined;
1727
+ }[];
1728
+ qualityBar: string[];
1729
+ screenshotReferences?: string[] | undefined;
1730
+ risks?: string[] | undefined;
1731
+ } | undefined;
1732
+ sourceIntent?: {
1733
+ sources: {
1734
+ reason: string;
1735
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1736
+ confidence: "low" | "medium" | "high";
1737
+ url?: string | undefined;
1738
+ imageRef?: string | undefined;
1739
+ }[];
1740
+ } | undefined;
1741
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1742
+ } | undefined;
1743
+ assetSourceRoot?: string | undefined;
1744
+ executionPlan?: {
1745
+ mode: "static_preview" | "vite_app";
1746
+ reason: string;
1747
+ confidence: "low" | "medium" | "high";
1748
+ assetPlan?: {
1749
+ source: string;
1750
+ destination: string;
1751
+ referenceAs: string;
1752
+ }[] | undefined;
1753
+ runtimeRequirements?: string[] | undefined;
1754
+ userQuestion?: string | undefined;
1755
+ } | undefined;
1756
+ }, {
1757
+ kind: "fresh";
1758
+ workspacePath: string;
1759
+ workspaceRoot: string;
1760
+ framework?: "next" | "vite" | "remix" | "astro" | undefined;
1761
+ designContext?: ({
1762
+ slug: string;
1763
+ kind: "slug";
1764
+ } | {
1765
+ kind: "markdown";
1766
+ content: string;
1767
+ label: string;
1768
+ })[] | undefined;
1769
+ sourceContext?: {
1770
+ sourceUrls?: string[] | undefined;
1771
+ preserveBrand?: boolean | undefined;
1772
+ sourceArtifacts?: {
1773
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
1774
+ content: string;
1775
+ label: string;
1776
+ }[] | undefined;
1777
+ artifact?: {
1778
+ sourceFindings: string[];
1779
+ sectionInventory: string[];
1780
+ visualObservations: string[];
1781
+ sourceRoles: {
1782
+ url: string;
1783
+ role: "primary" | "inspiration" | "competitor";
1784
+ rationale?: string | undefined;
1785
+ }[];
1786
+ qualityBar: string[];
1787
+ screenshotReferences?: string[] | undefined;
1788
+ risks?: string[] | undefined;
1789
+ } | undefined;
1790
+ sourceIntent?: {
1791
+ sources: {
1792
+ reason: string;
1793
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
1794
+ confidence: "low" | "medium" | "high";
1795
+ url?: string | undefined;
1796
+ imageRef?: string | undefined;
1797
+ }[];
1798
+ } | undefined;
1799
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1800
+ } | undefined;
1801
+ assetSourceRoot?: string | undefined;
1802
+ executionPlan?: {
1803
+ mode: "static_preview" | "vite_app";
1804
+ reason: string;
1805
+ confidence: "low" | "medium" | "high";
1806
+ assetPlan?: {
1807
+ source: string;
1808
+ destination: string;
1809
+ referenceAs: string;
1810
+ }[] | undefined;
1811
+ runtimeRequirements?: string[] | undefined;
1812
+ userQuestion?: string | undefined;
1813
+ } | undefined;
1814
+ }>]>;
1815
+ export type ProjectContext = z.infer<typeof projectContextSchema>;
1816
+ export type DesignContextEntry = z.infer<typeof designContextEntrySchema>;
1817
+ export type SourceArtifactInput = z.infer<typeof sourceArtifactInputSchema>;
1818
+ export type SourceRole = z.infer<typeof sourceRoleSchema>;
1819
+ export type SourceContextArtifact = z.infer<typeof sourceContextArtifactSchema>;
1820
+ export type SourceContextInput = z.infer<typeof sourceContextInputSchema>;
1821
+ export type VariantDesignSource = {
1822
+ kind: 'slug';
1823
+ slug: string;
1824
+ displayName: string;
1825
+ } | {
1826
+ kind: 'markdown';
1827
+ label: string;
1828
+ };
1829
+ export type VariantPreviewSource = {
1830
+ kind: 'dev_server';
1831
+ port: number;
1832
+ } | {
1833
+ kind: 'static_artifact';
1834
+ url: string;
1835
+ };
1836
+ export type ActiveProjectContext = {
1837
+ kind: 'existing';
1838
+ designContext?: Array<{
1839
+ kind: 'slug';
1840
+ slug: string;
1841
+ } | {
1842
+ kind: 'markdown';
1843
+ label: string;
1844
+ }>;
1845
+ sourceContext?: {
1846
+ sourceCount: number;
1847
+ isSourceGrounded: boolean;
1848
+ };
1849
+ } | {
1850
+ kind: 'fresh';
1851
+ workspacePath: string;
1852
+ workspaceRoot: string;
1853
+ framework?: 'vite' | 'next' | 'astro' | 'remix';
1854
+ designContext?: Array<{
1855
+ kind: 'slug';
1856
+ slug: string;
1857
+ } | {
1858
+ kind: 'markdown';
1859
+ label: string;
1860
+ }>;
1861
+ sourceContext?: {
1862
+ sourceCount: number;
1863
+ isSourceGrounded: boolean;
1864
+ };
1865
+ /** Compact summary of the agent's execution plan, suitable for chip /
1866
+ * artifact rendering. The full plan stays on the project context. */
1867
+ executionPlan?: {
1868
+ mode: ExecutionMode;
1869
+ confidence: ExecutionConfidence;
1870
+ reason: string;
1871
+ assetCount: number;
1872
+ runtimeRequirementCount: number;
1873
+ };
1874
+ };
1875
+ export interface ActiveVariantActions {
1876
+ view?: {
1877
+ enabled: boolean;
1878
+ reason?: string;
1879
+ };
1880
+ commit?: {
1881
+ enabled: boolean;
1882
+ reason?: string;
1883
+ };
1884
+ }
1885
+ export interface ActiveVariantSnapshot {
1886
+ workItemId: string;
1887
+ briefId: string;
1888
+ label: string;
1889
+ status: WorkItemStatus;
1890
+ /** ISO timestamp of when the variant's session was generated, so the UI can
1891
+ * show date metadata on currently-generated variants (mirrors the
1892
+ * `createdAt` shown on persisted history rows). */
1893
+ createdAt?: string;
1894
+ /** 1–2 word, plain-English label for the *run* this variant belongs to —
1895
+ * the intent of the prompt that kicked it off (e.g. "Brighter"). Shared by
1896
+ * every variant in the run; shown on each row so the user can tell which
1897
+ * prompt a direction came from. */
1898
+ runLabel?: string;
1899
+ /** The variant's brief body — a compact, plain-language statement of what
1900
+ * THIS variant changes relative to baseline. Shown under the title. */
1901
+ description?: string;
1902
+ design?: VariantDesignSource;
1903
+ preview?: VariantPreviewSource;
1904
+ port?: number;
1905
+ errorCode?: string;
1906
+ /**
1907
+ * Set when a *succeeded* variant has no live preview because its preview dev
1908
+ * server failed to start (commonly the port was already in use). Lets the UI
1909
+ * show an accurate per-direction "preview couldn't start" message instead of
1910
+ * the generic "Preview isn't connected / restart Rivet" overlay, which is
1911
+ * misleading here — nothing is offline, this one direction's preview server
1912
+ * just never bound a port.
1913
+ */
1914
+ previewUnavailable?: {
1915
+ reason: 'spawn_error' | 'exited' | 'timeout' | 'unknown';
1916
+ portInUse?: boolean;
1917
+ };
1918
+ actions?: ActiveVariantActions;
1919
+ refinement?: {
1920
+ workItemId: string;
1921
+ status: WorkItemStatus;
1922
+ errorCode?: string;
1923
+ };
1924
+ /**
1925
+ * Objective post-generation QA verdict. Present once the orchestrator has
1926
+ * run preview QA against the variant's deliverable (asset reachability,
1927
+ * runtime/console health). Surfaced on the chip so the user can see why
1928
+ * a variant is not committable. `not_run` indicates QA has not yet been
1929
+ * exercised for this variant kind (e.g. existing-project `code_gen`).
1930
+ */
1931
+ qa?: VariantQaResult;
1932
+ }
1933
+ /**
1934
+ * Kinds of supporting artifact a variants session can surface to the UI.
1935
+ * `design_context` is the only kind populated today (the DESIGN.md used or
1936
+ * generated for a 0→1 run); the other kinds reserve shape for source
1937
+ * research bundles, QA reports, and persisted asset manifests so the
1938
+ * snapshot contract stays stable as those land.
1939
+ */
1940
+ export declare const VARIANT_ARTIFACT_KINDS: readonly ["design_context", "source_context", "qa_report", "asset"];
1941
+ export type VariantArtifactKind = (typeof VARIANT_ARTIFACT_KINDS)[number];
1363
1942
  export type VariantArtifactStatus = 'ready' | 'warning' | 'failed';
1364
1943
  export type VariantArtifactSource = 'agent_browser' | 'cache' | 'static' | 'manual';
1365
1944
  export type VariantArtifactContentType = 'text/markdown' | 'application/json' | 'text/plain';
@@ -1389,9 +1968,11 @@ export type VariantQaStatus = 'passed' | 'failed' | 'not_run';
1389
1968
  * Categorical QA failure mode. Mirrors the failure surfaces the gate
1390
1969
  * checks for static previews — referenced assets that fail to load, code
1391
1970
  * that throws on initial render, or a preview document that couldn't be
1392
- * fetched at all. Kept small so the user-facing prompt can stay legible.
1971
+ * fetched at all. `design_quality` is the aesthetic self-critique verdict:
1972
+ * the rendered variant scored below the must-pass bar on the design rubric.
1973
+ * Kept small so the user-facing prompt can stay legible.
1393
1974
  */
1394
- export type VariantQaIssueKind = 'asset_load_failed' | 'console_error' | 'preview_unavailable';
1975
+ export type VariantQaIssueKind = 'asset_load_failed' | 'console_error' | 'preview_unavailable' | 'design_quality';
1395
1976
  export interface VariantQaIssue {
1396
1977
  kind: VariantQaIssueKind;
1397
1978
  /** Asset URL or runtime source location that triggered the failure. */
@@ -1399,6 +1980,57 @@ export interface VariantQaIssue {
1399
1980
  /** Optional human-readable extra context — e.g. HTTP status, error message. */
1400
1981
  message?: string;
1401
1982
  }
1983
+ /**
1984
+ * Per-dimension aesthetic scores from the design self-critique, each on a
1985
+ * 0–10 scale. `overall` is the model's holistic verdict for the rendered
1986
+ * variant (not a strict average of the dimensions). Attached to a
1987
+ * `VariantQaResult` when the design critique runs; absent when the critique
1988
+ * is skipped (no runner wired, render/model unavailable, or non-0→1 session).
1989
+ */
1990
+ export interface VariantDesignScores {
1991
+ /** Clarity of visual hierarchy / focal flow. */
1992
+ hierarchy: number;
1993
+ /** Type scale, pairing, rhythm, and legibility. */
1994
+ typography: number;
1995
+ /** Palette cohesion and role discipline. */
1996
+ color: number;
1997
+ /** Spacing rhythm, alignment, and density. */
1998
+ spacing: number;
1999
+ /** Resistance to generic "AI slop" patterns (boilerplate hero cards, etc). */
2000
+ slopResistance: number;
2001
+ /** Holistic 0–10 verdict for the rendered variant. */
2002
+ overall: number;
2003
+ }
2004
+ /**
2005
+ * Severity of a design-critique finding.
2006
+ * - `critical`: usability-breaking; hard-fails the variant regardless of score.
2007
+ * - `major`: serious issue that caps the overall score below the pass bar.
2008
+ * - `minor`: non-blocking nit surfaced for the agent without gating.
2009
+ */
2010
+ export type CritiqueSeverity = 'critical' | 'major' | 'minor';
2011
+ /** The task-aware checks a 0→1 variant is judged against beyond aesthetics. */
2012
+ export type CritiqueCheckCategory = 'task_fit' | 'source_fidelity' | 'ui_polish' | 'readability' | 'responsive';
2013
+ /** Pass/warn/fail status for a single critique check category. */
2014
+ export type CritiqueCheckStatus = 'pass' | 'warn' | 'fail';
2015
+ export type CritiqueChecks = Record<CritiqueCheckCategory, CritiqueCheckStatus>;
2016
+ /**
2017
+ * One severity-coded design-critique issue with concrete evidence (what is
2018
+ * wrong) and a fix (what to change), so a re-leased variant has actionable
2019
+ * direction. Raised either by the deterministic artifact lint or the model.
2020
+ */
2021
+ export interface CritiqueFinding {
2022
+ severity: CritiqueSeverity;
2023
+ category: CritiqueCheckCategory;
2024
+ evidence: string;
2025
+ fix: string;
2026
+ }
2027
+ /** A cap applied to a score because of a blocking/major finding. */
2028
+ export interface CritiqueScoreCap {
2029
+ category: CritiqueCheckCategory | 'overall';
2030
+ /** Maximum score the affected target may take while the finding stands. */
2031
+ max: number;
2032
+ reason: string;
2033
+ }
1402
2034
  export interface VariantQaResult {
1403
2035
  status: VariantQaStatus;
1404
2036
  issues: VariantQaIssue[];
@@ -1406,6 +2038,20 @@ export interface VariantQaResult {
1406
2038
  summary: string;
1407
2039
  /** Source of the inspected preview (the URL or marker the runner used). */
1408
2040
  checkedSource?: string;
2041
+ /** Per-dimension aesthetic scores from the design self-critique, when it
2042
+ * ran. Surfaced on the variant chip so the user can see the design score
2043
+ * alongside the objective health verdict. Optional / back-compatible. */
2044
+ dimensionScores?: VariantDesignScores;
2045
+ /** Short natural-language critique from the design self-critique — the
2046
+ * notes the agent must address when regenerating a below-bar variant. */
2047
+ designSummary?: string;
2048
+ /** Severity-coded findings from the strict critique gate (lint + model),
2049
+ * present when the critique ran and surfaced issues. */
2050
+ designFindings?: CritiqueFinding[];
2051
+ /** Per-category pass/warn/fail status from the strict critique gate. */
2052
+ designChecks?: CritiqueChecks;
2053
+ /** Caps applied to the overall design score and why. */
2054
+ designScoreCaps?: CritiqueScoreCap[];
1409
2055
  }
1410
2056
  export declare const targetSchema: z.ZodObject<{
1411
2057
  type: z.ZodEnum<["element", "file", "route"]>;
@@ -1467,10 +2113,294 @@ export declare const proposeVariantsInput: {
1467
2113
  }>>;
1468
2114
  projectContext: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1469
2115
  kind: z.ZodLiteral<"existing">;
2116
+ /** Absolute project path requested for this existing-project run. Present
2117
+ * when callers target a nested project inside a larger git worktree. */
2118
+ projectPath: z.ZodOptional<z.ZodString>;
2119
+ /** Optional design context supplied by agents/benchmarks for existing
2120
+ * project runs with visual references. Surfaced as DesignMD artifacts and
2121
+ * available to QA gates, but does not trigger a source-plan stage. */
2122
+ designContext: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
2123
+ kind: z.ZodLiteral<"slug">;
2124
+ slug: z.ZodString;
2125
+ }, "strip", z.ZodTypeAny, {
2126
+ slug: string;
2127
+ kind: "slug";
2128
+ }, {
2129
+ slug: string;
2130
+ kind: "slug";
2131
+ }>, z.ZodObject<{
2132
+ kind: z.ZodLiteral<"markdown">;
2133
+ content: z.ZodString;
2134
+ label: z.ZodString;
2135
+ }, "strip", z.ZodTypeAny, {
2136
+ kind: "markdown";
2137
+ content: string;
2138
+ label: string;
2139
+ }, {
2140
+ kind: "markdown";
2141
+ content: string;
2142
+ label: string;
2143
+ }>]>, "many">>;
2144
+ sourceContext: z.ZodOptional<z.ZodObject<{
2145
+ sourceUrls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2146
+ preserveBrand: z.ZodOptional<z.ZodBoolean>;
2147
+ sourceArtifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{
2148
+ kind: z.ZodEnum<["urlText", "siteBrief", "visualBrief", "screenshotNotes", "motionBrief"]>;
2149
+ label: z.ZodString;
2150
+ content: z.ZodString;
2151
+ }, "strip", z.ZodTypeAny, {
2152
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
2153
+ content: string;
2154
+ label: string;
2155
+ }, {
2156
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
2157
+ content: string;
2158
+ label: string;
2159
+ }>, "many">>;
2160
+ artifact: z.ZodOptional<z.ZodObject<{
2161
+ sourceFindings: z.ZodArray<z.ZodString, "many">;
2162
+ sectionInventory: z.ZodArray<z.ZodString, "many">;
2163
+ visualObservations: z.ZodArray<z.ZodString, "many">;
2164
+ sourceRoles: z.ZodArray<z.ZodObject<{
2165
+ url: z.ZodString;
2166
+ role: z.ZodEnum<["primary", "inspiration", "competitor"]>;
2167
+ rationale: z.ZodOptional<z.ZodString>;
2168
+ }, "strip", z.ZodTypeAny, {
2169
+ url: string;
2170
+ role: "primary" | "inspiration" | "competitor";
2171
+ rationale?: string | undefined;
2172
+ }, {
2173
+ url: string;
2174
+ role: "primary" | "inspiration" | "competitor";
2175
+ rationale?: string | undefined;
2176
+ }>, "many">;
2177
+ qualityBar: z.ZodArray<z.ZodString, "many">;
2178
+ screenshotReferences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2179
+ risks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2180
+ }, "strip", z.ZodTypeAny, {
2181
+ sourceFindings: string[];
2182
+ sectionInventory: string[];
2183
+ visualObservations: string[];
2184
+ sourceRoles: {
2185
+ url: string;
2186
+ role: "primary" | "inspiration" | "competitor";
2187
+ rationale?: string | undefined;
2188
+ }[];
2189
+ qualityBar: string[];
2190
+ screenshotReferences?: string[] | undefined;
2191
+ risks?: string[] | undefined;
2192
+ }, {
2193
+ sourceFindings: string[];
2194
+ sectionInventory: string[];
2195
+ visualObservations: string[];
2196
+ sourceRoles: {
2197
+ url: string;
2198
+ role: "primary" | "inspiration" | "competitor";
2199
+ rationale?: string | undefined;
2200
+ }[];
2201
+ qualityBar: string[];
2202
+ screenshotReferences?: string[] | undefined;
2203
+ risks?: string[] | undefined;
2204
+ }>>;
2205
+ sourceIntent: z.ZodOptional<z.ZodObject<{
2206
+ sources: z.ZodArray<z.ZodEffects<z.ZodObject<{
2207
+ url: z.ZodOptional<z.ZodString>;
2208
+ imageRef: z.ZodOptional<z.ZodString>;
2209
+ role: z.ZodEnum<["design_source", "interaction_reference", "asset_source", "content_reference", "other"]>;
2210
+ confidence: z.ZodEnum<["low", "medium", "high"]>;
2211
+ reason: z.ZodString;
2212
+ }, "strip", z.ZodTypeAny, {
2213
+ reason: string;
2214
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2215
+ confidence: "low" | "medium" | "high";
2216
+ url?: string | undefined;
2217
+ imageRef?: string | undefined;
2218
+ }, {
2219
+ reason: string;
2220
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2221
+ confidence: "low" | "medium" | "high";
2222
+ url?: string | undefined;
2223
+ imageRef?: string | undefined;
2224
+ }>, {
2225
+ reason: string;
2226
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2227
+ confidence: "low" | "medium" | "high";
2228
+ url?: string | undefined;
2229
+ imageRef?: string | undefined;
2230
+ }, {
2231
+ reason: string;
2232
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2233
+ confidence: "low" | "medium" | "high";
2234
+ url?: string | undefined;
2235
+ imageRef?: string | undefined;
2236
+ }>, "many">;
2237
+ }, "strip", z.ZodTypeAny, {
2238
+ sources: {
2239
+ reason: string;
2240
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2241
+ confidence: "low" | "medium" | "high";
2242
+ url?: string | undefined;
2243
+ imageRef?: string | undefined;
2244
+ }[];
2245
+ }, {
2246
+ sources: {
2247
+ reason: string;
2248
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2249
+ confidence: "low" | "medium" | "high";
2250
+ url?: string | undefined;
2251
+ imageRef?: string | undefined;
2252
+ }[];
2253
+ }>>;
2254
+ designDecision: z.ZodOptional<z.ZodEnum<["let_rivet_choose", "go_custom"]>>;
2255
+ }, "strip", z.ZodTypeAny, {
2256
+ sourceUrls?: string[] | undefined;
2257
+ preserveBrand?: boolean | undefined;
2258
+ sourceArtifacts?: {
2259
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
2260
+ content: string;
2261
+ label: string;
2262
+ }[] | undefined;
2263
+ artifact?: {
2264
+ sourceFindings: string[];
2265
+ sectionInventory: string[];
2266
+ visualObservations: string[];
2267
+ sourceRoles: {
2268
+ url: string;
2269
+ role: "primary" | "inspiration" | "competitor";
2270
+ rationale?: string | undefined;
2271
+ }[];
2272
+ qualityBar: string[];
2273
+ screenshotReferences?: string[] | undefined;
2274
+ risks?: string[] | undefined;
2275
+ } | undefined;
2276
+ sourceIntent?: {
2277
+ sources: {
2278
+ reason: string;
2279
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2280
+ confidence: "low" | "medium" | "high";
2281
+ url?: string | undefined;
2282
+ imageRef?: string | undefined;
2283
+ }[];
2284
+ } | undefined;
2285
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
2286
+ }, {
2287
+ sourceUrls?: string[] | undefined;
2288
+ preserveBrand?: boolean | undefined;
2289
+ sourceArtifacts?: {
2290
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
2291
+ content: string;
2292
+ label: string;
2293
+ }[] | undefined;
2294
+ artifact?: {
2295
+ sourceFindings: string[];
2296
+ sectionInventory: string[];
2297
+ visualObservations: string[];
2298
+ sourceRoles: {
2299
+ url: string;
2300
+ role: "primary" | "inspiration" | "competitor";
2301
+ rationale?: string | undefined;
2302
+ }[];
2303
+ qualityBar: string[];
2304
+ screenshotReferences?: string[] | undefined;
2305
+ risks?: string[] | undefined;
2306
+ } | undefined;
2307
+ sourceIntent?: {
2308
+ sources: {
2309
+ reason: string;
2310
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2311
+ confidence: "low" | "medium" | "high";
2312
+ url?: string | undefined;
2313
+ imageRef?: string | undefined;
2314
+ }[];
2315
+ } | undefined;
2316
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
2317
+ }>>;
1470
2318
  }, "strip", z.ZodTypeAny, {
1471
2319
  kind: "existing";
2320
+ projectPath?: string | undefined;
2321
+ designContext?: ({
2322
+ slug: string;
2323
+ kind: "slug";
2324
+ } | {
2325
+ kind: "markdown";
2326
+ content: string;
2327
+ label: string;
2328
+ })[] | undefined;
2329
+ sourceContext?: {
2330
+ sourceUrls?: string[] | undefined;
2331
+ preserveBrand?: boolean | undefined;
2332
+ sourceArtifacts?: {
2333
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
2334
+ content: string;
2335
+ label: string;
2336
+ }[] | undefined;
2337
+ artifact?: {
2338
+ sourceFindings: string[];
2339
+ sectionInventory: string[];
2340
+ visualObservations: string[];
2341
+ sourceRoles: {
2342
+ url: string;
2343
+ role: "primary" | "inspiration" | "competitor";
2344
+ rationale?: string | undefined;
2345
+ }[];
2346
+ qualityBar: string[];
2347
+ screenshotReferences?: string[] | undefined;
2348
+ risks?: string[] | undefined;
2349
+ } | undefined;
2350
+ sourceIntent?: {
2351
+ sources: {
2352
+ reason: string;
2353
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2354
+ confidence: "low" | "medium" | "high";
2355
+ url?: string | undefined;
2356
+ imageRef?: string | undefined;
2357
+ }[];
2358
+ } | undefined;
2359
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
2360
+ } | undefined;
1472
2361
  }, {
1473
2362
  kind: "existing";
2363
+ projectPath?: string | undefined;
2364
+ designContext?: ({
2365
+ slug: string;
2366
+ kind: "slug";
2367
+ } | {
2368
+ kind: "markdown";
2369
+ content: string;
2370
+ label: string;
2371
+ })[] | undefined;
2372
+ sourceContext?: {
2373
+ sourceUrls?: string[] | undefined;
2374
+ preserveBrand?: boolean | undefined;
2375
+ sourceArtifacts?: {
2376
+ kind: "urlText" | "siteBrief" | "visualBrief" | "screenshotNotes" | "motionBrief";
2377
+ content: string;
2378
+ label: string;
2379
+ }[] | undefined;
2380
+ artifact?: {
2381
+ sourceFindings: string[];
2382
+ sectionInventory: string[];
2383
+ visualObservations: string[];
2384
+ sourceRoles: {
2385
+ url: string;
2386
+ role: "primary" | "inspiration" | "competitor";
2387
+ rationale?: string | undefined;
2388
+ }[];
2389
+ qualityBar: string[];
2390
+ screenshotReferences?: string[] | undefined;
2391
+ risks?: string[] | undefined;
2392
+ } | undefined;
2393
+ sourceIntent?: {
2394
+ sources: {
2395
+ reason: string;
2396
+ role: "other" | "design_source" | "interaction_reference" | "asset_source" | "content_reference";
2397
+ confidence: "low" | "medium" | "high";
2398
+ url?: string | undefined;
2399
+ imageRef?: string | undefined;
2400
+ }[];
2401
+ } | undefined;
2402
+ designDecision?: "let_rivet_choose" | "go_custom" | undefined;
2403
+ } | undefined;
1474
2404
  }>, z.ZodObject<{
1475
2405
  kind: z.ZodLiteral<"fresh">;
1476
2406
  /** Where the generated subproject's files live (e.g.
@@ -1736,7 +2666,6 @@ export declare const proposeVariantsInput: {
1736
2666
  workspacePath: string;
1737
2667
  workspaceRoot: string;
1738
2668
  framework?: "next" | "vite" | "remix" | "astro" | undefined;
1739
- assetSourceRoot?: string | undefined;
1740
2669
  designContext?: ({
1741
2670
  slug: string;
1742
2671
  kind: "slug";
@@ -1777,6 +2706,7 @@ export declare const proposeVariantsInput: {
1777
2706
  } | undefined;
1778
2707
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1779
2708
  } | undefined;
2709
+ assetSourceRoot?: string | undefined;
1780
2710
  executionPlan?: {
1781
2711
  mode: "static_preview" | "vite_app";
1782
2712
  reason: string;
@@ -1794,7 +2724,6 @@ export declare const proposeVariantsInput: {
1794
2724
  workspacePath: string;
1795
2725
  workspaceRoot: string;
1796
2726
  framework?: "next" | "vite" | "remix" | "astro" | undefined;
1797
- assetSourceRoot?: string | undefined;
1798
2727
  designContext?: ({
1799
2728
  slug: string;
1800
2729
  kind: "slug";
@@ -1835,6 +2764,7 @@ export declare const proposeVariantsInput: {
1835
2764
  } | undefined;
1836
2765
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1837
2766
  } | undefined;
2767
+ assetSourceRoot?: string | undefined;
1838
2768
  executionPlan?: {
1839
2769
  mode: "static_preview" | "vite_app";
1840
2770
  reason: string;