rivet-design 0.10.7 → 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 (170) hide show
  1. package/dist/index.d.ts +54 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +302 -129
  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 +99 -2
  10. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  11. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +734 -74
  12. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  13. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts +8 -2
  14. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -1
  15. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js +24 -5
  16. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -1
  17. package/dist/mcp/agent-variants/contracts.d.ts +1175 -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/pinterestSourceContext.d.ts.map +1 -1
  34. package/dist/mcp/agent-variants/pinterestSourceContext.js +11 -1
  35. package/dist/mcp/agent-variants/pinterestSourceContext.js.map +1 -1
  36. package/dist/mcp/agent-variants/previewQa.d.ts.map +1 -1
  37. package/dist/mcp/agent-variants/previewQa.js +7 -0
  38. package/dist/mcp/agent-variants/previewQa.js.map +1 -1
  39. package/dist/mcp/agent-variants/tools.d.ts.map +1 -1
  40. package/dist/mcp/agent-variants/tools.js +15 -5
  41. package/dist/mcp/agent-variants/tools.js.map +1 -1
  42. package/dist/mcp/auth/httpOAuthProvider.d.ts +103 -0
  43. package/dist/mcp/auth/httpOAuthProvider.d.ts.map +1 -0
  44. package/dist/mcp/auth/httpOAuthProvider.js +454 -0
  45. package/dist/mcp/auth/httpOAuthProvider.js.map +1 -0
  46. package/dist/mcp/auth/tools.d.ts +2 -0
  47. package/dist/mcp/auth/tools.d.ts.map +1 -1
  48. package/dist/mcp/auth/tools.js +12 -5
  49. package/dist/mcp/auth/tools.js.map +1 -1
  50. package/dist/mcp/httpServer.d.ts +36 -0
  51. package/dist/mcp/httpServer.d.ts.map +1 -0
  52. package/dist/mcp/httpServer.js +307 -0
  53. package/dist/mcp/httpServer.js.map +1 -0
  54. package/dist/mcp/server.d.ts +17 -0
  55. package/dist/mcp/server.d.ts.map +1 -1
  56. package/dist/mcp/server.js +50 -29
  57. package/dist/mcp/server.js.map +1 -1
  58. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  59. package/dist/proxy-middleware/proxy-config.js +5 -2
  60. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  61. package/dist/routes/agentVariants.d.ts +2 -1
  62. package/dist/routes/agentVariants.d.ts.map +1 -1
  63. package/dist/routes/agentVariants.js +268 -19
  64. package/dist/routes/agentVariants.js.map +1 -1
  65. package/dist/routes/design.d.ts.map +1 -1
  66. package/dist/routes/design.js +0 -122
  67. package/dist/routes/design.js.map +1 -1
  68. package/dist/routes/mcp.d.ts.map +1 -1
  69. package/dist/routes/mcp.js +2 -1
  70. package/dist/routes/mcp.js.map +1 -1
  71. package/dist/server.d.ts +15 -0
  72. package/dist/server.d.ts.map +1 -1
  73. package/dist/server.js +24 -11
  74. package/dist/server.js.map +1 -1
  75. package/dist/services/AgentSessionService.d.ts +5 -1
  76. package/dist/services/AgentSessionService.d.ts.map +1 -1
  77. package/dist/services/AgentSessionService.js +11 -4
  78. package/dist/services/AgentSessionService.js.map +1 -1
  79. package/dist/services/AuthService.d.ts +1 -0
  80. package/dist/services/AuthService.d.ts.map +1 -1
  81. package/dist/services/AuthService.js +11 -1
  82. package/dist/services/AuthService.js.map +1 -1
  83. package/dist/services/ConfigManager.d.ts +5 -0
  84. package/dist/services/ConfigManager.d.ts.map +1 -1
  85. package/dist/services/ConfigManager.js +25 -3
  86. package/dist/services/ConfigManager.js.map +1 -1
  87. package/dist/services/DevServerRuntimeService.d.ts +119 -0
  88. package/dist/services/DevServerRuntimeService.d.ts.map +1 -0
  89. package/dist/services/DevServerRuntimeService.js +657 -0
  90. package/dist/services/DevServerRuntimeService.js.map +1 -0
  91. package/dist/services/GatewayClient.d.ts +25 -0
  92. package/dist/services/GatewayClient.d.ts.map +1 -1
  93. package/dist/services/GatewayClient.js +70 -11
  94. package/dist/services/GatewayClient.js.map +1 -1
  95. package/dist/services/InlineVariantGenerationService.d.ts +2 -3
  96. package/dist/services/InlineVariantGenerationService.d.ts.map +1 -1
  97. package/dist/services/InlineVariantGenerationService.js +7 -5
  98. package/dist/services/InlineVariantGenerationService.js.map +1 -1
  99. package/dist/services/IntegrationsClient.d.ts +20 -0
  100. package/dist/services/IntegrationsClient.d.ts.map +1 -1
  101. package/dist/services/IntegrationsClient.js +82 -24
  102. package/dist/services/IntegrationsClient.js.map +1 -1
  103. package/dist/services/RequestAuthContext.d.ts +7 -1
  104. package/dist/services/RequestAuthContext.d.ts.map +1 -1
  105. package/dist/services/RequestAuthContext.js +15 -2
  106. package/dist/services/RequestAuthContext.js.map +1 -1
  107. package/dist/services/SessionBridgeService.d.ts +1 -0
  108. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  109. package/dist/services/SessionBridgeService.js +16 -1
  110. package/dist/services/SessionBridgeService.js.map +1 -1
  111. package/dist/services/TelemetryService.d.ts +2 -0
  112. package/dist/services/TelemetryService.d.ts.map +1 -1
  113. package/dist/services/TelemetryService.js +2 -0
  114. package/dist/services/TelemetryService.js.map +1 -1
  115. package/dist/services/VariantHistoryService.d.ts +8 -0
  116. package/dist/services/VariantHistoryService.d.ts.map +1 -1
  117. package/dist/services/VariantHistoryService.js +23 -0
  118. package/dist/services/VariantHistoryService.js.map +1 -1
  119. package/dist/services/VariantRunService.d.ts +56 -0
  120. package/dist/services/VariantRunService.d.ts.map +1 -0
  121. package/dist/services/VariantRunService.js +56 -0
  122. package/dist/services/VariantRunService.js.map +1 -0
  123. package/dist/services/VariantsRuntime.d.ts +22 -0
  124. package/dist/services/VariantsRuntime.d.ts.map +1 -0
  125. package/dist/services/VariantsRuntime.js +32 -0
  126. package/dist/services/VariantsRuntime.js.map +1 -0
  127. package/dist/services/VisualVariantAgentRunner.d.ts +20 -0
  128. package/dist/services/VisualVariantAgentRunner.d.ts.map +1 -0
  129. package/dist/services/VisualVariantAgentRunner.js +66 -0
  130. package/dist/services/VisualVariantAgentRunner.js.map +1 -0
  131. package/dist/services/WorktreeManager.d.ts +34 -0
  132. package/dist/services/WorktreeManager.d.ts.map +1 -1
  133. package/dist/services/WorktreeManager.js +172 -23
  134. package/dist/services/WorktreeManager.js.map +1 -1
  135. package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -1
  136. package/dist/services/createAgentVariantsOrchestrator.js +9 -0
  137. package/dist/services/createAgentVariantsOrchestrator.js.map +1 -1
  138. package/dist/utils/devServerCommand.d.ts +11 -4
  139. package/dist/utils/devServerCommand.d.ts.map +1 -1
  140. package/dist/utils/devServerCommand.js +17 -8
  141. package/dist/utils/devServerCommand.js.map +1 -1
  142. package/dist/utils/devServerError.d.ts +34 -0
  143. package/dist/utils/devServerError.d.ts.map +1 -0
  144. package/dist/utils/devServerError.js +39 -0
  145. package/dist/utils/devServerError.js.map +1 -0
  146. package/dist/utils/elementRefToContext.d.ts +4 -0
  147. package/dist/utils/elementRefToContext.d.ts.map +1 -0
  148. package/dist/utils/elementRefToContext.js +63 -0
  149. package/dist/utils/elementRefToContext.js.map +1 -0
  150. package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -1
  151. package/dist/utils/skills/shared-variants-protocol.js +5 -2
  152. package/dist/utils/skills/shared-variants-protocol.js.map +1 -1
  153. package/dist/utils/variantSessionStart.d.ts +3 -0
  154. package/dist/utils/variantSessionStart.d.ts.map +1 -0
  155. package/dist/utils/variantSessionStart.js +7 -0
  156. package/dist/utils/variantSessionStart.js.map +1 -0
  157. package/package.json +3 -1
  158. package/src/ui/dist/assets/main-Cwwhwfjq.js +645 -0
  159. package/src/ui/dist/assets/main-Do6whVIm.css +1 -0
  160. package/src/ui/dist/index.html +2 -2
  161. package/dist/services/CommentVariationService.d.ts +0 -34
  162. package/dist/services/CommentVariationService.d.ts.map +0 -1
  163. package/dist/services/CommentVariationService.js +0 -136
  164. package/dist/services/CommentVariationService.js.map +0 -1
  165. package/dist/services/VariantCodeGeneratorService.d.ts +0 -39
  166. package/dist/services/VariantCodeGeneratorService.d.ts.map +0 -1
  167. package/dist/services/VariantCodeGeneratorService.js +0 -109
  168. package/dist/services/VariantCodeGeneratorService.js.map +0 -1
  169. package/src/ui/dist/assets/main-DUIrSkV3.css +0 -1
  170. package/src/ui/dist/assets/main-DYpxGvCu.js +0 -646
@@ -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,813 @@ 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
- actions?: ActiveVariantActions;
1328
- refinement?: {
1329
- workItemId: string;
1330
- status: WorkItemStatus;
1331
- errorCode?: string;
1332
- };
1333
- /**
1334
- * Objective post-generation QA verdict. Present once the orchestrator has
1335
- * run preview QA against the variant's deliverable (asset reachability,
1336
- * runtime/console health). Surfaced on the chip so the user can see why
1337
- * a variant is not committable. `not_run` indicates QA has not yet been
1338
- * exercised for this variant kind (e.g. existing-project `code_gen`).
1339
- */
1340
- qa?: VariantQaResult;
1341
- }
1342
- /**
1343
- * Kinds of supporting artifact a variants session can surface to the UI.
1344
- * `design_context` is the only kind populated today (the DESIGN.md used or
1345
- * generated for a 0→1 run); the other kinds reserve shape for source
1346
- * research bundles, QA reports, and persisted asset manifests so the
1347
- * snapshot contract stays stable as those land.
1348
- */
1349
- export declare const VARIANT_ARTIFACT_KINDS: readonly ["design_context", "source_context", "qa_report", "asset"];
1350
- export type VariantArtifactKind = (typeof VARIANT_ARTIFACT_KINDS)[number];
1351
- export type VariantArtifactStatus = 'ready' | 'warning' | 'failed';
1352
- export type VariantArtifactSource = 'agent_browser' | 'cache' | 'static' | 'manual';
1353
- export type VariantArtifactContentType = 'text/markdown' | 'application/json' | 'text/plain';
1354
- /**
1355
- * Stable, transport-safe shape for one supporting artifact attached to a
1356
- * variants session. `design_context` artifacts expose loopback URLs so the
1357
- * UI can open raw markdown or a rendered DesignMD view without carrying the
1358
- * full document in every snapshot.
1359
- */
1360
- export interface VariantSessionArtifact {
1361
- id: string;
1362
- kind: VariantArtifactKind;
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];
1942
+ export type VariantArtifactStatus = 'ready' | 'warning' | 'failed';
1943
+ export type VariantArtifactSource = 'agent_browser' | 'cache' | 'static' | 'manual';
1944
+ export type VariantArtifactContentType = 'text/markdown' | 'application/json' | 'text/plain';
1945
+ /**
1946
+ * Stable, transport-safe shape for one supporting artifact attached to a
1947
+ * variants session. `design_context` artifacts expose loopback URLs so the
1948
+ * UI can open raw markdown or a rendered DesignMD view without carrying the
1949
+ * full document in every snapshot.
1950
+ */
1951
+ export interface VariantSessionArtifact {
1952
+ id: string;
1953
+ kind: VariantArtifactKind;
1363
1954
  label: string;
1364
1955
  summary?: string;
1365
1956
  usedByVariantCount?: number;
@@ -1377,9 +1968,11 @@ export type VariantQaStatus = 'passed' | 'failed' | 'not_run';
1377
1968
  * Categorical QA failure mode. Mirrors the failure surfaces the gate
1378
1969
  * checks for static previews — referenced assets that fail to load, code
1379
1970
  * that throws on initial render, or a preview document that couldn't be
1380
- * 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.
1381
1974
  */
1382
- export type VariantQaIssueKind = 'asset_load_failed' | 'console_error' | 'preview_unavailable';
1975
+ export type VariantQaIssueKind = 'asset_load_failed' | 'console_error' | 'preview_unavailable' | 'design_quality';
1383
1976
  export interface VariantQaIssue {
1384
1977
  kind: VariantQaIssueKind;
1385
1978
  /** Asset URL or runtime source location that triggered the failure. */
@@ -1387,6 +1980,57 @@ export interface VariantQaIssue {
1387
1980
  /** Optional human-readable extra context — e.g. HTTP status, error message. */
1388
1981
  message?: string;
1389
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
+ }
1390
2034
  export interface VariantQaResult {
1391
2035
  status: VariantQaStatus;
1392
2036
  issues: VariantQaIssue[];
@@ -1394,6 +2038,20 @@ export interface VariantQaResult {
1394
2038
  summary: string;
1395
2039
  /** Source of the inspected preview (the URL or marker the runner used). */
1396
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[];
1397
2055
  }
1398
2056
  export declare const targetSchema: z.ZodObject<{
1399
2057
  type: z.ZodEnum<["element", "file", "route"]>;
@@ -1455,10 +2113,294 @@ export declare const proposeVariantsInput: {
1455
2113
  }>>;
1456
2114
  projectContext: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1457
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
+ }>>;
1458
2318
  }, "strip", z.ZodTypeAny, {
1459
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;
1460
2361
  }, {
1461
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;
1462
2404
  }>, z.ZodObject<{
1463
2405
  kind: z.ZodLiteral<"fresh">;
1464
2406
  /** Where the generated subproject's files live (e.g.
@@ -1724,7 +2666,6 @@ export declare const proposeVariantsInput: {
1724
2666
  workspacePath: string;
1725
2667
  workspaceRoot: string;
1726
2668
  framework?: "next" | "vite" | "remix" | "astro" | undefined;
1727
- assetSourceRoot?: string | undefined;
1728
2669
  designContext?: ({
1729
2670
  slug: string;
1730
2671
  kind: "slug";
@@ -1765,6 +2706,7 @@ export declare const proposeVariantsInput: {
1765
2706
  } | undefined;
1766
2707
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1767
2708
  } | undefined;
2709
+ assetSourceRoot?: string | undefined;
1768
2710
  executionPlan?: {
1769
2711
  mode: "static_preview" | "vite_app";
1770
2712
  reason: string;
@@ -1782,7 +2724,6 @@ export declare const proposeVariantsInput: {
1782
2724
  workspacePath: string;
1783
2725
  workspaceRoot: string;
1784
2726
  framework?: "next" | "vite" | "remix" | "astro" | undefined;
1785
- assetSourceRoot?: string | undefined;
1786
2727
  designContext?: ({
1787
2728
  slug: string;
1788
2729
  kind: "slug";
@@ -1823,6 +2764,7 @@ export declare const proposeVariantsInput: {
1823
2764
  } | undefined;
1824
2765
  designDecision?: "let_rivet_choose" | "go_custom" | undefined;
1825
2766
  } | undefined;
2767
+ assetSourceRoot?: string | undefined;
1826
2768
  executionPlan?: {
1827
2769
  mode: "static_preview" | "vite_app";
1828
2770
  reason: string;