rivet-design 0.12.4 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/README.md +50 -26
  2. package/README.npm.md +50 -26
  3. package/bin/rivet.js +39 -24
  4. package/dist/{mcp/agent-variants → agent-variants}/SessionStore.d.ts +13 -20
  5. package/dist/agent-variants/SessionStore.d.ts.map +1 -0
  6. package/dist/{mcp/agent-variants → agent-variants}/SessionStore.js +74 -84
  7. package/dist/agent-variants/SessionStore.js.map +1 -0
  8. package/dist/{mcp/agent-variants → agent-variants}/WorktreeOrchestrator.d.ts +58 -25
  9. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -0
  10. package/dist/{mcp/agent-variants → agent-variants}/WorktreeOrchestrator.js +299 -57
  11. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -0
  12. package/dist/{mcp/agent-variants → agent-variants}/WorktreeOrchestrator.testHelpers.d.ts +1 -9
  13. package/dist/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -0
  14. package/dist/{mcp/agent-variants → agent-variants}/WorktreeOrchestrator.testHelpers.js +3 -18
  15. package/dist/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -0
  16. package/dist/agent-variants/briefContent.d.ts.map +1 -0
  17. package/dist/agent-variants/briefContent.js.map +1 -0
  18. package/dist/{mcp/agent-variants → agent-variants}/contracts.d.ts +716 -722
  19. package/dist/agent-variants/contracts.d.ts.map +1 -0
  20. package/dist/{mcp/agent-variants → agent-variants}/contracts.js +4 -5
  21. package/dist/agent-variants/contracts.js.map +1 -0
  22. package/dist/agent-variants/createProjectArtifacts.d.ts.map +1 -0
  23. package/dist/agent-variants/createProjectArtifacts.js.map +1 -0
  24. package/dist/agent-variants/diffQa.d.ts.map +1 -0
  25. package/dist/agent-variants/diffQa.js.map +1 -0
  26. package/dist/{mcp/agent-variants → agent-variants}/elementRefToTarget.d.ts +1 -1
  27. package/dist/agent-variants/elementRefToTarget.d.ts.map +1 -0
  28. package/dist/agent-variants/elementRefToTarget.js.map +1 -0
  29. package/dist/agent-variants/errors.d.ts.map +1 -0
  30. package/dist/agent-variants/errors.js.map +1 -0
  31. package/dist/agent-variants/generatedDestination.d.ts +29 -0
  32. package/dist/agent-variants/generatedDestination.d.ts.map +1 -0
  33. package/dist/agent-variants/generatedDestination.js +59 -0
  34. package/dist/agent-variants/generatedDestination.js.map +1 -0
  35. package/dist/{mcp/agent-variants → agent-variants}/index.d.ts +3 -6
  36. package/dist/agent-variants/index.d.ts.map +1 -0
  37. package/dist/{mcp/agent-variants → agent-variants}/index.js +3 -6
  38. package/dist/agent-variants/index.js.map +1 -0
  39. package/dist/agent-variants/previewQa.d.ts.map +1 -0
  40. package/dist/agent-variants/previewQa.js.map +1 -0
  41. package/dist/agent-variants/runLabel.d.ts.map +1 -0
  42. package/dist/agent-variants/runLabel.js.map +1 -0
  43. package/dist/agent-variants/runPlan.d.ts.map +1 -0
  44. package/dist/agent-variants/runPlan.js.map +1 -0
  45. package/dist/agent-variants/sourceContext.d.ts.map +1 -0
  46. package/dist/agent-variants/sourceContext.js.map +1 -0
  47. package/dist/agent-variants/variantContext.d.ts.map +1 -0
  48. package/dist/agent-variants/variantContext.js.map +1 -0
  49. package/dist/cli/client.d.ts +43 -0
  50. package/dist/cli/client.d.ts.map +1 -0
  51. package/dist/cli/client.js +109 -0
  52. package/dist/cli/client.js.map +1 -0
  53. package/dist/cli/commandNames.d.ts +9 -0
  54. package/dist/cli/commandNames.d.ts.map +1 -0
  55. package/dist/cli/commandNames.js +24 -0
  56. package/dist/cli/commandNames.js.map +1 -0
  57. package/dist/cli/commands/auth.d.ts +10 -0
  58. package/dist/cli/commands/auth.d.ts.map +1 -0
  59. package/dist/cli/commands/auth.js +81 -0
  60. package/dist/cli/commands/auth.js.map +1 -0
  61. package/dist/cli/commands/elementSelector.d.ts +10 -0
  62. package/dist/cli/commands/elementSelector.d.ts.map +1 -0
  63. package/dist/cli/commands/elementSelector.js +41 -0
  64. package/dist/cli/commands/elementSelector.js.map +1 -0
  65. package/dist/cli/commands/evidence.d.ts +9 -0
  66. package/dist/cli/commands/evidence.d.ts.map +1 -0
  67. package/dist/cli/commands/evidence.js +85 -0
  68. package/dist/cli/commands/evidence.js.map +1 -0
  69. package/dist/cli/commands/mcpServe.d.ts +40 -0
  70. package/dist/cli/commands/mcpServe.d.ts.map +1 -0
  71. package/dist/cli/commands/mcpServe.js +485 -0
  72. package/dist/cli/commands/mcpServe.js.map +1 -0
  73. package/dist/cli/commands/open.d.ts +28 -0
  74. package/dist/cli/commands/open.d.ts.map +1 -0
  75. package/dist/cli/commands/open.js +280 -0
  76. package/dist/cli/commands/open.js.map +1 -0
  77. package/dist/cli/commands/reference.d.ts +8 -0
  78. package/dist/cli/commands/reference.d.ts.map +1 -0
  79. package/dist/cli/commands/reference.js +101 -0
  80. package/dist/cli/commands/reference.js.map +1 -0
  81. package/dist/cli/commands/serve.d.ts +9 -0
  82. package/dist/cli/commands/serve.d.ts.map +1 -0
  83. package/dist/cli/commands/serve.js +182 -0
  84. package/dist/cli/commands/serve.js.map +1 -0
  85. package/dist/cli/commands/shared.d.ts +31 -0
  86. package/dist/cli/commands/shared.d.ts.map +1 -0
  87. package/dist/cli/commands/shared.js +82 -0
  88. package/dist/cli/commands/shared.js.map +1 -0
  89. package/dist/cli/commands/status.d.ts +10 -0
  90. package/dist/cli/commands/status.d.ts.map +1 -0
  91. package/dist/cli/commands/status.js +61 -0
  92. package/dist/cli/commands/status.js.map +1 -0
  93. package/dist/cli/commands/stop.d.ts +8 -0
  94. package/dist/cli/commands/stop.d.ts.map +1 -0
  95. package/dist/cli/commands/stop.js +41 -0
  96. package/dist/cli/commands/stop.js.map +1 -0
  97. package/dist/cli/commands/variants.d.ts +4 -0
  98. package/dist/cli/commands/variants.d.ts.map +1 -0
  99. package/dist/cli/commands/variants.js +435 -0
  100. package/dist/cli/commands/variants.js.map +1 -0
  101. package/dist/cli/commands/wait.d.ts +10 -0
  102. package/dist/cli/commands/wait.d.ts.map +1 -0
  103. package/dist/cli/commands/wait.js +101 -0
  104. package/dist/cli/commands/wait.js.map +1 -0
  105. package/dist/cli/entry.d.ts +12 -0
  106. package/dist/cli/entry.d.ts.map +1 -0
  107. package/dist/cli/entry.js +61 -0
  108. package/dist/cli/entry.js.map +1 -0
  109. package/dist/cli/envelope.d.ts +60 -0
  110. package/dist/cli/envelope.d.ts.map +1 -0
  111. package/dist/cli/envelope.js +57 -0
  112. package/dist/cli/envelope.js.map +1 -0
  113. package/dist/cli/flags.d.ts +20 -0
  114. package/dist/cli/flags.d.ts.map +1 -0
  115. package/dist/cli/flags.js +72 -0
  116. package/dist/cli/flags.js.map +1 -0
  117. package/dist/cli/handoff.d.ts +54 -0
  118. package/dist/cli/handoff.d.ts.map +1 -0
  119. package/dist/cli/handoff.js +106 -0
  120. package/dist/cli/handoff.js.map +1 -0
  121. package/dist/cli/handoffStore.d.ts +24 -0
  122. package/dist/cli/handoffStore.d.ts.map +1 -0
  123. package/dist/cli/handoffStore.js +49 -0
  124. package/dist/cli/handoffStore.js.map +1 -0
  125. package/dist/cli/hostWorkNextAction.d.ts +45 -0
  126. package/dist/cli/hostWorkNextAction.d.ts.map +1 -0
  127. package/dist/cli/hostWorkNextAction.js +43 -0
  128. package/dist/cli/hostWorkNextAction.js.map +1 -0
  129. package/dist/cli/io.d.ts +17 -0
  130. package/dist/cli/io.d.ts.map +1 -0
  131. package/dist/cli/io.js +19 -0
  132. package/dist/cli/io.js.map +1 -0
  133. package/dist/cli/router.d.ts +23 -0
  134. package/dist/cli/router.d.ts.map +1 -0
  135. package/dist/cli/router.js +236 -0
  136. package/dist/cli/router.js.map +1 -0
  137. package/dist/cli/runnerSelection.d.ts +60 -0
  138. package/dist/cli/runnerSelection.d.ts.map +1 -0
  139. package/dist/cli/runnerSelection.js +93 -0
  140. package/dist/cli/runnerSelection.js.map +1 -0
  141. package/dist/cli/serverHandshake.d.ts +51 -0
  142. package/dist/cli/serverHandshake.d.ts.map +1 -0
  143. package/dist/cli/serverHandshake.js +144 -0
  144. package/dist/cli/serverHandshake.js.map +1 -0
  145. package/dist/index.d.ts +2 -14
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +84 -138
  148. package/dist/index.js.map +1 -1
  149. package/dist/install/allowlists.d.ts +65 -0
  150. package/dist/install/allowlists.d.ts.map +1 -0
  151. package/dist/install/allowlists.js +333 -0
  152. package/dist/install/allowlists.js.map +1 -0
  153. package/dist/install/codexGuidance.d.ts +11 -0
  154. package/dist/install/codexGuidance.d.ts.map +1 -0
  155. package/dist/install/codexGuidance.js +90 -0
  156. package/dist/install/codexGuidance.js.map +1 -0
  157. package/dist/install/harnesses.d.ts +37 -26
  158. package/dist/install/harnesses.d.ts.map +1 -1
  159. package/dist/install/harnesses.js +312 -502
  160. package/dist/install/harnesses.js.map +1 -1
  161. package/dist/install/legacyMcp.d.ts +26 -0
  162. package/dist/install/legacyMcp.d.ts.map +1 -0
  163. package/dist/install/legacyMcp.js +160 -0
  164. package/dist/install/legacyMcp.js.map +1 -0
  165. package/dist/install/mcpRegistration.d.ts +45 -0
  166. package/dist/install/mcpRegistration.d.ts.map +1 -0
  167. package/dist/install/mcpRegistration.js +215 -0
  168. package/dist/install/mcpRegistration.js.map +1 -0
  169. package/dist/mcp/changeBatchClassification.d.ts +20 -20
  170. package/dist/mcp/changeBatchClassification.d.ts.map +1 -1
  171. package/dist/mcp/changeBatchClassification.js +46 -46
  172. package/dist/mcp/changeBatchClassification.js.map +1 -1
  173. package/dist/proxy-middleware/proxy-config.d.ts +6 -0
  174. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  175. package/dist/proxy-middleware/proxy-config.js +162 -5
  176. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  177. package/dist/routes/agentVariants.d.ts +14 -2
  178. package/dist/routes/agentVariants.d.ts.map +1 -1
  179. package/dist/routes/agentVariants.js +366 -65
  180. package/dist/routes/agentVariants.js.map +1 -1
  181. package/dist/routes/cli.d.ts +31 -0
  182. package/dist/routes/cli.d.ts.map +1 -0
  183. package/dist/routes/cli.js +95 -0
  184. package/dist/routes/cli.js.map +1 -0
  185. package/dist/routes/git.d.ts +1 -0
  186. package/dist/routes/git.d.ts.map +1 -1
  187. package/dist/routes/git.js +2 -1
  188. package/dist/routes/git.js.map +1 -1
  189. package/dist/routes/inlineStartTracker.d.ts +23 -0
  190. package/dist/routes/inlineStartTracker.d.ts.map +1 -0
  191. package/dist/routes/inlineStartTracker.js +17 -0
  192. package/dist/routes/inlineStartTracker.js.map +1 -0
  193. package/dist/routes/mcp.d.ts +2 -12
  194. package/dist/routes/mcp.d.ts.map +1 -1
  195. package/dist/routes/mcp.js +4 -785
  196. package/dist/routes/mcp.js.map +1 -1
  197. package/dist/server.d.ts +24 -9
  198. package/dist/server.d.ts.map +1 -1
  199. package/dist/server.js +169 -33
  200. package/dist/server.js.map +1 -1
  201. package/dist/services/CommitMessageGenerator.d.ts +9 -1
  202. package/dist/services/CommitMessageGenerator.d.ts.map +1 -1
  203. package/dist/services/CommitMessageGenerator.js +4 -1
  204. package/dist/services/CommitMessageGenerator.js.map +1 -1
  205. package/dist/services/ComponentSearchService.d.ts +4 -1
  206. package/dist/services/ComponentSearchService.d.ts.map +1 -1
  207. package/dist/services/ComponentSearchService.js.map +1 -1
  208. package/dist/services/ConfigManager.d.ts +8 -0
  209. package/dist/services/ConfigManager.d.ts.map +1 -1
  210. package/dist/services/ConfigManager.js +9 -0
  211. package/dist/services/ConfigManager.js.map +1 -1
  212. package/dist/services/HistoryReplayService.d.ts +20 -9
  213. package/dist/services/HistoryReplayService.d.ts.map +1 -1
  214. package/dist/services/HistoryReplayService.js +99 -43
  215. package/dist/services/HistoryReplayService.js.map +1 -1
  216. package/dist/services/MCPVariantsTelemetry.d.ts +1 -1
  217. package/dist/services/MCPVariantsTelemetry.d.ts.map +1 -1
  218. package/dist/services/MCPVariantsTelemetry.js +1 -0
  219. package/dist/services/MCPVariantsTelemetry.js.map +1 -1
  220. package/dist/services/PRTitleGenerator.d.ts +10 -2
  221. package/dist/services/PRTitleGenerator.d.ts.map +1 -1
  222. package/dist/services/PRTitleGenerator.js +8 -2
  223. package/dist/services/PRTitleGenerator.js.map +1 -1
  224. package/dist/services/ProjectDetectionService.d.ts.map +1 -1
  225. package/dist/services/ProjectDetectionService.js +14 -4
  226. package/dist/services/ProjectDetectionService.js.map +1 -1
  227. package/dist/services/ProjectMetadataStore.d.ts +115 -0
  228. package/dist/services/ProjectMetadataStore.d.ts.map +1 -0
  229. package/dist/services/ProjectMetadataStore.js +336 -0
  230. package/dist/services/ProjectMetadataStore.js.map +1 -0
  231. package/dist/services/SessionBridgeService.d.ts +52 -224
  232. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  233. package/dist/services/SessionBridgeService.js +97 -649
  234. package/dist/services/SessionBridgeService.js.map +1 -1
  235. package/dist/services/SessionService.d.ts +4 -1
  236. package/dist/services/SessionService.d.ts.map +1 -1
  237. package/dist/services/SessionService.js +7 -4
  238. package/dist/services/SessionService.js.map +1 -1
  239. package/dist/services/StaticFileService.d.ts.map +1 -1
  240. package/dist/services/StaticFileService.js +6 -0
  241. package/dist/services/StaticFileService.js.map +1 -1
  242. package/dist/services/TelemetryService.d.ts +16 -80
  243. package/dist/services/TelemetryService.d.ts.map +1 -1
  244. package/dist/services/TelemetryService.js +18 -94
  245. package/dist/services/TelemetryService.js.map +1 -1
  246. package/dist/services/VariantGenerationService.d.ts +45 -0
  247. package/dist/services/VariantGenerationService.d.ts.map +1 -0
  248. package/dist/services/VariantGenerationService.js +214 -0
  249. package/dist/services/VariantGenerationService.js.map +1 -0
  250. package/dist/services/VariantHistoryService.d.ts +37 -1
  251. package/dist/services/VariantHistoryService.d.ts.map +1 -1
  252. package/dist/services/VariantHistoryService.js +122 -1
  253. package/dist/services/VariantHistoryService.js.map +1 -1
  254. package/dist/services/VariantRunService.d.ts +25 -6
  255. package/dist/services/VariantRunService.d.ts.map +1 -1
  256. package/dist/services/VariantRunService.js +99 -4
  257. package/dist/services/VariantRunService.js.map +1 -1
  258. package/dist/services/VariantsRuntime.d.ts +1 -3
  259. package/dist/services/VariantsRuntime.d.ts.map +1 -1
  260. package/dist/services/VariantsRuntime.js +0 -1
  261. package/dist/services/VariantsRuntime.js.map +1 -1
  262. package/dist/services/WorktreeManager.d.ts +1 -1
  263. package/dist/services/WorktreeManager.d.ts.map +1 -1
  264. package/dist/services/createAgentVariantsOrchestrator.d.ts +2 -2
  265. package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -1
  266. package/dist/services/createAgentVariantsOrchestrator.js +2 -3
  267. package/dist/services/createAgentVariantsOrchestrator.js.map +1 -1
  268. package/dist/services/projectMetadataMigrations.d.ts +59 -0
  269. package/dist/services/projectMetadataMigrations.d.ts.map +1 -0
  270. package/dist/services/projectMetadataMigrations.js +109 -0
  271. package/dist/services/projectMetadataMigrations.js.map +1 -0
  272. package/dist/types/change-request-types.d.ts +32 -4
  273. package/dist/types/change-request-types.d.ts.map +1 -1
  274. package/dist/utils/logger.d.ts +2 -1
  275. package/dist/utils/logger.d.ts.map +1 -1
  276. package/dist/utils/logger.js +3 -7
  277. package/dist/utils/logger.js.map +1 -1
  278. package/dist/utils/loopback.d.ts +3 -0
  279. package/dist/utils/loopback.d.ts.map +1 -0
  280. package/dist/utils/loopback.js +13 -0
  281. package/dist/utils/loopback.js.map +1 -0
  282. package/dist/utils/pid.d.ts +3 -0
  283. package/dist/utils/pid.d.ts.map +1 -0
  284. package/dist/utils/pid.js +15 -0
  285. package/dist/utils/pid.js.map +1 -0
  286. package/dist/utils/queueAccess.d.ts +7 -0
  287. package/dist/utils/queueAccess.d.ts.map +1 -1
  288. package/dist/utils/queueAccess.js +8 -1
  289. package/dist/utils/queueAccess.js.map +1 -1
  290. package/dist/utils/shouldRecordHostedDemoSessionAction.d.ts +3 -3
  291. package/dist/utils/shouldRecordHostedDemoSessionAction.d.ts.map +1 -1
  292. package/dist/utils/shouldRecordHostedDemoSessionAction.js +3 -19
  293. package/dist/utils/shouldRecordHostedDemoSessionAction.js.map +1 -1
  294. package/dist/utils/skillWriter.d.ts.map +1 -1
  295. package/dist/utils/skillWriter.js +12 -11
  296. package/dist/utils/skillWriter.js.map +1 -1
  297. package/dist/utils/skills/claude-skill.d.ts +7 -2
  298. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  299. package/dist/utils/skills/claude-skill.js +10 -83
  300. package/dist/utils/skills/claude-skill.js.map +1 -1
  301. package/dist/utils/skills/cli-guidance.d.ts +12 -0
  302. package/dist/utils/skills/cli-guidance.d.ts.map +1 -0
  303. package/dist/utils/skills/cli-guidance.js +59 -0
  304. package/dist/utils/skills/cli-guidance.js.map +1 -0
  305. package/dist/utils/skills/cursor-rules.d.ts +8 -2
  306. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  307. package/dist/utils/skills/cursor-rules.js +11 -80
  308. package/dist/utils/skills/cursor-rules.js.map +1 -1
  309. package/dist/utils/variantSessionStart.d.ts +1 -1
  310. package/dist/utils/variantSessionStart.d.ts.map +1 -1
  311. package/dist/utils/variantSessionStart.js +1 -1
  312. package/dist/utils/variantSessionStart.js.map +1 -1
  313. package/package.json +4 -4
  314. package/src/ui/dist/assets/main-B725ucb9.js +419 -0
  315. package/src/ui/dist/assets/main-Dyos9I29.css +1 -0
  316. package/src/ui/dist/index.html +2 -2
  317. package/dist/mcp/agent-variants/SessionStore.d.ts.map +0 -1
  318. package/dist/mcp/agent-variants/SessionStore.js.map +0 -1
  319. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +0 -1
  320. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +0 -1
  321. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +0 -1
  322. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js.map +0 -1
  323. package/dist/mcp/agent-variants/areNaSourceContext.d.ts +0 -20
  324. package/dist/mcp/agent-variants/areNaSourceContext.d.ts.map +0 -1
  325. package/dist/mcp/agent-variants/areNaSourceContext.js +0 -118
  326. package/dist/mcp/agent-variants/areNaSourceContext.js.map +0 -1
  327. package/dist/mcp/agent-variants/briefContent.d.ts.map +0 -1
  328. package/dist/mcp/agent-variants/briefContent.js.map +0 -1
  329. package/dist/mcp/agent-variants/contracts.d.ts.map +0 -1
  330. package/dist/mcp/agent-variants/contracts.js.map +0 -1
  331. package/dist/mcp/agent-variants/createProjectArtifacts.d.ts.map +0 -1
  332. package/dist/mcp/agent-variants/createProjectArtifacts.js.map +0 -1
  333. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts +0 -63
  334. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts.map +0 -1
  335. package/dist/mcp/agent-variants/createZeroToOneTool.js +0 -265
  336. package/dist/mcp/agent-variants/createZeroToOneTool.js.map +0 -1
  337. package/dist/mcp/agent-variants/diffQa.d.ts.map +0 -1
  338. package/dist/mcp/agent-variants/diffQa.js.map +0 -1
  339. package/dist/mcp/agent-variants/elementRefToTarget.d.ts.map +0 -1
  340. package/dist/mcp/agent-variants/elementRefToTarget.js.map +0 -1
  341. package/dist/mcp/agent-variants/errors.d.ts.map +0 -1
  342. package/dist/mcp/agent-variants/errors.js.map +0 -1
  343. package/dist/mcp/agent-variants/generatedDestination.d.ts +0 -75
  344. package/dist/mcp/agent-variants/generatedDestination.d.ts.map +0 -1
  345. package/dist/mcp/agent-variants/generatedDestination.js +0 -103
  346. package/dist/mcp/agent-variants/generatedDestination.js.map +0 -1
  347. package/dist/mcp/agent-variants/index.d.ts.map +0 -1
  348. package/dist/mcp/agent-variants/index.js.map +0 -1
  349. package/dist/mcp/agent-variants/pendingChangesAdapter.d.ts +0 -38
  350. package/dist/mcp/agent-variants/pendingChangesAdapter.d.ts.map +0 -1
  351. package/dist/mcp/agent-variants/pendingChangesAdapter.js +0 -93
  352. package/dist/mcp/agent-variants/pendingChangesAdapter.js.map +0 -1
  353. package/dist/mcp/agent-variants/pinterestSourceContext.d.ts +0 -23
  354. package/dist/mcp/agent-variants/pinterestSourceContext.d.ts.map +0 -1
  355. package/dist/mcp/agent-variants/pinterestSourceContext.js +0 -137
  356. package/dist/mcp/agent-variants/pinterestSourceContext.js.map +0 -1
  357. package/dist/mcp/agent-variants/previewQa.d.ts.map +0 -1
  358. package/dist/mcp/agent-variants/previewQa.js.map +0 -1
  359. package/dist/mcp/agent-variants/runLabel.d.ts.map +0 -1
  360. package/dist/mcp/agent-variants/runLabel.js.map +0 -1
  361. package/dist/mcp/agent-variants/runPlan.d.ts.map +0 -1
  362. package/dist/mcp/agent-variants/runPlan.js.map +0 -1
  363. package/dist/mcp/agent-variants/sourceContext.d.ts.map +0 -1
  364. package/dist/mcp/agent-variants/sourceContext.js.map +0 -1
  365. package/dist/mcp/agent-variants/tools.d.ts +0 -187
  366. package/dist/mcp/agent-variants/tools.d.ts.map +0 -1
  367. package/dist/mcp/agent-variants/tools.js +0 -1165
  368. package/dist/mcp/agent-variants/tools.js.map +0 -1
  369. package/dist/mcp/agent-variants/variantContext.d.ts.map +0 -1
  370. package/dist/mcp/agent-variants/variantContext.js.map +0 -1
  371. package/dist/mcp/auth/httpOAuthProvider.d.ts +0 -103
  372. package/dist/mcp/auth/httpOAuthProvider.d.ts.map +0 -1
  373. package/dist/mcp/auth/httpOAuthProvider.js +0 -735
  374. package/dist/mcp/auth/httpOAuthProvider.js.map +0 -1
  375. package/dist/mcp/auth/tools.d.ts +0 -39
  376. package/dist/mcp/auth/tools.d.ts.map +0 -1
  377. package/dist/mcp/auth/tools.js +0 -304
  378. package/dist/mcp/auth/tools.js.map +0 -1
  379. package/dist/mcp/branding.d.ts +0 -4
  380. package/dist/mcp/branding.d.ts.map +0 -1
  381. package/dist/mcp/branding.js +0 -8
  382. package/dist/mcp/branding.js.map +0 -1
  383. package/dist/mcp/hostedServer.d.ts +0 -27
  384. package/dist/mcp/hostedServer.d.ts.map +0 -1
  385. package/dist/mcp/hostedServer.js +0 -71
  386. package/dist/mcp/hostedServer.js.map +0 -1
  387. package/dist/mcp/httpServer.d.ts +0 -63
  388. package/dist/mcp/httpServer.d.ts.map +0 -1
  389. package/dist/mcp/httpServer.js +0 -602
  390. package/dist/mcp/httpServer.js.map +0 -1
  391. package/dist/mcp/instructions.d.ts +0 -25
  392. package/dist/mcp/instructions.d.ts.map +0 -1
  393. package/dist/mcp/instructions.js +0 -39
  394. package/dist/mcp/instructions.js.map +0 -1
  395. package/dist/mcp/integrations/tools.d.ts +0 -19
  396. package/dist/mcp/integrations/tools.d.ts.map +0 -1
  397. package/dist/mcp/integrations/tools.js +0 -101
  398. package/dist/mcp/integrations/tools.js.map +0 -1
  399. package/dist/mcp/server.d.ts +0 -214
  400. package/dist/mcp/server.d.ts.map +0 -1
  401. package/dist/mcp/server.js +0 -2536
  402. package/dist/mcp/server.js.map +0 -1
  403. package/dist/mcp/toolAnalytics.d.ts +0 -26
  404. package/dist/mcp/toolAnalytics.d.ts.map +0 -1
  405. package/dist/mcp/toolAnalytics.js +0 -95
  406. package/dist/mcp/toolAnalytics.js.map +0 -1
  407. package/dist/mcp/types.d.ts +0 -7
  408. package/dist/mcp/types.d.ts.map +0 -1
  409. package/dist/mcp/types.js +0 -3
  410. package/dist/mcp/types.js.map +0 -1
  411. package/dist/mcp/watchLoopResumePrompt.d.ts +0 -16
  412. package/dist/mcp/watchLoopResumePrompt.d.ts.map +0 -1
  413. package/dist/mcp/watchLoopResumePrompt.js +0 -21
  414. package/dist/mcp/watchLoopResumePrompt.js.map +0 -1
  415. package/dist/prompts/agentModPrompts.d.ts +0 -4
  416. package/dist/prompts/agentModPrompts.d.ts.map +0 -1
  417. package/dist/prompts/agentModPrompts.js +0 -34
  418. package/dist/prompts/agentModPrompts.js.map +0 -1
  419. package/dist/prompts/tokenWriterPrompts.d.ts +0 -4
  420. package/dist/prompts/tokenWriterPrompts.d.ts.map +0 -1
  421. package/dist/prompts/tokenWriterPrompts.js +0 -59
  422. package/dist/prompts/tokenWriterPrompts.js.map +0 -1
  423. package/dist/routes/comments.d.ts +0 -3
  424. package/dist/routes/comments.d.ts.map +0 -1
  425. package/dist/routes/comments.js +0 -113
  426. package/dist/routes/comments.js.map +0 -1
  427. package/dist/routes/components.d.ts +0 -7
  428. package/dist/routes/components.d.ts.map +0 -1
  429. package/dist/routes/components.js +0 -88
  430. package/dist/routes/components.js.map +0 -1
  431. package/dist/routes/controls.d.ts +0 -7
  432. package/dist/routes/controls.d.ts.map +0 -1
  433. package/dist/routes/controls.js +0 -50
  434. package/dist/routes/controls.js.map +0 -1
  435. package/dist/routes/design.d.ts +0 -2
  436. package/dist/routes/design.d.ts.map +0 -1
  437. package/dist/routes/design.js +0 -29
  438. package/dist/routes/design.js.map +0 -1
  439. package/dist/routes/modifications.d.ts +0 -10
  440. package/dist/routes/modifications.d.ts.map +0 -1
  441. package/dist/routes/modifications.js +0 -394
  442. package/dist/routes/modifications.js.map +0 -1
  443. package/dist/routes/tokens.d.ts +0 -2
  444. package/dist/routes/tokens.d.ts.map +0 -1
  445. package/dist/routes/tokens.js +0 -115
  446. package/dist/routes/tokens.js.map +0 -1
  447. package/dist/services/AgentSessionService.d.ts +0 -91
  448. package/dist/services/AgentSessionService.d.ts.map +0 -1
  449. package/dist/services/AgentSessionService.js +0 -282
  450. package/dist/services/AgentSessionService.js.map +0 -1
  451. package/dist/services/BridgeBatchPipeline.d.ts +0 -103
  452. package/dist/services/BridgeBatchPipeline.d.ts.map +0 -1
  453. package/dist/services/BridgeBatchPipeline.js +0 -295
  454. package/dist/services/BridgeBatchPipeline.js.map +0 -1
  455. package/dist/services/BridgeQueueStore.d.ts +0 -28
  456. package/dist/services/BridgeQueueStore.d.ts.map +0 -1
  457. package/dist/services/BridgeQueueStore.js +0 -88
  458. package/dist/services/BridgeQueueStore.js.map +0 -1
  459. package/dist/services/CSSTokenWriter.d.ts +0 -22
  460. package/dist/services/CSSTokenWriter.d.ts.map +0 -1
  461. package/dist/services/CSSTokenWriter.js +0 -116
  462. package/dist/services/CSSTokenWriter.js.map +0 -1
  463. package/dist/services/DesignTokenService.d.ts +0 -39
  464. package/dist/services/DesignTokenService.d.ts.map +0 -1
  465. package/dist/services/DesignTokenService.js +0 -100
  466. package/dist/services/DesignTokenService.js.map +0 -1
  467. package/dist/services/InlineVariantGenerationService.d.ts +0 -51
  468. package/dist/services/InlineVariantGenerationService.d.ts.map +0 -1
  469. package/dist/services/InlineVariantGenerationService.js +0 -475
  470. package/dist/services/InlineVariantGenerationService.js.map +0 -1
  471. package/dist/services/InterfaceGenerationService.d.ts +0 -12
  472. package/dist/services/InterfaceGenerationService.d.ts.map +0 -1
  473. package/dist/services/InterfaceGenerationService.js +0 -256
  474. package/dist/services/InterfaceGenerationService.js.map +0 -1
  475. package/dist/services/TailwindConfigWriter.d.ts +0 -24
  476. package/dist/services/TailwindConfigWriter.d.ts.map +0 -1
  477. package/dist/services/TailwindConfigWriter.js +0 -105
  478. package/dist/services/TailwindConfigWriter.js.map +0 -1
  479. package/dist/services/TerminalAgentRunner.d.ts +0 -65
  480. package/dist/services/TerminalAgentRunner.d.ts.map +0 -1
  481. package/dist/services/TerminalAgentRunner.js +0 -511
  482. package/dist/services/TerminalAgentRunner.js.map +0 -1
  483. package/dist/services/VisualVariantAgentRunner.d.ts +0 -20
  484. package/dist/services/VisualVariantAgentRunner.d.ts.map +0 -1
  485. package/dist/services/VisualVariantAgentRunner.js +0 -66
  486. package/dist/services/VisualVariantAgentRunner.js.map +0 -1
  487. package/dist/services/adapters/TailwindCSSTokenAdapter.d.ts +0 -35
  488. package/dist/services/adapters/TailwindCSSTokenAdapter.d.ts.map +0 -1
  489. package/dist/services/adapters/TailwindCSSTokenAdapter.js +0 -278
  490. package/dist/services/adapters/TailwindCSSTokenAdapter.js.map +0 -1
  491. package/dist/services/agent/AgentCore.d.ts +0 -126
  492. package/dist/services/agent/AgentCore.d.ts.map +0 -1
  493. package/dist/services/agent/AgentCore.js +0 -759
  494. package/dist/services/agent/AgentCore.js.map +0 -1
  495. package/dist/services/agent/AgentModService.d.ts +0 -98
  496. package/dist/services/agent/AgentModService.d.ts.map +0 -1
  497. package/dist/services/agent/AgentModService.js +0 -400
  498. package/dist/services/agent/AgentModService.js.map +0 -1
  499. package/dist/services/agent/index.d.ts +0 -2
  500. package/dist/services/agent/index.d.ts.map +0 -1
  501. package/dist/services/agent/index.js +0 -6
  502. package/dist/services/agent/index.js.map +0 -1
  503. package/dist/types/editor-interface-types.d.ts +0 -67
  504. package/dist/types/editor-interface-types.d.ts.map +0 -1
  505. package/dist/types/editor-interface-types.js +0 -12
  506. package/dist/types/editor-interface-types.js.map +0 -1
  507. package/dist/utils/elementRefToContext.d.ts +0 -4
  508. package/dist/utils/elementRefToContext.d.ts.map +0 -1
  509. package/dist/utils/elementRefToContext.js +0 -63
  510. package/dist/utils/elementRefToContext.js.map +0 -1
  511. package/dist/utils/skills/shared-variants-protocol.d.ts +0 -69
  512. package/dist/utils/skills/shared-variants-protocol.d.ts.map +0 -1
  513. package/dist/utils/skills/shared-variants-protocol.js +0 -292
  514. package/dist/utils/skills/shared-variants-protocol.js.map +0 -1
  515. package/src/ui/dist/assets/main-Dnah9pII.css +0 -1
  516. package/src/ui/dist/assets/main-plq7aT76.js +0 -656
  517. /package/dist/{mcp/agent-variants → agent-variants}/briefContent.d.ts +0 -0
  518. /package/dist/{mcp/agent-variants → agent-variants}/briefContent.js +0 -0
  519. /package/dist/{mcp/agent-variants → agent-variants}/createProjectArtifacts.d.ts +0 -0
  520. /package/dist/{mcp/agent-variants → agent-variants}/createProjectArtifacts.js +0 -0
  521. /package/dist/{mcp/agent-variants → agent-variants}/diffQa.d.ts +0 -0
  522. /package/dist/{mcp/agent-variants → agent-variants}/diffQa.js +0 -0
  523. /package/dist/{mcp/agent-variants → agent-variants}/elementRefToTarget.js +0 -0
  524. /package/dist/{mcp/agent-variants → agent-variants}/errors.d.ts +0 -0
  525. /package/dist/{mcp/agent-variants → agent-variants}/errors.js +0 -0
  526. /package/dist/{mcp/agent-variants → agent-variants}/previewQa.d.ts +0 -0
  527. /package/dist/{mcp/agent-variants → agent-variants}/previewQa.js +0 -0
  528. /package/dist/{mcp/agent-variants → agent-variants}/runLabel.d.ts +0 -0
  529. /package/dist/{mcp/agent-variants → agent-variants}/runLabel.js +0 -0
  530. /package/dist/{mcp/agent-variants → agent-variants}/runPlan.d.ts +0 -0
  531. /package/dist/{mcp/agent-variants → agent-variants}/runPlan.js +0 -0
  532. /package/dist/{mcp/agent-variants → agent-variants}/sourceContext.d.ts +0 -0
  533. /package/dist/{mcp/agent-variants → agent-variants}/sourceContext.js +0 -0
  534. /package/dist/{mcp/agent-variants → agent-variants}/variantContext.d.ts +0 -0
  535. /package/dist/{mcp/agent-variants → agent-variants}/variantContext.js +0 -0
package/README.md CHANGED
@@ -1,60 +1,84 @@
1
1
  # Rivet
2
2
 
3
- Rivet helps you explore multiple design directions for your web app. It generates parallel variants you can compare side by side, refine with precision, and share or implement all from your coding agent.
3
+ Rivet helps you explore multiple design directions for your web app. It opens a local visual editor, generates parallel variants, lets you refine with comments, and can send the chosen direction back into your project.
4
4
 
5
- ## How it works
5
+ ## Install
6
6
 
7
- Rivet runs as an MCP server alongside your coding agent (Claude Code, Cursor, etc.).
7
+ Run the installer from the project where you want AI agents to use Rivet:
8
8
 
9
- 1. **Start from your agent.** Use `/rivet` in Claude Code, or tell your agent "Use Rivet variants" or "Explore with Rivet" along with your design request.
10
- 2. **Connect design references** (optional). Click **Connect design references** in the editor to link your Pinterest or Are.na account. Include relevant pins or boards and Rivet will extract design context from them to inform the variants it generates.
11
- 3. **Refine with the comment tool.** Select any part of the UI and use the comment tool to make more precise variants of that section, or leave comments describing what you'd like to change within a variant.
12
- 4. **Share or implement.** When you're happy, click the **Share** button to get a shareable link you can send to a collaborator — or share it back to your coding agent to implement the chosen direction.
9
+ ```bash
10
+ npx -y rivet-design@latest install
11
+ ```
13
12
 
14
- ## Install
13
+ The installer writes CLI usage guidance and command allowlists for detected shell-capable agents such as Claude Code, Cursor, and Codex. After installing, start a new agent session and say "Open Rivet" or "/rivet".
15
14
 
16
- **Option 1 CLI (recommended)**
15
+ You can also run Rivet directly without a global install:
17
16
 
18
17
  ```bash
19
- claude mcp add --transport stdio --scope user rivet -- npx -y rivet-design@latest mcp --editor claude
18
+ npx -y rivet-design@latest open --project /path/to/app
20
19
  ```
21
20
 
22
- **Option 2 Run Rivet's installer** (adds Rivet globally via Claude Code CLI)
21
+ If installed globally, the package exposes the `rivet` binary:
23
22
 
24
23
  ```bash
25
- npx rivet-design install
24
+ rivet open --project /path/to/app
26
25
  ```
27
26
 
28
- No global install required. `npx` pulls the latest version each time.
27
+ ## CLI Agent Commands
29
28
 
30
- ## Usage
29
+ Rivet's agent-facing commands print one JSON envelope on stdout, write progress to stderr, and do not prompt for input.
31
30
 
32
- Once installed, tell your agent what you want to explore:
31
+ For interactive user workflows, run `rivet open` without `--no-browser` so the Rivet UI opens in the browser. Use `--no-browser` only for headless/background automation, CI/e2e checks, or when the user explicitly asks not to open a browser; in those cases, report the returned `editorUrl`.
33
32
 
33
+ ```bash
34
+ rivet open --project /path/to/app
35
+ rivet status --project /path/to/app
36
+ rivet variants start --project /path/to/app --instruction "try three hero layouts" --count 3
37
+ rivet wait <workId> --project /path/to/app --timeout 120
38
+ rivet variants list --project /path/to/app
39
+ rivet variants commit <variantId> --project /path/to/app
40
+ rivet changes request --project /path/to/app --instruction "make the header coral" --element "#header"
41
+ rivet changes pull --project /path/to/app
42
+ rivet stop --project /path/to/app
34
43
  ```
35
- "Use Rivet variants to explore hero section designs"
36
- "Explore with Rivet show me options for the navigation"
37
- "/rivet redesign the pricing page"
44
+
45
+ For a fresh project, create or use an empty directory, open Rivet there, then start variants with `--fresh`:
46
+
47
+ ```bash
48
+ rivet open --project /path/to/new-app
49
+ rivet variants start --project /path/to/new-app --fresh --instruction "build a SaaS landing page" --count 3
38
50
  ```
39
51
 
40
- Your agent will open Rivet, generate parallel design directions, and let you compare them side by side in the browser. Use the comment tool to refine, connect Pinterest or Are.na boards for design context, and share or implement when you're ready.
52
+ For shell agents, pass caller metadata on each command when available:
41
53
 
42
- ### Supported frameworks
54
+ ```bash
55
+ rivet open --project /path/to/app --caller-agent cursor --caller-model <model> --caller-session <session-id>
56
+ ```
57
+
58
+ ## How It Works
59
+
60
+ 1. `rivet open` starts or attaches to the local Rivet editor server for a project. It can attach to an existing dev server or start the app's standard `dev`, `start`, or `serve` script when possible.
61
+ 2. The editor shows your app and variant previews in the browser. Agents use `rivet variants ...` and `rivet changes ...` to enqueue work.
62
+ 3. Use `rivet wait`, `rivet status`, or `rivet status --watch` to observe progress.
63
+ 4. Commit the chosen variant with `rivet variants commit <variantId>` or use the editor to keep refining.
64
+
65
+ If Rivet reports pull mode, staged work can be drained with `rivet changes pull --project <path>`, applied by the agent, then acknowledged with `rivet changes pull --project <path> --ack <leaseId>`.
66
+
67
+ ## Supported Frameworks
43
68
 
44
69
  - Next.js
45
70
  - Vite
46
71
  - Create React App
47
72
  - Remix
48
73
  - SvelteKit
49
-
50
- Your dev server needs to be running before opening Rivet. Your agent will give you the start command if it isn't.
74
+ - Static HTML
51
75
 
52
76
  ## Requirements
53
77
 
54
- - Node.js 18+
55
- - A running local dev server (Vite, Next.js, etc.)
56
- - Claude Code, Cursor, or another MCP-compatible agent
78
+ - Node.js 24+
79
+ - A shell-capable coding agent for agent-driven flows
80
+ - Git for variant branch/history features
57
81
 
58
82
  ## License
59
83
 
60
- MIT
84
+ GPL-3.0-or-later
package/README.npm.md CHANGED
@@ -1,60 +1,84 @@
1
1
  # Rivet
2
2
 
3
- Rivet helps you explore multiple design directions for your web app. It generates parallel variants you can compare side by side, refine with precision, and share or implement all from your coding agent.
3
+ Rivet helps you explore multiple design directions for your web app. It opens a local visual editor, generates parallel variants, lets you refine with comments, and can send the chosen direction back into your project.
4
4
 
5
- ## How it works
5
+ ## Install
6
6
 
7
- Rivet runs as an MCP server alongside your coding agent (Claude Code, Cursor, etc.).
7
+ Run the installer from the project where you want AI agents to use Rivet:
8
8
 
9
- 1. **Start from your agent.** Use `/rivet` in Claude Code, or tell your agent "Use Rivet variants" or "Explore with Rivet" along with your design request.
10
- 2. **Connect design references** (optional). Click **Connect design references** in the editor to link your Pinterest or Are.na account. Include relevant pins or boards and Rivet will extract design context from them to inform the variants it generates.
11
- 3. **Refine with the comment tool.** Select any part of the UI and use the comment tool to make more precise variants of that section, or leave comments describing what you'd like to change within a variant.
12
- 4. **Share or implement.** When you're happy, click the **Share** button to get a shareable link you can send to a collaborator — or share it back to your coding agent to implement the chosen direction.
9
+ ```bash
10
+ npx -y rivet-design@latest install
11
+ ```
13
12
 
14
- ## Install
13
+ The installer writes CLI usage guidance and command allowlists for detected shell-capable agents such as Claude Code, Cursor, and Codex. After installing, start a new agent session and say "Open Rivet" or "/rivet".
15
14
 
16
- **Option 1 CLI (recommended)**
15
+ You can also run Rivet directly without a global install:
17
16
 
18
17
  ```bash
19
- claude mcp add --transport stdio --scope user rivet -- npx -y rivet-design@latest mcp --editor claude
18
+ npx -y rivet-design@latest open --project /path/to/app
20
19
  ```
21
20
 
22
- **Option 2 Run Rivet's installer** (adds Rivet globally via Claude Code CLI)
21
+ If installed globally, the package exposes the `rivet` binary:
23
22
 
24
23
  ```bash
25
- npx rivet-design install
24
+ rivet open --project /path/to/app
26
25
  ```
27
26
 
28
- No global install required. `npx` pulls the latest version each time.
27
+ ## CLI Agent Commands
29
28
 
30
- ## Usage
29
+ Rivet's agent-facing commands print one JSON envelope on stdout, write progress to stderr, and do not prompt for input.
31
30
 
32
- Once installed, tell your agent what you want to explore:
31
+ For interactive user workflows, run `rivet open` without `--no-browser` so the Rivet UI opens in the browser. Use `--no-browser` only for headless/background automation, CI/e2e checks, or when the user explicitly asks not to open a browser; in those cases, report the returned `editorUrl`.
33
32
 
33
+ ```bash
34
+ rivet open --project /path/to/app
35
+ rivet status --project /path/to/app
36
+ rivet variants start --project /path/to/app --instruction "try three hero layouts" --count 3
37
+ rivet wait <workId> --project /path/to/app --timeout 120
38
+ rivet variants list --project /path/to/app
39
+ rivet variants commit <variantId> --project /path/to/app
40
+ rivet changes request --project /path/to/app --instruction "make the header coral" --element "#header"
41
+ rivet changes pull --project /path/to/app
42
+ rivet stop --project /path/to/app
34
43
  ```
35
- "Use Rivet variants to explore hero section designs"
36
- "Explore with Rivet show me options for the navigation"
37
- "/rivet redesign the pricing page"
44
+
45
+ For a fresh project, create or use an empty directory, open Rivet there, then start variants with `--fresh`:
46
+
47
+ ```bash
48
+ rivet open --project /path/to/new-app
49
+ rivet variants start --project /path/to/new-app --fresh --instruction "build a SaaS landing page" --count 3
38
50
  ```
39
51
 
40
- Your agent will open Rivet, generate parallel design directions, and let you compare them side by side in the browser. Use the comment tool to refine, connect Pinterest or Are.na boards for design context, and share or implement when you're ready.
52
+ For shell agents, pass caller metadata on each command when available:
41
53
 
42
- ### Supported frameworks
54
+ ```bash
55
+ rivet open --project /path/to/app --caller-agent cursor --caller-model <model> --caller-session <session-id>
56
+ ```
57
+
58
+ ## How It Works
59
+
60
+ 1. `rivet open` starts or attaches to the local Rivet editor server for a project. It can attach to an existing dev server or start the app's standard `dev`, `start`, or `serve` script when possible.
61
+ 2. The editor shows your app and variant previews in the browser. Agents use `rivet variants ...` and `rivet changes ...` to enqueue work.
62
+ 3. Use `rivet wait`, `rivet status`, or `rivet status --watch` to observe progress.
63
+ 4. Commit the chosen variant with `rivet variants commit <variantId>` or use the editor to keep refining.
64
+
65
+ If Rivet reports pull mode, staged work can be drained with `rivet changes pull --project <path>`, applied by the agent, then acknowledged with `rivet changes pull --project <path> --ack <leaseId>`.
66
+
67
+ ## Supported Frameworks
43
68
 
44
69
  - Next.js
45
70
  - Vite
46
71
  - Create React App
47
72
  - Remix
48
73
  - SvelteKit
49
-
50
- Your dev server needs to be running before opening Rivet. Your agent will give you the start command if it isn't.
74
+ - Static HTML
51
75
 
52
76
  ## Requirements
53
77
 
54
- - Node.js 18+
55
- - A running local dev server (Vite, Next.js, etc.)
56
- - Claude Code, Cursor, or another MCP-compatible agent
78
+ - Node.js 24+
79
+ - A shell-capable coding agent for agent-driven flows
80
+ - Git for variant branch/history features
57
81
 
58
82
  ## License
59
83
 
60
- MIT
84
+ GPL-3.0-or-later
package/bin/rivet.js CHANGED
@@ -22,20 +22,6 @@ if (!process.env.NODE_ENV) {
22
22
  }
23
23
  }
24
24
 
25
- // In MCP mode, stdout is reserved for the JSON-RPC protocol stream. The dist
26
- // logger's redirectLogsToStderr() runs inside startMCPServer, but module-level
27
- // log calls fire at import time — before that hook. Patch console output here
28
- // so those early lines (and any future ones) go to stderr instead of corrupting
29
- // the protocol stream.
30
- if (process.argv.includes('mcp')) {
31
- console.log = console.error.bind(console);
32
- console.info = console.error.bind(console);
33
- console.warn = console.error.bind(console);
34
- }
35
-
36
- // Import the compiled main function
37
- const { main } = require('../dist/index.js');
38
-
39
25
  // Handle uncaught exceptions gracefully
40
26
  process.on('uncaughtException', (error) => {
41
27
  console.error('Uncaught exception:', error);
@@ -47,14 +33,43 @@ process.on('unhandledRejection', (reason, promise) => {
47
33
  process.exit(1);
48
34
  });
49
35
 
50
- // Handle Ctrl+C gracefully
51
- process.on('SIGINT', () => {
52
- console.log('\n👋 Goodbye!');
53
- process.exit(0);
54
- });
36
+ // Control-plane subcommands route to the lean entry and skip dist/index.js
37
+ // entirely: its static import graph is the dominant fixed cost of an
38
+ // invocation and none of it is needed to emit an envelope. Any resolution
39
+ // failure falls back to the full CLI.
40
+ const args = process.argv.slice(2);
41
+ let controlPlane = null;
42
+ try {
43
+ const { isCliControlCommand } = require('../dist/cli/commandNames.js');
44
+ if (isCliControlCommand(args[0])) {
45
+ controlPlane = require('../dist/cli/entry.js');
46
+ }
47
+ } catch {
48
+ controlPlane = null;
49
+ }
55
50
 
56
- // Start the CLI
57
- main().catch((error) => {
58
- console.error('CLI error:', error);
59
- process.exit(1);
60
- });
51
+ if (controlPlane) {
52
+ // stdout is reserved for JSON envelopes (and MCP frames under
53
+ // `rivet mcp serve`), so no Ctrl+C goodbye on this path.
54
+ process.on('SIGINT', () => {
55
+ process.exit(0);
56
+ });
57
+ controlPlane.runControlPlane(args).catch((error) => {
58
+ console.error('CLI error:', error);
59
+ process.exit(1);
60
+ });
61
+ } else {
62
+ // Handle Ctrl+C gracefully
63
+ process.on('SIGINT', () => {
64
+ console.log('\n👋 Goodbye!');
65
+ process.exit(0);
66
+ });
67
+
68
+ const { main } = require('../dist/index.js');
69
+
70
+ // Start the CLI
71
+ main().catch((error) => {
72
+ console.error('CLI error:', error);
73
+ process.exit(1);
74
+ });
75
+ }
@@ -1,4 +1,4 @@
1
- import { type Brief, type ActiveVariantSnapshot, type LeasedWorkItemDescriptor, type ProjectContext, type SourcePlanActionOption, type SourcePlanArtifact, type Stage, type StaticPreviewTargetElement, type Target, type TerminalSummary, type VariantContextBinding, type VariantContextBundle, type VariantQaResult, type VariantPickEnvelope, type WorkItem, type WorkItemStatus } from './contracts';
1
+ import { type Brief, type ActiveVariantSnapshot, type LeasedWorkItemDescriptor, type ProjectContext, type SourcePlanActionOption, type SourcePlanArtifact, type Stage, type StartVariantsBriefContent, type StaticPreviewTargetElement, type Target, type TerminalSummary, type VariantContextBinding, type VariantContextBundle, type VariantQaResult, type VariantPickEnvelope, type WorkItem, type WorkItemStatus } from './contracts';
2
2
  /** TTL for a lease on a code_gen work item. Bumped to 20min after a timing
3
3
  * audit found first-variant single-round code-gen routinely runs 540–950s
4
4
  * (4+ Task sub-agents in parallel), so the previous 10min cap was the most
@@ -185,6 +185,7 @@ export declare class SessionStore {
185
185
  sourceVariantId: string;
186
186
  instruction: string;
187
187
  count: number;
188
+ briefs?: StartVariantsBriefContent[];
188
189
  currentHtml?: string;
189
190
  targetElement?: StaticPreviewTargetElement;
190
191
  requestId?: string;
@@ -199,12 +200,20 @@ export declare class SessionStore {
199
200
  * batch; the orchestrator provisions a worktree per item and runs each
200
201
  * through the normal completion/preview pipeline.
201
202
  *
203
+ * With `sourceVariantId`, forks a succeeded code_gen parent: each new item
204
+ * is stamped with the source id (+ sourceLabel/sourceBody) so the
205
+ * orchestrator seeds its worktree from the parent's tree rather than git
206
+ * HEAD / Original. Backs code_gen "Vary" targeting a parent variant.
207
+ *
202
208
  * Reopens the session to `work_items_ready` so the appended pending work is
203
209
  * visible and drives the stage back through generation to ready/degraded.
204
210
  */
205
- appendExistingCodeGenVariants(args: {
211
+ appendCodeGenVariants(args: {
206
212
  sessionId: string;
207
213
  briefs: Brief[];
214
+ /** Fork parent: seed each new variant from this succeeded code_gen
215
+ * variant's worktree instead of the base tree. */
216
+ sourceVariantId?: string;
208
217
  /** Run label (1–2 word intent) derived from THIS batch's instruction.
209
218
  * Stamped onto each appended work item so the variant table tags the new
210
219
  * rows with their OWN batch's label instead of inheriting the session's
@@ -220,23 +229,6 @@ export declare class SessionStore {
220
229
  createdWorkItemIds: string[];
221
230
  briefs: Brief[];
222
231
  };
223
- /**
224
- * Fork a succeeded code_gen variant into N NEW sibling variants. Each forked
225
- * item is seeded from the source variant's worktree (not git HEAD / Original)
226
- * and carries `sourceVariantId` so the orchestrator can copy the parent's
227
- * tree when provisioning. Backs code_gen "Vary" when the UI targets a parent
228
- * variant with `variantRequest.count > 0`.
229
- */
230
- createForkedCodeGenWorkItems(args: {
231
- sessionId: string;
232
- sourceVariantId: string;
233
- briefs: Brief[];
234
- runLabel?: string;
235
- variantContext?: VariantContextBundle;
236
- }): {
237
- createdWorkItemIds: string[];
238
- briefs: Brief[];
239
- };
240
232
  /**
241
233
  * Adopt a PAST variant (from a prior session's persisted history) into THIS
242
234
  * active session as a first-class, already-`succeeded` `static_preview`
@@ -429,6 +421,7 @@ export declare class SessionStore {
429
421
  };
430
422
  getSummary(sessionId: string): TerminalSummary;
431
423
  getVariants(sessionId: string): ActiveVariantSnapshot[];
424
+ getHostWork(sessionId: string): import('./contracts').HostVariantWorkItemSnapshot[];
432
425
  getVariantPick(sessionId: string): VariantPickEnvelope | undefined;
433
426
  /** Validates a report lease without mutating the work item. */
434
427
  validateReportLease(args: {
@@ -439,7 +432,7 @@ export declare class SessionStore {
439
432
  }): void;
440
433
  hasSession(sessionId: string): boolean;
441
434
  /** Read a work item's input blob — used by the orchestrator to recover
442
- * briefLabel / target / projectContext when auto-enqueueing the diff. */
435
+ * briefLabel / target / projectContext when committing the output. */
443
436
  getWorkItemInput(sessionId: string, workItemId: string): unknown;
444
437
  getWorkItemOutput(sessionId: string, workItemId: string): unknown;
445
438
  /** Replaces a completed work item's output after server-side post-processing. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionStore.d.ts","sourceRoot":"","sources":["../../src/agent-variants/SessionStore.ts"],"names":[],"mappings":"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"}
@@ -992,7 +992,8 @@ class SessionStore {
992
992
  const sourceInput = source.input;
993
993
  const seedHtml = args.currentHtml ??
994
994
  source.output?.html;
995
- const total = Math.min(Math.max(Math.trunc(args.count) || 1, 1), contracts_1.VARIANT_COUNT_MAX);
995
+ const briefs = args.briefs?.map(briefContent_1.normalizeBriefContent);
996
+ const total = Math.min(briefs?.length ?? Math.max(Math.trunc(args.count) || 1, 1), contracts_1.VARIANT_COUNT_MAX);
996
997
  // Label/describe forked variants by the CHANGE requested (the Vary
997
998
  // instruction), not the source brief — otherwise every run on the same
998
999
  // variant reads identically ("<source> · variation N") and concurrent runs
@@ -1004,6 +1005,7 @@ class SessionStore {
1004
1005
  const LABEL_MAX = 48;
1005
1006
  const created = [];
1006
1007
  for (let i = 0; i < total; i++) {
1008
+ const brief = briefs?.[i];
1007
1009
  const suffix = total > 1 ? ` · ${i + 1}` : '';
1008
1010
  const labelBase = prettyInstruction.length > LABEL_MAX - suffix.length
1009
1011
  ? `${prettyInstruction.slice(0, LABEL_MAX - suffix.length - 1)}…`
@@ -1016,10 +1018,13 @@ class SessionStore {
1016
1018
  dependsOn: [],
1017
1019
  input: {
1018
1020
  briefId: `${sourceInput.briefId ?? 'v'}-vary-${(0, crypto_1.randomUUID)().slice(0, 8)}`,
1019
- // Provisional name/description (the change) shown while generating;
1020
- // the agent reports a synthesized title/description on completion.
1021
- briefLabel: `${labelBase}${suffix}`,
1022
- briefBody: prettyInstruction,
1021
+ // Agent-authored metadata is visible from the start. Human-direct
1022
+ // fallback metadata can still be replaced on completion.
1023
+ briefLabel: brief?.label ?? `${labelBase}${suffix}`,
1024
+ briefBody: brief?.body ?? prettyInstruction,
1025
+ ...(brief?.visualReferenceUrl
1026
+ ? { visualReferenceUrl: brief.visualReferenceUrl }
1027
+ : {}),
1023
1028
  instruction: args.instruction,
1024
1029
  sourceVariantId: args.sourceVariantId,
1025
1030
  // Parent identity, so the agent can synthesize a name/description that
@@ -1058,11 +1063,23 @@ class SessionStore {
1058
1063
  * batch; the orchestrator provisions a worktree per item and runs each
1059
1064
  * through the normal completion/preview pipeline.
1060
1065
  *
1066
+ * With `sourceVariantId`, forks a succeeded code_gen parent: each new item
1067
+ * is stamped with the source id (+ sourceLabel/sourceBody) so the
1068
+ * orchestrator seeds its worktree from the parent's tree rather than git
1069
+ * HEAD / Original. Backs code_gen "Vary" targeting a parent variant.
1070
+ *
1061
1071
  * Reopens the session to `work_items_ready` so the appended pending work is
1062
1072
  * visible and drives the stage back through generation to ready/degraded.
1063
1073
  */
1064
- appendExistingCodeGenVariants(args) {
1074
+ appendCodeGenVariants(args) {
1065
1075
  const session = this.requireSession(args.sessionId);
1076
+ const source = args.sourceVariantId
1077
+ ? this.requireWorkItem(session, args.sourceVariantId)
1078
+ : null;
1079
+ if (source &&
1080
+ (source.kind !== 'code_gen' || source.status !== 'succeeded')) {
1081
+ throw new errors_1.AgentVariantsError('VARIANT_NOT_EDITABLE', 'Only completed code_gen variants can be varied');
1082
+ }
1066
1083
  if (session.projectContext.kind !== 'existing') {
1067
1084
  throw new errors_1.AgentVariantsError('INVALID_STAGE_ACTION', 'Only existing-project sessions can append code_gen variants');
1068
1085
  }
@@ -1075,81 +1092,19 @@ class SessionStore {
1075
1092
  if (args.briefs.length === 0) {
1076
1093
  throw new errors_1.AgentVariantsError('MISSING_REQUIRED_INPUT', 'At least one brief is required to append variants');
1077
1094
  }
1078
- const createdWorkItemIds = [];
1079
- for (const brief of args.briefs) {
1080
- const context = resolveVariantWorkItemContext({
1081
- bundle: args.variantContext ?? session.projectContext.variantContext,
1082
- projectContext: session.projectContext,
1083
- brief,
1084
- slotIndex: session.briefs.length,
1095
+ if (source) {
1096
+ const activeRefinement = [...session.workItems.values()].find((item) => {
1097
+ if (item.kind !== 'refine_variant')
1098
+ return false;
1099
+ const input = item.input;
1100
+ return (input.variantId === args.sourceVariantId &&
1101
+ (item.status === 'pending' || item.status === 'running'));
1085
1102
  });
1086
- const visualRef = brief.visualReferenceUrl
1087
- ? { visualReferenceUrl: brief.visualReferenceUrl }
1088
- : {};
1089
- const item = {
1090
- id: (0, crypto_1.randomUUID)(),
1091
- kind: 'code_gen',
1092
- status: 'pending',
1093
- attempt: 0,
1094
- dependsOn: [],
1095
- input: {
1096
- briefId: brief.briefId,
1097
- briefLabel: brief.label,
1098
- briefBody: brief.body,
1099
- ...visualRef,
1100
- ...(args.runLabel ? { runLabel: args.runLabel } : {}),
1101
- target: session.target,
1102
- projectContext: session.projectContext,
1103
- ...(context ? { context } : {}),
1104
- },
1105
- acceptedReports: [],
1106
- };
1107
- session.workItems.set(item.id, item);
1108
- // Surface the newest Vary batch at the top of the Directions list, matching
1109
- // the static-preview fork ordering.
1110
- session.workItemOrder.unshift(item.id);
1111
- session.briefs.push(brief);
1112
- createdWorkItemIds.push(item.id);
1113
- }
1114
- session.stage = 'work_items_ready';
1115
- return { createdWorkItemIds, briefs: args.briefs };
1116
- }
1117
- /**
1118
- * Fork a succeeded code_gen variant into N NEW sibling variants. Each forked
1119
- * item is seeded from the source variant's worktree (not git HEAD / Original)
1120
- * and carries `sourceVariantId` so the orchestrator can copy the parent's
1121
- * tree when provisioning. Backs code_gen "Vary" when the UI targets a parent
1122
- * variant with `variantRequest.count > 0`.
1123
- */
1124
- createForkedCodeGenWorkItems(args) {
1125
- const session = this.requireSession(args.sessionId);
1126
- const source = this.requireWorkItem(session, args.sourceVariantId);
1127
- if (source.kind !== 'code_gen' || source.status !== 'succeeded') {
1128
- throw new errors_1.AgentVariantsError('VARIANT_NOT_EDITABLE', 'Only completed code_gen variants can be varied');
1129
- }
1130
- if (session.projectContext.kind !== 'existing') {
1131
- throw new errors_1.AgentVariantsError('INVALID_STAGE_ACTION', 'Only existing-project sessions can fork code_gen variants');
1132
- }
1133
- if (session.variantPick) {
1134
- throw new errors_1.AgentVariantsError('PENDING_CHANGE_CONFLICT', 'Cannot vary a variant after one has already been committed');
1135
- }
1136
- if (session.stage === 'cancelled' || session.stage === 'failed') {
1137
- throw new errors_1.AgentVariantsError('INVALID_STAGE_ACTION', `Cannot fork variants in a ${session.stage} session`);
1138
- }
1139
- if (args.briefs.length === 0) {
1140
- throw new errors_1.AgentVariantsError('MISSING_REQUIRED_INPUT', 'At least one brief is required to fork variants');
1141
- }
1142
- const activeRefinement = [...session.workItems.values()].find((item) => {
1143
- if (item.kind !== 'refine_variant')
1144
- return false;
1145
- const input = item.input;
1146
- return (input.variantId === args.sourceVariantId &&
1147
- (item.status === 'pending' || item.status === 'running'));
1148
- });
1149
- if (activeRefinement) {
1150
- throw new errors_1.AgentVariantsError('PENDING_CHANGE_CONFLICT', 'Cannot vary a variant while an in-place refinement is pending or running');
1103
+ if (activeRefinement) {
1104
+ throw new errors_1.AgentVariantsError('PENDING_CHANGE_CONFLICT', 'Cannot vary a variant while an in-place refinement is pending or running');
1105
+ }
1151
1106
  }
1152
- const sourceInput = source.input;
1107
+ const sourceInput = (source?.input ?? {});
1153
1108
  const createdWorkItemIds = [];
1154
1109
  for (const brief of args.briefs) {
1155
1110
  const context = resolveVariantWorkItemContext({
@@ -1173,11 +1128,15 @@ class SessionStore {
1173
1128
  briefBody: brief.body,
1174
1129
  ...visualRef,
1175
1130
  ...(args.runLabel ? { runLabel: args.runLabel } : {}),
1176
- sourceVariantId: args.sourceVariantId,
1177
- ...(sourceInput.briefLabel
1131
+ ...(args.sourceVariantId
1132
+ ? { sourceVariantId: args.sourceVariantId }
1133
+ : {}),
1134
+ ...(source && sourceInput.briefLabel
1178
1135
  ? { sourceLabel: sourceInput.briefLabel }
1179
1136
  : {}),
1180
- ...(sourceInput.briefBody ? { sourceBody: sourceInput.briefBody } : {}),
1137
+ ...(source && sourceInput.briefBody
1138
+ ? { sourceBody: sourceInput.briefBody }
1139
+ : {}),
1181
1140
  target: session.target,
1182
1141
  projectContext: session.projectContext,
1183
1142
  ...(context ? { context } : {}),
@@ -1185,6 +1144,8 @@ class SessionStore {
1185
1144
  acceptedReports: [],
1186
1145
  };
1187
1146
  session.workItems.set(item.id, item);
1147
+ // Surface the newest Vary batch at the top of the Directions list, matching
1148
+ // the static-preview fork ordering.
1188
1149
  session.workItemOrder.unshift(item.id);
1189
1150
  session.briefs.push(brief);
1190
1151
  createdWorkItemIds.push(item.id);
@@ -1539,7 +1500,7 @@ class SessionStore {
1539
1500
  sessionStage: session.stage,
1540
1501
  };
1541
1502
  }
1542
- // --- Variant pick handoff (queues to pending-changes adapter) -----------
1503
+ // --- Variant pick handoff ----------------------------------------------
1543
1504
  recordVariantPick(args) {
1544
1505
  const session = this.requireSession(args.sessionId);
1545
1506
  if (!['ready', 'degraded'].includes(session.stage)) {
@@ -1582,6 +1543,30 @@ class SessionStore {
1582
1543
  const session = this.requireSession(sessionId);
1583
1544
  return this.variantsOf(session);
1584
1545
  }
1546
+ getHostWork(sessionId) {
1547
+ const session = this.requireSession(sessionId);
1548
+ return [...session.workItems.values()]
1549
+ .filter((item) => item.lease && item.status === 'running')
1550
+ .map((item) => {
1551
+ const input = item.input && typeof item.input === 'object'
1552
+ ? item.input
1553
+ : {};
1554
+ const variantId = item.kind === 'refine_variant' && typeof input.variantId === 'string'
1555
+ ? input.variantId
1556
+ : item.id;
1557
+ return {
1558
+ workId: item.id,
1559
+ variantId,
1560
+ kind: item.kind,
1561
+ status: item.status,
1562
+ leaseId: item.lease.leaseId,
1563
+ attempt: item.lease.attempt,
1564
+ leaseExpiresAt: item.lease.leaseExpiresAt,
1565
+ input: item.input,
1566
+ outputSchema: outputSchemaFor(item.kind),
1567
+ };
1568
+ });
1569
+ }
1585
1570
  getVariantPick(sessionId) {
1586
1571
  return this.requireSession(sessionId).variantPick;
1587
1572
  }
@@ -1595,7 +1580,7 @@ class SessionStore {
1595
1580
  return this.sessions.has(sessionId);
1596
1581
  }
1597
1582
  /** Read a work item's input blob — used by the orchestrator to recover
1598
- * briefLabel / target / projectContext when auto-enqueueing the diff. */
1583
+ * briefLabel / target / projectContext when committing the output. */
1599
1584
  getWorkItemInput(sessionId, workItemId) {
1600
1585
  const session = this.requireSession(sessionId);
1601
1586
  const item = this.requireWorkItem(session, workItemId);
@@ -1894,6 +1879,11 @@ class SessionStore {
1894
1879
  briefId: input.briefId ?? '',
1895
1880
  label: input.briefLabel ?? 'Variant',
1896
1881
  status: item.status,
1882
+ // The filter above admits only code_gen / static_preview items
1883
+ // (incl. adopted + forked static previews). Clients route Vary/apply
1884
+ // on this — never on the display preview kind, which diverges for
1885
+ // existing-project code_gen variants materialized as static HTML.
1886
+ workItemKind: item.kind,
1897
1887
  createdAt: new Date(session.createdAt).toISOString(),
1898
1888
  // Prefer the per-item label stamped by an appended Vary batch; the
1899
1889
  // session-level fallback is correct only for the first batch (its